SlideShare a Scribd company logo
1 of 39
Download to read offline
Microservice Architecture
_개요
1.초보 개발자가 바라본 MSA
2.학습내용
3.레퍼런스 및 자료출처 공유
1. 초보 개발자가 바라본 MSA
주의: 주관적인 내용이 많습니다
MSA가 뭘까?
단일 응용 프로그램을 나누어 작은 서비스의 조합으로 구축하는 방법
Monolitic MSA
: Micro Service Architecture
MSA가 뭘까?
모놀리틱 vs 마이크로 서비스 아키텍처
쇼핑몰 웹
사용자 데이터
상품 데이터
배송 데이터
결제 데이터
사용자 상품
배송 결제
API
사용자 상품 배송 결제
사용자
데이터
쇼핑몰 웹
상품
데이터
배송
데이터
결제
데이터
첫느낌
모르는것 투성
아키텍트의 영역이 아닌가? 나는 프로그래머인데
mesh-up …JWT
Restful API Gateway server …Spring-boot
docker
Proxy
SOA …DevOps
DDD
아키텍처에 대해 알아야 하나?
http://www.javajigi.net/pages/viewpage.action?pageId=138346501
http://blog.java2game.com/213
사용자 요구사항
프로그래머
아키텍처 혹은 or 시니어 프로그래머 or 다수의 프로그래머
“진정한	아키텍트는	태어나는	것이	아니라	만들어지는	것이다”
서버 개발은 여러가지 컴포넌트를 묶어서 하나의 거대한 시스템을 만드는 작업이다.
전체 큰 시스템에 대한 도면, 즉 큰 그림인 아키텍처 설계가 매우 중요한 부분을 차지한다
MSA는 왜 생겨난걸까? - 1
누구나 아는 이야기. 소프트웨어가 복잡해지기 시작했다
사용자 눈높이 증가
사용자, 트래픽 증가
다양한 사용자 계층
복잡한 요구사항
속도와 유연함
사용자 중심
많은 프로그래머 필요
유지보수가 용이한 SW
높은 고가용성
변화 서비스 결과
MSA는 왜 생겨난걸까? - 1
누구나 아는 이야기. 소프트웨어가 복잡해지기 시작했다
사용자 눈높이 증가
사용자, 트래픽 증가
다양한 사용자 계층
복잡한 요구사항
속도와 유연함
사용자 중심
많은 프로그래머 필요
유지보수가 용이한 SW
높은 고가용성
변화 서비스 결과
개발규모에 따른 우리의 모습
프로젝트 관점에서
…
몇명 안되는 단일 서비스
숫자는 많지만, 연관관계가 적은 서비스
숫자도 많고, 연관관계가 높은 서비스
ex : 중소기업-스타트업 등의 소규모 프로젝트
ex : ㅇㅇ채팅, ㅇㅇ비즈, ㅇㅇ게임 등 분리가능한 프로젝트
ex : Netflix, 트위터, 그루폰, 쿠X 등 단일 서비스 개발
…
개발규모에 따른 우리의 모습
프로그래머 관점에서
…
커뮤니케이션 복잡도 빌드시간 개발영역의 의존도
낮음 빠름
높지만
수용가능
낮음 빠름 팀간 의존도는 낮음
매우 높음매우 느림매우 높음
…
자주 만나는 문제해결 전략
Divide and Conquer
분할정복
멀티 프로세서
의존성 주입
테스트 주도개발
분할정복 알고리즘
객체지향 프로그래밍
For Programmer
업무 효율을 위해
…
커뮤니케이션 복잡도 빌드시간 개발영역의 의존도
낮음 빠름
높지만
수용가능
낮음 빠름 낮음
매우 높음매우 느림매우 높음
…
분리하면 좋겠다
마이크로서비스 아키텍처는 모놀리틱 아키텍처의 제약을 다루는 대안 패턴
변화를 예측할 수 없다
사용자 눈높이 증가
사용자, 트래픽 증가
다양한 사용자 계층
복잡한 요구사항
속도와 유연함
사용자 중심
많은 프로그래머 필요
유지보수가 용이한 SW
높은 고가용성
변화 서비스 결과
MSA는 왜 생겨난걸까? - 2
애자일 (Agile)
나선형 개발 방법모델
애자일 (Agile)
cross-functional
한 팀은 피자 두 판을 먹을 수 있는
정도의 인원을 넘지 않는다 - Amazon
기획팀
UX팀
디자인팀
개발팀
DBA
인프라
사용자
서비스
상품
서비스
배송
서비스
결제
서비스
_결론
컨웨이 법칙 (Conway Law) - Conway, Melvin E. (April 1968)
organizations which design systems ... are constrained to produce designs which are
copies of the communication structures of these organizations
소프트웨어의 구조는
그 소프트웨어를 만드는 조직의 구조와 일치한다
2. 본격 MSA 스터디 내용공유
: 살펴보기
Monolithic Architecture
정보출처 : nginx 블로그
Example
Microservice architecture
정보출처 : nginx 블로그
Example
MSA의 배경
Infrastructure Automation
On-demand VirtualizationContinuous DeliveryDomain Driven Design
Polyglot Programming
Reusability Self-Government TeamAgile Development
Elastic, Scalable, Resilience
정보출처 : http://www.slideshare.net/saltynut/building-micro-service-architecture
Scale Cube
세 가지 관점의 규모확장성(Scalability) 모델
정보출처 : Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise - The Art of Scalability
MicroService?
and Focused on Doing One Thing Well
Autonomous
All communication between the services
themselves are via network calls (API)
https://www.safaribooksonline.com/library/view/building-microservices/9781491950340/ch01.html
1. 작고
2. 한가지 일을 잘하는데 초점을 맞추고
3. 자율적이며
4. 네트워크 API를 통해 상호 소통
Small,
SOA?
SOA (Service Oriented Architecture)
- 분산형 아키텍처 구성을 위한 개념, 사상
- 1990년대 정의, 2000년대 유행
- 2010년대 OPEN API의 활성화와 동시에 경량화 되어 그 사상이 많이 회자되고 있다
- 애플리케이션의 기능을 비즈니스적인 의미를 가진 기능단위로 분리 (서비스)
- 표준화된 호출 인터페이스(API)를 통해 서비스를 조합하여 업무기능을 구현
- 중앙 집중적 거버넌스 (ESB)에 대한 많은 문제점
*거버넌스란 시스템을 개발하는 조직의 구조나 프로세스
MSA의 역사
2012년 ThoughWorks의 James Lewis가 “Java, The Unix way”라는 제목의 발표로 처음 언급
2014년 3월 James Lewis와 Martin Fowler가 Microservices라는 타이틀로 패러다임을 정립한 기사를 발표
Google Trend Report
2015. 9
100
MSA
SOA와 비슷. 하지만 경량화 + 특이점 존재
독립적이고 단순한 서비스로 전체 서비스를 구성
독립적인 팀이 각 서비스의 개발과 운영을 담당
정보출처 : 정도현님의 MSA를 이용해 구현하는 고가용/고확장성 서비스
일반적인 구성형태
필요에 따라 확장해서 사용한다
외부망
내부망
API Gateway Server
Service Orchestration Server
Service Server 1 Service Server 2 Service Server 3 Service Server 4
…
…
온라인 쇼핑몰 예시
외부망
내부망
API Gateway Server
…
…
주문하기
사용자 서비스 상품 서비스 결제 서비스 배송 서비스
Scale Cube의 활용
정보출처 : The Art of Scalability 책
사용자 상품 배송 결제
사용자
데이터
쇼핑몰 웹
상품
데이터
배송
데이터
결제
데이터
사용자
사용자
상품
상품
배송
배송
결제
결제xScale
yScale
zScale
X + Y Scale
X + Z Scale
MSA의 특징
1. 서비스로서 컴포넌트화_
2. 비지니스 수행에 따른 구성_
3. 프로젝트가 아닌 제품_
팀의 경계에서 서비스 경계로
각 서비스가 독립적으로 배치 가능
배포가 목적이 아닌 DevOps
MSA의 특징
통신 방식 NO,
마이크로 서비스 YES
다중 기술 플랫폼과 다양한 선택사항
비지니스 현장을 위한 Polyglot Persistence
4. 똑똑한 Endpoint와 바보 Pipeline_
5. 분산화 거버넌스_
6. 분산화된 데이터 관리_
MSA의 특징
클라우드, 올바른 것을 쉽게 만드는 방식
서비스의 설정 상태 등을 확인할 수 있는 강력한 모니터링
출시 프로세스를 더욱 간단하고 신속하게
7. 인프라 자동화_
8. 장애 방지 설계_
9. 진화하는 설계_
분산 웹서비스 사용현황
대용량 웹서비스에서는 이미 사용 중
Architecture Diagram
Netflix Twitter Hailo …
MSA, 꼭 사용해야 하는가?
microservices are no free lunch or silver bullet
아키텍처 결정의 실제 결과는 

