Zero To One
1) DevOps, CI/CD란 무엇인가? 본문
1. DevOps란?
DevOps(Devops = Development + Operations)라는 합성어는 소프트웨어 개발자 들과 IT 종사자들 사이의 의사소통, 협업, 융합을 강조한 소프트웨어 개발 방법론이 며, 소프트웨어 개발과 IT 운영간의 상호 의존관계에 대한 산물이다. DevOps는 조 직에서 소프트웨어 상품과 서비스를 신속히 생산하는 것에 도움이 되는 것을 목적으 로 한다.
1) 새로운 서비스를 기획한다 (Plan)
2) 개발자가 코드를 작성한다 (Code)
3) 어디든 전달 가능 하도록 서비스를 포장한다 (Build)
4) 서비스가 잘 작동하는지 테스트 한다 (Test)
5) 버전 넘버를 붙여, 베타 서비스를 시작한다 (Release)
6) 정식 버전을 내놓는다 (Deploy)
7) 트래픽을 모니터링 한다 (Operate)
여기서 Dev의 영역은 1 ~ 3까지
Ops의 영역은 4 ~ 7까지 이다.
DevOps에 대한 주요 클라우드 서비스 벤더들의 정의
- Amazon Web Service : https://aws.amazon.com/ko/devops/what-is-devops/
- Microsoft Azure : https://azure.microsoft.com/ko-kr/overview/what-is-devops/
- Google Cloud Platform : https://cloud.google.com/devops/?hl=ko
- DevOps의 이해와 구현 (소프트웨어공학센터 경영지원TF팀) http://pds26.egloos.com/pds/201310/24/85/Devops1.pdf
2. CI/CD 파이프라인
- 지속적 통합/지속적 전달
1) CI : Continuous Integration : 어플리케이션의 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트 되어
공유 레포지토리에 통합히는 것을 의미
- 무엇을 통합한다는 것일까? -> 기존 프로그램 + 새로 개발된 부분
- Code -> Build -> Test
- 지속적 통합의 필요성
-> 버그를 일찍 발견
-> 테스트가 완료된 코드에 대해 빠른 전달 가능
-> 지속적인 배포 가능
2) CD : Continuous Delivery 혹은 Continuous Depolyment : 지속적 배포 = 지속적 통합 + 지속적 전달
- 지속적 배포란, 모든 코드의 변경이 배포로 이어진다는 것
- Release -> Deploy -> Operate
3) CI/CD 파이프 라인의 목표 : 애플리케이션 배포
3. etc...
1) DevOps가 더욱 부각된 이유는? : 1) 클라우드 환경으로의 변화, 2) 높은 가용성을 요구하는 애플리케이션
2) 밴드로 표현하자면? : 프론트앤드(기타), 벡앤드(베이스), DevOps(프로듀서)
3) 게임 서버를 어떻게 운영하는게 가용성을 높일까?
- 수평확장 : 똑같은 일을 하는 서버의 댓수를 늘리는 것
- 수직확장 : 서버 성능을 늘리는 것 (한계가 있음)
-> 많은 사람이 이용하는 호텔에 큰 수영장을 놔두는 것이 더 효율적
'DevOps' 카테고리의 다른 글
DevOps를 하면서 리눅스를 써야하는 이유 (0) | 2022.02.14 |
---|---|
2) DevOps 규모에 따른 운영 (0) | 2022.02.08 |