우버의 요금 정책
Uber는 스마트폰 기반 차량공유 플랫폼 서비스를 제공하고 있고 전통적인 택시 시장을 위협하고 있다. 특히 우버는 기존 운송 업체에서 사용하지 않는 Surge Pricing이라는 탄력 요금 전략을 사용하고 있다.
택시의 고질적인 문제점은 송년회 및 회식이 많은 연말이나 특별한 날 소비자의 수요가 많을 때에 택시를 잡기 어렵다는 것이다. 우버는 많은 사람들이 택시를 이용하는 시간대에 가격을 인상하는 정책을 도입했다.
이 전략은 차량 드라이버들에게 단기적인 인센티브 제공 효과가 있기에 많은 사람들이 택시 서비스를 이용하는 시간에 짧게 돈을 벌고 싶어하는 드라이버들을 유도할 수 있다고 봤고 수요가 몰리는 시간에도 많은 ...
Istio & Envoy에서 OpenTracing 사용 하기
Sidecar Proxy는 코드 삽입없이 모니터링 데이터를 얻는 매우 간단한 방법을 제공한다. Tracing은 대규모 분산 시스템에서 가장 어려운 부분이기 때문에 Sidecar Pattern은 큰 이점으로 작용한다.
Sidecar Proxy에서 Tracing을 하기 위해서는 Inbound에서 Outbound 요청으로 일부 Header를 전달해야 한다. Application단에서는 매우 간단하지만 전달받은 Header를 넘기는 로직을 처리하면 불편 할 수 있다. 비즈니스 레이어에서 Header를 전달하는 것을 조정한다고 상상해보면 Sidecar Pattern을 사용하는 이점이 없을 수 도 있다.
Tracing은 ...
Servie Mesh 알아 보기
지난 몇년간 Micro Service Architecture는 많이 발전되어 왔습니다. 그리고 현 시점에 몇 가지 새로운 개념과 패턴이 등장하고 있습니다. 이 중 “Service Mesh” 개념은 많은 인기를 얻고 있습니다. 본 글에서는 Service Mesh와 관련된 주요 개념에 대해서 설명합니다.
Service Mesh의 등장 배경
현재까지 대부분의 사람들은 마이크로 서비스가 SOA/ESB와 같은 이전 아키텍처에서 가진 문제점들의 해답이라고 생각합니다. 그러나 실제 마이크로 서비스를 구현할 때, ESB가 지원하는 대부분의 기능들이 마이크로 서비스 수준에서 구현 가능하다는 것을 알 수 있습니다.
예를 들어...
GraphQL로 BFF 대체하기
위의 그림에서 BFF의 목적은 Orchestration, Business Logic을 공유하고 Backend 서비스가 제공하는 것보다 UI에 친화적인 모델을 제공하는 것입니다. 그래서 각 클라이언트별로 BFF가 존재하게 됩니다. Netflix는 Client Adapter라는 이름으로 SoundCloud는 BFF라는 이름으로 UI에 친화적인 Backend 서비스를 제공하고 있는데, 이런 BFF에도 문제점이 존재합니다.
업무 조직간 교차 관리가 어렵습니다.
Traffic에 대한 용량 사이징을 예측하기 어렵습니다.
단일 실패 지점이 될 가능성이 존재합니다.
추가적인 아키텍처 복잡성이 발생합니다.
...
Simple Work., 단순하게 일하기
애플의 스티브 잡스와의 회의는 힘든 여정이었다고 합니다. 회의 가 끝난 후 안좋은 표정으로 회의실을 나서는 직원들에게 무슨일이 있냐고 물어보면 “Simple Stick으로 맞았다.”라고 얘기한다고 합니다. 스티브 잡스는 비효율적인 회의, 프로젝트라고 판단될 경우 바로 중단을 시키거나 없애버렸다고 합니다. 이런 스티브 잡스의 Simple Stick이 오늘의 Apple을 만든 원동력이라고 평가되고 있습니다. 모든 업무를 단순화 하여 “세상을 바꿀 수 있는 제품과 서비스를 만들자”라는 핵심 가치에 다가서기 때문입니다.
아마존의 사명은 “클릭 한번이면 된다.”입니다. 사실 클릭이 몇 번 필요하긴 하지만 제프 베조스는 이...
Netflix Vizceral
Vizceral은 Netflix Control Plain으로 유입되는 트래픽 상태에 대한 정보를 이해하는 방식을 변화 시켰다고 합니다. Netflix의 경우 전체 시스템의 상태에 기반한 의사결정을 내리기를 원했고 이를 위해서 전체 시스템의 상태에 대해 직관적으로 이해할 수 있는 도구가 필요했습니다. Netflix의 경우 데이터 구문 분석에 의존하는 대신 직관적인 방법을 적용하기로 했습니다. 장애로 인해 수백만명이 영향을 받는 시간을 최소화 하는 방안을 고려했고 이를 Intuition Engineering이라고 부르며 Vizceral이 그 대표적인 예입니다.
아래의 영상은 지역 간 트래픽 이동시 전체적인 모습을 시...
MSA(마이크로 서비스 아키텍처)에서 단일 데이터베이스를 분리해야 하는 이유
기존 Monolithic 서비스를 분해하여 Micro Service 아키텍처를 사용할 경우 데이터베이스에 중점을 두는 것이 중요합니다. 어플리케이션과 연계된 데이터베이스를 여러개의 작은 데이터베이스로 분할하는 확실한 전략이 필요합니다.
즉, 기존에 사용하던 Monolithic의 통합 데이터베이스를 분리해야 합니다.
마이크로 서비스 아키텍처는 각 마이크로 서비스가 자체 도메인 데이터가 있는 별도의 데이터베이스를 가지도록 설계해야 합니다. 이렇게 해야 마이크로 서비스를 독립적으로 배포하거나 확장 할 수 있기 때문입니다.
기존 Monolithic 서비스에는 단일 데이터베이스가 있고 데이터는 다른 컴포넌트간에 공유됩...
Netflix OSS — Eureka 2.0
What is Eureka?
Eureka는 중간 계층 서버의 로드 균형 조정 및 장애 조치를 위한 REST기반 서비스이다. Eureka는 Java 기반 클라이언트 구성 요소인 Eureka Client가 함께 제공되므로 서비스와의 상호 작용이 훨씬 쉬워진다. 또한 클라이언트에는 기본 Round Robin 알고리즘 및 기본 제공 로드 밸런싱 알고리즘이 존재한다.
What is the need for Eureka?
AWS 클라우드에서는 IP 주소와 host name으로 작동하는 기존 로드 밸런서와 달리 서버 등록 및 등록 취소 작업을 정교하게 수행해야 하는 로드 밸런서가 필요하다. AWS는 미들 티어 로드 밸런서를 제...
전체 글 140개, 18 페이지