Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

KubeCon + CloudNativeCon North America 2019 참석기

지난 11월 19~21일까지 미국 샌디에고에서 열린 KubeCon + CloudNativeCon에 참석하고 왔다. 이는 GitHub Universe를 들렸다가 샌프란시스코에서 샌디에고로 넘어가서 참석했고 샌디에고는 처음 가보는 도시였는데 샌프란시스코가 관광지 같은 느낌이었으면 샌디에고는 훨씬 조용하고 편안해 보이는 도시라서 맘에 들었다. 안전하기도 했고...

KubeCon을 참여하게 된 계기를 설명하자면 매년 해외 콘퍼런스를 하나씩은 가려고 하고 있어서 올해는 어떤 콘퍼런스를 갈지 고민하던 중에 올해는 본격적으로 SRE로 일하면서 인프라를 더 깊게 보면서 커리어를 쌓을 생각이었고 이제 인프라를 하면서 Kubernetes를 빼고 얘기하기는 어려웠기 때문에 KubeCon을 가봐야겠다고 생각을 했다. 얼리버드 티켓을 산 건 여름 정도였던 것 같은데 당시에는 회사 업무를 하면서 Kubernetes를 올해 한창 공부하고 어느 정도 이해하고 있을 때 KubeCon을 한번 갔다 오면 딱 좋겠다고 생각했다. 하지만 계획처럼 되지 않아서 회사에서 인프라보다 다른 쪽에 시간을 대부분 쓰게 되었고 Kubernetes를 구경만 하고 있을 뿐이지 전혀 공부를 못한 채로 갔다 왔다. 아는 만큼 보인다고 Kuberentes를 잘 알지 못한 채로 KubeCon을 갔다 오게 된 것은 개인적으로 꽤 아쉬운 부분이다.

KubeCon + CloudNativeCon은 CNCF에서 주최하는 콘퍼런스로 Kubernetes를 포함해서 CNCF의 프로젝트에 관해 얘기하는 콘퍼런스다. 콘퍼런스는 총 3일간 열리고 콘퍼런스 전날은 수많은 워크숍이 열렸다.

샌디에고 컨벤션 센터

KubeCon은 샌디에고 컨벤션 센터에서 열렸는데 가보니 꽤 큰 장소였다. 다운타운에 숙소를 잡기는 했지만 컨벤션 센터에서는 거리가 좀 있는 편이었는데 동네가 안전한 것 같아서 대부분은 그냥 걸어 다녔다. 우버 타기도 좀 애매한 거리라서...

배지 픽업 장소

주말부터도 배지를 발급받을 수 있도록 지원했는데 난 컨벤션센터에 가서 받았지만, 안내에는 공항에서도 배지 픽업 장소가 있어서 컨벤션센터에 오지 않아도 바로 배지를 발급받을 수 있는 것으로 보였다. 안내 직원만 있고 직접 태블릿에 정보를 입력하고 배지를 출력해서 가져갈 수 있게 되어 있다.

KubeCon의 스폰서 목록

행사의 규모를 알 수 있을 만큼 엄청난 수의 스폰서 목록이 보였다. 이쯤 되면 인프라 쪽으로 뭔가 하려는데 여기에 안 끼면 안될 것 같은 분위기가 아닌가 싶다. 지난주 GitHub Universe를 참가하다가 회사에 급한 일이 있어서 계속 업무를 했는데 약간은 마무리가 되고 있어서 내 바람은 KubeCon 전까지만 해결되었으면 하는 게 바램이었다. 그래서 주말에는 카페를 이용하다가 배지 받은 다음부터는 컨벤션 센터의 인터넷이 괜찮길래 컨벤션 센터에서 콘퍼런스콜을 하고 업무를 했다.

KubeCon + CloudNativeCon은 발 빠르게 세션 영상을 모두 정리해서 올려서 세션이 궁금하면 YouTube에서 볼 수 있다.

Day 1

