SlideShare a Scribd company logo
1 of 56
Download to read offline
© Copyright 2017 Pivotal Software, Inc. All rights Reserved. Version 1.0
마이크로서비스 – 왜?
피보탈 시리즈 밋업 1편
Younjin Jeong
2019.06.17
Agenda
■ 시리즈 밋업 소개
■ 마이크로 서비스
■ 데모 애플리케이션
시작하기 전에
설문에 참여해 주세요!
https://bit.ly/2NjM2Ld
Register Today 200 USD
Discount Code
[S1P200_YJeong]
October 7–10, 2019
Austin Convention Center
and Save!
시리즈로 진행되는 밋업
피보탈 시리즈 밋업
1화 : 왜 마이크로 서비스인가
2화 : 도메인을 중심으로한 데이터 분리
3화 : 스프링 부트를 사용한 마이크로 서비스, 그리고 페어 프로그래밍
4화 : 스프링 클라우드를 사용한 다수의 마이크로 서비스 연결
5화 : 다수의 마이크로 서비스 팀을 위한 스프링과 데이터 서비스의 배포와 운영
6화 : 멀티 리전, 멀티 클라우드와 하이브리드 모두를 사용가능하게 하는 데이터 복제
7화 : 카오스 엔지니어링 테스트의 적용
8화 : 스프링 클라우드 펑션과 함수형 서비스를 사용한 API 게이트웨이 오프로딩
9화 : 데이터 과학의 서비스 적용
주요 목표: 데이터베이스 서버를 꺼도 지속되는 서비스 만들어 보기
Technology Outcomes - Insurance
Technology
Outcomes
Allstate: Developers spending 80% of time
coding vs. 20% (4X improvement)
Liberty Mutual: Delivered a revenue-
generating app MVP in one month
Talanx Group: Significant increase in % Dev
time on coding
[Major P&C Insurer]: Achieved 90x faster
application release cycles
[Regional P&C Insurer]: Moved from 28-
day deployments to 1
[Regional P&C Insurer]: Went from 21 days to apply
security patches to 1 day, which amounted to
>$1.5M in cost savings (human capital); the
frequency of patching also went from 17x per year
to 365.
[Major P&C Insurer]: Significant operational
efficiencies through pipeline automation - 21
concourse pipelines for systems patching &
upgrades
Liberty Mutual: 60% reduction of
infrastructure cost with PCF
[Major P&C Insurer]: 25% reduction
in computing resource usage
[Major P&C Insurer]: 0% downtime in
production; 0 weekend outages for
application releases; achieving
consistent API response times of < 12ms
[Regional P&C Insurer]: MTTR has gone
from 3 days to 1 hour; also went from 4
hours of production downtime per month
to 0
Allstate: Supporting over 1,000 Developers on
PCF and over 11,000 deployments a month on the
platform; also setup CompoZed labs to accelerate
product team scale
Liberty Mutual: 1,000 production deploys per day
across 600 applications
[Regional P&C Insurer]: Time to scale from 90
days to 10 seconds (autoscaling)
● Speed
● Savings
● Stability
● Scalability
● Security
Pivotal-Enabled Capabilities
Pivotal-Enabled
Capabilities
● Modern Software
Delivery
● Platform Automation
● Cloud-native Security
● Infrastructure
Optimization
● Culture Change
This slide isn’t vetted, but also may not be necessary
마이크로서비스 아키텍처
마이크로 서비스란
a definition of this new architectural term
The term "Microservice Architecture" has sprung up over the last few years to describe a
particular way of designing software applications as suites of independently deployable services.
While there is no precise definition of this architectural style, there are certain common
characteristics around organization around business capability, automated deployment,
intelligence in the endpoints, and decentralized control of languages and data.
In short, the microservice architecture style is an approach to developing a single application as a
suite of small services, each running in its own process and communicating with lightweight
mechanisms, often an HTTP resource API.
- James Lewis and Martin Fowler
마이크로 서비스란
이 새로운 아키텍처 용어의 정의는
“마이크로서비스 아키텍처”는 최근 몇년간 독립적 서비스로 배포가 가능하도록
소프트웨어를 디자인하는 방법에 대한 묘사로 사용되고 있다. 이 아키텍처 스타일에 대한
정확한 정의는 존재하지 않지만, 비지니스 능력에 기반한 조직 구성, 자동화된 배포,
엔드포인트 동작에 대한 정보, 그리고 데이터와 언어를 분산 형태로 다루는 등의 매우
명확한 공통적 특징이 있다.
단순히 말하면, 마이크로서비스 아키텍처 스타일은 여러개의 작은 서비스들을 바탕으로
구성된 하나의 애플리케이션이다. 각각의 작은 서비스들은 자신만의 프로세스를 가지고
있으며, HTTP와 같이 가벼운 방식을 사용하여 통신하도록 구성한다.
- 제임스 루이스와 마틴 파울러
마이크로 서비스의 특징
• 분리된 서비스들의 집합 (Componentization via Services)
• 비지니스 능력에 따른 조직 구성 (Organized around Business Capabilities)
• 프로젝트가 아닌 프로덕트 (Products not Projects)
• 똑똑한 엔드포인트와 멍청한 파이프 (Smart endpoints and dumb pipes)
• 분산된 운영 방식 (Decentralized Governance)
• 분산된 데이터 관리 (Decentralized Data Management)
• 인프라스트럭쳐 자동화 (Infrastructure Automation)
• 실패에 대비한 디자인 (Design for failure)
• 점진적 디자인 (Evolutionary Design)
Conway’s law – Melvyn Conway, 1967
비지니스 능력에 따른 조직 구성
엔드포인트와 파이프
Be of the web, not behind the web
- Ian Robinson
분산된 데이터 관리
인프라스트럭처의 자동화
서로 다른 시스템에서 동작하는 모듈
마이크로 서비스의 미래
• 아마존, 넷플릭스, 더 가디언, UK 정부 디지털 서비스, 호주 리얼에스테이트 서비스, 포워드, 그리고
comparethemarket.com 과 같은 사업자들이 이 분야의 개척자
• 모놀리틱 애플리케이션에 비해서 상당한 장점들이 있지만, 마이크로서비스를 명확하게 정의하기에는 아직
충분한 경험이 쌓이지 않은듯 하다. (2013년 기준)
• 대부분의 아키텍처는 구현 시점 이후 몇년이 지나야 선택이 옳았는지 틀렸는지를 알 수있게 된다. 모듈화에 대해
강력한 의지가 있는 실력있는 팀이 몇년 동안이나 걸려서 모놀리틱 아키텍처를 만들기도 한다. 그리고 많은
시스템에서 마이크로서비스를 어떻게 적용해야 하는지 명확한 답을 낼 수 없는 경우도 많다.
• 분리를 해야 하는 경우 그 경계 지점을 정하는 것은 해당 컴포넌트가 비지니스를 얼마나 잘 반영하고 있는가가
기준이 된다. 하지만 이 경계 지점이 어디인지를 확실하게 구분짓는 것은 어려운 일이다. “점진적 디자인”의
의미는 이런 모호한 경계를 지속적으로 리팩토링 해야 한다는 것이며, 이것은 마이크로서비스 적용의 어려움을
나타낸다.
• 분리된 시스템들이 원격으로 통신하는 상황에서의 리팩토링은 단일 프로세스 내에서의 리팩토링보다 훨씬
어려워질 수 있다.
• 팀의 기술 역량 역시 매우 중요하다. 마이크로서비스는 수많은 새로운 기술을 필요로 하며, 이 새로운 기술을
충분히 습득하지 못한 팀이 엉망의 마이크로서비스를 만들고 있는것은 한참 시간이 지나서야 발견되기도 한다.
https://martinfowler.com/articles/microservices.html
넷플릭스와 마이크로서비스
넷플릭스 2008 – Big Java Big Oracle
http://www.slideshare.net/KevinMcEntee/netflix-incloudsmarch8-2011forwiki
2008
Cloud IaaS
Data
Micro Services
Routing / Health check
API
Logging
Big Oracle
Big Java
Cloud Native – 7 years (2008 – 2015)
현재 - Micro Services Architecture
http://www.slideshare.net/stonse/microservices-at-netflix
시작하기 전에 – 넷플릭스의 마이크로서비스
https://www.youtube.com/watch?v=JctsPpgEsVs
Netflix Regional Failover
넷플릭스와 마이크로서비스
모놀리틱 구조의 한계
30
B
A
D C
A
모듈
의존성 관계
Original
change
Overhead
synchronization
work
D모듈의변경A의Heat가
높을때..
D모듈 변경 시 A,B,C의 추가 테스트 필요
D모듈의 작은 변화도 전체 App의 배포를 요구
D모듈만 테스트하고는 릴리즈 할 수 없음
A,B,C,D모듈이 동시에 변경할 경우 엄청난
부가적인 작업이 필요
결론적으로 매우 느린 릴리즈 사이클이 형성
A 모듈이 집중적으로 많이 사용되는 경우에도
어쩔 수 없이 전체 App을 Scale 헤야 함
(메모리, Disk 등의 비효율성)
A 모듈이 문제가 생기면 장애가 나머지 모듈에도
영향을 줄 수 밖에 없음
모놀리틱 구조의 한계
D모듈 변경 시 A,B,C의 추가 테스트 필요
D모듈의 작은 변화도 전체 App의 배포를 요구
D모듈만 테스트하고는 릴리즈 할 수 없음
A,B,C,D모듈이 동시에 변경할 경우 엄청난
부가적인 작업이 필요
결론적으로 매우 느린 릴리즈 사이클이 형성
A 모듈이 집중적으로 많이 사용되는 경우에도
어쩔 수 없이 전체 App을 Scale 헤야 함
(메모리, Disk 등의 비효율성)
A 모듈이 문제가 생기면 장애가 나머지 모듈에도
영향을 줄 수 밖에 없음
더 신속한
업데이트
독립적인
확장성
장애의
전파없는
가용성
성능과
유저 경험
여러 팀이 독립적으로 릴리즈
사이클을 결정하여,
요구사항을 더 빠르게 반영
(API 기반의 Contract)
부하가 발생하는 모듈만 독립적으로
Scale-Out/In 할 수 있는 구조
장애를 하나의 모듈에만 고립시켜,
전체적인 서비스에는 영향을 끼치지
않음
(더 빠른 Root Cause 분석)
애플리케이션의 사이즈가 축소됨에
따라 Start 시간과 Scale 시간이 단축
모놀리틱 구조의 한계 MSA 도입 시 개선 사항
INVENTORY
Prod Release
Prod Release
Prod Release
CATALOG
Prod Release
Prod Release
Prod Release
REVIEWS
Prod Release
Prod Release
Prod Release
SHIPPING
Prod Release
Prod Release
Prod Release
더 신속한
업데이트
33
C
F
B
G H
ED
A
Microservice
Microservice
Microservice
Microservice
Microservice
Microservice
Microservice
A
Microservice
Microservice
Microservice
B
C
Microservice
Microservice
E
Microservice
Microservice
Microservice
D
Microservice
Microservice
Microservice
H
Microservice
Microservice
Microservice
Microservice
G
Microservice
Microservice
F
Interface
각각의 마이크로 서비스는
독립적으로 Scale-Out/In
First-in First-out
(FIFO)
Queue
Publish-Subscribe
(Pub-Sub)
Queue
Queues, Pub-Sub 등의
비동기성 큐를 통해
독립적으로 Auto-Scale을 할
수 있는 환경
각각의 State 존재
약속된 API로 통신
5 3
2
2
3
4
3
2
독립적인
확장성
장애의
전파없는
가용성
성능과
유저경험
Traffic Pattern Compute Resources Response Time
Long
Start-up
Time
t t t
Short
Start-up
Time
t t t
msInstance
count
Traffic
msInstance
count
Traffic
t1
t1
1,000ms
200ms
넷플릭스가 고려했던 포인트…
마이크로 서비스 동작상태에 대한 모니터링 필요
장애 고립을 제어할 수 있는 역량 필요
API 기반 서비스 연동이 필요
클라우드 기반 서비스 생명주기 관리 필요
팬아웃(Fan-Out) 현상에 대한 제어가 필요
다양한 데이터 서비스를 지원하는 도구 제공이 필요
수많은 마이크로 서비스의 설정 관리 필요
서비스 문제 발생시 자동 복구가 필요
서비스에서 발생하는 로그의 취합 저장 분석 필요
장애를 사전에 테스트할 수 있는 환경이 필요
마이크로 서비스에 적합한 조직 구성
마이크로 서비스에 적합한 문화
Configuration Server
Service Discovery
Circuit Breaker
API Gateway
Distributed Tracing
Zero Downtime Delivery
Fault Injection Test
Chaos Engineering
Persistence Cache Layer
Sidecar / Library
자유와 책임 중심의 개발 문화
셀프 서비스로의 패러다임 변화
넷플릭스의 해결책들…
조직적
변화
기술적
변화
As you’ve seen from some examples, Netflix micro system looks very complicated,
but since you understand what their platform does, it’s a combination of a Micro service and Platform tools.
Netflix, is keep developing various tools to solve “their problems” based on this eco system.
However, it’s not easy to build up this kind of eco system.
https://medium.com/netflix-techblog/netflix-oss-and-spring-boot-coming-full-circle-4855947713a0
넷플릭스가 고려했던 포인트…
마이크로 서비스 동작상태에 대한 모니터링 필요
장애 고립을 제어할 수 있는 역량 필요
API 기반 서비스 연동이 필요
클라우드 기반 서비스 생명주기 관리 필요
팬아웃(Fan-Out) 현상에 대한 제어가 필요
다양한 데이터 서비스를 지원하는 도구 제공이 필요
수많은 마이크로 서비스의 설정 관리 필요
서비스 문제 발생시 자동 복구가 필요
서비스에서 발생하는 로그의 취합 저장 분석 필요
장애를 사전에 테스트할 수 있는 환경이 필요
마이크로 서비스에 적합한 조직 구성
마이크로 서비스에 적합한 문화
넷플릭스의 해결책들..
자유와 책임 중심의 개발 문화
셀프 서비스로의 패러다임 변화조직적
변화
기술적
변화
Configuration Server - 설정
Service Discovery – 서비스 등록/탐색
Circuit Breaker – 장애 고립
API Gateway – API 기반 지원
Distributed Tracing - 모니터링
Zero Downtime Delivery - 배포
Fault Injection – 인위적 장애 주입
Chaos Engineering
Persistence Cache Layer
Sidecar / Library
1
2
3
4
5
6
7
8
• Externalized Config Server
• Service Register & Discovery
• Circuit Breaker
• API Gateway
• Load Balancing with IPC
• Realtime Monitoring
• Zero Downtime Delivery
• Fault Injection Test
• Chaos Engineering
• Etc…
https://netflix.github.io/
Netflix Externalize Configuration – Archaius
https://medium.com/netflix-techblog/announcing-archaius-dynamic-properties-in-the-cloud-bc8c51faf675
Configuration Server - 설정1
Netflix Service Discovery - Eureka
http://techblog.netflix.com/2012/09/eureka.html
Service Discovery – 서비스 등록/탐색2
Netflix Circuit Breaker - Hystrix
https://medium.com/netflix-techblog/introducing-hystrix-for-resilience-engineering-13531c1ab362
Circuit Breaker – 장애 고립3
Netflix API Gateway – Zuul
https://medium.com/netflix-techblog/announcing-zuul-edge-service-in-the-cloud-ab3af5be08ee
API Gateway – API 기반 지원4
Netflix Load Balancing with IPC – Ribbon
https://medium.com/netflix-techblog/announcing-ribbon-tying-the-netflix-mid-tier-services-together-a89346910a62
API Gateway – API 기반 지원4
https://www.slideshare.net/brendangregg/how-netflix-tunes-ec2-instances-for-performance
Netflix Realtime Monitoring – Atlas
Distributed Tracing - 모니터링5
Netflix CI/CD – Spinnaker
https://medium.com/netflix-techblog/global-continuous-delivery-with-spinnaker-2a6896c23ba7
Zero Downtime Delivery - 배포6
Netflix Zero Downtime Delivery – Kayenta
https://medium.com/netflix-techblog/automated-canary-analysis-at-netflix-with-kayenta-3260bc7acc69
Zero Downtime Delivery - 배포6
Netflix Zero Downtime Delivery – Kayenta
Zero Downtime Delivery - 배포6
Netflix Fault Injection Test – FIT
And Automate it
https://medium.com/netflix-techblog/fit-failure-injection-testing-35d8e2a9bb2
Fault Injection – 인위적 장애 주입7
Netflix Chaos Engineering – Simain Army
https://medium.com/netflix-techblog/the-netflix-simian-army-16e57fbab116
Chaos Engineering8
데모 애플리케이션
https://github.com/Pivotal-Field-Engineering/pivotal-bank-demo
Transforming How The World Builds Software
© Copyright 2017 Pivotal Software, Inc. All rights Reserved.

