DevOps

[DevOps]DevOps

퉁그리 2022. 7. 17. 15:55

DevOps(이하 데브옵스)는 Development + Operation의 합성어로 개발담당자와 운영담당자가 연계하하여 소통, 협업 및 통합을 강조하는 개발 환경, 문화, 방법론 등을 아우르는 말이다. 다시 말해 데브옵스는 어떤 요구사항을 효율적으로 만족시키기 위하여, 일을 자동화하며 변경사항 지표들을 측정하고, 공유하며, 이 모든 결과물들을 지속적으로 축적해 나아가는 문화를 만들어가는 철학, 방법론, 기술등을 의미한다.

데브옵스의 장점

 

데브옵스를 적용하는데에 있어 가져올 수 있는 장점은 이와 같다.

 

- 속도

소통의 딜레이와 난이도가 줄어들면서 작업 속도가 빨라지고 이에 따라 시장 변화에 잘 적응하고 효율적으로 비즈니스 성과를 창출할 수 있다.

- 빠른 배포

새로운 기능의 릴리스와 버그 수정 속도가 빨라질수록 경쟁 우위를 차지할 수 있다.

- 안정성

애플리케이션 업데이트와 인프라 변경의 품질 보장, 지속적 통합 및 지속저 전달과 같은 방식을 통해 변경 사항이 제대로 안전하게 작동하는지 테스트가 가능하다.

- 확장

규모에 따라 인스턴스를 단일부터 수천개까지 확장할 수 있으며 인프라와 개발 프로세스 운영, 관리가 가능하고 자동화와 일관성이 지원되므로 위험을 줄이면서 복잡한 시스템 또는 변화하는 시스템을 효율적으로 관리할 수 있다.

- 협업 강화

개발자와 운영 부서 간의 효율적인 협력을 통해 효과적인 팀 구축이 가능하다.

- 보안

자동화된 규정 준수 정책, 세분화된 제어 및 구성 관리 기술 사용을 통해 보안을 높은 수준으로 유지할 수 있다.

 

데브옵스 툴체인

데브옵스 툴체인은 데브옵스 적용이 가능한 툴을 묶어 하나의 체인 형식으로 모든 과정(기획-개발-빌드-테스트-릴리즈-배포-운영-모니터링)을 묶어 사용하는 개념이다. 툴체인을 기반한 툴들이 있는데, 이러한 툴들의 목표는 파이프라인의 다양한 단계를 추가로 간소화하고, 단축하고, 자동화하는 것이다. 또한 이러한 툴 중 다수는 자동화, 협업 및 개발-운영 팀 간의 통합에 대한 핵심 데브옵스 원칙을 손쉽게 준수할 수있도록 한다.

다음은 DevOps 툴체인과 툴의 예이다.

- 기획

목적을 수행하기 앞서 방법이나 절차 등을 미리 생각하여 계획

ex) Jira, Git

- 개발

코드 개발 및 검토, 버전 관리 도구, 코드 병합

ex) GitHub, GitLab, Bitbucket, Stash

- 빌드

지속적 통합(CI) 도구, 빌드 상태

ex) Docker, Ansible, Gradle, Maven

- 테스트

테스트 및 결과가 성능을 결정

ex) JUnit, Assertion, Codeception, Selenium

- 배포 & 릴리즈

변경사항 관리, 릴리즈 승인, 릴리즈 자동화

ex) Jenkins, Kubernetes, Docker, Jira, OpenStack, Chef

- 운영

애플리케이션 관리

ex) Puppet, Anabilities, PowerShell

- 모니터링

애플리케이션 성능 모니터링, 최종 사용자 경험

ex) New Relic, Datadog, Grafana, Slack

 

DevOps 구현의 주요 성과

1. 지속적인 배포(CD : Continuous Deployment)

CD는 개발자가 개발을 기획하고, 개발하고, 빌드하고 결과물이 테스트 후에 안정적으로 운영 환경에 배포가 되고 또한 서비스가 죽지 않게 무정지로 배포하는 것이다. 

배포 이후에는 이 서비스가 정말로 안정적인지 지속적으로 모니터링하고, 이 배포 파이프라인의 과정에서 특정 이벤트가 발생하면, 그걸 실시간으로 알림을 받을 수 있도록 구성해 놓는 것이 중요하다.

 

2. 지속적인 통합(CI : Continuous Integration)

CI는 지속적으로 품질관리를 적용하는 프로세스를 실행하는 것이다. 작은 단위의 작업과 빈번한 적용을 기반으로 하는 작업은 소프트웨어의 질적인 향상과 소프트웨어를 배포하는데 걸리는 시간을 줄여 재작업의 비용과 시간을 줄이는데에 초점이 맞추어져 있다.

 

2. 탄력적인 확장

적절한 리소스를 사용하고 예외적인 상황에 유연하게 대처할 수 잇도록 하는것이다.

 

3. 자동화된 모니터링

보안 이슈, 운영 환경에서 락이 발생하는지, 즉시 반응, 즉시 대응 할 수 있는지 환경을 만들어놔야 한다.

 

 

 

참고 : https://aws.amazon.com/ko/devops/what-is-devops/

https://ko.wikipedia.org/wiki/%EB%8D%B0%EB%B8%8C%EC%98%B5%EC%8A%A4