‘DockerCon SF 18’ 컨테이너 기반의 개발 들여다보기

‘DockerCon SF 18’ 컨테이너 기반의 개발 들여다보기

‘DockerCon SF 18’ 컨테이너 기반의 개발 들여다보기

필자는 6월 12일부터 15일까지 4일간 샌프란시스코 모스콘 센터에서 열린 도커콘(DockerCon SF 18)이라는 콘퍼런스에 참여했습니다.

DockerCon SF 18 콘퍼런스 현장 [그림1] DockerCon SF 18 콘퍼런스 현장

모르시는 분들을 위해 참고로 말씀드리면, ‘도커’는 컨테이너 기반의 OS 레벨 가상화 플랫폼입니다. 그리고 ‘컨테이너’는 네모난 화물 수송용 박스로, 그 안에 옷, 신발, 전자제품, 술, 과일 등 다양한 화물을 넣을 수 있도록 규격화되어 컨테이너 선이나 트레일러 등 다양한 운송수단으로 쉽게 옮길 수 있습니다. 클라우드 서비스에서 얘기하는 컨테이너도 이와 비슷합니다. 다양한 프로그램과 실행환경을 컨테이너로 추상화하고, 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해주죠. 프런트/백엔드 서버, DB 서버, 메시지 큐 등 어떤 프로그램이든 컨테이너로 추상화할 수 있고, 로컬 서버, AWS, MS Azure, GCP, SDS PaaS 등 어디에서든 실행할 수 있습니다. 이번 콘퍼런스를 통해 글로벌 기업들은 이미 컨테이너 기반의 개발을 활발하게 진행하고 있음을 느낄 수 있었습니다.
참고: https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html

콘퍼런스는 4일간 다음과 같은 일정으로 진행되었으며, 약 120개의 세션, Hands-on Labs, Hallway Track, 전시 부스 관람 등으로 구성되었습니다.

DockerCon 2018 agenda [그림2] DockerCon 2018 agenda

본 아티클에서는 도커콘에서 다룬 몇 가지 화두를 소개하고, 필자가 느낀 점을 세 가지 정도로 요약해 보겠습니다

Docker Enterprise Edition 2.0 출시

1. Kubernetes 및 Swarm 서비스 자체 제공
이제는 타 퍼블릭 벤더사(AWS, Azure, GKE 등)들처럼 직접 오케스트레이션 서비스도 제공합니다. (메뉴 내 Kubernetes 확인)
https://trial.docker.com에서 트라이얼을 경험해 볼 수 있습니다. (hands-on 제공)

 Docker EE 2.0 Universal Control Plane [그림3] Docker EE 2.0 Universal Control Plane

2. 마이그레이션을 통한 멀티 클라우드

 글로벌 시장의 IT기업의 클라우드 사용 현황 [그림4] 글로벌 시장의 IT기업의 클라우드 사용 현황

글로벌 시장에서는 IT 기업의 85% 이상이 멀티 클라우드를 사용한다고 합니다. 그 중 Docker EE의 마이그레이션 서비스를 이용한 멀티 클라우드 시연은 특히 흥미로운 부분입니다.

 멀티 클라우드로 마이그레이션 후 로드밸런싱 시연 [그림5] 멀티 클라우드로 마이그레이션 후 로드밸런싱 시연

기존 HA(High Availability, 고가용성) 구성이 퍼블릭 벤더 내 멀티 AZ의 다중화였다면, 위에서 보여준 시연은 해당 벤더의 경계도 허물어 버리는 것 같습니다.

3. Docker EE + Windows + kubernetes
2014년에 MS와 도커사는 파트너십을 체결, 2017년에 윈도 서버 컨테이너용 EE 버전을 출시했습니다. 이하는 Docker EE 2.0의 시연화면인데, 개인적으로 docker exec 명령어 뒤에 sh이 아닌 powershell이 붙는 것이 좀 어색한 듯합니다.

 Docker EE 2.0의 시연화면 1 [그림6] Docker EE 2.0의 시연화면 1  Docker EE 2.0의 시연화면 2 [그림7] Docker EE 2.0의 시연화면 2

※ 워크숍에서 윈도 컨테이너 내 라이선스에 대한 질의응답이 이뤄졌는데, 윈도 컨테이너는 윈도 호스트 OS 라이선스를 보유한 경우에 한하여 사용할 수 있다고 합니다. 호스트 OS 라이선스를 보유하고 있다면, 윈도 컨테이너 몇 개를 띄우든 상관없다는 얘기죠.
[참고 링크] https://docs.microsoft.com/en-us/virtualization/windowscontainers/images-eula