More Related Content

What's hot

MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?VMware Tanzu Korea
 
꿀밋업시리즈3탄_Spring Boot를 활용한 마이크로서비스 개발과 페어프로그래밍(TDD)
꿀밋업시리즈3탄_Spring Boot를 활용한 마이크로서비스 개발과 페어프로그래밍(TDD)꿀밋업시리즈3탄_Spring Boot를 활용한 마이크로서비스 개발과 페어프로그래밍(TDD)
꿀밋업시리즈3탄_Spring Boot를 활용한 마이크로서비스 개발과 페어프로그래밍(TDD)VMware Tanzu Korea
 
Pivotal Cloud Foundry(PCF) 2.0 and Pivotal Container Service ( PKS ) 신혜원
Pivotal Cloud Foundry(PCF) 2.0 and Pivotal Container Service ( PKS ) 신혜원Pivotal Cloud Foundry(PCF) 2.0 and Pivotal Container Service ( PKS ) 신혜원
Pivotal Cloud Foundry(PCF) 2.0 and Pivotal Container Service ( PKS ) 신혜원VMware Tanzu Korea
 
숨겨진 마이크로서비스: 초고속 응답과 고가용성을 위한 캐시 서비스 디자인
숨겨진 마이크로서비스: 초고속 응답과 고가용성을 위한 캐시 서비스 디자인숨겨진 마이크로서비스: 초고속 응답과 고가용성을 위한 캐시 서비스 디자인
숨겨진 마이크로서비스: 초고속 응답과 고가용성을 위한 캐시 서비스 디자인VMware Tanzu Korea
 
