본문 바로가기
서버인프라/IT 뉴스

도커 성능 향상 Docker Desktop

by techwold ted 2023. 10. 3.

원문

도커데스크톱 성능향상에 관련된 내용이 올라왔습니다.
다들 조금의 불만을 가지고 있었던 내용인데 이렇게 버전이 업그레이드 되면서 대폭적으로 성능 향상이 되었다 하네요
다들 버전 조정해서 사용해 보심을 권장해 봅니다.

https://www.docker.com/blog/dockers-developer-innovation-unveiling-performance-milestones/

 

Docker’s Journey Toward Enabling Lightning-Fast Developer Innovation: Unveiling Performance Milestones | Docker

Learn about Docker's focus on performance and walk through the milestones of the past 12 months, including 85x improvement in upload speed, 71% reduction in build time, and a 5,800% increase in streaming speed.

www.docker.com

 

 최근, Docker는 컨테이너 조정을 전문으로 하는 Docker Swarm에서 SLDC(소프트웨어 개발 라이프 사이클)의 "내부 루프"로 초점을 옮겼습니다. 오늘날, 우리는 컨테이너 개발의 초기 계획, 코딩 및 구축 단계에서, 개발 팀들이 신속하고 일관성 있게 혁신적인 컨테이너형 애플리케이션을 구축할 수 있도록 컨테이너 개발 성공을 위한 발판을 마련하고 있습니다.

Docker에서는 "내부 루프"를 최적화하여 개발에서 배포, 운영 중인 소프트웨어 관리에 이르기까지 완벽한 과정을 보장하는 데 전념하고 있습니다. 현지에서 개발 중이든 클라우드에서 개발 중이든 이 모든 것을 최고 수준의 성능과 보안으로 제공하기 위한 당사의 노력은 변함이 없습니다.

이 게시물에서는 성능에 중점을 두고 지난 한 해 동안의 중요한 사건들을 소개하겠습니다. 강력하고 성능이 뛰어나며 민첩하며 안전한 컨테이너 애플리케이션 개발 플랫폼을 제공하는 데 있어 당사가 구축하고 있는 모멘텀에 대해 매우 기쁘게 생각합니다.

이러한 성과는 단순한 수치를 넘어 당사가 귀사에 제공하는 긍정적인 효과와 투자 수익을 보여줍니다. 당사의 노력은 계속되고 있지만 이러한 개선점과 혁신의 원동력인 귀사에 어떤 의미가 있는지 살펴보도록 하겠습니다.

 

시작 성능 최대 75% 향상

2022년에는 macOS 사용자가 도커를 경험하는 방식을 혁신하는 여정을 시작했습니다. 당시에는 실험적 가상화가 일반적이었고, 그 결과 인내심을 테스트하는 시작 시간이 30초를 초과하는 경우가 많았습니다. 이를 개선해야 한다는 것을 알고 있었기 때문에 Mac 가상화 프레임워크 지원 추가 및 도커 데스크톱 리눅스 VM 부팅 시퀀스 최적화 등 시작 시간을 크게 줄이기 위해 몇 가지 조정을 했습니다.

이제 Docker Desktop 4.23을 부팅하면 불과 3.481초 만에 번개처럼 빠르게 시작할 수 있습니다. 그렇습니다. 시작 시간이 향상되었을 뿐만 아니라 75%나 단축됩니다(그림 1).

 

 

Mac 사용자만 축하하는 것은 아닙니다. Windows Hyper-V 및 Windows WSL2 사용자는 응원할 이유가 있습니다. 시작 시간이 20.257초(4.12초)에서 10.799초(4.23초)로 감소했습니다. 47%의 성능 향상은 보다 부드럽고 효율적인 개발 경험을 제공합니다.

그리고 스타트업 성과 여정이 계속되고 있으며, 지원되는 모든 개발 환경에서 3초 미만의 스타트업 시간을 달성하고자 합니다. 이러한 추가적인 발전이 곧 이루어질 것으로 기대하며, 출시될 때마다 스타트업 성과가 지속적으로 향상될 것으로 기대합니다.

 