구축 후 몇 년이 지난 후에 입증되는 것
대규모 엔터프라이즈 응용 프로그램
팀의 성숙도
?
Gartner Hype Cycle
http://www.gartner.com/technology/research/methodologies/hype-cycle.jsp
Gatner Hype Cycle
3. 레퍼런스 및 자료출처 공유
본 PPT 내용들은 전부 여기서 첨부됬어요
2014년 3월 발표한 James Lewis, Martin Fowler의 Microservices 기사
http://martinfowler.com/articles/microservices.html원글 :
공식 한글 번역본
: http://channy.creation.net/articles/microservices-by-james_lewes-martin_fowler#.VhPvGLxtNGN
2015년 2월 출간된 Oreilly의 “Building Microservice”
https://www.safaribooksonline.com/library/view/building-microservices/9781491950340/ch01.html
preview
:
Chris Richardson의 다수의 참조글
http://microservices.io
2015년 QCon Newyork의 Microservice에 대한 발표자료
https://qconnewyork.com/system/files/keynotes-slides/QCon%20Abstraction%20and%20Federation
%20-%20From%20Micro%20Chips%20to%20Microservices.pdf
조대협님 자료
정도현님 자료
발표자료
: http://www.slideshare.net/andrewdohyunjung/msa-43702981
도서 :
블로그 글
: http://bcho.tistory.com/948 외 다수
http://search.naver.com/search.naver?where=nexearch&query=대용량+아키텍처와+성능+튜닝
&sm=top_sug.pre&fbm=0&acr=1&acq=대용량+아키텍&qdt=0&ie=utf8
발표자료
:http://www.slideshare.net/Byungwook/micro-service-architecture-52233912
발표영상
: https://youtu.be/yaKWoACq-8A
안재우님 자료
적용사례 발표자료
:http://www.slideshare.net/saltynut/building-micro-service-architecture
MSA에 대한 한글자료
http://wiki-camp.appspot.com/%5B번역%5D_마이크로서비스_아키텍처_
%28Microservices_Architecture%29
http://wiki-camp.appspot.com/%5B번역%5D_스케일_큐브(Scale_Cube)
http://channy.creation.net/blog/1051#.VgiGIrRtOgS
http://wiki-camp.appspot.com/MicroService_시스템을_잘_만들기_위해_고민하고_싶은_문제들
MSA에 대한 영어자료
http://alistair.cockburn.us/Hexagonal+architecture
https://www.nginx.com/blog/introduction-to-microservices/
https://blog.docker.com/2014/12/dockercon-europe-keynote-state-of-the-art-in-microservices-by-
adrian-cockcroft-battery-ventures/
질문 토론
감사합니다