Pivotal CF Short-20150109
Pivotal CF Short-20150109Pivotal CF Short-20150109
Pivotal CF Short-20150109Hakchin Kim
 
Pcf 1page 201501
Pcf 1page 201501Pcf 1page 201501
Pcf 1page 201501minseok kim
 
14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용
14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용
14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용Terry Cho
 
Pivotal Labs 고객사례 - Coinone
Pivotal Labs 고객사례 - CoinonePivotal Labs 고객사례 - Coinone
Pivotal Labs 고객사례 - CoinoneVMware Tanzu Korea
 
Cloud native app
Cloud native appCloud native app
Cloud native app재성 고
 
Cloud native application 입문
Cloud native application 입문Cloud native application 입문
Cloud native application 입문Seong-Bok Lee
 
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브[열린기술공방] Container기반의 DevOps - 클라우드 네이티브
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브Open Source Consulting
 
[AIS 2018][Team Tools_Basic] Atlassian 제품 기반의 DevOps 구성 - 투씨드
[AIS 2018][Team Tools_Basic] Atlassian 제품 기반의 DevOps 구성 - 투씨드[AIS 2018][Team Tools_Basic] Atlassian 제품 기반의 DevOps 구성 - 투씨드
[AIS 2018][Team Tools_Basic] Atlassian 제품 기반의 DevOps 구성 - 투씨드Atlassian 대한민국
 
4시간 안에 끝내는 AWS 클라우드 전환 및 운영 환경 구성_최지웅_오픈소스컨설팅
4시간 안에 끝내는 AWS 클라우드 전환 및 운영 환경 구성_최지웅_오픈소스컨설팅4시간 안에 끝내는 AWS 클라우드 전환 및 운영 환경 구성_최지웅_오픈소스컨설팅
4시간 안에 끝내는 AWS 클라우드 전환 및 운영 환경 구성_최지웅_오픈소스컨설팅Open Source Consulting
 
Spring Camp 2017 - DevOps for everyone
Spring Camp 2017 - DevOps for everyoneSpring Camp 2017 - DevOps for everyone
Spring Camp 2017 - DevOps for everyoneJin Gi Kong
 
Intro to hpe helion stackato_paa_s
Intro to hpe helion stackato_paa_sIntro to hpe helion stackato_paa_s
Intro to hpe helion stackato_paa_sSeong-Bok Lee
 
[Atlassian in 부산]Atlassian과 함께한 제품기획부터 출시까지_인프라웨어
[Atlassian in 부산]Atlassian과 함께한 제품기획부터 출시까지_인프라웨어[Atlassian in 부산]Atlassian과 함께한 제품기획부터 출시까지_인프라웨어
[Atlassian in 부산]Atlassian과 함께한 제품기획부터 출시까지_인프라웨어Atlassian 대한민국
 
