WiseN

비지니스 변화를 클라우드 환경에서 신속하고 안정적으로 적용하기

Mar 20, 2020   |   AWS

작성자_Wise N

페이스북 공유하기 트위터 공유하기
Blog thumbnail


Intro


DevOps는 Development와 Operations의 합성어로 개발 및 운영을 의미하며, 오늘날 DevOps는 가장 많이 논의 되는 소프트웨어 개발 접근법 중 하나로 개발, 품질 보증 및 운영 (배포 및 통합)을 하나의 연속 된 프로세스 집합으로 병합하는 것을 목표로 합니다. 이 방법론은 민첩하고 지속적인 전달 방식을 자연스럽게 확장 한 것으로 DevOps 모델을 사용하는 조직은 어떻게 구성되어 있든 전체 개발 및 인프라 수명 주기를 스스로의 책임으로 간주하는 팀들로 구성됩니다. 클라우드 인프라는 DevOps 채택을 위한 필수 요소는 아니지만 응용 프로그램에 유연성, 도구 세트 및 확장성을 제공하기 때문에 보다 DevOps를 실질적으로 이루어낼 수 있는 기반입니다. 뿐만 아니라 클라우드에 서버리스 아키텍처가 도입됨에 따라 DevOps 팀의 기본적인 서버 관리 작업을 제거함으로써 작업량을 크게 줄일 수도 있습니다. 하드웨어 관리 및 on-premise 솔루션 제공에 중점을 둔 전통적인 매니지드 서비스 대비 차세대 매니지드 서비스는 클라우드 채택에 대한 지침을 제공하기 위해 발전해 왔습니다. 차세대 매니지드 서비스는 일반적으로 고객의 원하는 비즈니스 성과를 파악하고 기존 인프라와 운영을 평가하며 DevOps 도입 및 새로운 클라우드 기능을 채택하고 최적화 기회를 식별하는 등 클라우드 성숙도를 높인 지속적인 지원 서비스를 제공합니다.
 



 

 

Devops의 이점


  • 속도와 품질: 지속적인 제공, 빠른 피드백 유도, 개발자가 시스템의 버그를 조기에 수정할 수 있도록하여 제품 출시를 가속화합니다. Practice를 통해 제품의 품질에 중점을두고 여러 프로세스를 자동화 할 수 있습니다.
  • 비즈니스: 고객의 요청을보다 신속하게 변경하고 새 기능을 추가하고 기존 기능을 업데이트 할 수 있습니다. 결과적으로 시장 진입 시간과 가치 전달 속도가 증가합니다.
  • 문화: DevOps 원칙은 팀 구성원 간 원활한 의사 소통을 유도하고 생산성과 민첩성을 향상시킵니다.

 

 

Devops의 주요 요소


주요 요소를 문화(Culture), 자동화(Automation), 간소화 원칙(Lean principles), 측정(Measurement), 공유(Share)를 말하며, 줄여서 CALMS라고 부릅니다.

  • 문화(Culture)는 Dev와 Ops가 하나가 되도록 조직에서 생각하고 행동하는 방식입니다.
  • 자동화(Automation)는 개발, 테스트 및 지속적 배포의 핵심요소로 반복적인 수동 업무를 없애고, 반복 가능한 프로세스와 안정적인 시스템을 만들 수 있습니다.
  • 간소화 원칙(Lean principles)은 가치와 고객에 중점을 두고, 가치가 없는 활동에 소요되는 시간을 줄이도록 끊임없이 문제를 해결하고 개선하는 활동입니다.
  • 측정(Measurement)은 항상 모든 것을 측정하고, 개선으로 이어지고 있는지 측정된 결과를 가시화합니다.
  • 공유(Share)는 공개 공유, 협동을 통해 신뢰와 상호 존중을 형성합니다.​

 

Devops의 Practice