More Related Content

What's hot

AWS Elastic BeanstalkとAWS Lambdaのご紹介
AWS Elastic BeanstalkとAWS Lambdaのご紹介AWS Elastic BeanstalkとAWS Lambdaのご紹介
AWS Elastic BeanstalkとAWS Lambdaのご紹介Akio Katayama
 
MSA를 넘어 Function의 로의 진화::주경호 수석::AWS Summit Seoul 2018
MSA를 넘어 Function의 로의 진화::주경호 수석::AWS Summit Seoul 2018MSA를 넘어 Function의 로의 진화::주경호 수석::AWS Summit Seoul 2018
MSA를 넘어 Function의 로의 진화::주경호 수석::AWS Summit Seoul 2018Amazon Web Services Korea
 
[AWS Builders] AWS IAM 을 통한 클라우드에서의 권한 관리 - 신은수, AWS Security Specialist SA
[AWS Builders] AWS IAM 을 통한 클라우드에서의 권한 관리 - 신은수, AWS Security Specialist SA[AWS Builders] AWS IAM 을 통한 클라우드에서의 권한 관리 - 신은수, AWS Security Specialist SA
[AWS Builders] AWS IAM 을 통한 클라우드에서의 권한 관리 - 신은수, AWS Security Specialist SAAmazon Web Services Korea
 
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) 마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) Amazon Web Services Korea
 
1. 아키텍쳐 설계 프로세스
1. 아키텍쳐 설계 프로세스1. 아키텍쳐 설계 프로세스
1. 아키텍쳐 설계 프로세스Terry Cho
 
Massive service basic
Massive service basicMassive service basic
Massive service basicDaeMyung Kang
 
Microservices in Practice
Microservices in PracticeMicroservices in Practice
Microservices in PracticeKasun Indrasiri
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)수보 김
 
스마트 엔지니어링: 제조사를 위한 품질 예측 시뮬레이션 및 인공지능 모델 적용 사례 소개 – 권신중 AWS 솔루션즈 아키텍트, 천준홍 두산...
스마트 엔지니어링: 제조사를 위한 품질 예측 시뮬레이션 및 인공지능 모델 적용 사례 소개 – 권신중 AWS 솔루션즈 아키텍트, 천준홍 두산...스마트 엔지니어링: 제조사를 위한 품질 예측 시뮬레이션 및 인공지능 모델 적용 사례 소개 – 권신중 AWS 솔루션즈 아키텍트, 천준홍 두산...
스마트 엔지니어링: 제조사를 위한 품질 예측 시뮬레이션 및 인공지능 모델 적용 사례 소개 – 권신중 AWS 솔루션즈 아키텍트, 천준홍 두산...Amazon Web Services Korea
 
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐Terry Cho
 
Microservices
MicroservicesMicroservices
MicroservicesSmartBear
 
ELB를 활용한 Socket.IO 멀티노드 구축사례
ELB를 활용한 Socket.IO 멀티노드 구축사례ELB를 활용한 Socket.IO 멀티노드 구축사례
ELB를 활용한 Socket.IO 멀티노드 구축사례Anson Park
 
아꿈사 DDD(Domain-Driven Design) 5장 소프트웨어에서 표현되는 모델
아꿈사 DDD(Domain-Driven Design) 5장 소프트웨어에서 표현되는 모델아꿈사 DDD(Domain-Driven Design) 5장 소프트웨어에서 표현되는 모델
아꿈사 DDD(Domain-Driven Design) 5장 소프트웨어에서 표현되는 모델명환 안
 
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들Brian Hong
 
Cloud Native Architectures for Devops
Cloud Native Architectures for DevopsCloud Native Architectures for Devops
Cloud Native Architectures for Devopscornelia davis
 
