쿠팡 2년간의 근무를 정리하고 느낀 아쉬운 점과 성공 가능성

쿠팡 로고

쿠팡에서의 2년간 근무 후에 이직을 결심한 이유..가 제목이지만, 개인적인 이유는 간단하다. “외국어를 쓸 수 있는 환경”. 이 한가지 이유에 맞춰서 이직을 준비 했기 때문에 아래는 쿠팡에서 느낀 아쉬운 점이 될 것이다. 아래 글은 절대적으로 개발자 입장에서 쓰여 졌으니 전체를 대표한다고 오해 마시길.!

쿠팡에서 아쉬웠던 점

쿠팡 핵심가치 == 아마존 핵심가치

쿠팡 개발자에게 핵심가치가 무슨 소용이냐? 개발자이자 회사원으로 일하는 회사의 핵심가치가 매력적일 수록 더 끌릴 수 밖에 없다. 쿠팡의 핵심가치는 아마존 것을 따라하기 급급하다. 오죽하면 아마존 직원이 와서 화장실에 붙여진 핵심가치를 보고 웃을 정도니. 거기에 조금 더 슬퍼지는건 그 핵심가치가 많은 사람들이 생각해서 작성한 내용이라는 사실이다.

넷플릭스와 같은 기술집약적 회사는 (개발자가많음) ‘넷플릭스에 이롭게 행동해라’와 같은 규칙하나만으로도 잘 운영이 된다. 그러나 쿠팡과 같은 이커머스 회사 (개발자수가 상대적으로 적음) 는 자율성 보다도 많은 규칙을 두려고 하는 경향이 있는 것 같다. (새로운 회사도 이커머스이지만) ?그렇다고 모든 이커머스가 동일한 방향을 가져야하나? 그렇다면 업계선두인 아마존과 쿠팡은 다른게 무엇일까.?

쿠팡은 의도적으로 아마존 무풍지대라는 한국의 특징을 십분 활용하기 위해 동일한 핵심가치를 가지고 아마존의 한국지사를 노리는 것인지 궁금했었다.

그게 얼핏 보면 더 빠른 성공방법인지도 모르지만 개발자로서 왜 아마존이 아니라 이 회사에 다녀야 하는지 이유를 제공해 주지 않는다. 급여도 높고 외부 인지도도 높고 더 잘나가는 회사에 핵심가치도 같다? 당연히 아마존에 가고싶어 질 수밖에.

참고

아마존 핵심가치

쿠팡의 핵심가치

글로벌 코스프레

이직하는 회사를 포함해서 국내의 다른 이커머스 회사들의 글로벌 행보는 대부분 실망 스럽다. 한국에서 성공한 방정식 그대로 언어만 바꿔서 그나라에서도 풀리길 바라다니. 개발자로서는 AWS나 킨들이 나올 수 있는 미국적인 환경이 부러워지는 순간이 아닐 수 없다. 한국의 커머스 시장도 지배하지 못한 상황에서 무리하게 글로벌인력들을 투입해서 카오스를 만들어 낼 필요가 있는 건지 의문스럽다.

물론 개발팀은 해외인력을 유연하게 받아들일 수 있는 구조가 되야 개발자구인난을 풀 수 있겠지만, 국내사정을 잘 모르는 헤드들이 물류나 다른방면에서 전략을 짜는상황. 아마존이 물류센터를 확장해 나갈 때 영국이나 인도에서 데려온 인력들을 사용했나? 답답한 부분이다. 외국인이 투자했기 때문에 글로벌 코스프레를 해야하는 운명. 회사나 직원모두에게 힘든상황 임은 분명하다. 적어도 몇년 후 영어 공용화를 먼저 시행하는 편이 낫지않았을까 생각한다.

지켜지지 못한 약속

눈앞에 더많은 급여와 기회가 존재하는데 마다할 이유가있을까? ? 쿠팡 개발자의 급여는 국내에서 높은 수준인건 확실하다.하지만 공개적인 자리에서 한 이야기하고 실제 상황하고 많이 달랐기 때문에 많은 사람들이 실망한 것이 아닐까. 이부분은 자세히 언급할 수는 없지만 많은 사람들이 입사 초기에 했던 이야기와 달라졌다고 불만을 토로했다.