금융 세션

필자는 금융 개발을 담당하기에, 특히 금융 관련 세션을 주의 깊게 들여다보았습니다. 그 중 “Building a Center of Excellence for Docker and Containerization” 세션이 가장 기억에 남아 몇 가지 적어볼까 합니다. 해당 세션의 패널로는 (사진의 왼쪽부터) 진행자, MetLife의 Principal Engineer, PayPal의 Director of Cloud Engineering, Hertz의 Product Manager, Splunk의 Senior Director가 참석했습니다.

 Docker EE 2.0의 시연화면 2 [그림8] 'Building a Center of Excellence for Docker and Containerization' 세션 중

1. 메트라이프 (MetLife)
메트라이프는 기존 오리지널 팀 이외에 이노베이션 팀이라는 컨테이너 개발 조직을 두고 서로가 cross-functional(프로젝트를 중심으로 유기적으로 협력하는 것)하게 움직이고 있습니다. 비록 작은 팀으로 구성되어 LOB(line of business) 중심으로 애플리케이션을 개발하지만, 실제로 큰 역할을 담당하기에 본인들이 진행하는 개발 업무에 대해 상당한 자부심을 갖고 있었습니다. 초기에는 오픈소스 기반의 개발이 익숙하지 않아 프로젝트를 진행하는 것이 쉽지 않았지만, 결과적으로는 큰 효과를 거두었다고 합니다. 예를 들어, MSA(microservice architecture)화하며 기존 Persistent DB를 mongodb로 전환한 사례도 있고, 해당 DB핸들링에 대한 노하우도 쌓을 수 있었죠. 또, 레거시 업무를 컨테이너로 전환한 이후 모니터링을 어떻게 할지가 중요한 이슈였는데, Grafana와 Splunk를 결합하여 훌륭히 소화해냈다고 합니다. 마지막으로, 클러스터 내 worker node가 알 수 없는 원인으로 다운되는 경우 등 다양한 트러블 슈팅 케이스도 확보할 수 있었다고 하네요. 이런 것들을 가능하게 하기 위해서 chatops를 활용하고 별도의 트레이닝 프로그램 (wonderful training exercise)을 만들어 개발자들을 교육했다고 합니다.

2. 페이팔 (Paypal)
페이팔은 프런트엔드 부문을 주로 컨테이너화했고, 이를 위해 개발 조직에 큰 변화를 주었다고 합니다. 조직 내 직원들을 변화에 참여시키기 위해서는 무엇보다 동기부여가 중요하다고 하네요.

다음으로 중요한 것은 기존 시스템을 MSA화할 때 거기서 얻는 이점(benefit)을 분명히 하고 시작해야 한다는 것이었는데요, 다른 패널들도 이 점에 대해서는 동의했습니다. 이유인즉, 레거시 애플리케이션을 컨테이너화할 때는 많은 시행착오를 겪기 때문에 benefit을 명백히 하고, 결과를 투명하게 공유(giving transparency) 해야 한다는 거죠. 결과적으로 MetLife와 마찬가지로 다양한 Q&A 및 use case를 확보하게 되었다고 합니다.

참고로 메트라이프(MetLife)는 “엔터프라이즈급 시스템의 컨테이너화”란 주제로 다른 세션도 진행했는데요. 현재 많은 글로벌 금융사들이 컨테이너 기반 개발을 많이 시도하며, 정착해 나가고 있다는 생각이 들었습니다. 또 금융 클라우드의 규제도 (상대적으로 강한) 국내와 분위기가 많이 다르다는 걸 느낄 수 있었습니다.

VAPORIZED

'소프트웨어로 정의된 사회' 세션 중 [그림9] '소프트웨어로 정의된 사회' 세션 중

목요일 오전 General Session에서는, “Vaporized: Solid Strategies for Success in a Dematerialized World”라는 책을 쓴 Robert Tercek이라는 작가가 “소프트웨어로 정의된 사회(Software Defined Society)”라는 주제로 강연을 했습니다. Vaporize는 ‘증발하다’라는 뜻으로 우리 주변의 모든 물질이 비물질화(Dematerialized) 되는 현상을 빗댄 것이라고 하네요. 위 슬라이드에서 보듯이 모든 리소스들이 물리적인 소유를 넘어, 서비스(AS-A-SERVICE)로 제공되는 세상이 도래했다는 것을 의미합니다.

