Linux 컨테이너 작업을 자동화하는 오픈소스 플랫폼.
➡️ 컨테이너 작업이란?
Linux 컨테이너란 실행에 필요한 모든 파일을 포함하여 전체실행(runtime) 환경에서 애플리케이션을 패키지화 하고 분리하는 기술이다. 이를 통해 전체 기능을 유지하면서 컨테이너화된 애플리케이션을 환경(개발, 테스트, 생산 등)간에 쉽게 이동할 수 있다.
➡️ Linux 컨테이너를 사용해야 하는 이유
담당 영역을 분리하여 개발 팀과 운영 팀간의 충돌을 줄일 수 있다.
개발자는 애플리케이션 집중! / 운영 팀은 인프라에 주력!
➡️ 컨테이너 활용 이점
컨테이너는 클라우드 네이티브 개발 방식에 필요한 기반 기술을 제공하므로 개발자는 DevOps, CI/CD를 시작할 수 있으며 Serverless로 전환할 수 있다.
➡️ DevOps란?
DevOps는 하나의 아이디어(새로운 소프트웨어 기능, 개선 요청 또는 버그 수정 등)가 사용자에게 가치를 제공할 수 있도록 운영 환경에서 개발로부터 배포로 진행되는 프로세스의 속도를 높이는 접근방식을 의미한다.
이러한 접근방식을 적용하려면 개발 팀과 운영 팀이 자주 커뮤니케이션하고 팀원들과 공감하면서 업무에 접근해야 한다. 확장성과 유연한 프로비저닝도 필요하다.
DevOps를 확립하면 셀프 서비스와 자동화를 통해 다양한 이점과 경쟁력을 얻을 수 있다. 대개 표준 개발 환경에서 코딩 작업을 하는 개발자는 IT운영 담당자와 긴밀하게 협력하여 소프트웨어 빌드, 테스트, 출시 속도를 가속화 할 수 있다.
이는 곧 코드 변경도 더 빈번해지고 인프라도 보다 역동적으로 사용해야 한다는 의미이다!
➡️ DevOps와 Agile
DevOps는 Agile의 연장선에 있다.
Agile의 목표가 Lean Manufacturing에 기반하여 빠른 소비자 피드백을 가질 수 있게 해준다면, DevOps는 분리되어있던 개발자와 운영자의 역할을 합쳐버리니 더욱 민첩한 개발 및 배포 사이클을 가질 수 있다.
➡️ 컨테이너 기술에는 CRI-O, 쿠버네티스, Docker 등이 있다.
여러 서버에서 도커를 사용하게 되면 idle상태인 서버를 선택하여 해당 서버에 컨테이너를 생성하여 운용해야 한다. 그것을 각 서버에 접근하여 idle 자원을 확인하는것인 비효율적이기 때문에 쿠버네티스와 같은 오케스트레이션 툴이 등장하였다.
➡️ 도커란?
도커(Docker)는 컨테이너에 기반해 애플리케이션을 구축하는 소프트웨어 플랫폼이다
➡️ 오케스트레이션 툴이란?
컨테이너 오케스트레이션은 엔터프라이즈 전반에서 이러한 배포를 관리할 수 있는 방법이다.
다중 도커서버를 하나의 pool로 구성
쿠버네틱스 ?