키노트 현장

행사가 클 거라고 예상은 했지만 실제로 참가해보니 예상보다도 훨씬 컸다. 나중에 보니 12,000명 정도 규모인 것 같던데 AWS re:invent 같은 콘퍼런스는 가본 적이 없어서 내가 참석해 본 콘퍼런스 중에서는 가장 큰 규모의 행사였다. 키노트 장소도 너무 커서 공연장에 온 것처럼 압도되는 분위기였다.

회사가 아니라 재단 주도의 콘퍼런스였기 때문에 키노트에 맞춰서 새로운 걸 발표하거나 하지는 않고 Kubernetes나 커뮤니티의 성장 등에 대해서 공유하고 주요 프로젝트의 멤버들이 나와서 프로젝트를 소개하거나 하는 식으로 키노트가 진행되었다. 매일 아침과 저녁에 계속 키노트가 있었는데 대부분 비슷한 분위기였고 첫날은 CoreDNS, Vitess, Helm, Linkerd, Jaeger, Open Policy Agent 등이 나왔던 거로 기억한다.

키노트에 등장한 Helm 프로젝트

Vitess는 이때 처음 알게 된 프로젝트인데 MySQL을 수평 확장 가능하게 만든 클러스터링 시스템이다. 처음에는 이런 프로젝트가 있네 하고 생각했는데 Slack과 징동닷컴에서도 Vitess를 도입해서 잘 쓰고 있다고 해서 나만 처음 알았지 생각보다는 성숙한 프로젝트구나 싶었다. Helm은 일부러 맞추었는지 그 전주에 3.0을 릴리스했기 때문에 나와서도 3.0에 대해서 얘기했다. 3.0에서 드디어 Tiler가 없어졌다고 얘기하자 모두의 박수를 받았다.

사람이 너무 많다 보니 너무 정신없었고 부스도 많아서 둘러보는 데도 오래 걸렸다. 이틀째에 여기도 왔다고 하면서 발견한 부스도 꽤 많이 있었다. 보통 3개 트랙 정도가 있는 콘퍼런스만 다니다가 같은 시간에 20개도 넘는 세션 중에서 고르다 보니 선택 장애가 걸릴 지경이었다. 처음에는 관심 있는 기술 위주로 들어가 보다가 너무 기술 소개 세션 같은 건 나중에 문서를 보거나 혼자 해봐도 될 것 같아서 나중에는 특별히 관심 가는 SIG(special interest group)가 아니면 다른 회사의 경험이 정리된 세션을 주로 들었다.

세션이 많다 보니 장소도 아주 넓어서 쉬는 시간은 넉넉했지만, 그 큰 건물을 이쪽 끝에서 저쪽 끝으로 왔다 갔다 해야 해서 꽤 힘들었다. 둘째 날쯤 되어서야 세션에 표시된 장소를 보고 어디 있는 곳인지 알게 된 것 같다. 처음엔 지도를 보고도 어디로 가야 하는지 알 수 없었고 이를 예상했는지 곳곳에서 방향을 알려주는 스태프들이 있었다. 자신에게 물어보라는 팻말을 들고 있었다.

Airbnb Service Discovery: Past, Present, Future (Challenges of Change) - Chase Childers, Airbnb

Airbnb에서는 nervesynapse라는 프로젝트로 내부에서 구현한 서비스 디스커버리의 구조를 설명하고 Kubernetes로 옮겨 가기 위해서 변경해 간 과정을 설명했다. 각 단계에서의 문제들을 설명하면서 최종적으로는 Envoy까지 도입했고 인프라 구성을 Kubernetes 구성으로 변환할 수 있도록 kube-gen이라는 도구를 내부에서 만들어서 사용했다고 한다.

How to Backup and Restore Your Kubernetes Cluster - Annette Clewett & Dylan Murray, Red Hat