Dev ops Introduction
Dev ops IntroductionDev ops Introduction
Dev ops Introduction영기 김
 
Micro Service Architecture의 이해
Micro Service Architecture의 이해Micro Service Architecture의 이해
Micro Service Architecture의 이해Terry Cho
 
AWS 기반 클라우드 아키텍처 모범사례 - 삼성전자 개발자 포털/개발자 워크스페이스 - 정영준 솔루션즈 아키텍트, AWS / 유현성 수석,...
AWS 기반 클라우드 아키텍처 모범사례 - 삼성전자 개발자 포털/개발자 워크스페이스 - 정영준 솔루션즈 아키텍트, AWS / 유현성 수석,...AWS 기반 클라우드 아키텍처 모범사례 - 삼성전자 개발자 포털/개발자 워크스페이스 - 정영준 솔루션즈 아키텍트, AWS / 유현성 수석,...
AWS 기반 클라우드 아키텍처 모범사례 - 삼성전자 개발자 포털/개발자 워크스페이스 - 정영준 솔루션즈 아키텍트, AWS / 유현성 수석,...Amazon Web Services Korea
 
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?VMware Tanzu Korea
 
Cloud, sdn and nfv 기술동향 atto-research-박문기-20171016
Cloud, sdn and nfv 기술동향 atto-research-박문기-20171016Cloud, sdn and nfv 기술동향 atto-research-박문기-20171016
Cloud, sdn and nfv 기술동향 atto-research-박문기-20171016문기 박
 

What's hot (20)

AWS Elastic BeanstalkとAWS Lambdaのご紹介
AWS Elastic BeanstalkとAWS Lambdaのご紹介AWS Elastic BeanstalkとAWS Lambdaのご紹介
AWS Elastic BeanstalkとAWS Lambdaのご紹介
 
MSA를 넘어 Function의 로의 진화::주경호 수석::AWS Summit Seoul 2018
MSA를 넘어 Function의 로의 진화::주경호 수석::AWS Summit Seoul 2018MSA를 넘어 Function의 로의 진화::주경호 수석::AWS Summit Seoul 2018
MSA를 넘어 Function의 로의 진화::주경호 수석::AWS Summit Seoul 2018
 
[AWS Builders] AWS IAM 을 통한 클라우드에서의 권한 관리 - 신은수, AWS Security Specialist SA
[AWS Builders] AWS IAM 을 통한 클라우드에서의 권한 관리 - 신은수, AWS Security Specialist SA[AWS Builders] AWS IAM 을 통한 클라우드에서의 권한 관리 - 신은수, AWS Security Specialist SA
[AWS Builders] AWS IAM 을 통한 클라우드에서의 권한 관리 - 신은수, AWS Security Specialist SA
 
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) 마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
 
1. 아키텍쳐 설계 프로세스
1. 아키텍쳐 설계 프로세스1. 아키텍쳐 설계 프로세스
1. 아키텍쳐 설계 프로세스
 
Massive service basic
Massive service basicMassive service basic
Massive service basic
 
Microservices in Practice
Microservices in PracticeMicroservices in Practice
Microservices in Practice
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)
 
스마트 엔지니어링: 제조사를 위한 품질 예측 시뮬레이션 및 인공지능 모델 적용 사례 소개 – 권신중 AWS 솔루션즈 아키텍트, 천준홍 두산...
스마트 엔지니어링: 제조사를 위한 품질 예측 시뮬레이션 및 인공지능 모델 적용 사례 소개 – 권신중 AWS 솔루션즈 아키텍트, 천준홍 두산...스마트 엔지니어링: 제조사를 위한 품질 예측 시뮬레이션 및 인공지능 모델 적용 사례 소개 – 권신중 AWS 솔루션즈 아키텍트, 천준홍 두산...
스마트 엔지니어링: 제조사를 위한 품질 예측 시뮬레이션 및 인공지능 모델 적용 사례 소개 – 권신중 AWS 솔루션즈 아키텍트, 천준홍 두산...
 
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐
 
Microservices
MicroservicesMicroservices
Microservices
 
ELB를 활용한 Socket.IO 멀티노드 구축사례
ELB를 활용한 Socket.IO 멀티노드 구축사례ELB를 활용한 Socket.IO 멀티노드 구축사례
ELB를 활용한 Socket.IO 멀티노드 구축사례
 
아꿈사 DDD(Domain-Driven Design) 5장 소프트웨어에서 표현되는 모델
아꿈사 DDD(Domain-Driven Design) 5장 소프트웨어에서 표현되는 모델아꿈사 DDD(Domain-Driven Design) 5장 소프트웨어에서 표현되는 모델
아꿈사 DDD(Domain-Driven Design) 5장 소프트웨어에서 표현되는 모델
 
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
 
Cloud Native Architectures for Devops
Cloud Native Architectures for DevopsCloud Native Architectures for Devops
Cloud Native Architectures for Devops
 
Dev ops Introduction
Dev ops IntroductionDev ops Introduction
Dev ops Introduction
 