그러나 쿠팡의 성공을 확신

여기까지 글만보면 쿠팡이 오래 못갈 회사로 보이지만, 난 이회사가 잘될거라 확신한다.

수평적인 문화

최근에 조직이 수직적으로 많이 변경되서 많은 사람들은 이전같지 않다고 투덜댄다. 하지만 직원이 3천명이 넘는데 조직이 수평적일 수는 없을 것이다. 아직까지도 쿠팡만큼 한명한명이 큰 목소리를 낼 수 있는 조직은 많지 않다고 생각한다. 본인이 해당 조직에서 어느정도 인정을 받고 의견이 타당하다면 많은 힘이 실릴 수 있다.

패스트 팔로워 전략

아쉬웠던 점에서 이미 쿠팡은 아마존을 따라하고 있다고 했는데, 사실 아마존만이 아니라 많은 테크 기업을 따라하고 있고, 마이크로 서비스 위주로 많은 파생기술들을 효율적으로 적용하고 있다고 생각한다.

솔직히 한국에서 쿠팡만한 급여를 주면서 해외 최신트렌드를 사용해 개발을 할 수있는 회사가 많지는 않다. (그래서 신입 입사자에게 아주 강력히 추천하곤 했다.)

물론 아직은 네이버나 카카오에 비해서 새로운 트렌드를 선도하고 기술을 전파할 만한 여유는 없지만, 아직 5년도 안된 회사이기 때문에 조금씩 노하우가 쌓이면 분명히 한국 개발자 생태계에도 기여할 수 있는 저력이 많다고 생각한다.

쿠팡 직원들도 쿠팡을 사용

물론 칭찬만 하면서 사용하는 것은 아니다. 하지만 많은 사람들은 쿠팡에서 정기적으로 구매를 하고 있고, (따로 캐시주고 이런거 없음에도 불구하고)

굉장히 긍정적으로 보고있다. 매일매일 개밥먹기를 실행하는 거라고 볼 수 있는데, 피드백 주기가 굉장히 빠르고 그런 변경을 받춰줄 수 있는 아키텍쳐로 변경도 진행하고 있다.

이미 본인이 출국할때 조차 로켓배송이 없으면 어떻게 사나 걱정했으니.

일본에서 정착하기 – 1

간단하게 일본에서 정착하는 과정에 대해서 적어본다. 일반적인것과 특별한 경험 모두 섞여 있으니 잘 구분해서 읽어주시길 바란다.

집을 구하는게 가장 먼저기 때문에 그것부터 설명을 하면, 원하는 집의 조건은 다음과 같았다.

  • 둘이 살집을 구함
  • 잇코다테(一?建て)(단독주택) 를 선호함
  • 가와사키시내
  • 회사에서 30분 내 거리
  • 환승은 최대 한번
  • 역에서는 10분내로

회사가 있는 곳은 후타코타마가와(二子玉川) , 세타가야구 인데 이 근처 동네에서 2LDK를 구하기에는?야칭이(家賃)(월세) 너무 비쌌다.

참고. 동경 23구 평균 연수입 순위 – 세타가야는 7위

다행히 세타가야는 동경 끝자락에 있어서 야칭이 조금 더 싼 가와시키시로 알아보기로 생각하고 회사와 계약이 되어있는 에이블(エイブル -일본 부동산 회사) 웹 사이트에서 미리 검색을 해놓았다. 회사에서 4가지 정도 부동산 회사 목록을 보여줬는데, 답장이 안온곳도 있었고 고급 주택만 처리하는 곳 등등을 빼니 에이블 밖에 선택의 여지가 없었다.

입국 한달 전 쯤부터 에이블 본사의 법인영업 당담자와 메일을 주고 보내면 ( 여기까지는 영어로 가능) 대상 범위를 조금씩 좁혀 나갔다.

그렇게 해서 지금 살고 있는 지역의 담당자와 연락이 닿게 되었고, (여기서부터는 일본어) ?몇가지 맘에 드는 물건들의 링크를 보내 주었다. 결론적으로 별로 의미가 업었는데, 첫째, 도착하기 전까지 한달이라는 시간이 있어서 물건이 없어질 가능성이 높고, 둘째, 담당자는 지점 소속이라서 지점에서 관리하는 물건 위주로 소개 해줄것 이기 때문이다.