이 세션은 Kubernetes 클러스터를 통째로 백업했다가 복구하는 과정을 설명했다. Veloro 외에 Rook, Noobaa 등의 도구를 설명하면서 데모를 위해서 Kubernetes 클러스터에 Wordpress와 MySQL로 된 서비스를 띄우고 글을 작성한 뒤에 Persistent Volume까지 백업한 뒤에 서비스를 모두 제거하고 복구한 뒤에 완전히 복구되는 과정을 보여주었다.

Day 2

둘째 날 키노트도 전날과 비슷한 분위기였다. CNCF에 프로젝트가 워낙 많으니까 돌아가면서 하나씩만 나와도 키노트가 꽉 찰 만 하다. 그 외에는 Kubernetes에서 개발할 때 사용할 수 있는 tilt나 skaffold, garden등의 도구나 Ephemeral Containers 등 Kubernetes에서 디버깅하고 하는 등의 환경에 대해서 소개를 했다.

SIG에 대해서 원래는 잘 몰랐는데 가보니 정말 다양한 SIG가 있었고 CNCF 프로젝트의 CI 대시보드인 cncf.ci가 어떤 역할을 하고 SIG가 어떻게 활동하는지에 대한 내용도 있었고 Kubernetes의 릴리스 팀에서 나와서도 발표를 했다. 릴리스 팀이 따로 있다는 게 흥미로웠는데 발표자는 1년 전에 릴리스 팀에 합류해서 릴리스팀 리더로 활동하다가 지금은 다시 리더에서 물러나서 릴리스를 돕고 있다고 했다. 릴리스팀은 개발은 안 하고 릴리스만 하는 건가도 궁금했지만 프로젝트의 규모가 크다 보니 오픈소스에서도 릴리스 팀을 따로 운영하면서 프로젝트를 관리한다는 점이 Kubernetes 프로젝트의 규모를 예상케 하는 부분이었다.

Leveling Up Your CD: Unlocking Progressive Delivery on Kubernetes - Daniel Thomson & Jesse Suen

Intuit의 발표

개인적으로 가장 흥미로운 세션이었는데 Argo CD를 만든 Intuit에서 프로그레시브 딜리버리에 관해서 설명했다. 카나리 배포와 비슷하다고 할 수 있는데 Kubernetes 클러스터에서 클러스터의 일부에만 일단 배포를 하고 결과를 분석해서 이상이 없으면 배포를 점점 늘려가고 오류 등의 매트릭이 늘어서 문제가 있다고 판단되면 자동으로 롤백을 시도한다. 데모에서도 배포되는 서비스를 파란색과 노란색으로 구분해서 배포되면서 서비스가 새 버전으로 바뀌어 가는 것을 보여주면서 문제가 있으면 자동으로 롤백이 되고 이상이 없으면 점점 많이 바뀌어서 전체 서비스가 새 버전으로 바뀌는 과정을 설명했다.

오후 키노트

오후 키노트에서는 OpenTelemetry로 서비스를 관측하는 라이브 데모를 보여주고 나서 커뮤니티에서 활동을 많이 하는 사람들에게 상을 주는 시간이 있었다. 선정 기준까지는 잘 모르겠지만 Top Commiter, ambassador, Chop Wood Carry Water(이건 의미를 모르겠다)를 뽑아서 무대 위에서 상을 주는 게 재미있었다.

All-Attendee Party 장소 입구

저녁에는 All-Attendee Party가 있었는데 장소가 Gaslamp Quarter라고 표시되어 있어서 어딘가 하고 구글맵에서 검색을 해봤더니 어떤 장소가 아니라 그냥 컨벤션센터 앞의 한 블록 전체가 Gaslamp Quarter였다. 가보니 위처럼 표시해 놓고 전체 블록을 막아놓고 중간중간 천막을 쳐놓고 음식을 먹으면서 음악 등을 즐길 수 있도록 해놓았는데 이날 비가 와서 길거리에서 제대로 즐기기가 어렵고 모두 천막 안에 들어가 있어야 해서 제대로 운영되진 않았다. 나도 간단히 저녁만 해결하고 숙소로 복귀했다.

