🚀 Languege/DevOps

CI/CD 공부 노트 #1

mini_world 2022. 7. 9. 15:55

https://www.youtube.com/watch?v=JPDKLgX5bRg&t=24s 

 

 


1. CI/CD란 무엇인가? 

  • Continuous Integration : 여러 개발자들의 코드베이스를 계속해서 통합하는것
  • Continuous Delivery : 사용자에게 제품/서비스를 지속적으로 제공, 코드베이스가 항상 배포 가능한 상태를 유지하는것
  • Continuous Deployment : 코드베이스를 사용자가 사용가능한 환경에 배포한느것을 자동화 하는것
  • 즉, 코드 빌드&테스트&배포 자동화!
  • 각 단계를 하나의 파이프라인으로 정의
    • 코드 작성
    • 빌드: webpack, 타입스크립트 컴파일, 자바스크립트 컴파일
    • 테스트: Jest, Junit
    • 배포: ...

2. 젠킨스의 기본 개념과 동작 방식

  • 젠킨스가 뭐야?
    • 귀찮은 작업(빌드,테스트,배포 등)을 다 해주는 자동화 서버
    • 개발만해! 귀찮은건 젠킨스가 다 한다!
  • 기본 개념
    • Java Runtime 환경에서 동작
    • 다양한 플러그인들을 활용해서 각종 자동화 작업을 처리할 수 있음
  • 플러그인?
    • 정말 많은 플러그인이 존재한다! 
    • 처음에 추천해주는걸 깔면 된다.
    • Credentoals Plugin: 각종 리소스의 접근정보를 저장 (AWS, Git...)
    • Pipeline Plugin(🌟중요):
      • 플러그인의 집합이자 스스로도 플러그인임,
      • 여러 플러그인을 이 파이프라인에서 용도에 맞게 사용하고 정의함으로써 이 플러그인을 통해 서비스가 배포 됨
      • Pipeline DSL(Domain Specific Language)로 작성
      • 두가지 형태의 Pipeline syntax가 존재 (Declarative, Scripted Pipeline)
  • Pipeline Syntax
    • Sections 
      • Agent Section: 작업을 수행할 Slave Node 혹은 Docker
      • Post Section: 스테이지가 끝난 이후 결과에 따라 후속 조치 정의 (ex. 성공했으면 이메일 로 알려줘)
      • Stges Section: 어떤 일을 처리할건지 일련의 스테이지를 정의함 (요리이름, 볶음밥) https://www.jenkins.io/doc/pipeline/steps/
      • Steps Section: 스테이지 안에서의 단계로 일련의 스텝을 정의함 (레시피, 기름을 두루고 전부 볶아라)
728x90