입국 후에 카지가야(梶ヶ谷) 역에서 머물면서 집을 구하러 다녔는데, 지금 살고 있는 집은 첫번째 방문 때 본집이다. 첫 번째로 방문한날 3가지 정도 물건을 보여주었는데, 첫번째 집은 좋았지만 입주 날짜가 우리가 생각한 것보다 2 주 정도 늦었기 때문에 패스하고, 두번째 본 지금집으로 바로 결정하게 되었다.

내가 생각한 출근경로는 덴엔토시선을 타고 환승 없이 쭉 가거나. JR남부선을 타고 미조노구치(溝の口)역에서 환승하는 방법이었다. 환승없는 노선에 있는 집이 조금 더 비쌋고 상대적으로 JR남부선 역의 주변 집들이 더 쌌는데, 지금 집은 노보리토(登?) 역까지 올라와야 하지만, 미조노구치를 기준으로 더 남쪽에 있는 곳의 집들도 나쁘지 않은 것으로 보인다. 특히 무사시코스기역 (武?小杉)근처의 브레멘 거리 주변이 거주하기 좋아 보였다. 가와사키 국제 교류센터 근처라 일본어 공부하기에도 좋아보인다.

대략적인 지도
대략적인 지도

계약날짜를 정하고 그 사이에 은행계좌, 재류카드, 환전, 도장만들기, 휴대폰 개통등을 진행했는데. 일단은 재류카드가 제일 먼저 인것 같다. ?은행계좌는 무조건 신세이 은행( 新生銀行) 후타코타마가와 지점으로 무조건 만들자. 스미토모 이런곳은 재류 6개월이 지나야 만들어 준다.

핸드폰은 보통 유심만 사서 한국 핸드폰에 넣는 방식으로 많이 사용하는데, 신쥬큐 빅카메라에 가면 그날 바로 개통 가능하다. 라쿠텐입사자들은 후타코 타마가와에 있는 라쿠텐 카페에서 라쿠텐 모바일을 가입하는 것도 추천한다.

도장은 계약시에 필요하다고 해서 만들었는데 문방구에 가면 만들어 준다. 계약시에 반드시 필요한것 같지는 않지만, 금융거래 하는곳에서는 도장만 요구하는 곳도 꽤 있다. 이번기회에 만들어 두자. 이틀정도 걸린다.

나 같은 경우에는 집이 신축건물이라 재류카드 신청시에 바로 해당 주소를 사용하는게 가능했지만, 현재 사람이 살고 있는 곳으로 들어갈 시에는 일단 호텔주소로 만들어 두도록 하자.

각 상세한 항목들은 웹 상에 검색해보면 많은 정보들이 나오니 참고.

환전 같은 경우에는 하나은행 동경지점에 가서 몇백을 따로 환전해 두었다. 대략 집세 * 4배 정도의 돈이 필요했다.

  • 월세 + 보증금(1달야칭) + 시키킨(1달 야칭, 주인한테 그냥 주는 돈, 보통 새집인 경우에만 있는 듯) + 보험료 + 부동산 수수료.

그렇게 해서 계약을 하고 이틀뒤에 입주하게 되었다.

구한 집은 잇코다테(一?建て)(단독주택) 또는 테라스 하우스 라고 불리는 집인데 특징은 다음과 같다.

  1. 역 플랫폼 바로 뒤에 위치함
  2. 신축건물
  3. 오-야(おおや)가 바로 옆옆집에 삼
  4. 목조건물

가장 큰 특징은 역시 목조 건물일텐데 일단 장점으로는

  1. 새집 증후군에 대해서 걱정하지 않는다
  2. 전기 콘센트가 많다

