목차
컨테이너가 IT 세상을 점령한 이유
깃 허브에 있는 소스코드를 다운받아서 소스코드에 사용되는 환경에 맞추기 위해서 버전에 맞는 도구를 설치해야한다.
만약 이것이 큰 프로젝트라면 새로운 개발팀과 운영팀이 인계 받을 때 소스코드를 빌드하고 실행하기위해서 여러가지 도구를 버전에 맞게 설치해야 한다.
하지만, 컨테이너를 이용하면 소스코드를 내려받고 나서 명령 한 줄로 배포 및 실행이 가능하다.
레거시 애플리케이션 현대화 하기
컨테이너를 활용하면 거의 모든 애플리케이션을 클라우드에서 실행할 수 있다.
그러나, 기존 애플리케이션의 구조를 낡은 모놀리식(monolithic) 설계로 방치한다면 도커 혹은 클라우드 플랫폼의 진가가 발휘되기 어렵다.
이유는 기민성에 제약이 따르기 때문이다. 모놀리식에서 새 기능을 추가하여 출시하려면 기존의 기능이 망가지지 않았늦니 확인하는 회구 테스트에만 적어도 2주가 걸릴 것이다.
도커로 이주하는 과정을 애플리케이션의 낡은 설계를 탈바꿈하는 첫걸음이다. 애플리케이션을 전면적으로 재구현하지 않고도 새로운 패턴을 도입할 수 있다.
이 그림은 통짜 애플리케이션을 분할해 기능별로 별도의 컨테이너에 배치하여 여러 개의 컨테이너로 분할된 분산 애플리케이션을 만드는 과정을 나타낸것이다.
이렇게 설계를 하면 변경내용에 해당되는 컨테이너만이용하여 빠르게 테스트할 수 있다.
클라우드 환경에 적합한 새로운 애플리케이션 개발하기
도커는 기존 애플리케이션을 클라우드로 이주하는데 유용하다.
통짜 애플리케이션이라면 도커를 통해 컴포넌트를 분할하고 새로운 설계를 적용해 클라우드나 데이터센터 어디든 원하는 곳에서 애플리케이션을 운영할 수 있다.
클라우드 환경을 고려한 완전히 새로운 애플리케이션 개발이라면 도커를 통해 더 빠른 개발이 가능하다.
아래 그림은 전형적인 마이크로 서비스 아키텍처의 애플리 케이션을 나타낸 것이다.
- 각 컴포넌트는 자신만의 데이터를 가지며 API를 통해서 이 데이터를 외부에 제공한다.
- 프런트 앤드는 이 API를 이용하는 웹 애플리케이션 형태
- 도커는 여러가지 프로그래밍 언어로 구현하거나 서드 파티 소프웨어를 도입하여 애플리케이션을 구현하는데 유용하다.
기술 혁신: 서버리스와 그 너머
현대 IT 기술을 주도하는 요소 중 하는 일관성이다.
특히, 개발 팀은 모든 프로젝트에서 같은 도구, 같은 프로세스, 동일한 런타임을 사용하기를 원한다.
도커를 이용하면 어떠한 형태의 애플리케이션이라도 모든 제품의 빌드, 배포, 운영을 같은 도구와 같은 방법으로 수행할 수 있다.
즉, 아키텍쳐나 기술 기반과 무관하게 이들 애플리케이션의 빌드, 배포, 관리를 일원화 할수 있다.
*서버리스 기술은 곧 컨테이너 기술이다. 서버리스 기술의 목표는 모든 일이 플랫폼이 처리하도록 하는 것이다.
데브옵스 도입하기
데브옵스(DevOps)는 개발과 운영을 합친 이름으로, 애플리케이션의 전체 생애주기를 담당하는 전담 팀을 둔다.
운영자와 개발자는 다른 도구를 다루는데 이 사람들끼리 하나의 팀을 이룰수 있도록 도와주는 것이 도커이다.
Dockerfile 과 도커 컴포드 스크립트를 사용하면 같은 기술과 도구로 팀을 통일할 수 있다.
CALMS 라는 데브옵스를 위한 프레임워크가 있다.
- cluture (문화)
- automation (자동)
- lean (린)
- metric(측정)
- sharing(공유)
의 머리 글자를 딴 것이다. 도커는 이들 개념 모두와 밀접한 관련이 있다.
자동화는 컨테이너 환경의 핵심,
분산 애플리케이션은 린 원칙에 따라 만들어진다.
배포 프로세스와 운영 로그로부터 얻은 측정치를 쉽게 사용할 수 있다.
도커 허브는 이미 있는 것을 공유의 장이다.
'책 > 도커 교과서' 카테고리의 다른 글
[ 책 ] 도커교과서 3장 도커 이미지 만들기 (0) | 2024.12.08 |
---|