네트워크 성능 85배 향상

정말 대폭적인 성능향상입니다.
조만간 버전 테스트가 필요할 거라 생각됩니다.

컨테이너 이미지를 다운로드하고 업로드하는 것은 시간이 많이 걸릴 수 있습니다. Mac의 경우, 도커 데스크톱 4.23을 사용하여 프로세스를 가속화하여 30GB/s(바이트/초) 이상의 속도를 제공하여 신속한 개발 워크플로우를 보장했습니다. 이를 위해 도커 데스크톱 네트워크 스택을 훨씬 효율적인 최신 버전으로 완전히 교체했습니다. 이러한 변경으로 이전 버전(4.12)에 비해 업로드 속도가 85배 향상되었습니다(그림 2). 말이 끄는 마차에서 총알 기차로 업그레이드되었다고 생각하십시오. 이제 데이터를 지연 없이 원활하게 이동할 수 있습니다.

 

그림 2: 호스트-투-컨테이너 사용 사례는 컨테이너 내부에서 호스팅되는 서비스가 VM 외부에서 액세스되는 경우(예를 들어, 웹 개발자가 브라우저를 사용하여 작업 중인 웹사이트에 액세스하는 경우)에 발생합니다. 컨테이너-투-호스트 사용 사례는 컨테이너가 호스트로부터 제공되는 서비스에 액세스하는 경우(예를 들어, 인터넷 액세스를 사용하여 패키지를 빌드의 일부로 설치하는 경우)에 발생합니다.

Windows(윈도우)에서는 이미지 다운로드 속도가 그 어느 때보다 빠릅니다. Docker Desktop 4.23은 1.1Gbits/s의 속도를 달성하여 개발자 효율성을 높였습니다. 이는 이전 버전(4.12)에 비해 650% 향상된 성과입니다.

macOS의 Docker Desktop 4.23은 UDP 스트리밍을 향상시켜 4.75GB/s(바이트/초)로 치솟아 이전 버전(4.12)에 비해 스트리밍 속도가 5,800% 향상되었습니다.

이러한 수치는 디지털 환경을 보다 빠르고 원활하게 사용할 수 있도록 도와줌으로써 디지털 환경을 아이디어의 속도에 맞춰 유지할 수 있습니다.

 

호스트 파일 공유 성능 2배 이상 최적화

파일 공유가 항상 주목받는 것은 아니겠지만, 현대 개발의 알려지지 않은 영웅으로서 여러분의 개발 경험을 깨뜨릴 수 있고, 여기에 개선까지 이뤄냈습니다.

얼마 전까지만 해도 신뢰할 수 있는 Mac 호스트에서 Docker Desktop 4.11과 함께 작업할 때 컨테이너(Redis 소스 코드가 로컬 호스트에 있는) 내에서 Redis를 구축하는 것은 인내심 테스트의 어려움이었습니다. 주로 호스트 파일에 대한 컨테이너의 액세스로 인해 답답한 지연이 발생했기 때문에 7분 25초의 귀중한 시간이 소요되었습니다.
오늘 도커 데스크톱 4.23을 통해 게임에 혁신을 가져왔습니다. 가상화의 획기적인 개선 덕분에 동일한 Redis 빌드에 2분 6초밖에 걸리지 않습니다. 이는 빌드 시간이 71%나 단축된 것입니다.macOS 12.5+ 이후로 컨테이너와 파일을 공유할 때 상당한 성능 향상을 제공하는 것이 도커 데스크톱의 기본 기능입니다(그림 3). 이에 대한 자세한 내용은 "도커 데스크톱 4.23: 도커 초기화 업데이트, 새 구성 무결성 검사, 빠른 검색 향상, 성능 향상 등"에서 확인할 수 있습니다.

 

개발자들에게 정말 좋은 소식이라 할 수 있습니다.

그림 3: 가상화가 활성화된 4.22와 비교하여 도커 데스크톱 4.11.

