본문 바로가기

탁월한 전략

6 Ways Not to Scale that Will Make You Hip, Popular and Loved By VCs

원제 : 6 Ways Not to Scale that Will Make You Hip, Popular and Loved By VCs

번역 : 6 Ways Not to Scale that Will Make You Hip, Popular and Loved By VCs

O'Reilly MySQL CE 2011에서 Josh Berkus 가 한 Scale Fail 이라 부르는 재미있는 발표가 있습니다. Josh는 예능감있고, 말을 잘하고, 현명하게도 혼돈속에 통찰을 감추었습니다. 그리고 그 방법으로 멋진 주장을 만듭니다.

Josh는 문제가 있는데, 확장가능하고 믿을만한 사이트를 만들면서 배운 것을 볼 수 있습니다. 그는 회사들이 장애를 위해 모든 주의, 관심, 돈을 쏟아넣고도 "uptime 인터페이스보다 downtime 인터페이스가 더 잘알려진 것인지" 어리둥절 했습니다. 여러분은 커퍼런스에서 함께할 전쟁 이야기를 갖기 위해 자해(self-inflicted wounds)가 필요합니다. 그들은 주목을 받았습니다. 여러분의 일을 지겹게 하세요. 인생이 그럴 수 있다면 매우 불공평한 것입니다.

여러분이 테이블을 돌려 명성과 행운으로 가는 낮은 길을 취한다면, 확장할 때 하지 말것들에 대한 Josh의 프로그램이 있습니다:

  • Be trendy(유행을 따르세요). 가장 시끄러운 도구를 사용하세요: NoSQL, Cloud, MapReduce, Rails, RabbitMQ. 이 도구들은 확장하지 못하게 도와주고 VS가 좋아합니다. 어떤 도구를 사용할지 결정하기 위해 Reddit을 사용하세요. 이번주의 가장 많은 의견은 여러분이 사용해야만 하는 것입니다.
  • Troubleshoot after the barn door has closed(과녁이 닫친 다음에 문제를 해결하세요). 수학은 섹시하지 않습니다. 통계도 섹시하지 않습니다. 자원 모니터링, 트래픽 모니터링, 부하 테스트, 분석 튜닝을 잊어버리세요. 이런 일을 모두 지겹지요. 더 직감적이 되세요. 역사가 길잡이가 되게 하세요. 여러분의 마지막 일에서 있었던 문제는 이번 일에도 있을 문제입니다
  • Don't worry about it(걱정하지 마세요). 병렬 프로그래밍은 섹시하지 않습니다. Erlang 은 1000 노드 클러스터 병렬 프로그램을 할 수 있지만, 그러나 섹시하지 않아요. 엉덩이로부터 뜨거워지세요. 메모리와 관리에 대한 자질구레한 것들을 잊어비세요. 걱정하지 마세요. 많은 락이 있는단일 쓰레드 프로그램을 사용하고, 범위와 메모리 컨텍스트를 잊어버리고, 자주 업데이트 되는 단일 로우 테이블을 이용하고, 모든 것을 제어하는 단일 마스터 큐를 사용하고, 쓰레드 블럭은 여러붐의 친구입니다.
  • Hit the database with every operation(모든 동작에서 데이터베이스를 이용하세요). 캐싱은 친구가 아닙니다. 모든 단일 쿼리는 데이터베이스에 직접 붙어야 합니다. 캐시는 완전히 잊어버리세요.
  • Scale the impossible things(확장은 불가능합니다). 간단한 확장은 WIMP를 위한 것입니다. 거기에는 뜨거운 문제가 없습니다. 웹서버, 캐시, 비공유 호스트, 단순한 app 서버를 확장하는데 생생한 업무가 없습니다. 불가능 확장은 열받는 일입니다: transactions, queues, shared file systems, web frameworks. 이렇게 하면 여러분은 긴 밤과 주말을 일과 함께하고 여러분이 무대에서 전쟁 이야기를 할 수 있습니다.
  • Create single points of failure(단일 지점 장애를 만드세요). 얼마나 큰 소프트웨어이던지, 모든 인프라스터럭쳐를 다운시킬 수 있는 단일 지점 장애 두개는 있습니다. 100% 가용해야 하는 단일 로드 밸랜스, 단일 큐, 로드 밸런스처럼 말입니다.

Josh는 이 프로그램을 따르고 난 뒤에 확장을 하지 말아야 하는 것을 배우고 무대에서 멋진 마초가 될 것이라 말합니다.

기간에 상관없이 프로그래머로써 일한다면 이 분석은 급소를 찌릅니다. 우리가 아는 인간 본성은 커다란 곤경을 극복하는 영웅이 되는 것입니다. 여러분의 코드가 언제나 동작하고 버그를 가진 상태로 배포가 중단되지 않는다면, 역설적으로, 여러분은 조직의 영웅이 될 수 없습니다. 여러분은 단지 믿을 만한 좋은 늙은 조일 뿐입니다. 영웅은  red-bull을 맞으며, 게슴츠레한 눈으로, 마감에 맞춰 마지막 체크인을 하기 위해 7일 내내 머물고 프로그래머입니다. 문제를 고치기 위한 이 모든 것들은 그들이 사실 처음부터 창조되어야 합니다.

여러분의 사이트를 지키기 위한 이야기를 사랑하는 것들을 HighScalability.com에 추가할 수 있습니다. 여러분의 영웅 이야기를 알려주세요.

Related Articles