Day 3

2주나 달려서 그런지 3일 차가 되니까 너무 힘들어서 버틸 수가 없었다. 그래서 셋째 날 키노트는 빠지고 천천히 컨벤션 센터로 갔다.

스폰서 부스 장소

사진으로 다 표현이 안 되는데 상당히 큰 공간에 부스들이 모여있었고 부스가 많아서 하나씩 돌아다녀도 꽤 많은 시간이 걸렸다. 세션 장소가 부스 공간을 중심으로 나누어져 있어서 세션을 들으면 부스 공간을 계속 왔다 갔다 해야 했기에 쉬는 시간 등에 틈틈이 구경하면서 다녔다.

CNCF 프로젝트 부스

다른 공간에도 부스가 있었는데 이쪽에는 스폰서 부스 외에도 커뮤니티용 부스들이 많이 있었다. 특히 CNCF 프로젝트 부스에는 메인테이너나 프로젝트 멤버들이 있고 여기서 질문 등을 할 수 있도록 마련되어 있어서 평소에 궁금한 게 있다면(그리고 영어를 잘한다면) 아주 좋은 기회로 보인다.

CNCF SWAG 샵

CNCF SWAG 샵

한 공간에는 샵이 있어서 CNCF 프로젝트들의 티셔츠와 후드가 있었다. 꽤 많은 프로젝트의 후드와 티셔츠가 다 있어서 원하는 대로 구매할 수가 있었고 당연히 Kubernetes나 CNCF SWAG도 있었다. 나는 이런 SWAG을 좋아하기 때문에 어떤 걸 사야 할 지 한참을 고민한 뒤에 몇 벌을 구매해서 왔다. 양말이나 텀블러 같은 다른 굿즈들도 약간 있었는데 내 취향은 아니라서 따로 구매는 하지 않았다.

K3s Under the Hood: Building a Product-grade Lightweight Kubernetes Distro - Darren Shepherd

k3s에 관해 잘 모르고 들어갔는데 꽤 재밌었던 세션이다. Rancher의 공동 창업자이자 k3s를 만든 Darren Shepherd이 직접 k3s에 대해 설명했다. k3s는 다른 도구들과 달리 Kubernetes의 로컬 개발환경이 아니라 처음부터 프로덕션용으로 만들어졌고 올해 2월에 0.1.0을 릴리스 했는데 많은 사람이 관심을 두어서 11월 19일에 1.0 GA를 릴리스할 수 있었다면서 k3s가 k8s와 어떻게 다르고 k3s에서 HA를 구성하는 방법 등을 설명했다. 다른 장소에 비해서 작은 곳에서 진행된 세션이었는데 관심이 가서 k3s도 좀 사용해 봐야겠다는 생각이 들었다.

예상보다 너무 큰 규모라서 정신이 없었지만 구경하는 재미도 쏠쏠했다. 이번 여행에서는 회사 업무가 좀 바빠서 정신이 없었던 관계로 2주 일정이 다 끝나니 체력이 고갈될 지경이었지만 영어에 대한 자극도 다시금 받으면서 즐거운 경험이었다. 보통은 이렇게 미국 오면 일정을 다 끝내고 숙소에 올 때쯤 서울에서 출근하기 시작하기 때문에 숙소 와서 슬랙으로 얘기하면서 쉬다가 자면 됐는데 지금은 미국에도 사무실이 있다 보니까 낮에도 누가 날 찾고 밤에도 누가 날 찾아서 더 정신이 없었던 것 같기는 하다.



컨퍼런스 참석 후기는 stdout.fm의 GitHub Universe 2019, Kubecon 2019 참석기 w/ outsider, anarcher, subicura 팟캐스트에서도 들을 수 있습니다.

2019/12/10 06:04 2019/12/10 06:04