이미 가상 머신이 있는데 프로덕션 환경에서 Docker 이미지를 사용하는 이유는 무엇입니까? [폐쇄]

이미 가상 머신이 있는데 프로덕션 환경에서 Docker 이미지를 사용하는 이유는 무엇입니까? [폐쇄]

저는 Linux를 서버 플랫폼으로 사용하여 DigitalOcean과 같은 클라우드 호스팅 제공업체에서 프로덕션 애플리케이션을 제공하는 가장 효율적인 방법을 연구하고 있습니다. DigitalOcean은 Droplets라는 가상 머신을 제공합니다. 상식적으로 가장 좋은 접근 방식은 제공된 VM(드롭)에 있는 그대로 애플리케이션을 배포하는 것입니다. Docker 컨테이너에는 확실히 오버헤드가 발생하므로 배포된 애플리케이션의 응답 시간이 느려집니다. 가상 머신 내에서 Docker 컨테이너를 실행하기 위해 클라우드 호스팅 공급자가 최적화한 내용은 없습니다.

Docker 컨테이너와 동일한 스크립트를 사용하여 가상 머신을 구성할 수 있다는 점을 고려하면 프로덕션에서 Docker를 사용하는 것이 합리적입니까?

답변1

Docker 생태계에는 Dockerfile의 사양에 따라 Docker 컨테이너를 처음부터 (재)구축하기 위한 매우 유용한 도구 세트가 있습니다.

애플리케이션에 오버헤드가 중요하지 않거나 병렬화를 통해 애플리케이션 디자인을 확장할 수 있는 경우에도 컨테이너가 제공하는 개발 및 유지 관리의 용이성 때문에 가상 머신 내에서 컨테이너를 사용하는 것이 여전히 타당할 수 있습니다. 더 많은 성능이 필요하면 병렬 노드를 더 추가하면 됩니다.

그러나 이것이 모든 사람에게 적합한 솔루션이 아닐 수도 있다는 점은 맞습니다. 원하는 대로 올바른 종류의 새 VM을 자동으로 구축할 수 있는 인프라가 이미 있고 이에 만족한다면 아마도 이미 동일한 편리함을 누리고 있을 것입니다. . 또는 여러 인스턴스를 병렬로 실행할 필요가 없다면 편의성 이점이 그다지 크지 않을 수 있습니다.

기본적으로 목표는 프로덕션 업데이트를 쉽게 만드는 것입니다. "VM/컨테이너를 중지하고 이전 컨테이너를 버리고 새 VM 이미지/컨테이너를 해당 위치에 배포한 다음 다시 시작하세요. 원하는 만큼 VM에 대해 이 작업을 반복하세요. 동일한 애플리케이션을 병렬로 실행하는 머신/컨테이너입니다."

Docker 컨테이너와 같은 사실상의 표준을 사용하면 필요한 경우 한 서비스 제공업체에서 다른 서비스 제공업체로 쉽게 이동할 수 있습니다. DigitalOcean 드롭릿은 설계되고 최적화된 개발 인프라를 통해 쉽게 생성되지만, DigitalOcean에서 마이그레이션하는 경우 일부 개발 자동화를 다시 구축해야 할 수도 있습니다.

반면, 단일 노드 성능이 애플리케이션의 핵심 요소인 경우 정답은 클라우드가 아니라 일종의 기존 호스팅 또는 온프레미스 서버일 수 있습니다. 이는 또한 애플리케이션이 기존 단일 서버 설계를 클라우드 세계에 성급하게 적용한 것이며 가능한 경우 확장성과 다중 노드 병렬 처리를 활용하기 위해 클라우드 생태계에 실제로 잘 맞도록 몇 가지 추가 설계 작업이 필요함을 나타낼 수도 있습니다. .

답변2

저는 최근에 컨테이너와 도커를 사용하기 시작했습니다. 어디에서나 컨테이너를 실행할 수 있고, 경량 아키텍처이며, 가상 머신보다 빠르게 시작할 수 있기 때문에 더 좋습니다. Docker 허브에서 많은 이미지를 가져와 인프라를 구축할 수 있습니다. 예를 들어 wordpres 또는 LAMP가 포함된 웹 서버가 필요한 경우 docker 허브에 공개 이미지를 설치하면 됩니다.

다음으로 쿠버네티스의 아름다운 세계에 대해 알아보세요.

이 답변이 도움이 되기를 바랍니다.

관련 정보