QCon 2016 둘째 날 이야기

두 번째 날입니다. 첫 날보다 조금 더 알아들어보자는 마음으로 힘내서 출근 지하철을 타고 출발!

아침미팅(?)

역시 키노트 전에 간단히 모두 모여 미팅을 합니다. 둘째 날이라 그런지 왠지 아침 미팅 같은 분위기처럼 느껴지네요^^.

qcon아침미팅

키노트: THE SECOND ACT (Michael Lopp,Slack)

둘 째날도 오늘 세션 호스트가 나와 간단히 전체 세션을 소개하고나서 키노트로 시작합니다.

오늘 키노트는 슬랙의 엔지니어링 부사장인 Michael Lopp이란 분이네요.

이아저씨..

이분은 어제 분보다 더 재미난 분이네요.

자꾸 이러니까 실리콘벨리 있는 사람들은 이렇게 다 즐겁게 사는 건지 오해가 생겨버릴 지경입니다;

제목은 ‘Second Act’. 기업의 성장 과정에 따른 문화 변화를 다룬 발표였습니다.

secondact

(제대로 다 알아듣진 못했지만..) 뉴가이와 올드가이에 대한 이야기가 꽤 재밌었습니다. 우리 나라에서도 이런 얘기를 꽤 많이 하는데, 이 동네도 마찬가지인가 봅니다.

og-ng

og-ng

og-ng

그리고 HP, MS, IBM을 얘기하면서 (흔들렸네요;;)

og3

그런 얘기는 일단 1st Actor에서 살아남고 얘기하라는 말도 하더군요.. 자기가 실리콘벨리 출신(뉴가이?)이라 이런 얘기를 할수 있는 건가 하는 생각이 들더군요.. 그래도 MS는…흠..이라고 여러차례 말해서 몇 번이나 모두들 박장대소를 했습니다 ㅋ (물론, MS 사람들도 꽤 있었죠..)

og3

그리고 이어지는 이런저런 얘기들.. 슬랙의 문화 이야기.. 마지막으로 문화를 만들어야 한다고 하고,

ending

Destiny(PS4 게임입니다..) 얘기로 마무리합니다. (Destiny 하는 사람 손들라길래 엄청 높게 들었네요ㅎㅎ)

ending-destiny

세션1. WHAT COMES AFTER MICROSERVICES? (Matt Ranney,Uber)

자, 본격적으로 세션 시작입니다.

첫 번째 세셔은 우버에서 마이크로서비스 아키텍처를 적용한 경험을 공유하는 세션입니다.

uber-title

발표자는 우버 CTO인 Matt.

uber-matt

이번 컨퍼런스를 통해 우버가 마이크로서비스 환경인지 처음 알았습니다. (잘 모르는 동네라^^)

아래 사진처럼 14년도부터 시작했고, 지금은 1,000개 이상 서비스로 운영되고 있다고 한네요.. 천개라니…@@;

uber-graph

uber-dashboard

이렇게 많은 서비스를 만들고 운영하면서 겪게된 문제와 그 해결책을 공유했습니다.

왜 마이크로서비스에 이렇게 열광하는지, 보통 얘기하는 릴리스가 쉽고, 효율적이고, 조직을 확장하기 쉬워서인지 반문해보고, 그건 아닌거 같고 가장 큰 소득은 ‘(Lose)Coupling’이라고 생각한다고 합니다.

14년부터 급격하게 증가하는 리파지토리 숫자를 보여주면서, 마이크로서비스였기 때문에 이렇게 자유롭게 개발을 해나갈 수 있는 환경이 됐다고 얘기합니다.

uber-repo

물론, 그렇게 되면서 새로운 문제가 많이 생겼고, 아래 7가지를 예로 들었습니다.

uber-new-problem

무엇보다 가장 중요한건 서비스간의 결합성(Composability)을 관리하는 것이라 생각한다네요.

자신들 서비스 계층을 아주 실플하게 그리면 이정도인데…

uber-diagram

실제로는 이지경이랍니다 ㅎㅎ

1배 확대? uber-real-1

10배 확대? uber-real-2

100배 확대? uber-real-3

이 동네도 만만치 않네요 @@.

uber-real-4

각 서비스는 대부분 자신만의 스토리지(=DB 스키마)를 갖고자 하기 때문에, 그러다보니 시스템 개발이 상당히 어려웠고, 특히나 스키마를 점진적으로 발전시켜나가며 개발하기 정말 힘들었다고 합니다.

그럴만한 것이 서비스 별로 스토리지가 나뉘어 있으니 이를 주고 받는 서비스와 객체(JSON)을 고치고, 비동기 처리를 한다면 관련 큐나 메시지도 고치고, 화면도 고치고 등등 일련의 작업이 이어지기 때문이겠죠..

uber-diagram-ref

이런 상황을 관리하기 위해서 다음 같은 기준을 만들어 가기 시작했고,

uber-principle