하지만 잠시만요. 파일 공유 분야에서 더 많은 진전이 곧 있을 것으로 예상합니다. 당사는 절약된 1분의 1초가 혁신을 위한 시간이라는 것을 알고 있기 때문에 원활한 협업과 빠른 개발 주기를 위해 계속 노력하고 있습니다.

 

효율성 향상 및 유휴 메모리 사용량 10배 감소

정말 바라던 사항입니다.
메모리 사용율에 대한 감소

효율성과 약간의 녹색 혁신에 대해 이야기해 보겠습니다.

Docker Desktop 4.22에서는 개발 환경을 대기 상태로 유지하고 필요할 때 실행할 준비를 하고 필요하지 않을 때 리소스를 절약하는 리소스 세이버 모드를 도입했습니다. 리소스 세이버 모드는 Mac, Windows 및 Linux에서 작동하며, 도커 데스크톱이 유휴 상태일 때(구성 가능한 기간 동안 컨테이너를 실행하지 않음) 도커 데스크톱의 메모리 및 CPU 사용량을 크게 줄여 호스트 시스템의 메모리 활용률을 2GB 줄여 개발자가 중단 없이 멀티태스킹을 수행할 수 있도록 지원합니다(그림 4).

개발자 멀티태스킹을 개선하는 것 외에 이 기능에 대해 주목할 만한 점은 무엇일까요? 음, 그림을 그려보겠습니다. 우리는 모든 도커 데스크톱 사용자들에게 매일 38,500 시간의 CPU를 절약하고 있습니다. 시각적으로 보면, 이는 미국 가정에서 한 달 내내 1,000개의 전력을 공급할 수 있는 양입니다.

또한 Docker Desktop이 활성화(컨테이너 실행)되어 있는 동안에도 상당한 개선이 이루어졌으며, 이를 통해 설치 공간이 52.85% 감소했습니다. 이러한 개선으로 Docker Desktop은 가벼워지고 기계의 리소스를 확보하여 다른 툴과 애플리케이션을 효율적으로 활용할 수 있게 되었습니다(그림 5).

그림 5: 도커 데스크톱 액티브 메모리 사용량이 4.20 이후 개선되었습니다.

이는 단순히 개발 워크플로우를 최적화하는 것이 아니라 효율적으로 수행하여 에너지 비용을 절감하고 환경에 긍정적인 영향을 미칠 수 있다는 것을 의미하며, 이는 우리가 지속적으로 투자할 분야입니다. 설치 공간을 줄이는 것은 미래를 구축하는 데 도움이 되는 작은 방법 중 하나입니다. 즉, 윈윈(Win-Win)입니다.

 

빌드 프로세스 간소화, 최대 40% 압축 개선

여러분의 컨테이너가 디지털 백팩이라고 상상해 보세요. 가방이 무거울수록 작업 중에 가방을 들고 다니기가 더 어려워집니다. Docker Desktop 4.19에서 Docker 컨테이너 이미지의 Zstandard(zstd) 압축을 지원하여 적재물을 가볍게 하여 놀라운 결과로 컨테이너 이미지 크기를 줄였습니다.

그림 6의 debian:12.1 container image에 대한 데이터를 보십시오. Zstandard는 기존의 gzip 방법에 비해 압축이 ~40% 향상되었습니다. 그리고 Docker Engine:24.0 image의 경우, 우리는 ~20% 향상을 달성하고 있습니다.
그림 6: 데비안의 데이터: 12.1 컨테이너 이미지와 압축이 개선된 도커 엔진 24.0.

실제적인 측면에서 컨테이너 이미지의 두께가 얇아지고 전송 속도가 빨라져 보다 빠르고 효과적으로 작업할 수 있습니다. Docker Desktop을 사용하면 백팩에 마법의 압축 주문을 맞추는 것과 같아서 모든 바이트를 계산할 수 있습니다. 컨테이너가 가볍고 이미지가 당겨지고 밀리는 속도가 빨라지며 개발이 더욱 원활해져 여정을 최적화하고 압축을 한 번에 하나씩 수행할 수 있습니다.

 