DevOps Practice는 작업마다 다릅니다. 애플리케이션 개발의 경우, DevOps는 코드 빌드, 코드 범위, 단위 테스트, 패키지화 및 개발에 중점을 두고, 인프라의 경우 DevOps는 프로비저닝, 구성, 조직화 및 개발에 중점을 둡니다. 하지만 각 영역에서 버전관리, 배포, 롤백, 롤포워드 및 테스트의 기본 원리는 모두 동일합니다.

 

::인프라를 나타내는 코드 (Infrastructure as a Code)

지속적인 제공 및 개발자 작업을 가능하게하는 인프라 관리 방식입니다. 클라우드를 통해 프로그래밍, 설명 및 선언적인 방식으로 자동 설정하여 인프라의 구축, 배포 및 유지 관리할 수있어 엄격성, 명확성 및 안정성을 제공 받을 수 있습니다.

::지속적인 개발

기본 목표는 프로덕션 가능한 애플리케이션 코드의 자동화된 개발 실현입니다. CI/CD 도구를 사용하면 소프트웨어를 반복적 및 안정적으로 빠르게 배포할수 있습니다. 배포에 실패할 경우 이전 버전으로 자동 롤백할 수 있습니다.

::자동화

자동화는 인프라와 인프라에서 실행되는 애플리케이션의 설정, 구성, 배포 및 지원에 중점을 둡니다. 자동화를 사용하여 표준화되고 반복 가능한 방식으로 환경을 신속하게 설정할 수 있습니다. 성공적인 DevOps 전략의 핵심은 수동 프로세스를 제거하는 것입니다. 지금까지 서버 구성 및 애플리케이션 배포는 주로 수동 프로세스로 이루어져 왔습니다. 환경이 표준화되지 않으면 문제 발생 시 환경을 재현하기가 어렵습니다. 현대의 운영 환경은 일반적으로 전체 자동화에 의존하여 수동 개입을 제거하거나 프로덕션 환경에 액세스합니다. 여기에는 모든 소프트웨어 릴리스, 머신 구성, 운영 체제 패치, 문제 해결 또는 버그 수정이 포함됩니다. 자동화 사례의 다양한 수준을 함께 사용하면 보다 높은 수준의 완전 자동화 프로세스를 제공할 수 있습니다. 자동화는 많은 이점을 제공합니다.
  • 신속한 변경
  • 생산성 향상
  • 반복 가능한 구성
  • 재현 가능한 환경
  • 탄력성 활용
  • 자동 조정 활용
  • 테스트 자동화

::모니터링

커뮤니케이션과 협업은 DevOps 전략의 기본 요소입니다. 이를 지원하기 위해서는 피드백이 중요합니다. 클라우드 서비스 제공 업체에서는 이들 서비스를 통해 개발자와 운영 팀이 서로 긴밀하고 분명하게 협력할 수 있습니다.

::보안

DevOps 지원 환경에서도 여전히 보안을 최우선으로 생각해야 합니다. 인프라와 회사 자산을 보호해야 하며 문제 발생시 반복적이고 효과적으로 문제를 해결해야 합니다.​

 

 

Outro


기술 업체에서는 DevOps 원칙과 사례를 수용하여 클라우드로 원활하고 효율적이며 효과적인 방법으로 전환할 수 있습니다. 이러한 원칙은 클라우드 플랫폼에 포함되어 있습니다. 코드형 인프라 및 구성 관리와 같은 인프라 자동화 방식은 잦은 변경에 대해 컴퓨팅 리소스를 탄력적이고 대응적으로 유지하는 데 도움이 됩니다. 또한, 모니터링과 로깅의 사용도 엔지니어가 애플리케이션 및 인프라의 성능을 추적하여 문제에 신속하게 대응할 수 있게 하는 데 도움이 됩니다. 비즈니스 니즈를 부합시키는 것이 최고의 BP이며, 오류가 많은 반복되는 수동 작업을 중심으로 DevOps 자동화를 추진할 필요가 있습니다.