이걸 계속 하다보니 ‘DOSA’란 걸 만들게 됐다고 합니다. 내부에서 사용하는 클라이언트 라이브러리 정도 되겠네요..

DOSA는 스키마 변경과 같은 작업을 운영 환경에서 충분히 테스트할 수 있도록 도와주는 일종의 프록시 서비스라고 보면 될듯 합니다. 아래 그림을 보면 DOSA 클라이언트 lib이 들어가 원격 서비스 호출을 통재하고, 여기서 테스트 환경과 운영환경을 연결해주는 역할을 하고 있습니다.

uber-dosa-1

uber-dosa-2

어제 넷플릭스도 강조하던데, 개발 환경에서 완벽한 테스트 자체가 힘든 이유도 있지만, 무엇보다 운영 환경에서 정상 동작하는지를 운영 배포 후에 점검하는 활동이 마이크로서비스에서는 필수로 필요하다고 생각합니다.

넷플릭스에서는 카나리 릴리스처럼 운영환경에 실제로 배포해 단계적으로 확인해 나가는 방법(그것도 여러 단계의 카나리..)을 사용하던데, 이와 달리 우버는 개발환경을 운영에 직접 붙여서 테스트 하는 방식으로 해결해 나가고 있네요..

나중에 질답때 들은 건데, 우버는 각 서비스의 버저닝을 안 하기 때문에 동시에 여러 버전의 서비스를 하도록 운영하지는 않는다고 하네요.. 그렇기 때문에 변경 사항이 있더라도 반드시 하위 호완성을 보장해서 만든다고 합니다.

끝으로 구글이나 AWS 신경쓰지 말고 비지니스 상황에 맞춰서 좀 하자라는 얘기를 하고 Composability를 강조하며 마무리.

세션2. MASTERING CHAOS - A NETFLIX GUIDE TO MICROSERVICES (Josh Evans, 얼마전까지 Netflix, 지금은 무직)

이번 컨퍼런스 중에 가장 듣고 싶던 세션입니다.

컨퍼런스 오기 전에 영어 공부 할겸 세션 발표자의 예전 동영상을 찾아서 계속 들었는데 그 때 Josh가 앞서 했던 발표가 너무 마음에 들어 요번에도 참석하면 꼭 듣자하는 생각으로 왔습니다.

예전 발표도 한 번씩 꼭 들어보세요. 지금 들어도 도움이 될 만한 내용이 많습니다.

컨퍼런스 시작 2주 전즘에 갑자기 스케줄에서 그의 이름이 사라진 적이 있었습니다.

상당히 당황했었는데..;; 몇 일 기다려도 돌아오지 않자 문의 메일까지 넣을까 했습니다. 다행히 일주일 뒤쯤인가 다시 이름이 올라왔었는데, 알고보니 가족이 아파서 넷플릭스를 그만두고 나와서 현재는 일을 하고 있지 않고 쉬면서 가족과 함께 시간을 보내고 있다고 합니다. 넷플릭스 퇴사하면서 컨퍼런스 발표도 안 할 수도 있었나 봅니다..

다행이 돌아왔어요!

josh-ㅠㅠ

josh-talking

가족의 병(찾아보니 Guillain barre syndrome라네요..)에 대해 설명하다가 마이크로서비스 얘기로 자연스럽게 넘어갑니다. 마이크로서비스에서도 ‘신경망’의 관리가 중요하다고 설명합니다.

다음 그림을 보면 자연스레 이해가 갑니다.

josh-신경망

자주보던 화면이지만 볼때마다 눈의 휘둥그레해집니다..@@

이어서 넷플릭스 시스템의 변천사를 설명하면서 마이크로서비스란 무엇인지 설명하고, 마이크로서비스를 적용하면서 격게 되는 4가지 도전(Dependency, Scale, Variance, Change)과 해결과정을 다룹니다. 마지막으로 간단히 조직에 대한 이야기를 하고 마무리를 합니다.

josh-agenda

발표가 끝나고 보니 제가 모든 화면 사진을 다 찍었더라구요 @@

josh-pic-1

josh-pic-2

기대했던것처럼 이번 컨퍼런스에서 들었던 세션 중 최고의 세션이었습니다.

공개된 슬라이드와 동영상을 함께 꼭 한 번씩 보시기를 추천드립니다!!

세션3. APPLYING FAILURE TESTING RESEARCH NETFLIX (Peter Alvaro와 Kolton Andrus, Netflix)

이번 세션은 상당히 독특하고 재밌는 세션인데, 대학교 교수와 넷플릭스 엔지니어가 함께 진행한 테스트 자동화 연구와 넷플릭스 적용한 경험을 공유한 세션입니다.

fit-title

교수와 엔지니어가 만담을 주고 받으며 발표를 합니다. 머리가 긴 사람이 교수, 터프가이가 엔지니어에요.

fit-man