엔터프라이즈급 보안

속도와 성능에 대해 이야기할 때 간과해서는 안 될 중요한 측면이 있습니다. 바로 보안입니다. Docker의 경우, 보안이 없는 속도는 나침반이 없는 배와 같습니다. 속도는 빠르지만 제 속도를 유지하지는 못할 것입니다.

NAT은 귀사의 개발 여정을 가속화하기 위해 많은 투자를 해 왔지만, 엔터프라이즈 수준의 보안 및 거버넌스에 대한 노력은 눈에 띄지 않았습니다. 사실 이는 정반대입니다. 우리의 목표는 속도와 경계 사이의 원활한 결합을 만드는 것입니다.

다음은 우리가 하는 방법입니다:

권한이 없는 사용자: Linux의 기본 도커 엔진과 달리 권한이 없는 사용자는 도커 데스크톱을 실행할 수 있습니다. 이는 도커 데스크톱이 기본 호스트 시스템과 분리된 Linux VM 내부에서 도커 엔진을 실행하기 때문입니다.
향상된 컨테이너 격리: ECI는 기본적으로 컨테이너를 루트리스 모드로 실행하고, 컨테이너의 민감한 시스템 호출을 검증하고, 민감한 마운트를 제한하여 컨테이너와 호스트 사이에 격리 계층을 추가합니다. 개발자 워크플로우를 변경하지 않고도 이 작업을 수행할 수 있으므로, 추가적인 안심 계층으로 평소와 같이 도커를 계속 사용할 수 있습니다.
설정 관리: 설정 관리를 통해 IT 관리자는 조직별로 Docker Desktop의 보안 설정을 조작하여 개발자 환경의 보안을 강화할 수 있습니다.
견고한 보안 모델: 당사의 보안 모델은 안전성과 최적의 성능을 위해 설계되었습니다. 따라서 환경을 보호하는 동시에 효율적으로 운영되도록 보장합니다.
지속적인 보안 감사: 보안에 대한 우리의 의지는 기능과 도구를 넘어 다양한 현대 위협으로부터 플랫폼, 사용자 커뮤니티 및 고객을 보호하는 데 전념하고 있으며, 정기적인 보안 감사에 투자하여 애플리케이션과 서비스의 구석구석을 면밀히 조사하고 있으며, 취약점을 신속하게 파악하고 완화하고 있습니다.
NAT은 성능과 보안을 완벽하게 통합하는 엔터프라이즈급 제품인 종합 플랫폼을 제공하는 것을 목표로 하고 있습니다. 빠르게 진행되는 이 세상에서 속도와 보안의 완벽한 조화는 진정으로 혁신을 강화합니다. 도커(Docker)에서는 고객이 모든 단계를 수행할 수 있도록 보장하기 위해 이 자리를 마련했습니다.

 

 

개인적으로 Docker와 Kubernetes를 지향하지는 않습니다.

첫번째 이유는, VM을 사용하는 것 만으로도 충분히 많은 이득을 볼 수있습니다.

두번째, VM을 사용함으로 손실을 보는 H/W에서 다시 Application의 편함을 추구하고자 하나의 스택을 더 쌓는거 자체가 싫습니다.

 

하지만, 저런 과정이 있어야 발전이 있다고 생각 됩니다.

누군가는 어떤 어플리케이션 설치에 있어 어려움이 있을 수 있으며, 개발한 프로그램의 관리가 컨테이너로 관리 되는 것 역시 장점일 수 있습니다. 하지만 기본은 잊지 않기를 바랍니다. 특히 이제 막 시작하는 어린 친구들은 기본을 중시하였으면 합니다. 개발자라도 지금 클라우드시대를 살고 있지만 OS 설치하는 법과 기본적인 OS의 구조 정도는 공부하길 바랍니다. 비록 속도도 중요 하지만 기본이 되는 공부 없이 큰 발전은 이룰 수 없습니다. 

댓글