DevOps 모델 정의

아마존은 DevOps 모델을 아래와 같이 정의한다.

DevOps는 애플리케이션과 서비스를 빠른 속도로 제공할 수 있도록 조직의 역량을 향상시키는 문화 철학, 방식 및 도구의 조합입니다.
기존의 소프트웨어 개발 및 인프라 관리 프로세스를 사용하는 조직보다 제품을 더 빠르게 혁신하고 개선할 수 있습니다.

 

 

DevOps의 이점

  1. 속도
    작업 속도가 빨라지므로 더 빠르게 혁신하고, 시장 변화에 더 잘 적응하고, 더 효율적으로 비즈니스 성과를 창출할 수 있다.
    마이크로 서비스CI/CD를 사용하면 팀에서 서비스를 주도적으로 운영하여 업데이트를 더 빠르게 릴리스할 수 있다.

  2. 신속한 제공
    릴리스의 빈도와 속도를 개선하여 제품을 더 빠르게 혁신하고 개선할 수 있습니다.
    CI/CD는 빌드에서 배포까지 소프트웨어 릴리스 프로세스를 자동화한다.

  3. 안정성
    CI/CD 방식을 사용하여 각 변경 사항이 제대로 작동하고 안전한지 테스트한다.
    모니터링과 로깅 방식을 더해 실시간으로 성능에 대한 정보를 얻을 수 있다.

  4. 확장
    규모에 따라 인프라와 개발 프로세스를 운영 및 관리한다. 자동화와 일관성이 지원되므로 위험을 줄이면서 복잡한 시스템을 효율적으로 관리할 수 있다.
    IaC를 사용하면 개발, 테스트 및 프로덕션 환경을 반복 가능하고 더 효율적인 방식으로 관리할 수 있다.

  5. 협업 강화
    개발자와 운영팀은 긴밀하게 협력하고, 많은 책임을 공유하고, 워크플로를 결합한다.

  6. 보안
    자동화된 규정 준수 정책, 세분화된 제어 및 구성 관리 기술을 사용함으로써 보안을 그대로 유지하면서 DevOps 모델을 도입할 수 있다.
    코드형 인프라코드형 정책을 사용하면 규모에 따라 규정 준수를 정의하고 추적할 수 있다.

 

DevOps 모델을 도입하는 방법

DevOps 문화 철학

DevOps로 전환하기 위해서는 문화와 사고방식의 변화가 필요하다.
DevOps는 개발과 운영이라는 두 팀 간의 장벽을 없애주고, 품질 보증팀과 보안팀과도 통합될 수 있다.

DevOps에서는 개발팀과 운영팀이 함께 작업하여 개발자의 생산성과 운영의 안정성을 모두 최적화한다. 

DevOps 모델을 사용하는 조직은 어떻게 구성되어 있든, 전체 개발 및 인프라 수명 주기를 스스로의 책임으로 간주하는 팀들로 구성된다.

 

DevOps 방식 설명

조직이 소프트웨어 개발과 인프라 관리 프로세스의 자동화 및 간소화를 통해 더 빠르게 혁신할 수 있도록 지원하는 몇 가지 주요 방식이 있다.

이러한 방식 대부분은 적절한 도구를 사용해 수행된다.

 

 

DevOps 방식

DevOps 모델을 위한 키워드는 총 5가지이다.

  1. CI/CD (비공식적인 표준처럼 젠킨스가 많이 사용된다.)
    먼저, 지속적 통합은 자동화된 빌드 및 테스트가 수행된 후, 개발자가 코드 변경사항을 중앙 리포지토리에 정기적으로 병합하는 소프트웨어 개발 방식이고,
    지속적 전달은 프로덕션에 릴리스하기 위한 코드 변경이 자동으로 빌드, 테스트 및 준비되는 소프트웨어 개발 방식이다.
    AWS 제품군 - AWS CodePipeline

  2. IaC (코드로 인프라를 생성 및 관리. 이를 위한 도구로는 테라폼이 있다.)
    코드형 인프라는 버전 관리 및 지속적 통합과 같은 기술을 사용하여 인프라를 프로비저닝하고 관리하는 방식이다.
    인프라가 코드를 통해 정의되므로 인프라와 서버를 표준화된 패턴을 사용하여 배포하고, 반복 가능한 방식으로 복제할 수 있다.
    AWS 제품군 - AWS CloudFormation

  3. MSA (마이크로 서비스 아키텍쳐)
    MSA는 단일 애플리케이션을 작은 서비스의 집합으로 구축하는 설계 접근 방식이다. 각 서비스는 자체 프로세스에서 실행되고, 주로 HTTP기반 API를 사용해 다른 서비스와 통신한다. 마이크로 서비스는 비즈니스 기능을 중심으로 구축되며, 각 서비스는 단일 목적으로 한정된다.
    다양한 프레임워크 또는 프로그래밍 언어를 사용하여 마이크로 서비스를 작성하고, 이를 독립적으로 단일 서비스 또는 서비스 그룹으로 배포한다.
    AWS 제품군 - AWS ECS, AWS Lambda

  4. 모니터링 및 로깅
    조직은 지표와 로그를 모니터링하여 애플리케이션 및 인프라 성능이 제품의 최종 사용자 경험에 어떤 영향을 미치는지 확인한다.
    AWS 제품군 - AWS CloudWatch

  5. 커뮤니케이션 및 협업 (Atlassian의 Jira, Trello, Confluence와 같은 도구들이 있다.)
    조직에서 커뮤니케이션과 협업이 증가하는 것도 DevOps의 주요 문화적 측면 중 하나이다.

 

 

 

 

 

참고자료

[1] https://aws.amazon.com/ko/devops/what-is-devops/

 

'DevOps' 카테고리의 다른 글

[DevOps/Infra] Docker에 MySQL 띄우기  (0) 2020.06.24
[DevOps/CI/CD] 깃랩(GitLab)의 CI/CD  (0) 2020.04.07
[DevOps/Infra] AWS CloudFormation  (0) 2020.03.18
[DevOps/CI/CD] Jenkins  (0) 2020.03.03