역시 처음 발표는 아니고 이미 공유된 내용이 있어 앞의 발표를 들어보셔도 좋습니다.

지금은 Kolton이 넷플릭스를 나와서 이 연구 결과로 회사를 만들었더라구요 ㅎㅎ (회사 이름하여 고블린!) 그런데 자회사인건지 아니면 여기 문화가 그런건지 여전히 넷플릭스 타이틀로 발표를 했습니다..

넷플릭스 엔지니어가 우연히 유투브에서 교수 동영상을 보다가, ‘오! 이거 좋은 아이디어인데!’라고 생각이 들어 같이 만나 밥을 먹고 의기투합게 되었다는 뒷이야기.

fit-meet

그 이후 Peter 교수가 넷플릭스에 인턴(?!)으로 활동하며 연구를 하게 됐다고 합니다. 연구자와 엔지니어는 이 연구를 통해 기대하는 바부터 달랐고, 사실 진행하면서 충돌도 많았다고 하네요..

fit-success-factor

하지만 결과는 상당히 괜찮았다고 합니다.

fit-result

내용 중 특이할만한 점은 테스트라서 ‘실패한 케이스’를 통해 무언가 했을거라 생각했는데, 그게 아니라 정상적인 상황에서 오히려 왜 정상적으로 처리 됐는지를 찾아내고 거기서부터 시작을 했다고 합니다.

fit-process

kolton이 나와서 만든 회사는 아직 웹 사이트도 없네요 (못찾는건지..;;)

fit-site

InfoQ에서 인터뷰를 한 기사 정도가 있습니다.. 저도 이걸 한 번 들어봐야겠습니다.

세션에서 설명한 걸 봐서는 콘솔로 테스트를 할 수 있을 뿐만 아니라 웹에서도 공격(?!)할 수 있는 방법을 제공하는 것 같습니다. 간단하게 화면만 휙휙 보여주고 지나가서 오픈소스인지 아닌지 정확하게는 잘 모르겠네요..

fit-goblin

세션4. AUTONOMOUS OPERATIONS: MICROSERVICES, ML AND AI (Rob Harrop, 자기회사)

두 번째 빨강 딱지를 찍은 세션입니다.

예전 스프링 개발자이기도 했고, 세션 제목도 “AUTONOMOUS OPERATIONS”라 무언가 구체적인 경험을 공유해줄 알고 기대했는데, 세션에서는 아주 일반적인 얘기만 하다가 끝내서 엄청 실망했습니다 ㅠㅠ

CEO가 된줄 몰라본 제 잘못입니다..

num4-ceo인줄몰라뵙고..

끝날때즘 12 Factor를 얘기하면서 자기가 생각하는 13번째 팩터는 CPU다라고 하며 R을 사용해 샘플 데이터를 분석하는 내용을 살짝 보여줬지만, 이 내용 역시 샘플로 보여주는 정도라 R로 저렇게 데이터를 가공할 수 있구나 정도의 “사실(?)” 말고는 큰 감흥이 없었네요..

익숙한 분이 등장한 화면이 유일한 기억입니다@@

num4-lee

세션5. CREATING A COLLABORATIVE CULTURE BETWEEN DEV & OPS (Pedro Canahuati, Facebook)

페이스북에서 개발팀(SWE)과 운영팀(Ops)을 효율적으로 운영하기 위한 이야기를 나눈 세션입니다.

fb-title

fb-pedro

답(?!)을 주고 시작합니다. (양말뿐이라니!)

fb-all-fit-socks

개발팀과 운영팀을 어떻게 구성하고 자리 배치를 해야할지에 대해 얘기를 합니다. 페이스북(아마 자기 팀을 얘기하는 것이겠죠?)은 아래처럼 구성했다고 합니다.

fb-myteam

개발팀, 운영팀의 역할과 서로의 신뢰, 그리고 페이스북이 원하는 개발자 등에 대해 이야기를 했습니다. 마지막으로 (당연히) “One Team”이라 생각해야 한다며 마무리.

아..그런데 이 세션은 자료를 올려주지를 않네요 @.@;;

세션6. PETABYTES SCALE ANALYTICS INFRASTRUCTURE at NETFLIX(Dan Weeks & Tom Gianos, Netflix)

이쪽에 문외한이지만 경험삼아 들어봤습니다.

이름하여 페타바이트 스케일@@

peta-title

아래와 같은 내용을 다룹니다. 발표자료가 공개되어 있으니 궁금하신 분들을 자료를 참고해주세요 ㅎㅎ

peta-index

리셉션 및 마무리

첫 째날은 너무 피곤해서 리셉션에 참석을 못했는데 오늘은 참석했습니다. 맥주들고 여기저기 기웃거리고 얘기도 하고..

역시나 영어의 한계에 진지하게 기술 얘기를 나누지 못해서 너무 속상했습니다. 올 한해 제대로 영어 공부할 주사를 단단히 맞고 돌아가네요 @@;