[ASC] Container & Docker + CI/CD

두두·2023년 10월 10일
0

AWS Student Clubs

목록 보기
2/5

🐳 Container & Docker

Container

쉽게 말하면,
프로그램을 실행하는 데 필요한 모든 것을 포함하는 상자
➡️ 코드 + 프로그램이 동작하기 위한 라이브러리, 환경 설정 등 모든 것이 들어있음.

그럼 뭐가 좋냐고?
짱 좋지~~
✅ 프로그램을 실행하려는 환경이 어디든,
그 상자(컨테이너)만 옮겨 놓고 실행하면 동일한 환경과 조건에서 프로그램이 동작함!

Docker

그럼 도커는 뭐야?

우선,

  • 컨테이너를 사용할 때, "컨테이너 런타임"이라는 도구가 필요함!

예에에에ㅔ엥~?~?~?!~~??~?!!~??!
컨테이터 런타임이 몬데요오옹~?~?

  • 컨테이너를 쉽게 내려받거나 공유하고 구동할 수 있도록 해주는 도구!

➡️ 이 컨테이너 런타임 중에 가장 유명한 도구가 도커
도커는 이미지를 기반으로 컨테이너를 생성하고 실행하여 애플리케이션과 필요한 환경을 패키징함!


앗 그럼 하나 더 궁금할 수 있음,

Kubernetes

쿠버네티스는 뭔데?

  • 컨테이너 런타임을 통해 컨테이너를 다루는 도구
    컨테이너관리하는 거임!
    (도커는 컨테이너를 생성하는데 사용하는 도구)
  • 컨테이너화 된 애플리케이션의 자동화된 배포, 확장 및 관리를 위한 오픈소 스 플랫폼!
  • 애플리케이션의 상태와 구성을 유지하고 컨테이너의 스케일링과 로드 밸런 싱을 관리
  • 서비스 디스커버리, 자동 복구, 롤링 업데이트 등의 기능을 제공하여 애플리 케이션의 운영을 효율적으로 관리

➡️ 컨테이너화 된 애플리케이션을 효율적으로 실행, 관리!


Docker Image & Docker Container

이미지랑 컨테이너, 헷갈린다구요오옹~?~?

✅ Image == 레시피

✅ Container == 요리

이미지는 ‘레시피’와 같슴다
그 안에는 애플리케이션을 실행하는 데 필요한 모든 "재료" (코드, 라이브러리, 설정 파일 등)가 포함되어 있죠
즉, 애플리케이션과 그것을 실행하는 데 필요한 모든 것을 포장한 것이고,
이 이미지를 사용해서 실제로 실행되는 인스턴스(컨테이너)를 만들 수 있음

컨테이너는 '요리'임니댜,,
레시피로 요리를 만드는 것처럼
도커 이미지로 도커 컨테이너를 맹들 수 있서효!!

♾️ Devops

개발자 : 서비스를 계속 디벨롭해야지! 개발개발개발개발개발,,,
운영자 : 서비스를 "안정적으로" 운영해야지!!!

➡️ 개발과 운용의 간격을 좁히자! Devops

What is DevOps? by AWS

DevOps는 애플리케이션과 서비스를 빠른 속도로 제공할 수 있도록 조직의 역량을 향상시키는 문화 철학, 방식 및 도구의 조합입니다.

DevOps 모델에서는 개발팀과 운영팀이 단일팀으로 병합되어
엔지니어가 개발에서 테스트, 배포, 운영에 이르기까지 전체 애플리케이션 수명 주기에 걸쳐 작업하고 단일 기능에 한정되지 않은 광범위한 기술을 개발합니다.


⚙️ CI/CD

CI (Continous Integration)

  • 지속적 통합
  • 개발자들이 자신의 코드 변경 사항을 중앙 저장소에 빈번하게 병합하는 것!

핵심 목표

  • 개발초기에 오류와 충돌을 미리 발견해 실행이 가능한 상태로 코드를 유지
    (애초에 코드를 빈번하게 병합하려면 이전 상태가 실행 가능해야 함)

CD (Continous Delivery/Deployment)

  • 지속적 전달/배포

  • Continuous Delivery :
    개발된 코드를 실제 프로덕션 환경에 배포하기 전까지의 과정을 자동화하는 것
    최종 배포는 수동으로 실행할 수 있음!

  • Continuous Deployment:
    모든 과정을 자동화!
    테스트가 통과되면 코드 변경사항이 자동으로 프로덕션 환경에 배포됨

핵심 목표

  • 코드 변경사항을 신속하게, 안정적으로, 그리고 지속적으로 고객에게 전달

AWS CodeSeries

AWS CodeCommit
Git 호환 버전 제어 시스템을 제공하는 서비스

  • 프라이빗 Git 저장소를 제공하며, 확장 성과 높은 가용성을 제공
  • AWS의 보안 기능을 사용하여 코드 및 자산을 보호

AWS CodeDeploy
애플리케이션을 다양한 서비스 (예: EC2, Lambda, ECS 등)에 자동으로 배포

  • 다양한 배포 전략을 지원하며,
    훅을 사용해 배포 라이프사이클 중에 사용자 정의 스크립트나 작업을 실행

AWS CodeBuild
소스 코드를 컴파일하고, 테스트를 실행하 며, 배포 가능한 아티팩트를 생성하는 데 사 용되는 완전관리형 빌드 서비스

  • 서버 또는 빌드 인프라 관리 없이 코드 빌드 및 테스트를 수행
  • 컨테이너 기반 빌드를 지원하므로 사용자 정의 빌드 환경을 생성가능

AWS CodePipeline
지속적인 통합(CI) 및 지속적인 전달 (CD) 파이프라인을 자동화하는 완전관 리형 서비스

  • 여러 AWS 도구와 통합되어 워크플로를 자동화 가능
  • CodePipeline은 코드 변경을 감지하
    고 이를 빌드, 테스트, 배포하는 전체 프 로세스를 자동화



Reference

ASC 2주차 세미나 자료
컨테이너 그림-atatus

profile
멋쟁이가 될테야

0개의 댓글