Micro Service Architecture의 이해
Micro Service Architecture의 이해Micro Service Architecture의 이해
Micro Service Architecture의 이해
 
AWS 기반 클라우드 아키텍처 모범사례 - 삼성전자 개발자 포털/개발자 워크스페이스 - 정영준 솔루션즈 아키텍트, AWS / 유현성 수석,...
AWS 기반 클라우드 아키텍처 모범사례 - 삼성전자 개발자 포털/개발자 워크스페이스 - 정영준 솔루션즈 아키텍트, AWS / 유현성 수석,...AWS 기반 클라우드 아키텍처 모범사례 - 삼성전자 개발자 포털/개발자 워크스페이스 - 정영준 솔루션즈 아키텍트, AWS / 유현성 수석,...
AWS 기반 클라우드 아키텍처 모범사례 - 삼성전자 개발자 포털/개발자 워크스페이스 - 정영준 솔루션즈 아키텍트, AWS / 유현성 수석,...
 
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
 
Cloud, sdn and nfv 기술동향 atto-research-박문기-20171016
Cloud, sdn and nfv 기술동향 atto-research-박문기-20171016Cloud, sdn and nfv 기술동향 atto-research-박문기-20171016
Cloud, sdn and nfv 기술동향 atto-research-박문기-20171016
 

Similar to Microservice Architecture

Microservices
Microservices Microservices
Microservices 영기 김
 
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기Amazon Web Services Korea
 
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)uEngine Solutions
 
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017Amazon Web Services Korea
 
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
 
Micro Service Architecture
Micro Service ArchitectureMicro Service Architecture
Micro Service ArchitectureHEECHEOL YANG
 
꿀밋업1탄_왜_마이크로서비스인가
꿀밋업1탄_왜_마이크로서비스인가꿀밋업1탄_왜_마이크로서비스인가
꿀밋업1탄_왜_마이크로서비스인가VMware Tanzu Korea
 
마이크로 서비스 아키텍쳐 소개 및 구현 방법
마이크로 서비스 아키텍쳐 소개 및 구현 방법마이크로 서비스 아키텍쳐 소개 및 구현 방법
마이크로 서비스 아키텍쳐 소개 및 구현 방법Young Soo Lee
 
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브[열린기술공방] Container기반의 DevOps - 클라우드 네이티브
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브Open Source Consulting
 
