데브옵스(Devops)란?
- 개발(Development)와 운영(Operation)이 결합해 탄생한 용어로, 시스템 개발자와 운영을 담당하는 전문가 사이의 소통, 협업, 통합, 자동화를 바탕으로 어플리케이션 개발과 고객에게 제공되는 서비스를 빠른 속도로 제공될 수 있도록 조직의 역량을 향상시키는 소프트웨어 개발론이다.
- 개발과 운영의 경계를 허물고 하나의 팀으로서 소통, 협업 및 통합을 강조하는 개발 환경이나 문화를 뜻한다.
데브옵스 적용 시 장점
1. 속도 향상
- 마이크로 서비스 아키텍처(단일 어플리케이션을 작은 서비스의 집합으로 구축하며, 각 프로세스는 자체 프로세스에서 실행되고 잘 정의된 인터페이스를 통해 다른 서비스와 연결되는 설계기법) 및 CD(Continuous Delivery)등을 사용하여 팀에서 서비스를 주도적으로 운영하여 수정된 코드들을 더 빠르게 릴리즈 할 수 있다
2. 신속한 제공
- CI(Continuous Integrity) 및 CD(Continuous Delivery) 등을 통해 빌드에서 배포까지 자동화시켜 릴리즈의 빈도와 속도를 개선하여 제품을 빠르게 업데이트 할 수 있다. 새로운 기능 및 버그 수정속도가 빨라 고객의 요구에 더 빠르게 대응할 수 있게 된다.
3. 안정성
- CI/CD 등을 통해 변경사항을 안전하게 작동하는지 업데이트마다 테스트 해주어 애플리케이션에 안전성 및 인프라 변경의 품질을 보장해준다
4. 확장성
5. 협업 강화
6. 보안
CI란
- 빌드/테스트 자동화 과정이다
- 개발자를 위한 자동화 프로세스인 지속적인 통합을 의미한다
- 어플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 리포지토리에 통합되므로 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌할 수 있는 문제를 해결할 수 있다
CD란
- 배포 자동화 과정이다
- CD는 지속적인 서비스 제공 또는 지속적인 배포를 의미한다
- 지속적 배포는 빌드, 테스트 및 배포 단계를 자동화하는 DevOps 방식을 논리적 극한까지 끌어올린다. 코드 변경이 파이프라인의 이전 단계를 모두 성공적으로 통과하면 수동 개입 없이 해당 변경 사항이 프로덕션에 자동으로 배포된다.
- 간단한 코드 변경이정기적으로 마스터에 커밋되고, 자동화된 빌드 및 테스트 프로세스를 거리며 다양한 사전 프로덕션 환경으로 승격되며, 문제가 발견되지 않으면 최종적으로 배포된다. 강력하고 신뢰할 수 있는 자동화 배포 파이프라인을 구축하면 하루에도 여러 번 이루어지는 릴리즈가 특별하지 않은 일상이 된다
CI/CD 종류
- Jenkins
- CircleCI
- TravisCI
- Github Actions