ALM과 DevOps 그리고 Azure DevOps
ALM과 DevOps 그리고 Azure DevOpsALM과 DevOps 그리고 Azure DevOps
ALM과 DevOps 그리고 Azure DevOpsTaeyoung Kim
 
Confluent Startup Webinar Series
 Confluent Startup Webinar Series Confluent Startup Webinar Series
Confluent Startup Webinar Seriesconfluent
 
Meetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vsMeetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vsminseok kim
 

What's hot (20)

MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
 
꿀밋업시리즈3탄_Spring Boot를 활용한 마이크로서비스 개발과 페어프로그래밍(TDD)
꿀밋업시리즈3탄_Spring Boot를 활용한 마이크로서비스 개발과 페어프로그래밍(TDD)꿀밋업시리즈3탄_Spring Boot를 활용한 마이크로서비스 개발과 페어프로그래밍(TDD)
꿀밋업시리즈3탄_Spring Boot를 활용한 마이크로서비스 개발과 페어프로그래밍(TDD)
 
Pivotal Cloud Foundry(PCF) 2.0 and Pivotal Container Service ( PKS ) 신혜원
Pivotal Cloud Foundry(PCF) 2.0 and Pivotal Container Service ( PKS ) 신혜원Pivotal Cloud Foundry(PCF) 2.0 and Pivotal Container Service ( PKS ) 신혜원
Pivotal Cloud Foundry(PCF) 2.0 and Pivotal Container Service ( PKS ) 신혜원
 
숨겨진 마이크로서비스: 초고속 응답과 고가용성을 위한 캐시 서비스 디자인
숨겨진 마이크로서비스: 초고속 응답과 고가용성을 위한 캐시 서비스 디자인숨겨진 마이크로서비스: 초고속 응답과 고가용성을 위한 캐시 서비스 디자인
숨겨진 마이크로서비스: 초고속 응답과 고가용성을 위한 캐시 서비스 디자인
 
Pivotal CF Short-20150109
Pivotal CF Short-20150109Pivotal CF Short-20150109
Pivotal CF Short-20150109
 
Pcf 1page 201501
Pcf 1page 201501Pcf 1page 201501
Pcf 1page 201501
 
14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용
14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용
14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용
 
Pivotal Labs 고객사례 - Coinone
Pivotal Labs 고객사례 - CoinonePivotal Labs 고객사례 - Coinone
Pivotal Labs 고객사례 - Coinone
 
Cloud native app
Cloud native appCloud native app
Cloud native app
 
Cloud native application 입문
Cloud native application 입문Cloud native application 입문
Cloud native application 입문
 
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브[열린기술공방] Container기반의 DevOps - 클라우드 네이티브
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브
 
[AIS 2018][Team Tools_Basic] Atlassian 제품 기반의 DevOps 구성 - 투씨드
[AIS 2018][Team Tools_Basic] Atlassian 제품 기반의 DevOps 구성 - 투씨드[AIS 2018][Team Tools_Basic] Atlassian 제품 기반의 DevOps 구성 - 투씨드
[AIS 2018][Team Tools_Basic] Atlassian 제품 기반의 DevOps 구성 - 투씨드
 
DevOps Demo
DevOps DemoDevOps Demo
DevOps Demo
 
4시간 안에 끝내는 AWS 클라우드 전환 및 운영 환경 구성_최지웅_오픈소스컨설팅
4시간 안에 끝내는 AWS 클라우드 전환 및 운영 환경 구성_최지웅_오픈소스컨설팅4시간 안에 끝내는 AWS 클라우드 전환 및 운영 환경 구성_최지웅_오픈소스컨설팅
4시간 안에 끝내는 AWS 클라우드 전환 및 운영 환경 구성_최지웅_오픈소스컨설팅
 
Spring Camp 2017 - DevOps for everyone
Spring Camp 2017 - DevOps for everyoneSpring Camp 2017 - DevOps for everyone
Spring Camp 2017 - DevOps for everyone
 
Intro to hpe helion stackato_paa_s
Intro to hpe helion stackato_paa_sIntro to hpe helion stackato_paa_s
Intro to hpe helion stackato_paa_s
 
[Atlassian in 부산]Atlassian과 함께한 제품기획부터 출시까지_인프라웨어
[Atlassian in 부산]Atlassian과 함께한 제품기획부터 출시까지_인프라웨어[Atlassian in 부산]Atlassian과 함께한 제품기획부터 출시까지_인프라웨어
[Atlassian in 부산]Atlassian과 함께한 제품기획부터 출시까지_인프라웨어
 
ALM과 DevOps 그리고 Azure DevOps
ALM과 DevOps 그리고 Azure DevOpsALM과 DevOps 그리고 Azure DevOps
ALM과 DevOps 그리고 Azure DevOps
 
Confluent Startup Webinar Series
 Confluent Startup Webinar Series Confluent Startup Webinar Series
Confluent Startup Webinar Series
 
Meetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vsMeetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vs
 

Similar to 꿀밋업1탄_왜_마이크로서비스인가

[OpenInfra Days Korea 2018] (Track 2) Microservice Architecture, DevOps 그리고 5...
[OpenInfra Days Korea 2018] (Track 2) Microservice Architecture, DevOps 그리고 5...[OpenInfra Days Korea 2018] (Track 2) Microservice Architecture, DevOps 그리고 5...
[OpenInfra Days Korea 2018] (Track 2) Microservice Architecture, DevOps 그리고 5...OpenStack Korea Community
 
Event storming based msa training commerce example add_handson_v3
Event storming based msa training commerce example add_handson_v3Event storming based msa training commerce example add_handson_v3
Event storming based msa training commerce example add_handson_v3uEngine Solutions
 
designing, implementing and delivering microservices with event storming, spr...
designing, implementing and delivering microservices with event storming, spr...designing, implementing and delivering microservices with event storming, spr...
designing, implementing and delivering microservices with event storming, spr...uEngine Solutions
 
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)uEngine Solutions
 
[오픈소스컨설팅] 2019년 클라우드 생존전략
[오픈소스컨설팅] 2019년 클라우드 생존전략[오픈소스컨설팅] 2019년 클라우드 생존전략
[오픈소스컨설팅] 2019년 클라우드 생존전략Ji-Woong Choi
 
All about Data Center Migration Session 1. <Case Study> 오비맥주 사례로 알아보는 DC 마이그레...
All about Data Center Migration Session 1. <Case Study> 오비맥주 사례로 알아보는 DC 마이그레...All about Data Center Migration Session 1. <Case Study> 오비맥주 사례로 알아보는 DC 마이그레...
All about Data Center Migration Session 1. <Case Study> 오비맥주 사례로 알아보는 DC 마이그레...BESPIN GLOBAL
 
Deployment techniques for cloud native
Deployment techniques for cloud nativeDeployment techniques for cloud native
Deployment techniques for cloud nativeAlex Jeong
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice ArchitectureYoonsung Jung
 
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기Amazon Web Services Korea
 
MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드Opennaru, inc.
 
