Among Us - Yellow Crewmate 'DevOps/CI CD' 카테고리의 글 목록

DevOps/CI CD 7

[ArgoCD] ArgoCD에서 Blue/Green 배포하기

이전에 무중단 배포방식중 하나인 Blue/Green에 대해서 이야기 한적이 있다. 기존의 Kubernetes에서도 Deployment 2개를 생성하고 Service의 Selector를 변경해주는 방법으로 Blue/Green 방식의 배포를 할 수 있다. 하지만 이러한 방법은 Deployment 2개를 운영해야 하기 때문에 번거롭기도 하고 ArgoCD를 사용하면 더 편리하게 Blue/Green 방식으로 배포할 수 있다. 기존 Kubernetes에서는 1개의 Pod가 각각 Rolling Update 방식으로 배포된다. 1. Blue (2) - Green (0) 2. Blue (1) - Green (1)

DevOps/CI CD 2021.07.05

[ArgoCD] Kubernetes Cluster에 ArgoCD 배포하기

What is GitOps ?? GitOps라는 용어는 Weaveworks에서 처음 나오게 되었다. DevOps와 마찬가지로 특정 도구가 아닌 방법론이며 이름에서 알 수 있듯이 깃(Git)으로 관리(Ops)를 하겠다 라는 개념이다. DevOps를 적용하는 실천 방법 중 하나이며, Kubernetes를 대상으로 지속적 배포 (Continous Deployment)에 초점을 두고 있다. 때문에 GitOps는 빌드와 테스트를 하는 지속적 통합(Continuos Integration) 단계가 끝나고 난 후 배포하는 과정을 다루게 된다. 사람들은 Kubernetes 리소스를 코드로 변경 및 생성하거나 대시보드로 시각화 하기를 원했다. 이러한 GitOps 툴에는 Argo CD, Jenkins X, Spinnaker..

DevOps/CI CD 2021.07.02

[무중단 배포] Rolling, Blue/Green, Canary 배포

무중단 배포 DevOps 관련 공부를 하다보면 무중단 배포라는 단어가 눈에 많이 띄이는것 같다. 그래서 이번에는 무중단 배포에 대해서 한번 알아보고자 한다. 무중단 배포란? 무중단 배포는 말그대로 중단하지 않고 배포를 진행하는 것을 의미한다. 보통은 애플리케이션을 업데이트 한 뒤, 배포를 하게 될 경우 애플리케이션을 중단시키고 배포를 진행하게 된다. 이럴경우 사용자는 배포가 완료되는 시간 동안 애플리케이션 사용에 제한이 생긴다. 이렇게 서비스가 중단되는 시간을 다운타임(Downtime)이라고 하며, 이러한 다운타임을 해결하고자 생긴것이 무중단 배포이다. 무중단 배포를 하기 위해서는 두대 이상의 서버가 필수적이다. 실제로 서비스 중인 서버 1대와 새롭게 배포한 서버 1대를 사용하여 무중단 배포할 수 있다...

DevOps/CI CD 2021.06.16

[Jenkins] Jenkins에 Github를 연동하고 빌드 자동화하기

Jenkins를 이용하여 Github repository에 push 했을 때, 자동으로 빌드가 되도록 만들어보자. Jenkins와 Github를 연동하는 방법은 ID/PW를 인증하는 방식과 ssh 연동 방식이 있다. 하지만, ID/PW 인증으로 연동하는 방법은 보안상 추천하지 않기 때문에 이번 글에서는 ssh 연동하는 방식에 대해서 알아보도록 한다. 우선 이 글의 과정을 진행하기 전에, Jenkins와 Git이 미리 설치되어 있어야한다. 1. Jenkins 설치 https://potato-yong.tistory.com/117?category=853824 2. git 설치 $ yum install -y git 1. ssh 키 생성 이 글에서는 Jenkins와 Github를 ssh로 연동할 것이기 때문에, ..

DevOps/CI CD 2021.05.23

[Code Pipeline] EKS와 Code Pipeline를 사용하여 CI/CD 구축하기

이번에 해볼 실습은 지난 글에서 구축했던 EKS 클러스터를 사용하여 AWS Code Pipeline로 CI/CD를 구축하고 이벤트가 발생할 때마다 Slack으로 사용자에게 알람 메시지가 수신되도록 해보는것이다. 아직 EKS 클러스터가 구성되어 있지 않다면 https://potato-yong.tistory.com/126?category=853010 글로 가서 생성해주고 오도록 하자 위의 아키텍쳐를 순서대로 나열해보면 1. User가 Git Repository에 Push 2. Git Repository에 있는 소스 코드 빌드 3. Docker 이미지를 ECR에 업로드 4. ECR에 있는 Docker 이미지를 EKS 클러스터에 배포 5. Pipeline 이벤트 (Success/Fail) 발생 시, Cloud ..

DevOps/CI CD 2021.05.07

[Jenkins] AWS EC2에 Jenkins를 설치해보자

Jenkins란 무엇일까? 젠킨스는 소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 CI (Continuous Integration) 툴이다. 개발자가 개발을 하면서 소스 코드를 서버에 올릴 수 있는 상태로 만드는 것을 '빌드' 라고 하고, 서버에 올린 뒤 사용자가 사용할 수 있게 하는 것은 '배포'라고 한다. 개발자는 코드를 계속 업데이트 해나가면서 여러번의 빌드를 거쳐나가게 되는데, 시간이 지날수록 굉장히 번거롭게 되고 빌드하는 시간 또한 오래걸린다. 이러한 이유로 빌드를 자동화 시키는 작업을 할 필요가 있게 된다. 젠킨스는 이러한 빌드를 자동화 시켜주는 도구이다. Jenkins 설치하기 AWS EC2에서 Amazon linux2를 띄우고 젠킨스를 설치해보자 1. sudo yum -y updat..

DevOps/CI CD 2021.04.13

[CI/CD] Git과 연동하여 AWS Pipeline 생성하기

이번에 해볼 실습은 AWS에서 제공하고 있는 실습이다. aws.amazon.com/ko/getting-started/hands-on/create-continuous-delivery-pipeline/ AWS에서 지속적 전달 파이프라인을 생성 아래의 다이어그램은 이 자습서에서 사용되는 서비스와 그 연결 방식을 시각적으로 보여줍니다. 이 애플리케이션은 아래 그림과 같이 GitHub, AWS Elastic Beanstalk, AWS CodeBuild 및 AWS CodePipeline을 사용 aws.amazon.com 이번 실습의 목적은 Git 리포지토리에 저장되있는 소스 코드가 업데이트 되면 소스 코드를 빌드 및 검토한 후, 애플리케이션을 자동으로 배포하는 Pipeline을 생성하는 것이다. 이번 실습을 위해 ..

DevOps/CI CD 2021.02.22