[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
 
[Partner TechShift 2017] AWS로 당신의 소프트웨어를 혁신하라
[Partner TechShift 2017] AWS로 당신의 소프트웨어를 혁신하라[Partner TechShift 2017] AWS로 당신의 소프트웨어를 혁신하라
[Partner TechShift 2017] AWS로 당신의 소프트웨어를 혁신하라Amazon Web Services Korea
 
[오픈소스컨설팅]오픈소스 클라우드 개발플랫폼_및_Docker의_이해_v1
[오픈소스컨설팅]오픈소스 클라우드 개발플랫폼_및_Docker의_이해_v1[오픈소스컨설팅]오픈소스 클라우드 개발플랫폼_및_Docker의_이해_v1
[오픈소스컨설팅]오픈소스 클라우드 개발플랫폼_및_Docker의_이해_v1Ji-Woong Choi
 
[OpenInfra Days Korea 2018] Day 2 - E6 - 마이크로서비스를 위한 Istio & Kubernetes [다운로드...
[OpenInfra Days Korea 2018] Day 2 - E6 - 마이크로서비스를 위한 Istio & Kubernetes [다운로드...[OpenInfra Days Korea 2018] Day 2 - E6 - 마이크로서비스를 위한 Istio & Kubernetes [다운로드...
[OpenInfra Days Korea 2018] Day 2 - E6 - 마이크로서비스를 위한 Istio & Kubernetes [다운로드...OpenStack Korea Community
 
AWS re:Invent 특집(2) – 서버리스(Serverless) 마이크로서비스를 위한 일곱 가지 모범 사례 (윤석찬)
AWS re:Invent 특집(2) – 서버리스(Serverless) 마이크로서비스를 위한 일곱 가지 모범 사례 (윤석찬)AWS re:Invent 특집(2) – 서버리스(Serverless) 마이크로서비스를 위한 일곱 가지 모범 사례 (윤석찬)
AWS re:Invent 특집(2) – 서버리스(Serverless) 마이크로서비스를 위한 일곱 가지 모범 사례 (윤석찬)Amazon Web Services Korea
 
[오픈소스컨설팅] 2019년 클라우드 생존전략
[오픈소스컨설팅] 2019년 클라우드 생존전략[오픈소스컨설팅] 2019년 클라우드 생존전략
[오픈소스컨설팅] 2019년 클라우드 생존전략Ji-Woong Choi
 
Cloud migration pattern using microservices
Cloud migration pattern using microservicesCloud migration pattern using microservices
Cloud migration pattern using microservicesSeong-Bok Lee
 
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) 기술동향 소개-박문기@메ᄀ...문기 박
 
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSAVMware Tanzu Korea
 
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?VMware Tanzu Korea
 

Similar to Microservice Architecture (20)

Microservices
Microservices Microservices
Microservices
 
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
 
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
 
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
 
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
 
Micro Service Architecture
Micro Service ArchitectureMicro Service Architecture
Micro Service Architecture
 
꿀밋업1탄_왜_마이크로서비스인가
꿀밋업1탄_왜_마이크로서비스인가꿀밋업1탄_왜_마이크로서비스인가
꿀밋업1탄_왜_마이크로서비스인가
 
마이크로 서비스 아키텍쳐 소개 및 구현 방법
마이크로 서비스 아키텍쳐 소개 및 구현 방법마이크로 서비스 아키텍쳐 소개 및 구현 방법
마이크로 서비스 아키텍쳐 소개 및 구현 방법
 
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브[열린기술공방] Container기반의 DevOps - 클라우드 네이티브
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브
 
[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...
 
[Partner TechShift 2017] AWS로 당신의 소프트웨어를 혁신하라
[Partner TechShift 2017] AWS로 당신의 소프트웨어를 혁신하라[Partner TechShift 2017] AWS로 당신의 소프트웨어를 혁신하라
[Partner TechShift 2017] AWS로 당신의 소프트웨어를 혁신하라
 
[오픈소스컨설팅]오픈소스 클라우드 개발플랫폼_및_Docker의_이해_v1
[오픈소스컨설팅]오픈소스 클라우드 개발플랫폼_및_Docker의_이해_v1[오픈소스컨설팅]오픈소스 클라우드 개발플랫폼_및_Docker의_이해_v1
[오픈소스컨설팅]오픈소스 클라우드 개발플랫폼_및_Docker의_이해_v1
 
[OpenInfra Days Korea 2018] Day 2 - E6 - 마이크로서비스를 위한 Istio & Kubernetes [다운로드...
[OpenInfra Days Korea 2018] Day 2 - E6 - 마이크로서비스를 위한 Istio & Kubernetes [다운로드...[OpenInfra Days Korea 2018] Day 2 - E6 - 마이크로서비스를 위한 Istio & Kubernetes [다운로드...
[OpenInfra Days Korea 2018] Day 2 - E6 - 마이크로서비스를 위한 Istio & Kubernetes [다운로드...
 
AWS re:Invent 특집(2) – 서버리스(Serverless) 마이크로서비스를 위한 일곱 가지 모범 사례 (윤석찬)
AWS re:Invent 특집(2) – 서버리스(Serverless) 마이크로서비스를 위한 일곱 가지 모범 사례 (윤석찬)AWS re:Invent 특집(2) – 서버리스(Serverless) 마이크로서비스를 위한 일곱 가지 모범 사례 (윤석찬)
AWS re:Invent 특집(2) – 서버리스(Serverless) 마이크로서비스를 위한 일곱 가지 모범 사례 (윤석찬)
 
[오픈소스컨설팅] 2019년 클라우드 생존전략
[오픈소스컨설팅] 2019년 클라우드 생존전략[오픈소스컨설팅] 2019년 클라우드 생존전략
[오픈소스컨설팅] 2019년 클라우드 생존전략
 
Cloud migration pattern using microservices
Cloud migration pattern using microservicesCloud migration pattern using microservices
Cloud migration pattern using microservices
 
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) 기술동향 소개-박문기@메ᄀ...
 
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSA
 
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
 
Sencha ExtJS를 활용한 Big Data Platform 개발 사례
Sencha ExtJS를 활용한 Big Data Platform 개발 사례 Sencha ExtJS를 활용한 Big Data Platform 개발 사례
Sencha ExtJS를 활용한 Big Data Platform 개발 사례
 

Microservice Architecture

  • 2. _개요 1.초보 개발자가 바라본 MSA 2.학습내용 3.레퍼런스 및 자료출처 공유
  • 3. 1. 초보 개발자가 바라본 MSA 주의: 주관적인 내용이 많습니다
  • 4. MSA가 뭘까? 단일 응용 프로그램을 나누어 작은 서비스의 조합으로 구축하는 방법 Monolitic MSA : Micro Service Architecture
  • 5. MSA가 뭘까? 모놀리틱 vs 마이크로 서비스 아키텍처 쇼핑몰 웹 사용자 데이터 상품 데이터 배송 데이터 결제 데이터 사용자 상품 배송 결제 API 사용자 상품 배송 결제 사용자 데이터 쇼핑몰 웹 상품 데이터 배송 데이터 결제 데이터
  • 6. 첫느낌 모르는것 투성 아키텍트의 영역이 아닌가? 나는 프로그래머인데 mesh-up …JWT Restful API Gateway server …Spring-boot docker Proxy SOA …DevOps DDD
  • 7. 아키텍처에 대해 알아야 하나? http://www.javajigi.net/pages/viewpage.action?pageId=138346501 http://blog.java2game.com/213 사용자 요구사항 프로그래머 아키텍처 혹은 or 시니어 프로그래머 or 다수의 프로그래머 “진정한 아키텍트는 태어나는 것이 아니라 만들어지는 것이다” 서버 개발은 여러가지 컴포넌트를 묶어서 하나의 거대한 시스템을 만드는 작업이다. 전체 큰 시스템에 대한 도면, 즉 큰 그림인 아키텍처 설계가 매우 중요한 부분을 차지한다
  • 8. MSA는 왜 생겨난걸까? - 1 누구나 아는 이야기. 소프트웨어가 복잡해지기 시작했다 사용자 눈높이 증가 사용자, 트래픽 증가 다양한 사용자 계층 복잡한 요구사항 속도와 유연함 사용자 중심 많은 프로그래머 필요 유지보수가 용이한 SW 높은 고가용성 변화 서비스 결과
  • 9. MSA는 왜 생겨난걸까? - 1 누구나 아는 이야기. 소프트웨어가 복잡해지기 시작했다 사용자 눈높이 증가 사용자, 트래픽 증가 다양한 사용자 계층 복잡한 요구사항 속도와 유연함 사용자 중심 많은 프로그래머 필요 유지보수가 용이한 SW 높은 고가용성 변화 서비스 결과
  • 10. 개발규모에 따른 우리의 모습 프로젝트 관점에서 … 몇명 안되는 단일 서비스 숫자는 많지만, 연관관계가 적은 서비스 숫자도 많고, 연관관계가 높은 서비스 ex : 중소기업-스타트업 등의 소규모 프로젝트 ex : ㅇㅇ채팅, ㅇㅇ비즈, ㅇㅇ게임 등 분리가능한 프로젝트 ex : Netflix, 트위터, 그루폰, 쿠X 등 단일 서비스 개발 …
  • 11. 개발규모에 따른 우리의 모습 프로그래머 관점에서 … 커뮤니케이션 복잡도 빌드시간 개발영역의 의존도 낮음 빠름 높지만 수용가능 낮음 빠름 팀간 의존도는 낮음 매우 높음매우 느림매우 높음 …
  • 12. 자주 만나는 문제해결 전략 Divide and Conquer 분할정복 멀티 프로세서 의존성 주입 테스트 주도개발 분할정복 알고리즘 객체지향 프로그래밍
  • 13. For Programmer 업무 효율을 위해 … 커뮤니케이션 복잡도 빌드시간 개발영역의 의존도 낮음 빠름 높지만 수용가능 낮음 빠름 낮음 매우 높음매우 느림매우 높음 … 분리하면 좋겠다 마이크로서비스 아키텍처는 모놀리틱 아키텍처의 제약을 다루는 대안 패턴
  • 14. 변화를 예측할 수 없다 사용자 눈높이 증가 사용자, 트래픽 증가 다양한 사용자 계층 복잡한 요구사항 속도와 유연함 사용자 중심 많은 프로그래머 필요 유지보수가 용이한 SW 높은 고가용성 변화 서비스 결과 MSA는 왜 생겨난걸까? - 2
  • 16. 애자일 (Agile) cross-functional 한 팀은 피자 두 판을 먹을 수 있는 정도의 인원을 넘지 않는다 - Amazon 기획팀 UX팀 디자인팀 개발팀 DBA 인프라 사용자 서비스 상품 서비스 배송 서비스 결제 서비스
  • 17. _결론 컨웨이 법칙 (Conway Law) - Conway, Melvin E. (April 1968) organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations 소프트웨어의 구조는 그 소프트웨어를 만드는 조직의 구조와 일치한다
  • 18. 2. 본격 MSA 스터디 내용공유 : 살펴보기
  • 19. Monolithic Architecture 정보출처 : nginx 블로그 Example
  • 20. Microservice architecture 정보출처 : nginx 블로그 Example
  • 21. MSA의 배경 Infrastructure Automation On-demand VirtualizationContinuous DeliveryDomain Driven Design Polyglot Programming Reusability Self-Government TeamAgile Development Elastic, Scalable, Resilience 정보출처 : http://www.slideshare.net/saltynut/building-micro-service-architecture
  • 22. Scale Cube 세 가지 관점의 규모확장성(Scalability) 모델 정보출처 : Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise - The Art of Scalability
  • 23. MicroService? and Focused on Doing One Thing Well Autonomous All communication between the services themselves are via network calls (API) https://www.safaribooksonline.com/library/view/building-microservices/9781491950340/ch01.html 1. 작고 2. 한가지 일을 잘하는데 초점을 맞추고 3. 자율적이며 4. 네트워크 API를 통해 상호 소통 Small,
  • 24. SOA? SOA (Service Oriented Architecture) - 분산형 아키텍처 구성을 위한 개념, 사상 - 1990년대 정의, 2000년대 유행 - 2010년대 OPEN API의 활성화와 동시에 경량화 되어 그 사상이 많이 회자되고 있다 - 애플리케이션의 기능을 비즈니스적인 의미를 가진 기능단위로 분리 (서비스) - 표준화된 호출 인터페이스(API)를 통해 서비스를 조합하여 업무기능을 구현 - 중앙 집중적 거버넌스 (ESB)에 대한 많은 문제점 *거버넌스란 시스템을 개발하는 조직의 구조나 프로세스
  • 25. MSA의 역사 2012년 ThoughWorks의 James Lewis가 “Java, The Unix way”라는 제목의 발표로 처음 언급 2014년 3월 James Lewis와 Martin Fowler가 Microservices라는 타이틀로 패러다임을 정립한 기사를 발표 Google Trend Report 2015. 9 100
  • 26. MSA SOA와 비슷. 하지만 경량화 + 특이점 존재 독립적이고 단순한 서비스로 전체 서비스를 구성 독립적인 팀이 각 서비스의 개발과 운영을 담당 정보출처 : 정도현님의 MSA를 이용해 구현하는 고가용/고확장성 서비스
  • 27. 일반적인 구성형태 필요에 따라 확장해서 사용한다 외부망 내부망 API Gateway Server Service Orchestration Server Service Server 1 Service Server 2 Service Server 3 Service Server 4 … …
  • 28. 온라인 쇼핑몰 예시 외부망 내부망 API Gateway Server … … 주문하기 사용자 서비스 상품 서비스 결제 서비스 배송 서비스
  • 29. Scale Cube의 활용 정보출처 : The Art of Scalability 책 사용자 상품 배송 결제 사용자 데이터 쇼핑몰 웹 상품 데이터 배송 데이터 결제 데이터 사용자 사용자 상품 상품 배송 배송 결제 결제xScale yScale zScale X + Y Scale X + Z Scale
  • 30. MSA의 특징 1. 서비스로서 컴포넌트화_ 2. 비지니스 수행에 따른 구성_ 3. 프로젝트가 아닌 제품_ 팀의 경계에서 서비스 경계로 각 서비스가 독립적으로 배치 가능 배포가 목적이 아닌 DevOps
  • 31. MSA의 특징 통신 방식 NO, 마이크로 서비스 YES 다중 기술 플랫폼과 다양한 선택사항 비지니스 현장을 위한 Polyglot Persistence 4. 똑똑한 Endpoint와 바보 Pipeline_ 5. 분산화 거버넌스_ 6. 분산화된 데이터 관리_
  • 32. MSA의 특징 클라우드, 올바른 것을 쉽게 만드는 방식 서비스의 설정 상태 등을 확인할 수 있는 강력한 모니터링 출시 프로세스를 더욱 간단하고 신속하게 7. 인프라 자동화_ 8. 장애 방지 설계_ 9. 진화하는 설계_
  • 33. 분산 웹서비스 사용현황 대용량 웹서비스에서는 이미 사용 중 Architecture Diagram Netflix Twitter Hailo …
  • 34. MSA, 꼭 사용해야 하는가? microservices are no free lunch or silver bullet 아키텍처 결정의 실제 결과는 구축 후 몇 년이 지난 후에 입증되는 것 대규모 엔터프라이즈 응용 프로그램 팀의 성숙도 ? Gartner Hype Cycle http://www.gartner.com/technology/research/methodologies/hype-cycle.jsp Gatner Hype Cycle
  • 35. 3. 레퍼런스 및 자료출처 공유 본 PPT 내용들은 전부 여기서 첨부됬어요
  • 36. 2014년 3월 발표한 James Lewis, Martin Fowler의 Microservices 기사 http://martinfowler.com/articles/microservices.html원글 : 공식 한글 번역본 : http://channy.creation.net/articles/microservices-by-james_lewes-martin_fowler#.VhPvGLxtNGN 2015년 2월 출간된 Oreilly의 “Building Microservice” https://www.safaribooksonline.com/library/view/building-microservices/9781491950340/ch01.html preview : Chris Richardson의 다수의 참조글 http://microservices.io 2015년 QCon Newyork의 Microservice에 대한 발표자료 https://qconnewyork.com/system/files/keynotes-slides/QCon%20Abstraction%20and%20Federation %20-%20From%20Micro%20Chips%20to%20Microservices.pdf
  • 37. 조대협님 자료 정도현님 자료 발표자료 : http://www.slideshare.net/andrewdohyunjung/msa-43702981 도서 : 블로그 글 : http://bcho.tistory.com/948 외 다수 http://search.naver.com/search.naver?where=nexearch&query=대용량+아키텍처와+성능+튜닝 &sm=top_sug.pre&fbm=0&acr=1&acq=대용량+아키텍&qdt=0&ie=utf8 발표자료 :http://www.slideshare.net/Byungwook/micro-service-architecture-52233912 발표영상 : https://youtu.be/yaKWoACq-8A
  • 38. 안재우님 자료 적용사례 발표자료 :http://www.slideshare.net/saltynut/building-micro-service-architecture MSA에 대한 한글자료 http://wiki-camp.appspot.com/%5B번역%5D_마이크로서비스_아키텍처_ %28Microservices_Architecture%29 http://wiki-camp.appspot.com/%5B번역%5D_스케일_큐브(Scale_Cube) http://channy.creation.net/blog/1051#.VgiGIrRtOgS http://wiki-camp.appspot.com/MicroService_시스템을_잘_만들기_위해_고민하고_싶은_문제들 MSA에 대한 영어자료 http://alistair.cockburn.us/Hexagonal+architecture https://www.nginx.com/blog/introduction-to-microservices/ https://blog.docker.com/2014/12/dockercon-europe-keynote-state-of-the-art-in-microservices-by- adrian-cockcroft-battery-ventures/