성공적인 하이브리드 클라우드를 위한 레드햇의 전략
성공적인 하이브리드 클라우드를 위한 레드햇의 전략성공적인 하이브리드 클라우드를 위한 레드햇의 전략
성공적인 하이브리드 클라우드를 위한 레드햇의 전략rockplace
 
오라클 클라우드와 함께 떠나는 마이크로서비스 아키텍처로의 여행 V3
오라클 클라우드와 함께 떠나는 마이크로서비스 아키텍처로의 여행 V3오라클 클라우드와 함께 떠나는 마이크로서비스 아키텍처로의 여행 V3
오라클 클라우드와 함께 떠나는 마이크로서비스 아키텍처로의 여행 V3Heejong Lee
 
Micro Service Architecture
Micro Service ArchitectureMicro Service Architecture
Micro Service ArchitectureHEECHEOL YANG
 
Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos uEngine Solutions
 
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...문기 박
 
Amazon & AWS의 MSA와 DevOps, 그리고 지속적 혁신
Amazon & AWS의 MSA와 DevOps, 그리고 지속적 혁신Amazon & AWS의 MSA와 DevOps, 그리고 지속적 혁신
Amazon & AWS의 MSA와 DevOps, 그리고 지속적 혁신AgileKoreaConference Alliance
 
Openshift 활용을 위한 Application의 준비, Cloud Native
Openshift 활용을 위한 Application의 준비, Cloud NativeOpenshift 활용을 위한 Application의 준비, Cloud Native
Openshift 활용을 위한 Application의 준비, Cloud Nativerockplace
 
2_Design_마이크로서비스디자인_JungInLee.pdf
2_Design_마이크로서비스디자인_JungInLee.pdf2_Design_마이크로서비스디자인_JungInLee.pdf
2_Design_마이크로서비스디자인_JungInLee.pdfHanWoongLee2
 
Microservices
Microservices Microservices
Microservices 영기 김
 
Cloud migration pattern using microservices
Cloud migration pattern using microservicesCloud migration pattern using microservices
Cloud migration pattern using microservicesSeong-Bok Lee
 

Similar to 꿀밋업1탄_왜_마이크로서비스인가 (20)

[OpenInfra Days Korea 2018] (Track 2) Microservice Architecture, DevOps 그리고 5...
[OpenInfra Days Korea 2018] (Track 2) Microservice Architecture, DevOps 그리고 5...[OpenInfra Days Korea 2018] (Track 2) Microservice Architecture, DevOps 그리고 5...
[OpenInfra Days Korea 2018] (Track 2) Microservice Architecture, DevOps 그리고 5...
 
Event storming based msa training commerce example add_handson_v3
Event storming based msa training commerce example add_handson_v3Event storming based msa training commerce example add_handson_v3
Event storming based msa training commerce example add_handson_v3
 
designing, implementing and delivering microservices with event storming, spr...
designing, implementing and delivering microservices with event storming, spr...designing, implementing and delivering microservices with event storming, spr...
designing, implementing and delivering microservices with event storming, spr...
 
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
 
[오픈소스컨설팅] 2019년 클라우드 생존전략
[오픈소스컨설팅] 2019년 클라우드 생존전략[오픈소스컨설팅] 2019년 클라우드 생존전략
[오픈소스컨설팅] 2019년 클라우드 생존전략
 
All about Data Center Migration Session 1. <Case Study> 오비맥주 사례로 알아보는 DC 마이그레...
All about Data Center Migration Session 1. <Case Study> 오비맥주 사례로 알아보는 DC 마이그레...All about Data Center Migration Session 1. <Case Study> 오비맥주 사례로 알아보는 DC 마이그레...
All about Data Center Migration Session 1. <Case Study> 오비맥주 사례로 알아보는 DC 마이그레...
 
Deployment techniques for cloud native
Deployment techniques for cloud nativeDeployment techniques for cloud native
Deployment techniques for cloud native
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
 
MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드
 
성공적인 하이브리드 클라우드를 위한 레드햇의 전략
성공적인 하이브리드 클라우드를 위한 레드햇의 전략성공적인 하이브리드 클라우드를 위한 레드햇의 전략
성공적인 하이브리드 클라우드를 위한 레드햇의 전략
 
오라클 클라우드와 함께 떠나는 마이크로서비스 아키텍처로의 여행 V3
오라클 클라우드와 함께 떠나는 마이크로서비스 아키텍처로의 여행 V3오라클 클라우드와 함께 떠나는 마이크로서비스 아키텍처로의 여행 V3
오라클 클라우드와 함께 떠나는 마이크로서비스 아키텍처로의 여행 V3
 
Micro Service Architecture
Micro Service ArchitectureMicro Service Architecture
Micro Service Architecture
 
Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos
 
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
 
Amazon & AWS의 MSA와 DevOps, 그리고 지속적 혁신
Amazon & AWS의 MSA와 DevOps, 그리고 지속적 혁신Amazon & AWS의 MSA와 DevOps, 그리고 지속적 혁신
Amazon & AWS의 MSA와 DevOps, 그리고 지속적 혁신
 
Openshift 활용을 위한 Application의 준비, Cloud Native
Openshift 활용을 위한 Application의 준비, Cloud NativeOpenshift 활용을 위한 Application의 준비, Cloud Native
Openshift 활용을 위한 Application의 준비, Cloud Native
 
2_Design_마이크로서비스디자인_JungInLee.pdf
2_Design_마이크로서비스디자인_JungInLee.pdf2_Design_마이크로서비스디자인_JungInLee.pdf
2_Design_마이크로서비스디자인_JungInLee.pdf
 
Microservices
Microservices Microservices
Microservices
 
Cloud migration pattern using microservices
Cloud migration pattern using microservicesCloud migration pattern using microservices
Cloud migration pattern using microservices
 

More from VMware Tanzu Korea

