Jenkins

DevOps와 CI/CD의 이해

서영선 2023. 9. 28. 14:12

 

 

😎 Waterfall  vs  Agile  vs DevOps  

 

 

 

 

 

 

 

 


🚩 Cloud Native Architecture 

클라우드 네이티브 아키텍처 및 기술은 클라우드에서 빌드되고 클라우드 컴퓨팅 모델을 최대한 활용하는 워크로드를 디자인, 생성 및 운영하는 접근 방식이다.

 

Cloud Native Application : Cloud Native Architecture에 의해 설계되고 구현, 밑의 네가지 특징이 있음

  • CI / CD
  • DevOps
  • Microservices
  • Containers

 

 

 

✔ Cloud Native - MSA (Microservice Architecture)

Inner Architecture (서비스 개발) 과 Outer Architecture (운영) 로 구분

 

 

 

 

✔ Cloud Native - Containerization

 

 

 

✔  Cloud Native - DevOps (Development + Operations)

: 엔지니어가 프로그래밍하고, 빌드하고, 직접 시스템을 배포한다. 사용자와 끊임없이 Interaction 하면서 서비스를 개선해나가는 일련의 과정을 말한다.

  • 인프라로 코드 관리
  • 애자일 인프라 스트럭쳐
  • 애자일 시스템 관리 운동
  • 지속적인 통합 및 배포 운동 → CI, CD

PLAN / CODE : Git, SVN, JIRA
BUILD : Maven, Gradle
TEST : Selenium, JUnit
REALEASE(Integration) : Jenkins
DEPLOY : Docker, AWS
OPERATE : Ansible, Terraform, Kubernates
MONITOR : Nagios, Fluentd

 

 

 

 

 

✔ Cloud Native - CI / CD

  • CI (Continuous Integration) : Build → Test   Package 과정
  • CD (Continuous Delivery(수동) / Continuous Deployment (자동))

 

 

 

 

 


<프로젝트 CI / CD Flow>

 

git Jenkins (CI/CD 자동화 파이프라인 처리) Gradle (빌드) Ansible (서버를 Script로 관리(IaC))     Docker (빌드된 결과 배포) Kubernates (도커 배포 관리, 스케줄링 관리) 

위 처럼 구축한 인프라를 클라우드 환경( AWS )으로 옮겨 운영해볼 예정이다.