티스토리 뷰

Steve Yegge라는 미국인 개발자가 있습니다.

그는 2005년 중반까지 아마존에서 6년 반동안 일했었고, 13년간 구글에서 일한 후 2018년 구글에서도 퇴사하고,

Grab에 합류하였다가, 2020년 5월 은퇴했습니다.

 

그가 구글에서 근무하던 2012년에, Google+에 내부용으로 쓴 글이 잠깐 외부로 공개된 적이 있습니다.

현재는 삭제되어 원본은 확인할 수 없지만, 글의 흔적은 시간을 흘러 지금까지도 유지되고 있습니다.

블로그 제목(Stevey's Google Platforms Rant)처럼,

다양한 IT 기업을 Rant(큰 소리로 불평하다)하는듯한 다양한 글을 작성했고,

그 중에 그가 일했었던 아마존에 대한 Rant 중 일부가 현재 IT 환경에도 중요한 의미를 선사하고 있으며,

아마존이 클라우드 사업에서도 성공할 수 있었던 이유에 대한 힌트를 제공해 주고 있습니다.

 

그의 글에 따르면, 2002년 아마존에 근무하던 전 직원에게 요약하자면 아래와 같은 내용의 메일이 전달되었다고 합니다.

  1. All teams will henceforth expose their data and functionality through service interfaces.
  2. Teams must communicate with each other through these interfaces.
  3. There will be no other form of interprocess communication allowed: no direct linking, no direct reads of another team's data store, no shared-memory model, no back-doors whatsoever. The only communication allowed is via service interface calls over the network.
  4. It doesn't matter what technology they use. HTTP, Corba, Pubsub, custom protocols -- doesn't matter. Bezos doesn't care.
  5. All service interfaces, without exception, must be designed from the ground up to be externalizable. That is to say, the team must plan and design to be able to expose the interface to developers in the outside world. No exceptions.
  6. Anyone who doesn't do this will be fired.

우리말 번역은 아래와 같습니다.

  1. 모든 팀들은 데이터와 기능들을 서비스 인터페이스로 연결시켜라.
  2. 팀들은 이 인터페이스를 통해서 연락해야 한다.
  3. 다른 어떤 커뮤니케이션 방법도 허용되지 않는다. 직접 링크를 보내거나 다른 팀의 스토리지에 직접 억세스 해서도 안 되며, 공유 메모리나 백도어 같은 것도 안 된다. 모든 커뮤니케이션은 네트워크를 통한 서비스 인터페이스로 이루어져야 한다.
  4. 어떤 기술을 쓰든 상관없다. HTTP, Cobra, Pubsub, 독자 프로토콜…그건 상관없다. 베조스는 그런데 관심 없다.
  5. 모든 서비스 인터페이스는 예외 없이 외부에서 이용 가능하게 만들어져야 한다. 그 말은 팀들은 외부 개발자들이 인터페이스를 이용할 수 있게 해야한다는 것이다. 예외는 없다.
  6. 이를 실천하지 않는 사람은 누구든 해고될 것이다.

간단히 얘기하자면,

개별 서비스는 마음대로 구성하되, 반드시 외부 인터페이스(API)를 제공해야 하며,

내/외부 서비스 간에는 네트워크를 통한 API로 예외없이 연결되어야 한다는 것입니다.

즉, 내부 시스템은 서로간에 API로 통신하는 일종의 서비스 지향 아키텍처(SOA)를 기반으로 구성해야 한다는 것이지요.

 

기존 아마존의 시스템은 이처럼 구성되어 있지 않았을 수도 있지만, 

2002년 메일이 공지된 이후부터는 시작되는 모든 서비스는 모두 이 규칙을 따랐으며,

기존서비스들도 최대한 빠른 시기안에 이 규칙을 따르기 위한 엄청난 변화가 시작되었을 것이라고 예상됩니다.

결국 아마존은 작은 단위의 애플리케이션간 API를 통해 효율적인 서비스 환경을 이용하고 있을 것입니다.

 

해당 내용을 조금 더 살펴보겠습니다.

 

모든 팀들은 데이터와 기능들을 서비스 인터페이스로 연결시켜라.

 

API의 기본은 인터페이스를 통해 해당 기능에 대한 접근을 제공하는 것입니다.

지금은 API를 제공하는 것이 당연시 되고 있지만, 그 당시에는 모든애플리케이션이 API를 제공하지는 않았습니다.

또한, 기능 뿐만 아니라 데이터까지도 모두 API를 통해 연결하도록 지시하고 있습니다.

다른 팀의 수많은 데이터와 서비스를 API를 통해 연결하고, 분석하고, 활용하여

이를 비지니스로 연결시키는 간단하면서 명료한 전제조건입니다.

 

팀들은 이 인터페이스를 통해서 연락해야 한다.

 

다른 어떤 커뮤니케이션 방법도 허용되지 않는다. 직접 링크를 보내거나 다른 팀의 스토리지에 직접 억세스 해서도안 되며, 공유 메모리나 백도어 같은 것도 안 된다. 모든 커뮤니케이션은 네트워크를 통한 서비스 인터페이스로 이루어져야 한다.

 

API를 통해 서비스간 커뮤니케이션을 강화하고, 

형태, 목적, 기능등과 관계없이 무한의 재사용성으로 반복적인 일들에 대해 효과적으로 대응할 수 있습니다.

서비스간에는 완전히 독립된 형태로 구성되며, 일종의 마이크로서비스 아키텍처와 비슷하다고도 할 수 있겠습니다.

 

어떤 기술을 쓰든 상관없다. HTTP, Cobra, Pubsub, 독자 프로토콜…그건 상관없다. 베조스는 그런데 관심 없다.

 

기술을 잘 사용하는 게 목적이 아니라 형태와 기능을 위해 기술을 활용합니다.

클라우드가 목적이 아니라, 비지니스를 잘 사용하기 위한 활용에 초점을 맞춰야 하는 것과 같은 원리입니다.

기술은 계속적으로 발전하고 있으며,  동일한 기능이라도 다양한 방법으로 개발되고 사용되고 있습니다.

모든 개발자와 조직이 정해진 기술 스택만 사용한다면, 표준화에는 많은 도움이 되겠지만,

업무 효율성이나 비지니스에 있어서는 그렇지 못할 것입니다.

 

모든 서비스 인터페이스는 예외 없이 외부에서 이용 가능하게 만들어져야 한다. 그 말은 팀들은 외부 개발자들이 인터페이스를 이용할 수 있게 해야한다는 것이다. 예외는 없다.

 

이 모든 API는 내부에서만이 아니라 외부에도 제공되어, 무한한 확장성을 누릴 수 있습니다.

특히 내부에서의 서비스 뿐만 아니라 외부에 공개된 API는 내부적으로 생각하지 못한 활용방법을 찾을 수도 있고,

무한 경쟁을 통해 더 나은 방식으로 발전할수 있는 디딤돌이 되었을 것입니다.

 

이를 실천하지 않는 사람은 누구든 해고될 것이다.

 

Jeff Bezos는 엘리트주의면서 완벽주의인 성격으로 강력한 리더십을 발휘하는 것으로 알려져 있습니다.

이부분 역시 그의 리더십을 따르지 않는 자에 대한 경고성(?) 멘트로,

빠른 서비스 구성 형태 전환을 촉진하는 촉매제의 역할을 하였을 것입니다.

 

이런 내용을 종합해 보면, 

작은 단위로 애플리케이션을 쪼개고, 서로간에 API를 통해서만 통신하며,

하나의 애플리케이션이 다른 애플리케이션과 완전 독립적으로 운영되는 운영 방식이

마이크로서비스 아키텍처가 추구하는 방향과도 비슷해 보입니다.

이런 최신의 애플리케이션의 구성 방식의 특징 중 하나에 대해,

Jeff Bezos는 AWS가 생기기전부터 이에 대한 확고한 생각을 가지고 있었네요.

무려 19년전에 이러한 생각을 했고 밀어붙힌 그의 혜안과 리더십에 박수를 보냅니다.

 

참고. 현재 남아있는 원본의 복제본은 아래 링크에서 확인할 수 있습니다.

 

Steve's Google Platform rant | Hacker News

 

news.ycombinator.com

참고. 원본의 번역본은 아래 링크에서 확인할 수 있습니다.

 

Google Platforms Rant – Stevey Yegge :: Channy's Blog

나는 아마존에서 6년 반동안 일했고 지금은 구글에서 그만큼 일했다. 두 회사에 대해 생각할 때 가장 먼저 떠오르는 것은-거의 매일 인식하게 되는 것인데- 얼마나 아마존이 일을 잘못 하고 있고

channy.creation.net

참고. Steve Yegge는 다양한 블로그 플랫폼을 이용했으며, 최신 블로그는 아래 링크입니다.

 

Steve Yegge – Medium

Read writing from Steve Yegge on Medium. Steve Yegge is ex-Geoworks, ex-Amazon, ex-Google, and ex-Grab, with nearly 30 years of tech industry experience. Nowadays he’s pretty much retired.

steve-yegge.medium.com

참고. Steve Yegge의 미디엄 이전 블로그는 아래 링크입니다.

 

Stevey's Blog Rants

Ah, clickbait.  Where would the internet be without it?  The answer will shock you! But seriously, I didn't mean to insult your favorite language… much.  After all, your language of choice is probably getting better at a glacial pace.  Right?  If yo

steve-yegge.blogspot.com

 

댓글
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함
최근에 올라온 글
Total
Today
Yesterday
링크