2018 Pivotal DevOps Day_DevOps 플랫폼 소개 및 데모 (Pivotal Application Service, Pivo...
2018 Pivotal DevOps Day_DevOps 플랫폼 소개 및 데모 (Pivotal Application Service, Pivo...2018 Pivotal DevOps Day_DevOps 플랫폼 소개 및 데모 (Pivotal Application Service, Pivo...
2018 Pivotal DevOps Day_DevOps 플랫폼 소개 및 데모 (Pivotal Application Service, Pivo...VMware Tanzu Korea
 
2018 Pivotal DevOps Day_DevOps 플랫폼 팀 육성/운영 사례
2018 Pivotal DevOps Day_DevOps 플랫폼 팀 육성/운영 사례2018 Pivotal DevOps Day_DevOps 플랫폼 팀 육성/운영 사례
2018 Pivotal DevOps Day_DevOps 플랫폼 팀 육성/운영 사례VMware Tanzu Korea
 
2018 Pivotal DevOps Day_마이크로서비스 전환 방법론과 사례
2018 Pivotal DevOps Day_마이크로서비스 전환 방법론과 사례2018 Pivotal DevOps Day_마이크로서비스 전환 방법론과 사례
2018 Pivotal DevOps Day_마이크로서비스 전환 방법론과 사례VMware Tanzu Korea
 
2018 Pivotal DevOps Day_Pivotal 소개 및 세션 아젠다 소개
2018 Pivotal DevOps Day_Pivotal 소개 및 세션 아젠다 소개2018 Pivotal DevOps Day_Pivotal 소개 및 세션 아젠다 소개
2018 Pivotal DevOps Day_Pivotal 소개 및 세션 아젠다 소개VMware Tanzu Korea
 
클라우드 네이티브 플랫폼의 미래 - Kubernetes 기반의 PCF 로드맵
클라우드 네이티브 플랫폼의 미래 - Kubernetes 기반의 PCF 로드맵 클라우드 네이티브 플랫폼의 미래 - Kubernetes 기반의 PCF 로드맵
클라우드 네이티브 플랫폼의 미래 - Kubernetes 기반의 PCF 로드맵 VMware Tanzu Korea
 
굿 소프트웨어 컴퍼니로의 여정(Journey To Be a Good Software Company)
굿 소프트웨어 컴퍼니로의 여정(Journey To Be a Good Software Company)굿 소프트웨어 컴퍼니로의 여정(Journey To Be a Good Software Company)
굿 소프트웨어 컴퍼니로의 여정(Journey To Be a Good Software Company)VMware Tanzu Korea
 
Core Spring + Reactive 김민석
Core Spring + Reactive  김민석Core Spring + Reactive  김민석
Core Spring + Reactive 김민석VMware Tanzu Korea
 
SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진VMware Tanzu Korea
 

More from VMware Tanzu Korea (18)

2018 Pivotal DevOps Day_DevOps 플랫폼 소개 및 데모 (Pivotal Application Service, Pivo...
2018 Pivotal DevOps Day_DevOps 플랫폼 소개 및 데모 (Pivotal Application Service, Pivo...2018 Pivotal DevOps Day_DevOps 플랫폼 소개 및 데모 (Pivotal Application Service, Pivo...
2018 Pivotal DevOps Day_DevOps 플랫폼 소개 및 데모 (Pivotal Application Service, Pivo...
 
2018 Pivotal DevOps Day_DevOps 플랫폼 팀 육성/운영 사례
2018 Pivotal DevOps Day_DevOps 플랫폼 팀 육성/운영 사례2018 Pivotal DevOps Day_DevOps 플랫폼 팀 육성/운영 사례
2018 Pivotal DevOps Day_DevOps 플랫폼 팀 육성/운영 사례
 
2018 Pivotal DevOps Day_마이크로서비스 전환 방법론과 사례
2018 Pivotal DevOps Day_마이크로서비스 전환 방법론과 사례2018 Pivotal DevOps Day_마이크로서비스 전환 방법론과 사례
2018 Pivotal DevOps Day_마이크로서비스 전환 방법론과 사례
 
2018 Pivotal DevOps Day_Pivotal 소개 및 세션 아젠다 소개
2018 Pivotal DevOps Day_Pivotal 소개 및 세션 아젠다 소개2018 Pivotal DevOps Day_Pivotal 소개 및 세션 아젠다 소개
2018 Pivotal DevOps Day_Pivotal 소개 및 세션 아젠다 소개
 
클라우드 네이티브 플랫폼의 미래 - Kubernetes 기반의 PCF 로드맵
클라우드 네이티브 플랫폼의 미래 - Kubernetes 기반의 PCF 로드맵 클라우드 네이티브 플랫폼의 미래 - Kubernetes 기반의 PCF 로드맵
클라우드 네이티브 플랫폼의 미래 - Kubernetes 기반의 PCF 로드맵
 
굿 소프트웨어 컴퍼니로의 여정(Journey To Be a Good Software Company)
굿 소프트웨어 컴퍼니로의 여정(Journey To Be a Good Software Company)굿 소프트웨어 컴퍼니로의 여정(Journey To Be a Good Software Company)
굿 소프트웨어 컴퍼니로의 여정(Journey To Be a Good Software Company)
 
Netflix MSA and Pivotal
Netflix MSA and PivotalNetflix MSA and Pivotal
Netflix MSA and Pivotal
 
Cloud native enterprise
Cloud native enterpriseCloud native enterprise
Cloud native enterprise
 
gp text roadmap presentation
gp text roadmap presentationgp text roadmap presentation
gp text roadmap presentation
 
GPCloud ( GP on PKS)
GPCloud ( GP on PKS)GPCloud ( GP on PKS)
GPCloud ( GP on PKS)
 
Gemfire Introduction
Gemfire Introduction Gemfire Introduction
Gemfire Introduction
 
Greenplum User Case
Greenplum User Case Greenplum User Case
Greenplum User Case
 
Greenplum Roadmap
Greenplum RoadmapGreenplum Roadmap
Greenplum Roadmap
 
1 greenplum in banking sk cab
1 greenplum in banking   sk cab1 greenplum in banking   sk cab
1 greenplum in banking sk cab
 
Core Spring + Reactive 김민석
Core Spring + Reactive  김민석Core Spring + Reactive  김민석
Core Spring + Reactive 김민석
 
Serverless Spring 오충현
Serverless Spring 오충현Serverless Spring 오충현
Serverless Spring 오충현
 
SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진
 
Spring one platform 2017 kf
Spring one platform 2017  kfSpring one platform 2017  kf
Spring one platform 2017 kf
 

꿀밋업1탄_왜_마이크로서비스인가

  • 1. © Copyright 2017 Pivotal Software, Inc. All rights Reserved. Version 1.0 마이크로서비스 – 왜? 피보탈 시리즈 밋업 1편 Younjin Jeong 2019.06.17
  • 2. Agenda ■ 시리즈 밋업 소개 ■ 마이크로 서비스 ■ 데모 애플리케이션
  • 5. Register Today 200 USD Discount Code [S1P200_YJeong] October 7–10, 2019 Austin Convention Center and Save!
  • 7. 피보탈 시리즈 밋업 1화 : 왜 마이크로 서비스인가 2화 : 도메인을 중심으로한 데이터 분리 3화 : 스프링 부트를 사용한 마이크로 서비스, 그리고 페어 프로그래밍 4화 : 스프링 클라우드를 사용한 다수의 마이크로 서비스 연결 5화 : 다수의 마이크로 서비스 팀을 위한 스프링과 데이터 서비스의 배포와 운영 6화 : 멀티 리전, 멀티 클라우드와 하이브리드 모두를 사용가능하게 하는 데이터 복제 7화 : 카오스 엔지니어링 테스트의 적용 8화 : 스프링 클라우드 펑션과 함수형 서비스를 사용한 API 게이트웨이 오프로딩 9화 : 데이터 과학의 서비스 적용 주요 목표: 데이터베이스 서버를 꺼도 지속되는 서비스 만들어 보기
  • 8. Technology Outcomes - Insurance Technology Outcomes Allstate: Developers spending 80% of time coding vs. 20% (4X improvement) Liberty Mutual: Delivered a revenue- generating app MVP in one month Talanx Group: Significant increase in % Dev time on coding [Major P&C Insurer]: Achieved 90x faster application release cycles [Regional P&C Insurer]: Moved from 28- day deployments to 1 [Regional P&C Insurer]: Went from 21 days to apply security patches to 1 day, which amounted to >$1.5M in cost savings (human capital); the frequency of patching also went from 17x per year to 365. [Major P&C Insurer]: Significant operational efficiencies through pipeline automation - 21 concourse pipelines for systems patching & upgrades Liberty Mutual: 60% reduction of infrastructure cost with PCF [Major P&C Insurer]: 25% reduction in computing resource usage [Major P&C Insurer]: 0% downtime in production; 0 weekend outages for application releases; achieving consistent API response times of < 12ms [Regional P&C Insurer]: MTTR has gone from 3 days to 1 hour; also went from 4 hours of production downtime per month to 0 Allstate: Supporting over 1,000 Developers on PCF and over 11,000 deployments a month on the platform; also setup CompoZed labs to accelerate product team scale Liberty Mutual: 1,000 production deploys per day across 600 applications [Regional P&C Insurer]: Time to scale from 90 days to 10 seconds (autoscaling) ● Speed ● Savings ● Stability ● Scalability ● Security
  • 9. Pivotal-Enabled Capabilities Pivotal-Enabled Capabilities ● Modern Software Delivery ● Platform Automation ● Cloud-native Security ● Infrastructure Optimization ● Culture Change This slide isn’t vetted, but also may not be necessary
  • 11. 마이크로 서비스란 a definition of this new architectural term The term "Microservice Architecture" has sprung up over the last few years to describe a particular way of designing software applications as suites of independently deployable services. While there is no precise definition of this architectural style, there are certain common characteristics around organization around business capability, automated deployment, intelligence in the endpoints, and decentralized control of languages and data. In short, the microservice architecture style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. - James Lewis and Martin Fowler
  • 12. 마이크로 서비스란 이 새로운 아키텍처 용어의 정의는 “마이크로서비스 아키텍처”는 최근 몇년간 독립적 서비스로 배포가 가능하도록 소프트웨어를 디자인하는 방법에 대한 묘사로 사용되고 있다. 이 아키텍처 스타일에 대한 정확한 정의는 존재하지 않지만, 비지니스 능력에 기반한 조직 구성, 자동화된 배포, 엔드포인트 동작에 대한 정보, 그리고 데이터와 언어를 분산 형태로 다루는 등의 매우 명확한 공통적 특징이 있다. 단순히 말하면, 마이크로서비스 아키텍처 스타일은 여러개의 작은 서비스들을 바탕으로 구성된 하나의 애플리케이션이다. 각각의 작은 서비스들은 자신만의 프로세스를 가지고 있으며, HTTP와 같이 가벼운 방식을 사용하여 통신하도록 구성한다. - 제임스 루이스와 마틴 파울러
  • 13. 마이크로 서비스의 특징 • 분리된 서비스들의 집합 (Componentization via Services) • 비지니스 능력에 따른 조직 구성 (Organized around Business Capabilities) • 프로젝트가 아닌 프로덕트 (Products not Projects) • 똑똑한 엔드포인트와 멍청한 파이프 (Smart endpoints and dumb pipes) • 분산된 운영 방식 (Decentralized Governance) • 분산된 데이터 관리 (Decentralized Data Management) • 인프라스트럭쳐 자동화 (Infrastructure Automation) • 실패에 대비한 디자인 (Design for failure) • 점진적 디자인 (Evolutionary Design)
  • 14. Conway’s law – Melvyn Conway, 1967
  • 16. 엔드포인트와 파이프 Be of the web, not behind the web - Ian Robinson
  • 19. 서로 다른 시스템에서 동작하는 모듈
  • 20. 마이크로 서비스의 미래 • 아마존, 넷플릭스, 더 가디언, UK 정부 디지털 서비스, 호주 리얼에스테이트 서비스, 포워드, 그리고 comparethemarket.com 과 같은 사업자들이 이 분야의 개척자 • 모놀리틱 애플리케이션에 비해서 상당한 장점들이 있지만, 마이크로서비스를 명확하게 정의하기에는 아직 충분한 경험이 쌓이지 않은듯 하다. (2013년 기준) • 대부분의 아키텍처는 구현 시점 이후 몇년이 지나야 선택이 옳았는지 틀렸는지를 알 수있게 된다. 모듈화에 대해 강력한 의지가 있는 실력있는 팀이 몇년 동안이나 걸려서 모놀리틱 아키텍처를 만들기도 한다. 그리고 많은 시스템에서 마이크로서비스를 어떻게 적용해야 하는지 명확한 답을 낼 수 없는 경우도 많다. • 분리를 해야 하는 경우 그 경계 지점을 정하는 것은 해당 컴포넌트가 비지니스를 얼마나 잘 반영하고 있는가가 기준이 된다. 하지만 이 경계 지점이 어디인지를 확실하게 구분짓는 것은 어려운 일이다. “점진적 디자인”의 의미는 이런 모호한 경계를 지속적으로 리팩토링 해야 한다는 것이며, 이것은 마이크로서비스 적용의 어려움을 나타낸다. • 분리된 시스템들이 원격으로 통신하는 상황에서의 리팩토링은 단일 프로세스 내에서의 리팩토링보다 훨씬 어려워질 수 있다. • 팀의 기술 역량 역시 매우 중요하다. 마이크로서비스는 수많은 새로운 기술을 필요로 하며, 이 새로운 기술을 충분히 습득하지 못한 팀이 엉망의 마이크로서비스를 만들고 있는것은 한참 시간이 지나서야 발견되기도 한다. https://martinfowler.com/articles/microservices.html
  • 22.
  • 23. 넷플릭스 2008 – Big Java Big Oracle http://www.slideshare.net/KevinMcEntee/netflix-incloudsmarch8-2011forwiki 2008
  • 24. Cloud IaaS Data Micro Services Routing / Health check API Logging Big Oracle Big Java Cloud Native – 7 years (2008 – 2015)
  • 25. 현재 - Micro Services Architecture http://www.slideshare.net/stonse/microservices-at-netflix
  • 26. 시작하기 전에 – 넷플릭스의 마이크로서비스 https://www.youtube.com/watch?v=JctsPpgEsVs
  • 28.
  • 30. 모놀리틱 구조의 한계 30 B A D C A 모듈 의존성 관계 Original change Overhead synchronization work D모듈의변경A의Heat가 높을때.. D모듈 변경 시 A,B,C의 추가 테스트 필요 D모듈의 작은 변화도 전체 App의 배포를 요구 D모듈만 테스트하고는 릴리즈 할 수 없음 A,B,C,D모듈이 동시에 변경할 경우 엄청난 부가적인 작업이 필요 결론적으로 매우 느린 릴리즈 사이클이 형성 A 모듈이 집중적으로 많이 사용되는 경우에도 어쩔 수 없이 전체 App을 Scale 헤야 함 (메모리, Disk 등의 비효율성) A 모듈이 문제가 생기면 장애가 나머지 모듈에도 영향을 줄 수 밖에 없음 모놀리틱 구조의 한계
  • 31. D모듈 변경 시 A,B,C의 추가 테스트 필요 D모듈의 작은 변화도 전체 App의 배포를 요구 D모듈만 테스트하고는 릴리즈 할 수 없음 A,B,C,D모듈이 동시에 변경할 경우 엄청난 부가적인 작업이 필요 결론적으로 매우 느린 릴리즈 사이클이 형성 A 모듈이 집중적으로 많이 사용되는 경우에도 어쩔 수 없이 전체 App을 Scale 헤야 함 (메모리, Disk 등의 비효율성) A 모듈이 문제가 생기면 장애가 나머지 모듈에도 영향을 줄 수 밖에 없음 더 신속한 업데이트 독립적인 확장성 장애의 전파없는 가용성 성능과 유저 경험 여러 팀이 독립적으로 릴리즈 사이클을 결정하여, 요구사항을 더 빠르게 반영 (API 기반의 Contract) 부하가 발생하는 모듈만 독립적으로 Scale-Out/In 할 수 있는 구조 장애를 하나의 모듈에만 고립시켜, 전체적인 서비스에는 영향을 끼치지 않음 (더 빠른 Root Cause 분석) 애플리케이션의 사이즈가 축소됨에 따라 Start 시간과 Scale 시간이 단축 모놀리틱 구조의 한계 MSA 도입 시 개선 사항
  • 32. INVENTORY Prod Release Prod Release Prod Release CATALOG Prod Release Prod Release Prod Release REVIEWS Prod Release Prod Release Prod Release SHIPPING Prod Release Prod Release Prod Release 더 신속한 업데이트
  • 33. 33 C F B G H ED A Microservice Microservice Microservice Microservice Microservice Microservice Microservice A Microservice Microservice Microservice B C Microservice Microservice E Microservice Microservice Microservice D Microservice Microservice Microservice H Microservice Microservice Microservice Microservice G Microservice Microservice F Interface 각각의 마이크로 서비스는 독립적으로 Scale-Out/In First-in First-out (FIFO) Queue Publish-Subscribe (Pub-Sub) Queue Queues, Pub-Sub 등의 비동기성 큐를 통해 독립적으로 Auto-Scale을 할 수 있는 환경 각각의 State 존재 약속된 API로 통신 5 3 2 2 3 4 3 2 독립적인 확장성 장애의 전파없는 가용성
  • 34. 성능과 유저경험 Traffic Pattern Compute Resources Response Time Long Start-up Time t t t Short Start-up Time t t t msInstance count Traffic msInstance count Traffic t1 t1 1,000ms 200ms
  • 35. 넷플릭스가 고려했던 포인트… 마이크로 서비스 동작상태에 대한 모니터링 필요 장애 고립을 제어할 수 있는 역량 필요 API 기반 서비스 연동이 필요 클라우드 기반 서비스 생명주기 관리 필요 팬아웃(Fan-Out) 현상에 대한 제어가 필요 다양한 데이터 서비스를 지원하는 도구 제공이 필요 수많은 마이크로 서비스의 설정 관리 필요 서비스 문제 발생시 자동 복구가 필요 서비스에서 발생하는 로그의 취합 저장 분석 필요 장애를 사전에 테스트할 수 있는 환경이 필요 마이크로 서비스에 적합한 조직 구성 마이크로 서비스에 적합한 문화 Configuration Server Service Discovery Circuit Breaker API Gateway Distributed Tracing Zero Downtime Delivery Fault Injection Test Chaos Engineering Persistence Cache Layer Sidecar / Library 자유와 책임 중심의 개발 문화 셀프 서비스로의 패러다임 변화 넷플릭스의 해결책들… 조직적 변화 기술적 변화
  • 36. As you’ve seen from some examples, Netflix micro system looks very complicated, but since you understand what their platform does, it’s a combination of a Micro service and Platform tools.
  • 37. Netflix, is keep developing various tools to solve “their problems” based on this eco system. However, it’s not easy to build up this kind of eco system.
  • 39. 넷플릭스가 고려했던 포인트… 마이크로 서비스 동작상태에 대한 모니터링 필요 장애 고립을 제어할 수 있는 역량 필요 API 기반 서비스 연동이 필요 클라우드 기반 서비스 생명주기 관리 필요 팬아웃(Fan-Out) 현상에 대한 제어가 필요 다양한 데이터 서비스를 지원하는 도구 제공이 필요 수많은 마이크로 서비스의 설정 관리 필요 서비스 문제 발생시 자동 복구가 필요 서비스에서 발생하는 로그의 취합 저장 분석 필요 장애를 사전에 테스트할 수 있는 환경이 필요 마이크로 서비스에 적합한 조직 구성 마이크로 서비스에 적합한 문화 넷플릭스의 해결책들.. 자유와 책임 중심의 개발 문화 셀프 서비스로의 패러다임 변화조직적 변화 기술적 변화 Configuration Server - 설정 Service Discovery – 서비스 등록/탐색 Circuit Breaker – 장애 고립 API Gateway – API 기반 지원 Distributed Tracing - 모니터링 Zero Downtime Delivery - 배포 Fault Injection – 인위적 장애 주입 Chaos Engineering Persistence Cache Layer Sidecar / Library 1 2 3 4 5 6 7 8
  • 40. • Externalized Config Server • Service Register & Discovery • Circuit Breaker • API Gateway • Load Balancing with IPC • Realtime Monitoring • Zero Downtime Delivery • Fault Injection Test • Chaos Engineering • Etc… https://netflix.github.io/
  • 41. Netflix Externalize Configuration – Archaius https://medium.com/netflix-techblog/announcing-archaius-dynamic-properties-in-the-cloud-bc8c51faf675 Configuration Server - 설정1
  • 42. Netflix Service Discovery - Eureka http://techblog.netflix.com/2012/09/eureka.html Service Discovery – 서비스 등록/탐색2
  • 43. Netflix Circuit Breaker - Hystrix https://medium.com/netflix-techblog/introducing-hystrix-for-resilience-engineering-13531c1ab362 Circuit Breaker – 장애 고립3
  • 44. Netflix API Gateway – Zuul https://medium.com/netflix-techblog/announcing-zuul-edge-service-in-the-cloud-ab3af5be08ee API Gateway – API 기반 지원4
  • 45. Netflix Load Balancing with IPC – Ribbon https://medium.com/netflix-techblog/announcing-ribbon-tying-the-netflix-mid-tier-services-together-a89346910a62 API Gateway – API 기반 지원4
  • 47. Netflix CI/CD – Spinnaker https://medium.com/netflix-techblog/global-continuous-delivery-with-spinnaker-2a6896c23ba7 Zero Downtime Delivery - 배포6
  • 48. Netflix Zero Downtime Delivery – Kayenta https://medium.com/netflix-techblog/automated-canary-analysis-at-netflix-with-kayenta-3260bc7acc69 Zero Downtime Delivery - 배포6
  • 49. Netflix Zero Downtime Delivery – Kayenta Zero Downtime Delivery - 배포6
  • 50. Netflix Fault Injection Test – FIT And Automate it https://medium.com/netflix-techblog/fit-failure-injection-testing-35d8e2a9bb2 Fault Injection – 인위적 장애 주입7
  • 51. Netflix Chaos Engineering – Simain Army https://medium.com/netflix-techblog/the-netflix-simian-army-16e57fbab116 Chaos Engineering8
  • 52.
  • 55.
  • 56. Transforming How The World Builds Software © Copyright 2017 Pivotal Software, Inc. All rights Reserved.