쉽게 말하면,
프로그램을 실행하는 데 필요한 모든 것을 포함하는 상자
➡️ 코드 + 프로그램이 동작하기 위한 라이브러리, 환경 설정 등 모든 것이 들어있음.
그럼 뭐가 좋냐고?
짱 좋지~~
✅ 프로그램을 실행하려는 환경이 어디든,
그 상자(컨테이너)만 옮겨 놓고 실행하면 동일한 환경과 조건에서 프로그램이 동작함!
그럼 도커는 뭐야?
우선,
예에에에ㅔ엥~?~?~?!~~??~?!!~??!
컨테이터 런타임이 몬데요오옹~?~?
➡️ 이 컨테이너 런타임 중에 가장 유명한 도구가 도커임
도커는 이미지를 기반으로 컨테이너를 생성하고 실행하여 애플리케이션과 필요한 환경을 패키징함!
앗 그럼 하나 더 궁금할 수 있음,
쿠버네티스는 뭔데?
➡️ 컨테이너화 된 애플리케이션을 효율적으로 실행, 관리!
이미지랑 컨테이너, 헷갈린다구요오옹~?~?
✅ Image == 레시피
✅ Container == 요리
이미지는 ‘레시피’와 같슴다
그 안에는 애플리케이션을 실행하는 데 필요한 모든 "재료" (코드, 라이브러리, 설정 파일 등)가 포함되어 있죠
즉, 애플리케이션과 그것을 실행하는 데 필요한 모든 것을 포장한 것이고,
이 이미지를 사용해서 실제로 실행되는 인스턴스(컨테이너)를 만들 수 있음
컨테이너는 '요리'임니댜,,
레시피로 요리를 만드는 것처럼
도커 이미지로 도커 컨테이너를 맹들 수 있서효!!
개발자 : 서비스를 계속 디벨롭해야지! 개발개발개발개발개발,,,
운영자 : 서비스를 "안정적으로" 운영해야지!!!
➡️ 개발과 운용의 간격을 좁히자! Devops
DevOps는 애플리케이션과 서비스를 빠른 속도로 제공할 수 있도록 조직의 역량을 향상시키는 문화 철학, 방식 및 도구의 조합입니다.
DevOps 모델에서는 개발팀과 운영팀이 단일팀으로 병합되어
엔지니어가 개발에서 테스트, 배포, 운영에 이르기까지 전체 애플리케이션 수명 주기에 걸쳐 작업하고 단일 기능에 한정되지 않은 광범위한 기술을 개발합니다.
핵심 목표
지속적 전달/배포
Continuous Delivery :
개발된 코드를 실제 프로덕션 환경에 배포하기 전까지의 과정을 자동화하는 것
최종 배포는 수동으로 실행할 수 있음!
Continuous Deployment:
모든 과정을 자동화!
테스트가 통과되면 코드 변경사항이 자동으로 프로덕션 환경에 배포됨
핵심 목표
AWS CodeCommit
Git 호환 버전 제어 시스템을 제공하는 서비스
AWS CodeDeploy
애플리케이션을 다양한 서비스 (예: EC2, Lambda, ECS 등)에 자동으로 배포
AWS CodeBuild
소스 코드를 컴파일하고, 테스트를 실행하 며, 배포 가능한 아티팩트를 생성하는 데 사 용되는 완전관리형 빌드 서비스
AWS CodePipeline
지속적인 통합(CI) 및 지속적인 전달 (CD) 파이프라인을 자동화하는 완전관 리형 서비스
ASC 2주차 세미나 자료
컨테이너 그림-atatus