And Brain said,
[DevOps] 컨테이너에 관한 고찰 본문
컨테이너란 무엇인가
컨테이너란 애플리케이션과 그 종속 요소들을 단일 이미지로 패키징하여 하나의 단위로 만들어낸 것이라 볼 수 있다.
컨테이너를 왜 사용하는가
최근의 개발 트렌드가 CI/CD 가 점점 중요해지는 만큼 서버를 다루지 않는 개발자들에게도 컨테이너 기술에 대한 이해도가 점점 중요해지고 있다. 컨테이너를 사용하는 이유야 여러가지가 있겠지만, 그 여러가지 이유들을 관통하는 하나의 명제는 내가 직접 깨달은 바로 다음과 같이 말할 수 있다.
어떤 환경에서든 같은 동작을 보장한다.
최근 서버 작업을 하던 도중, 환경이 달라지자 버전이 맞지 않아, 동작하지 않는 애플리케이션이 존재했다. (ex. Fluentd는 Ubuntu 22.04에서 지원되지 않음)
물론 다른 도구를 사용한다는 방법도 존재하겠지만, 다른 도구를 사용한다하여 그것이 어떤 환경에서든 같은 동작을 보장하지 않는다는 점이다.
Fluentd는 내가 애플리케이션을 컨테이너로 올린다면 환경에 영향을 받지않고 언제나 같은 동작을 보장할 수 있다는 것을 몸소 깨닫게 해준 정말 좋은 경험이었다. 나는 컨테이너 내부의 환경을 Ubuntu 20.04로 맞추어 Fluentd를 이미지로 만들었고 어느 환경에서든 Fluentd를 사용할 수 있도록 만들었었다.
결국 컨테이너를 사용하는 간결성과 용이성 등등의 이유들은 이 명제가 깨지면 전부 무용지물이다. 아무렇게나 동작하는 애플리케이션이 배포가 편하고 관리가 편하면 무슨 의미가 있겠는가.
이 하나의 명제로 인해 파생되는 것들이 얼마나 많은지.
이 명제가 가지고 있는 의미를 직접 깨닫는 순간 컨테이너 기술, 그리고 그걸 위한 많은 도구들에 대한 이해도가 한층 더 높아질 것이다.
Thanks for watching, Have a nice day.
'IT > DevOps \ Architecture' 카테고리의 다른 글
Vagrant, 가상 환경의 유목민 (0) | 2023.10.31 |
---|---|
Istio, 광활한 Service Mesh에 띄워진 돛단배 (0) | 2023.09.14 |
Helm, 컨테이너 오케스트레이션을 위한 타륜 (0) | 2023.09.08 |
Prometheus, 어두웠던 인프라에 내려온 불 (2) | 2023.09.05 |
CatLight, 어둠 속을 응시하는 고양이의 눈 (2) | 2023.09.05 |