운체조교
3k
2022-06-28 08:06:17
2
1373

Scalability에 대해 (부제: 아마존 개발자는 왜 돈을 많이 받나)


예전에 제 개인 페이스북에 올렸던 글을 공유합니다. 때문에 반말인 점은 양해 부탁 드립니다.

===

아침에 동전 세탁방에서 세탁을 돌려 놓고 Software Engineering Daily 를 듣는데, Scalability에 대한 재밌는 내용이 나왔다.
출연자는 Lee Atchison 이라는 분으로, 다양한 회사에 있었지만 특히 이번 에피소드에서는 Amazon이 리테일 기업이고 한 주에 20-30달러일 때부터 시작해 AWS를 만들던 시절의 얘기를 하면서 어떻게 Scalable한 서비스 인프라를 만드는지에 대한 썰을 푸셨다. (메모하면서 들은게 아니라 기억 나는 것 + 내 생각을 쓰는거라, 궁금하신 분은 저번 주 일요일자 Architecting for Scale with Lee Atchinson 에피소드를 들으시면 되겠다)
1. Scalability에서 제일 중요한건 문화적 요소다. 돈으로 발라서 해결되는 문제가 아닌 과학적인 접근이 필요하다. 이 과정에서 실패에 대한 용인도 필요하고, scalability를 위해 업무 프로세스나 인프라 등 많은 것들에 대한 변화를 납득할 수 있는 문화가 필요하다.
2. 측정해야한다. 측정을 위해서는 지표를 마련해야 한다. 이 지표는 당연하게도 단순 throughput만은 아니고, availability나 fault 패턴들도 반영해야 한다. 뿐만 아니라, 이러한 컴퓨팅적인 요소들로 인해 일어나는 비지니스적인 영향도 지표에 들어 있어야 (유무형의 비용, 어떤 부서가 fault에 의해 stall 해야하고 어떤 부서는 상관없는지 등) 비지니스적으로 유의미한 지표가 나온다.
3. Fault 패턴의 모델링은 likelihood matrix를 만들어서 계산하는데, 말씀하시는걸 보면 (어쩌면 당연하지만) 이 모델은 영업 비밀 같고, time variant 하기 때문에 (즉, 소비자들과 서비스가 시간에 따라 패턴이 달라지기 때문에) 지속적인 업데이트를 해야 한다.
아직 다 들은건 아닌데, 이걸 들으면서 왜 빅테크에서 소프트웨어 엔지니어로서 박사들을 prefer 하는지 좀 이해했다. 어쩌면 대학원에서는 당연하게 과학적 방법론들을 소프트웨어 엔지니어링이 적용한 것들인데, 규모가 크지 않거나 규모가 크더라도 scalability를 확보하기 위한 문화가 되어 있지 않으면 적용이 불가능한 방법이다.
국내도 최근에 많이 바뀌고 있는 만큼, 우리나라도 글로벌 시장 타겟하는 회사들이 많이 나와서 이런 과학적 방법론이 많이 도입 됐으면 좋겠다. 소프트웨어 엔지니어가 되고 싶다고 주변에 얘기하면 보통은 극구 말리는게 참 아쉬웠다. 대략 말리는 레파토리는 박사 받고 CRUD 짜는거 할래? Or 가서 매니저만 할래? 이런거다. (물론 우리나라만 이런건 절대 아니다. 보통 박사 받고 회사 가기 싫어하는 이유가 연구에서 손 놓으면 다시 못돌아올까봐 그런거니까.)
거꾸로 인상적이었던 포인트는 해외는 박사급이 아니어도 저런 문제를 풀고 있는거구나 (당장 출연자만 해도 박사가 아니다) 하는 부분. 빅테크 엔지니어들은 몸값 비쌀만 하다.
1
  • 댓글 2

  • 코딩완전뉴비
    111
    2022-06-29 21:37:23
    좋은 글 올려주셔서 감사합니다.
  • 코딩잘하기
    2k
    2022-07-04 16:05:37

    아마존 CTO인 보겔스 박사의 블로그인데 영어되시면 보셔요 ㅎㅎ 


    https://www.allthingsdistributed.com/2007/10/amazons_dynamo.html


    확실히 저런 분들이 CTO 되야.. 

  • 로그인을 하시면 댓글을 등록할 수 있습니다.