지속적 통합 - Spinnaker

02.SW 2020. 6. 19. 11:37
728x90
반응형

넷플릭스에서 개발하여 오픈 소스화한 멀티 클라우드를 지원하는 Continuous Delivery Platform

 

구글 클라우드, 아마존, 마이크로소프트등 대부분의 메이져 클라우드를 지원하며, Kubernetes 나, OpenStack 과 같은 오픈소스 기반의 클라우드 또는 컨테이너 플랫폼을 동시에 지원한다.

 

개발자들에게 애플리케이션 배포에 대한 높은 시안성을 제공하여 코드를 보다 빠르고 안전하게 배포하는 것을 지원

 

Spinnaker에서는 이러한 오케스트레이션 파이프라인을 “파이프라인”이라는 개념으로 구현

- 이미지를 찾아서 Red/Black 배포를 위해서 Production에 새로운 이미지를 배포하고, Smoke 테스트를 진행한 후에, 구 버전을 Scale down 시키고, 소스를 태깅 한다. 이때 구 버전을 Destory 하기 전에, Manual Approval (사람이 메뉴얼로 승인) 을 받고 Destory 하는 흐름으로 되어 있다.

 

[목표]

  • 반복적으로 발생하는 배포에 대해 유연하고도 설정 가능한 파이프라인 및 단계들을 제공
  • 애플리케이션이 통과하는 배포 파이프라인의 모든 환경에 대한 글로벌 뷰를 제공
  • 신뢰성 높은 API 를 바탕으로 프로그래밍적인 설정 방법과 실행을 제공
  • 쉬운 설정과 유지, 그리고 확장이 가능
  • 운영에 대한 탄력성을 제공
  • 폭넓은 파이프라인 구성이 가능

 

또한  각 단계별로 하위 테스크가 있는 경우가 있다.

 

- 예를 들어 새로운 클러스터를 배포하기 위해서는 클라우드 내에 클러스터 그룹을 만들고, 그 안에 VM들을 배포한 후에, VM 배포가 완료되면 앞에 로드 밸런서를 붙이고, Health check를 설정해야 한다. 그리고 설정이 제대로 되었는지 체크를 한다음에 다음 단계로 넘어간다.

 

이러한 개념을 Spinnaker에서는 Stage / Steps/ Tasks/ Operation 이라는 개념으로 하위 태스크를 구현

 

<그림. 파이프라인 예제>

 

개념 구조

 

Spinnaker는 리소스를 관리하기 위해서, 리소스에 대한 계층구조를 정의하고 있다.

 

 

<그림. Spinnaker의 자료 구조 >

 

 

Server Group 은, 동일한 서버(같은 VM과 애플리케이션)로 이루어진 서버군이다. Apache 웹서버 그룹이나 이미지 업로드 서버 그룹식으로 그룹을 잡을 수 도 있고, 이미지 서버 그룹 Version 1, 이미지 서버 그룹 Version 2 등으로 버전별로 잡는등 유연하게 서버군집의 구조를 정의할 수 있다.

이러한 서버 그룹은 Cluster 라는 단위로 묶일 수 있다.

 

 

위의 그림은 이미지 서비스(Image service)를 제공하는 서비스를 Cluster로 정의한것이다.

 

클라우드 네이티브와 연속 개선, 연속 배포.

Spinnaker 는 Jenkins 와 독립적으로 연동할 수 있도록 구성된 플러그형 CI 서버

 

 

Step 1: 개발자는 코드를 커밋하고 이는 Jenkins 의 빌드의 시작과 연결됩니다.

Step 2: Jenkins 는 빌드를 완료하고 애플리케이션 배포 아티팩트를 만들어 냅니다.

Step 3: Igor 는 빌드의 완료를 확인하고 해당 빌드 이벤트를 Echo 에 보냅니다.

Step 4: Echo 는 이벤트를 Orca 로 전달하고 이는 딜리버리 파이프라인 인스턴스를 시작하며 Cloud Driver 로 배포 요청을 보냅니다.

Step 5: Cloud Driver 는 아티팩트를 Jenkins 로 부터 가져와서 PCF 에 배포를 수행합니다.

Step 6: Cloud Driver 가 서버 그룹이 PCF 에서 활성화 되어 동작하는 상태를 검출하면 Orca 파이프라인이 완료 됩니다.

 

(http://bcho.tistory.com/1234

(http://freemmer.tistory.com/111

 

Netflix Spinnaker 를 사용한 Cloud Native Continuous Delivery

출처 : https://blog.pivotal.io/kr/pivotal-cloud-foundry/features/netflix-spinnaker-를-사용한-cloud-native-continuous-delivery Netflix Spinnaker 를 사용한 Cloud Native Continuous Delivery 12월 08, 2..

freemmer.tistory.com

 

728x90
Posted by Mr. Slumber
,