콘크리트 보다 조금더 자연에 가까운 재료를 쓴다는 것외에는 크게 어필할 요소가 없는 것 같다. 단점을 다음과 같다. (

  1. 방음이 잘 되지 않음. (단독주택이라면 큰 문제가 되진 않을 듯)
  2. 화재에 약하다. (막상 불이 난다고 생각하면 큰 문제)

만약 단독주택이 아닌데 목조건물이라면, 절대 들어가서는 안된다.?아마 그런 물건은 처음부터 보여주지 않을 가능성이 높지만, (가격이 쌈)?목조건물 특유의 장점은 전부 사라지고 소음만 남게될 가능성이 있다?지금 집도 1층 침대에 누워 있으면 2층에 있는 사람이 걸어다닐 때마다 삐걱소리가 난다.

참고 링크. 목조건물과 RC(콘크리트) 건물 비교 자료

http://www.house-rc.info/appeal/difference.html)

http://www.nexus-r-home.com/column/0012

http://sumaidea.com/guides/article/6/

옆 옆집이 집주인이 사는 곳인데 4개의 집을 동시에 지으면서 다같이 엄청 좋은 재료를 사용했다. 플로링 (フロ?リング) 이라고 해서 아래 사진과 같은 느낌인데, 기타넥을 만들 때 쓰는 나무와 동일한 재료라고 엄청 비싸다고 강조했다. 그리고 조명은 전부 합치면 가격이 100만엔 정도 한다고, 에어컨도 방마다 한대씩 총 3대가 붙어있다.

플로링 바닥
플로링 바닥

재료를 다 좋은것으로 쓰고 하니 기분은 좋지만, 막상 나갈때를 생각하니 두려움이 앞선다. 이미 플로링에는 기스가 가득해서 보증금을 날리게 되지 않을까 두려운 상황이다.

이외에 본인이 이런 옵션은 꼭 필요하다.! 하면 해당 조건을 말하면 찾을 수 있다. 물론 대상 물건이 확 줄어들기는한다.

 

추가정보

부동산용어 정리 한곳(일본어) -> ?http://www.homes.co.jp/words/

UR로 집구하기 (한국어) ->?http://www.tokyohiroba.com/261

또다른 한국인의 집 구하기 경험 ->?https://zunonia.wordpress.com/2014/01/10/%EC%9D%BC%EB%B3%B8%EC%97%90%EC%84%9C-%EC%83%9D%ED%99%9C%EC%9D%84-%ED%95%A0%EB%A0%A4%EB%A9%B4-%EC%A3%BC%EA%B1%B0%EB%AC%B8%EC%A0%9C/

디지털 노마드를 위한 생활 팁 (작성 중)

해외이사 경험 3번 정도하니 어떻게 살아야 해외생활에 쉽게 적응할 수 있는지 감이오는 것 같다. 선진국 기준으로 정리해 보았다.

  1. 책은 최대한 e-book을 활용한다.제일 무거운짐이 책이다. 리디 페이퍼나 크레마를 사용하고 기술 서적은 영어로 읽는 버릇을 들인다. Epub이나 pdf 로는 못 구하는 책이 없다.?사파리 온라인북?도 추천.
  2. Evernote 와 Scannable 를 활용해 서류를 백업한다. 여러가지 공과와 관련된 서류나 영수증 등도 쌓이면 정리도 힘들고 보관하기도 힘들다. 위 두가지 앱을 사용해서 하드카피가 필요한 서류만 빼고 모두 놓고 다니자.
  3. 세탁기, 냉장고는 저렴한고 작은 것으로 구매한다. 전압이 맞지않으면 가지고 가도 어차피 쓸 수없다. 집 종류에 따라 제공되는 곳도 많다
  4. 전열기구,드라이기, 토스트기, 밥솥 열이나는.가전제품은나라가 바뀌면 새것 쓰는게 속편하기 때문에 정말 필요한 제품만 구매 후 귀국시에는 팔아치운다.
  5. 가구는 이케아가 좋다. 가격도 싸고 현지 조달도 쉬우며 분해했을 때 짐으로 보내기도 쉽다.
  6. 다양한 문화에 대한 적응력을 길러놓는다. 다양한 나라 음식을 여러날에 걸쳐서 먹을 수 있어야 한다. 애초에 한식만 고집할거라면 한국에 남는다.
  7. 다양한 화폐를 조금씩 보유한다. 달러, 유로, 엔 위주로 계좌를 개설하고 한화로 백단위 금액을 넣어놓는다. 나중에 초기 정착시에 많이 유리하다.
  8. 케이블 tv말고 넷플릭스를 활용. 계약기간이 있을 수 있기때문에 이주시에 불리하다. 유선전화도 되도록 설치하지 않는다. 넷플릭스에 적응하는편이 속편하다
  9. 핸드폰이나 랩탑은 애플이나 삼성제푸이 수리에도 좋고 해외에서 지원도 잘되면 돈으로 바꾸기에도 수월.
  10. 이런 생활을 이해해 줄 수 있는 배우자. 타지에서 혼자생활하면 외롭다.

관련 링크들

https://nomadlist.com/

https://www.safaribooksonline.com/

Reactive Functional Programming

RxJS merge operator

reactive programming 이 요새 너무 뜨는데, 왜 뜨는걸까 간단히 정리해본다.

  • Functional Programming 의 장점을 취하고 싶다
  • OOP는 왜 안되고 ?Functional Programming을 해야하나
  • OOP는 변화하는 부분을 캡슐화 해서 코드를 이해하기 쉽게 만듬
  • FP는 변화하는 부분 자체를 최소화 해서 코드를 이해하기 쉽게 만듬
  • 암달의 법칙 (Amdahl’s law) – 병렬 프로그램에서 병렬화 , 직렬화 할 수 있는 부분이 있다고 했을 때 그 프로그램의 성능은 병렬화 할 수 있는 코드의 크기로 결정됨
  • 자바스레드와 락을 이용해서 병렬 프로그램? 힘들 것 같다.
  • CPU코어가 빨라지는데는 한계가 있음 병렬화 할 수 있는 프로그램이 대세가 될 것
  • FP를 사용하고 싶지만 사용자 UI를 다루는 부분등에서 부수효과는 (Side-Effect) 생김.
  • FP를 사용하며 ?Side Effect 효과를 낼 수 있는 게 Reactive Programming
  • Reactive Programming 은 데이터의 흐림이 그 핵심이 있음
    • a=10
    • b= a + 1
    • a = 100
    • b?
  • RP에서는 b가 101이 된다. 자바나 C에서 b의 값은 11, 엑셀이 가장 대표적인 RP
  • Funtional Reactive Programming 을 해서 얻어지는 장점은?
  • Reative Manifeto (리액티브 선언)에 그 답이 있음. 리액티브한 프로그램의 정의는 다음과 같음
    • responsive – 실시간으로 사용자와 상호작용하는 앱 , 몇 초의 반응 속도도 만족못함 밀리세컨단위
    • resilient – 오류를 스스로 검출하고 격리시킴, 사용자에겐 validation error, 다른 서비스에겐 application error
    • elastic – 클라우드를 이용한 스케일 아웃 , 경합을 최소화하고 지역 참조성 (Locality of refernce)을 높여야 함함, Share Nothing Design
    • message driven – 서로 강하게 묶여 있지 않음 , SOA, 비동기적으로 통신, 낮은 지연율과 높은 처리율
  • React를 이용한 FRP
  • 비동기 데이터 스트림을 처리할 수 있는 프로그래밍
  • 마우스 스크롤, 이벤트, 변수등 모두 스트림 입력
  • 서버 Node,js 클라이언트 React.js 를 이용해 한벌의 UI 공유
  • UI는 자바스크립트로

Small meeting /w Bom

정해진 시간을 넘겨 3시간이나 Bom 과 미팅을 했는데,

정리 해둘 겸 블로그에 정리 해놓는다.

한국 사회에 파급력 있는 사람이기 때문에 가까이서 대화를 나눴던 사람으로서 기록을 남겨놓는 것이 좋다고 판단한다.

부정적인 뉘앙스가 있을 수도 있지만 굉장히 긍정적인 경험이었다. ( 부정적이었다면 적지도 않음.)

첫인상은 절대 Good listener 는 아니라는 것,? 굉장히 열정적으로 자기 생각을 주입시킨다.

내부에서는 이런 비젼 공유하는 자리를 부흥회라고 한다. 하고싶은 이야기가 머리 밖으로 쏟아지는 것이 보일정도.

예전보다 효과가 조금 떨어지긴 했지만 여전히 CEO가 일반 직원들과 직접 이야기 한다는 것은 굉장히 고무적인 일이 아닐 수 없다.

다만 그 비젼이나 방향성들이 중간 관리자 (다른 조직보다는 확연하게 적지만 그래도 있다) 들이 공유하지 못하고 있다는 느낌.

이건 Bom 과 중간관리자 모두에게 잘못이 있다고 본다.

감히 직원으로서 판단하자면,

비젼 제시와 공유라는 CEO의 가장 중요한 목표에 대해서는 A+ 를 받기 부족함이 없고

소탈하고 친화력이 있어서 대부분의 사람들한테는 호감을 주는 것 같다,

다만 다소 일방적인 면이 있고, 워낙 말을 많이 하다보니 가끔 직원들에게 허언?으로 들리는 말을 가끔 한다는 것 정도가 단점이라고 하겠다.

그렇지만 한국 어디에서도 찾아 볼 수 없는 CEO는 맞다.

  • 특정 비즈니스( local )은 우리가 아니어도 충분히 다른데서 서비스를 받을 수 있다, 품질도 우리가 퀄리티 못함. 그래서 키우지 않음.
  • 개인적으로는 셀러 페이지 만드는 것은 반대, 고객한테 정말 좋은 경험이 될 것 인가?
  • 업무 중에 자기 이름을 대고 추진력을 높이는 사례가 종종 있는데 , 구체적인 사례들 들어달라
    • 누구를 한명 찾아서 Blame 하려는 것은 아니라 프로세를 바꾸고 싶어서 그렇다
    • 회의 중에 Disagree 하고 끝나면 Commit 해야 하는데 안그런 사람이 너무 많다
    • 측근 중에도 회의 끝나고, 따로 이야기 하자고 하는 경우가 몇번 있는데, 확실하게 no라고 이야기하고 회의떄 이야기 하자고 한다.
  • 정말 우리가 없으면 고객들이 슬퍼할 것인가? 갸갸갸 인 서비스는 필요없다. 확실히 누구보다 좋아야 함
  • 복지는 식당의 위생과 같아서 고민없을 특정 수준만 넘어서면 일하면서 얻는 재미가 더 중요하다.
    • 그러나 현재 별로 재미 없어지고 있는데 그 이유는 무엇인가. ?
    • 커뮤니케이션이 적어서 Why 에 대한 이해 없이 일하기 때문에… 그렇다면 PSI 플래닝을 강화
  • 고객에게 노출되는 쪽이라 보이는 장애가 많아서 실제 업무에 집중하기가 힘듬.
    • 개발자를 많이 채용해서 실제 업무비중을 늘릴 수 있도록 하겠다. ( 리크루팅이 문제.)
  • 프라이스 라인.. 별볼일 없는 회사 였는데, 부킹 닷컴 인수 후 50조 가치가 됨
    • 부킹 닷컴은 SPC 중 Conveninece 로는 제일 가는 회사
  • 채용시에 나이 안물어 볼 것. 나이가 뭐가 중요한가? 사람이 너무 없기 때문에 나이 가려가면서 채용할 수 없음
  • One-way door, Two-way door 의사 결정에 있어서 대부분 Two-way? . 잘 안되면 다시 돌아오면 됨.
  • 개발자를 데려 오기 위해 좋은 방법이 있으면 강구해 달라, 일정 시간을 리크루팅에 쏟으면 좋아질까?
    • 개발자가 굉장히 많은 회사지만 외부적으로 공개하는게 적지만 (기술 Blog 나 컨퍼런스 스폰서등)
    • 우리는 확실히 하이테크 컴퍼니이다 (이부분은 동감) 밖에서 보이기에는 쇼핑몰 하나지만 굉장히 많은 것들을 소프트웨어로 처리함.

SRE (Site Reliability Engineering) 를 읽고나서..

http://www.amazon.com/Site-Reliability-Engineering-Production-Systems/dp/149192912X

올해 출판된 책인데, 내용이 괜찮아서 번역되기 전에 원서로 읽고 간단히 정리함.

Preface

  • SE (Software Engineering) 와 아이를 가지는 것의 공통점은 탄생전의 노력도 힘들고 고통스럽지만, 출산 후에 들어가는 노력과 정성이 더 크다는 것이다.
  • 전체 소프트웨어 라이프 사이클의 40%~90% 의 노력이 개발 후에 발생한다.
  • 배포되고 운영되는 소프트웨어를 안정적이라고 간주하는 것은 틀렸다
  • SE는 주로 디자인과 개발에 초점을 두는 경향
  • 개발에서 – 배포 – 운영까지 모든 생명주기를 다루는 규칙이 필요
  • 이런 규칙은 보다 넒은 기술셋을 요구하고 다른 종류의 엔지니어와는 조금 다른 관심사를 가진다 – 이런 discipline 을 SRE라고 부른다.

Introduction

  • 전통적인 SysAdmin 은 개발자에 비해서 Operational 한 기술셋을 요구함
    • SysAdmin 의 장점
      • 구현이 쉬움, 다른 유사산업(건설?)에서 예제들을 가져다 쓸 수 있음
      • 관련 스킬 보유자를 찾기 쉬움
      • 기존 도구 & 서비스 제공업체 들이 이미 존재 해서 새로운 도구 개발 필요없음
    • 단점 (개발과 운영을 분리 했을 시)
      • 직접 비용 발생
        • 서비스가 커지면서 변경이 일어나거나 이벤트 발생시에 수동으로 대처하는 방식으로는 많은 인원을 필요로함 -> 비용증가
      • 간접 비용 발생
        • 두팀의 기술셋과 동기, 백그라운드가 다르다는 사실
        • 각자다른 리스크 인식, 해결방안, reliability 에 대한 개념
    • 개발팀은 빠른 기능추가를 원함 ,운영팀은 문제가 없기를 바람람
    • 두팀의 목표가 상이함함
  • 구글은 이런 문제에 SRE 라는 다른 접근 방식을 취함함
  • 간단하게 설명하면 SRE는 개발자 출신의 운영팀
    • 크게 두가지로 분류됨
      • 60%는 구글 Software Engineering
      • 40%는 개발자 역량으로는 조금 부족하지만 다른 전문성을 가진사람 (주로 유닉스와 네트워킹)
    • 근무 시간의 50%는 운영, 50%는 개발에만 씀
    • 채용이 힘들다
  • SLO (Service Level Objective)
    • 사용자는 100%나 99.99%의 Availability 나 차이를 못 느끼기 때문에 100%를 목표로 잡는 것은 잘못 됨
    • 다른 요인으로 인해 100%가 될수도 없음 (네트워크 유실 등)
    • Target Availability 는 반드시 있어야 함
    • 99.99%의 Availability 를 가진다면 0.01% 의 Error Budget 을 가짐짐
    • 이 Error Budget 을 활용하면 SRE팀과 개발팀의 목푤르 일치 시킬 수 있음음
      • Error Budget 내에서 더 빠른 기능 개발 및 배포
  • 모니터링
    • 전통적인 system Metric 에 의한 alert은 잘못된 것임.
    • 인간이 해석을 하는게 아니라 컴퓨터가 해석을 하고 사람은 행동여부만 결정해야 함
      1. alert
      2. ticket
      3. logging
  • 변경관리
    • Progressive roll out
    • 빠르고 정확하게 문제 찾기
    • 문제 발생시 안전한 롤백
  • 수요조사
    • Organic Growth (서비스 런칭 후 자연스러운 증가)
    • Inorganic Growth (새로운 기능 추가 등으로 인한 증가)
  • 프로비져닝

2. Google Production Environment

  • pass

3. Embracing Risk

  • Extreme reliability comes at cost
    • 사용자경험(UX)이 네트워크나 디바이스 같이 less reliable 한 컴포넌트들에 의해 주도되기 때문
  • reliability 를 늘리는 비용은 not linear 이고.. 100x의 비용이 들어감
    • 유후장비에 대한 Cost (cost of redundant machine)
    • 기회 비용 (opportunity cost)
    • 최대한 reliable 하게 만들돼 필요이상은 아님 (no more reliable than it needs to be)
  • 리스크 측정 (Measuring risks)
    • 대부분의 서비스에서 risk tolerance (받아 들일 수 있는 리스크)는 계획되지 않은 다운타임 (unplanned downtime)의 허용시간과 동일
      • Unplanned downtime 은 99.99 와 같이 뒤에 붙는 9의 숫자로 표현될 수 있다.

        Availability = uptime / (uptime + downtime) e.g) 99.99% Availability 는 년간 52.56 분의 downtime 을 의미함

    • 그러나 Google 과 같이 Globally 서비스 하는 회사는 위 값이 의미가 없다
      • 그래서 request success rate 를 사용

        Availability = successful requests / total requests

    • daily 2.5M 요청을 처리할 경우 99.99%의 가용성은 하루에 250 errors 를 의미한다
  • 서비스의 Risk tolerance 알아내기
    • 다음과 같은 Factor 를 사용
      • 필요로 하는 Availability level . 다음과 같은 기준으로 정한다.
        • 사용자의 기대 Level
        • 매출과 즉결되는가?
        • 유료인가 무료인가
        • 시장에 경쟁서비스가 있는가? 그 경쟁상대의 레벨은?
        • 기업고객 대상인가 일반고객 대상인가
      • 종류가 다른 장애는 서비스에 미치는 영향도 다른가?
        • 이미지가 늦데 로딩되는 것과 개인정보가 유출되는 장애는 수준이 다름

