-
혼자서 퍼블릭 클라우드 전체를 배포하는 방법Semina/CICD 2021. 12. 19. 16:16
CI/CD 인데, 애플리케이션 배포가 아닌, on demand Cloud 환경등을 Tekton 을 이용하여 배포하는 방법에 대해 소개하고 있습니다.
https://if.kakao.com/session/81
pdf : https://t1.kakaocdn.net/service_if_kakao_prod/file/file-1636526524996
쿠버네티스와 오픈스택
오픈스택: 클라우드 인프라스트럭처에 서비스를 제공하는 소프트웨어 집합
- SDN, virtual machine, object storage, block storage... 20여 개 서비스를 배포해야 함
openstack 관리의 어려움을 덜기 위해 쿠버네티스 등장
openstack-helm : k8s 위에 openstack 을 배포
- 자세한 건 이전세션 if kakao Kubernetes-native Datacenter: 데이터센터안의 모든것들을 쿠버네티스로 관리하는 방법 참고하라 함
Cloud native CI/Cd
- Containers, service meshes, microservices, immutable infrastructure, and declarative APIs
cloud native 여부 : Github actions 는 runner 라고 불리는 compute reosource 관리 필요
배포방식
ArgoCD : 선언적 배포에 유리 ; learning curve 가 짧고 쉽게다.
Tekton : 복잡한 단계를 절차적으로 배포하기에 유리
Github Actions : argoCD - Tekton 의 중간 정도
권한관리 : Tekton 은 초기단계라 권한 관리가 부족함
장단점
Argo CD : Automates the deployment of the desired application states
- 애플리케이션의 상태를 선언적으로 설정하여, 자동으로 배포하는데 적합
Tekton : Create CI/CD systems to build, test, and deploy workflow
- build -> test -> deploy workflow 구성에 유리
Github Actions : Create workflows with GitHub events
- 다양한 github event 기반으로 개발하는데 유리
-> 이 셋 중 Tekton 을 선택
github pr 보다는 prow 를 이용하여 chatOps 기반으로 코드리뷰를 하신다고 함
CI/CD Tekton 배포 pipeline
- task 는 병렬 수행이 가능하므로 각각의 오픈 스택 배포가 병렬로 일어남
infra 배포라 그런지 github event 보다는 time scheduler 에 의해 pipelineRune 이 동작하는 예시
Kakao 에서 on demand cloud 환경을 지원하는 architecture 인 bigmac
openstack 과 k8s 를 2 단으로 쌓았다 -> 빅맥버거
pipeline 이용 배포 예시 - 여러 조직 협업 케이스
CI/CD on K8s
stag/prod 배포는 tagging event 기반으로 일어나는 듯함
- 배포 요청시 relase note 도 함께 요청하면, 표시 됨
'Semina > CICD' 카테고리의 다른 글
If Kakao 장애 재발 방지 에서 얻는 교훈 - CI/CD, Image Registry (0) 2022.12.14 PIPE: 더 나은 개발자 경험을 위한 CI/CD + Runtime (0) 2021.12.18