스타벅스에서 스마트폰으로 검색하는 이미지
이러한 AS-A-SERIVCE 시대에는 스타벅스에서 랩톱과 스마트폰으로 창업을 하더라도 미래의 백만장자가 될 수도 있다고 하네요.

'소프트웨어로 정의된 사회' 세션 중 [그림10] 비물질화의 가치

비물질화(Dematerialization)가 가져온 결과를 보면, 시가총액 상위 기준 2006년에 실제 자원을 소유하고 서비스하는 기업들이 2016년에는 거의 순위에서 사라져 소프트웨어 기업만이 남았다는 것을 알 수 있습니다. 그리고 이러한 현상은 앞으로도 더욱 가속화될 전망입니다. 이에 발맞추어 IT기업뿐만 아니라, 글로벌 금융기업, 의료 관련 기업 등도 고객중심으로 IT 패러다임을 바꾸려 하고 있다는 사례를 확인시켜주었으며, 이와 관련하여 콘퍼런스 전반에서 MTA (Modernizing Traditional Applications)라는 용어를 많이 사용하고 있었습니다.

워크숍 & mingling

1. 워크숍

워크숍
Java, .Net 기반의 monolith 앱을 MSA화하여 컨테이너 기반으로 전환하는 2개의 워크숍에 참여했습니다. Docker EE 2.0을 기반으로 개발하는 hands-on-lab으로 구성되며 아래 링크를 통해 실습할 수 있습니다.

교재 : https://github.com/dockersamples/mta_java_workshop
윈도우 환경 : dockr.ly/hol18-hybrid
리눅스 환경 : dockr.ly/hol18-linux

2. Hands-on Labs

핸즈온랩
도커 기초부터 MTA, 보안까지 실습해볼 수 있는 핸즈온랩입니다.
교재: https://2018.dockercon.com/hands-on-labs/
윈도우실습환경 : dockr.ly/hol18-hybrid
리눅스실습환경 : dockr.ly/hol18-linux

3. 전시부스 관람

IBM Cloud 전시부스 관람
IBM이 이번 콘퍼런스의 메인 스폰서라서인지, 왠지 모르게 반가웠습니다. 작년 초에 IBM 글로벌 직원들과 한 달간 블루믹스 Lab을 진행했었는데요.
이제는 IBM Cloud라는 이름으로 변경이 됐다고 하네요. Istio(이스티오)라는 오케스트레이션 서비스도 출시했습니다.

3. CNCF 플래티넘 멤버 Samsung SDS전시부스 관람

SDS 전시부스
CNCF(Cloud Native Computin Foundation) 플래티넘 멤버인 우리회사의 CI도 확인할 수 있었습니다. 시애틀 삼성SDS 미주연구소(SDSRA)의 CNCT에서 쿠버네티스 등 4개 프로젝트에 대해 코드 컨트리뷰션을 하고 있습니다.


콘퍼런스 참가 후 든 생각은 MSA, 클라우드 아키텍처, DevOps. 이 세 가지는 떨어트려 생각할 수 없고, 컨테이너 기반 개발은 MTA (Modernizing Traditional Applications)를 구현하는 데 있어 촉매제 역할을 할 것이라는 겁니다.

고래를 잡으려면, 고래가 되어야 한다.

패널 중 어느 한 사람이 뽑은 포춘 쿠키(fortune cookie)에 적혀있던 메시지입니다. 아직은 낯선 컨테이너 기반 개발에 언젠간 흠뻑 젖어들 길 바라며, 이상으로 ‘DockerCon SF 18' 참관 후기를 마칩니다.



▶   해당 콘텐츠는 저작권법에 의하여 보호받는 저작물로 기고자에 저작권이 있습니다.
▶   해당 콘텐츠는 사전 동의없이 2차 가공 및 영리적인 이용을 금하고 있습니다.

명제상 프로
명제상 프로 IT테크놀로지 전문가
삼성SDS 개발실

금융업종 개발 10년 차로, 주로 증권, 카드 업종의 차세대 프로젝트 구축을 담당했습니다. 최근에는 부서원을 대상으로 금융 클라우드 교육을 제작하여 진행하고 있으며, 현재 시애틀 삼성SDS 미주연구소(SDSRA) CNCT 클라우드 부서로 파견 근무 중입니다.

구독하기

인사이트 리포트 소식을 메일로 받아보세요