4. Service Level Objective

  • SLI (Service Level Indicator)
    • request Latency
    • error rate
    • system throughput
    • Availability
  • SLO (Service Level Objective)
    • SLI < 목표 & lower bound < upper bound

5. Eliminating Toil

  • 구글에서 SRE는 Operational Work 보다 장기 엔지니어링 프로젝트에 시간을 쏟길 원한다. Operational work 는 종종 오해되서 Toil 로 대체해서 사용한다
  • Toil (잡일) 정의하기
    • Manual
      • 예를들어 어떤 작업을 자동화한 스크립트를 사람이 수동으로 돌리는 것
    • Repetitive
    • Automatable
    • 태스크 종료후에도 똑같은 상태일 경우
    • O(n) 으로 증가할 경우
  • SRE 는 50% 이하의 시간만 Toil (잡일)에 쓰고 나머지 시간은 Toil 을 제거하는 일에 쓴다
    • 이 잡일들을 빨리 제거하지 않으면 곧 일의양이 늘어나고 모든 사람들의 시간을 100% 소비하게 된다
      • SRE 채용시에도 분명히 알려줌. 단순 운영업무가 아니다
    • 잡일은 항상 나쁜가?
    • 규모가 작을때는 그렇지 않을 수도 있다. 그런종류의 일에서 성취감을 느끼고 , 좋아하는 사람들도 있음음.
    • low risk , low stress
    • 양이 많아지면 그사람의 커리어 자체를 위협

6. Monitoring Distributed system

  • 구글에서 사용하는 용어
    • 화이트박스 모니터링
      • JVM 메트릭이나 내부 시스템 정보를 사용한 모니터링
    • 블랙박스 모니터링
      • 외부에서 사용자의 시선으로 모니터링
    • 대시보드
      • 서비스의 핵심 지표를 보여주는 웹 애플리케이션
  • 4가지 중요 지표
    • Latency
      • 성공한 요청과 실패한 요청의 latency 를 섞지 마라라
      • Slow error 는 Fast error 보다 나쁘다
    • Traffic
      • 시스템 별로 조금씩 측정기준이 다를 수 있다
      • 웹서비스의 경우 초당 http request
      • 오디오 스트리밍의 경우 동시 세션수나 네트워크 량
    • errors
      • 요청당 에러 비율
      • 500 or 200 이지만 비정산 응답을 모두 카운팅
    • Saturation
      • 시스템의 포화도

7. Evolution of automation at Google

  • 자동화의 가치
    • 일관성 (Consistency)
    • 확장 가능한 플랫폼으로 커질 수 있다
      • 플랫폼화 되면 버그나 실수들도 쉽게 관리가 되고 동시에 처리 가능능
    • Faster Recovery
    • Faster Action
  • automation
    • 소프트웨어 위에 동작하는 소프트웨어. Meta SW
    • 예제..
      • 사용자 계정 생성
      • 클러스터 구성
      • 소프트웨어설치
      • 서비스 롤아웃
      • 실시간 설정 변경