SlideShare a Scribd company logo
1 of 59
Micro Service Architecture 탐방기
이용희
https://www.facebook.com/yonghee.lee.90
Micro Service Architecture
적용하고 고생해 보니 이런 것들이 중요하더라
Agenda
MSA
왜? MSA에 관심을 가지시나요?
Micro Services Architecture
Google Trend
혹시 뒤쳐질까 두려워서?
고민하던 문제를 해결할 수 있지 않을까?
Micro Service Architecture?
빨리 개발하고, 빨리 적용하여
Time to Market 을 달성하게 할 수 있도록
소프트웨어의 구조를 단순하게 하는 방법 중 하나
Micro Service Architecture?
작은 기능 요소 들을
서비스 단위로 묶어서 배포
MSA 의 9가지 특징
• 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
MSA 의 9가지 특징
• 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
대형 시스템을 개발할 때
기술적 계층에 따라 조직을 구성하는
것에 비해,
MSA에서의 접근 방식은
“비즈니스 수행 능력”에 따라 구분된
서비스 단위로
조직을 구성함
Any organization that designs a system (defined broadly) will produce a design whose structure is a copy
of the organization's communication structure.
-- Melvyn Conway, 1967
분업화를 통한 전문화
재사용을 통한 생산성 향상
기업의 본원적인
2대 활동 원칙!
비즈니스 환경 변화에 능동적으로 대응하기
진짜 귀한 몸
Oracle
DBA님들
각 서비스 팀에
기술 구조를 선택하고 결정할 수 있는
권한이 있어야 함
MSA 의 9가지 특징
• 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
단일 플랫폼에 의한 표준화를 통한
중앙통제모델이 아닌,
각 서비스팀에서 독자적인
거버넌스를 수행하도록 함
플랫폼에 의한 표준화를 통해
전문성을 확보하고
사람"에의 의존성을 제거
Monolithic Architecture 의 장점
모니터링이 쉽다
SPOF
Polyglot or Multilingual
각 서비스파트에서 제공하는 서비스와
일 잘 어울리는 언어를 선택해서 사용
다른 언어도 자바만큼 잘 할 수 있는 사람
SI 환경에서 고객님으로 부터
이 모든 권한을 부여 받을 수 있을까?
http://deanwampler.github.io/polyglotprogramming/papers/PolyglotPolyParadigm.p
df
Any JVM language can be supported so each team can use the
language best suited to them.
The Groovy JVM language was chosen as our first supported
language. The existence of first-class functions (closures),
list/dictionary syntax, performance and debugability were all aspects
of our decision. Moreover, Groovy provides syntax comfortable to a
wide range of developers, which helps to reduce the learning curve for
the first language on the platform.
MSA 의 9가지 특징
• 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
각 서비스 영역에서
자신이 제공하는 서비스의 context에
따라
도메인 영역을 분리(논리적 분리)하고,
데이터의 성격에 맞는 적정한 DB를
선택함(물리적 분리)
Domain Driven Design – Bounded Context
회원은 주소를 여러 개 가질 수 있고,
주소가 같은 다른 회원이 존재할 수 있으므로
주소는 회원의 부가정보다.(도메인 핵심 정보
회원 주소 배송
하나의 배송 정보는 반드시 하나의 주소를 가
배송 한건에 여러 개의 주소를 가질 수 없음.
배송은 주소로 식별이 가능한 도메인 핵심정
회원 주소 배송
회원의 주소가 변경된다면 회원 정보는 즉시 반영(FK)되어야 하지
과거 배송 이력 정보가 변경이 되면 안됨
상품 주문배송
- 재고 - 결제
결제가 실패하면 재고가 하나 줄어 들었던 transaction을 rollback 해야 하는
서비스간 트랜잭션 처리
• 서비스 context 의 영역을 아주 잘 정의 해서 사용한다
• XA를 사용한다
• compensation transaction 을 사용한다
문을 열고, 코끼리를 넣고, 문을 닫는다
코끼리 보다 큰 냉장고를 만들어서 코끼리를 넣는다
코끼리를 미분해서 냉장고에 넣고, 냉장고 속에서 적분
실패를 통해서 경험을 축적해 나가야 하는데,
어느 정도의 사소한 장애를 감수하더라도,
지속적으로 시스템을 개선해 나갈 수 있는
권한을 보장 받는 것이 사실상 불가능
서비스간 트랜잭션 처리
• 서비스 context 의 영역을 아주 잘 정의 해서 사용한다
• XA를 사용한다
• compensation transaction 을 사용
API 를 조합하는 주체는 어디?
MSA 는 서비스 간의 협조를 중요하게 생각합니다.
M.F 는 여러 개의 간단한 기능(function)이 모여 하나의 서비스를 구성
여러 개의 기능을 모으는 녀석을 따로 모아 추상화를 할 수 있다면
밖에서 보이는 그림은 아주 깔끔한 모습이 될 수 있습니다.
성능
SPOF
복잡성 증가
복잡함을 해결하기 위해 시작했는데, 왠지 더 복잡해 지는 것 같다!
Trade off
모니터링
Governing
추상화
성능
복잡도 증가
SPOF
Scale
코드 중복 방지
Fault Tolerance Layer
https://github.com/Netflix/eureka/wiki/Eureka-at-a-glance
API 의 버전 관리, 로드 밸런싱, 서비스 repository 에 대한 고민은
Netflix 의 Eureka 가 좋은 해답이 될 수 있습니다.
MSA 의 9가지 특징
• 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
장애 없는 시스템은 없다!
http://techblog.netflix.com/2012/02/fault-tolerance-in-high-volume.html
Email
Notifiyer
SMS
Notifiyer
참고한 자료
• http://martinfowler.com/articles/microservices.html
• http://techblog.netflix.com/
• https://github.com/Netflix/Hystrix/wiki
• https://github.com/Netflix/eureka/wiki/Eureka-at-a-glance
• http://deanwampler.github.io/
• http://bcho.tistory.com/
• Domain Driven Design
질문은 받지 않으렵니다.
굳이 하신다면…..

More Related Content

What's hot

모바일 개발 트랜드
모바일 개발 트랜드모바일 개발 트랜드
모바일 개발 트랜드Terry Cho
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice ArchitectureYoonsung Jung
 
MSA를 이용해 구현하는 고가용/고확장성 서비스
MSA를 이용해 구현하는 고가용/고확장성 서비스MSA를 이용해 구현하는 고가용/고확장성 서비스
MSA를 이용해 구현하는 고가용/고확장성 서비스DoHyun Jung
 
3. 마이크로 서비스 아키텍쳐
3. 마이크로 서비스 아키텍쳐3. 마이크로 서비스 아키텍쳐
3. 마이크로 서비스 아키텍쳐Terry Cho
 
SOSCON2015 SI이노베이션
SOSCON2015 SI이노베이션SOSCON2015 SI이노베이션
SOSCON2015 SI이노베이션DoHyun Jung
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴Terry Cho
 
마이크로서비스 아키텍처로 개발하기
마이크로서비스 아키텍처로 개발하기마이크로서비스 아키텍처로 개발하기
마이크로서비스 아키텍처로 개발하기Jaewoo Ahn
 
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화Terry Cho
 
제13회컨퍼런스 조대협 서버사이드개발
제13회컨퍼런스 조대협 서버사이드개발제13회컨퍼런스 조대협 서버사이드개발
제13회컨퍼런스 조대협 서버사이드개발Terry Cho
 
Open Cloud Engine PaaS Snapshots
Open Cloud Engine PaaS SnapshotsOpen Cloud Engine PaaS Snapshots
Open Cloud Engine PaaS SnapshotsuEngine Solutions
 
JBUG Korea 소개
JBUG Korea 소개JBUG Korea 소개
JBUG Korea 소개jbugkorea
 
빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.xTerry Cho
 
Os gi 기술교육
Os gi 기술교육Os gi 기술교육
Os gi 기술교육ymtech
 
API Gateway 그리고 모바일 어플리케이션
API Gateway 그리고 모바일 어플리케이션API Gateway 그리고 모바일 어플리케이션
API Gateway 그리고 모바일 어플리케이션BDapis inc.
 
모바일표준Fw 소개자료 20141106
모바일표준Fw 소개자료 20141106모바일표준Fw 소개자료 20141106
모바일표준Fw 소개자료 20141106jSoboro
 
Process Oriented Architecture
Process Oriented ArchitectureProcess Oriented Architecture
Process Oriented ArchitectureuEngine Solutions
 
클라우드와 마이크로 서비스를 위한 새로운 시대의 경량화 WAS - IBM WAS Liberty 서버
클라우드와 마이크로 서비스를 위한 새로운 시대의 경량화 WAS - IBM WAS Liberty 서버클라우드와 마이크로 서비스를 위한 새로운 시대의 경량화 WAS - IBM WAS Liberty 서버
클라우드와 마이크로 서비스를 위한 새로운 시대의 경량화 WAS - IBM WAS Liberty 서버JungWoon Lee
 
02.JBOSS EAP7(FOR CONTAINER/CLOUD)
02.JBOSS EAP7(FOR CONTAINER/CLOUD)02.JBOSS EAP7(FOR CONTAINER/CLOUD)
02.JBOSS EAP7(FOR CONTAINER/CLOUD)Opennaru, inc.
 
OCE - Cno 2014 private sector oriented open paas oce
OCE - Cno 2014 private sector oriented open paas   oceOCE - Cno 2014 private sector oriented open paas   oce
OCE - Cno 2014 private sector oriented open paas oceuEngine Solutions
 

What's hot (20)

모바일 개발 트랜드
모바일 개발 트랜드모바일 개발 트랜드
모바일 개발 트랜드
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
MSA를 이용해 구현하는 고가용/고확장성 서비스
MSA를 이용해 구현하는 고가용/고확장성 서비스MSA를 이용해 구현하는 고가용/고확장성 서비스
MSA를 이용해 구현하는 고가용/고확장성 서비스
 
3. 마이크로 서비스 아키텍쳐
3. 마이크로 서비스 아키텍쳐3. 마이크로 서비스 아키텍쳐
3. 마이크로 서비스 아키텍쳐
 
SOSCON2015 SI이노베이션
SOSCON2015 SI이노베이션SOSCON2015 SI이노베이션
SOSCON2015 SI이노베이션
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴
 
마이크로서비스 아키텍처로 개발하기
마이크로서비스 아키텍처로 개발하기마이크로서비스 아키텍처로 개발하기
마이크로서비스 아키텍처로 개발하기
 
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
 
제13회컨퍼런스 조대협 서버사이드개발
제13회컨퍼런스 조대협 서버사이드개발제13회컨퍼런스 조대협 서버사이드개발
제13회컨퍼런스 조대협 서버사이드개발
 
Open Cloud Engine PaaS Snapshots
Open Cloud Engine PaaS SnapshotsOpen Cloud Engine PaaS Snapshots
Open Cloud Engine PaaS Snapshots
 
JBUG Korea 소개
JBUG Korea 소개JBUG Korea 소개
JBUG Korea 소개
 
빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x
 
Os gi 기술교육
Os gi 기술교육Os gi 기술교육
Os gi 기술교육
 
API Gateway 그리고 모바일 어플리케이션
API Gateway 그리고 모바일 어플리케이션API Gateway 그리고 모바일 어플리케이션
API Gateway 그리고 모바일 어플리케이션
 
Wso2 api manager 특징 slide share
Wso2 api manager 특징   slide shareWso2 api manager 특징   slide share
Wso2 api manager 특징 slide share
 
모바일표준Fw 소개자료 20141106
모바일표준Fw 소개자료 20141106모바일표준Fw 소개자료 20141106
모바일표준Fw 소개자료 20141106
 
Process Oriented Architecture
Process Oriented ArchitectureProcess Oriented Architecture
Process Oriented Architecture
 
클라우드와 마이크로 서비스를 위한 새로운 시대의 경량화 WAS - IBM WAS Liberty 서버
클라우드와 마이크로 서비스를 위한 새로운 시대의 경량화 WAS - IBM WAS Liberty 서버클라우드와 마이크로 서비스를 위한 새로운 시대의 경량화 WAS - IBM WAS Liberty 서버
클라우드와 마이크로 서비스를 위한 새로운 시대의 경량화 WAS - IBM WAS Liberty 서버
 
02.JBOSS EAP7(FOR CONTAINER/CLOUD)
02.JBOSS EAP7(FOR CONTAINER/CLOUD)02.JBOSS EAP7(FOR CONTAINER/CLOUD)
02.JBOSS EAP7(FOR CONTAINER/CLOUD)
 
OCE - Cno 2014 private sector oriented open paas oce
OCE - Cno 2014 private sector oriented open paas   oceOCE - Cno 2014 private sector oriented open paas   oce
OCE - Cno 2014 private sector oriented open paas oce
 

Similar to Jbug 발표 msa탐방기_공유자료

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
 
클라우드 네이티브 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
 
Micro Service Architecture
Micro Service ArchitectureMicro Service Architecture
Micro Service ArchitectureHEECHEOL YANG
 
꿀밋업1탄_왜_마이크로서비스인가
꿀밋업1탄_왜_마이크로서비스인가꿀밋업1탄_왜_마이크로서비스인가
꿀밋업1탄_왜_마이크로서비스인가VMware Tanzu 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
 
Cloud migration pattern using microservices
Cloud migration pattern using microservicesCloud migration pattern using microservices
Cloud migration pattern using microservicesSeong-Bok Lee
 
Pivotal Concourse를 활용한 CI/CD pipeline automated build-up & Workflow managemen...
Pivotal Concourse를 활용한 CI/CD pipeline automated build-up & Workflow managemen...Pivotal Concourse를 활용한 CI/CD pipeline automated build-up & Workflow managemen...
Pivotal Concourse를 활용한 CI/CD pipeline automated build-up & Workflow managemen...VMware Tanzu Korea
 
변화와 혁신을 위한 클라우드 마이그레이션 – 김진우 AWS 어카운트 매니저, 이아영 네오위즈 가버너스팀 팀장, 박주희 우아한형제들 시스템신...
변화와 혁신을 위한 클라우드 마이그레이션 – 김진우 AWS 어카운트 매니저, 이아영 네오위즈 가버너스팀 팀장, 박주희 우아한형제들 시스템신...변화와 혁신을 위한 클라우드 마이그레이션 – 김진우 AWS 어카운트 매니저, 이아영 네오위즈 가버너스팀 팀장, 박주희 우아한형제들 시스템신...
변화와 혁신을 위한 클라우드 마이그레이션 – 김진우 AWS 어카운트 매니저, 이아영 네오위즈 가버너스팀 팀장, 박주희 우아한형제들 시스템신...Amazon Web Services Korea
 
[오픈소스컨설팅] 2019년 클라우드 생존전략
[오픈소스컨설팅] 2019년 클라우드 생존전략[오픈소스컨설팅] 2019년 클라우드 생존전략
[오픈소스컨설팅] 2019년 클라우드 생존전략Ji-Woong Choi
 
클라우드 마이그레이션을 통한 비지니스 성공 사례- AWS Summit Seoul 2017
클라우드 마이그레이션을 통한 비지니스 성공 사례- AWS Summit Seoul 2017클라우드 마이그레이션을 통한 비지니스 성공 사례- AWS Summit Seoul 2017
클라우드 마이그레이션을 통한 비지니스 성공 사례- AWS Summit Seoul 2017Amazon Web Services Korea
 
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해Terry Cho
 
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브[열린기술공방] Container기반의 DevOps - 클라우드 네이티브
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브Open Source Consulting
 
주 52시간 시대의 Agile_ 오픈소스컨설팅 한진규 이사
주 52시간 시대의 Agile_ 오픈소스컨설팅 한진규 이사주 52시간 시대의 Agile_ 오픈소스컨설팅 한진규 이사
주 52시간 시대의 Agile_ 오픈소스컨설팅 한진규 이사Open Source Consulting
 
Event Storming and Implementation Workshop
Event Storming and Implementation WorkshopEvent Storming and Implementation Workshop
Event Storming and Implementation WorkshopuEngine Solutions
 
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)uEngine Solutions
 
Event storming based msa training commerce example v2
Event storming based msa training commerce example v2Event storming based msa training commerce example v2
Event storming based msa training commerce example v2uEngine Solutions
 
Event storming based msa training commerce example
Event storming based msa training commerce exampleEvent storming based msa training commerce example
Event storming based msa training commerce exampleuEngine Solutions
 
PaaS를 이용한 No Ops 개발
PaaS를 이용한 No Ops 개발PaaS를 이용한 No Ops 개발
PaaS를 이용한 No Ops 개발Chiung Choi
 
Cloud_Talent_Management
Cloud_Talent_ManagementCloud_Talent_Management
Cloud_Talent_ManagementAdam Park
 
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) 기술동향 소개-박문기@메ᄀ...문기 박
 

Similar to Jbug 발표 msa탐방기_공유자료 (20)

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...
 
클라우드 네이티브 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
 
Micro Service Architecture
Micro Service ArchitectureMicro Service Architecture
Micro Service Architecture
 
꿀밋업1탄_왜_마이크로서비스인가
꿀밋업1탄_왜_마이크로서비스인가꿀밋업1탄_왜_마이크로서비스인가
꿀밋업1탄_왜_마이크로서비스인가
 
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
 
Cloud migration pattern using microservices
Cloud migration pattern using microservicesCloud migration pattern using microservices
Cloud migration pattern using microservices
 
Pivotal Concourse를 활용한 CI/CD pipeline automated build-up & Workflow managemen...
Pivotal Concourse를 활용한 CI/CD pipeline automated build-up & Workflow managemen...Pivotal Concourse를 활용한 CI/CD pipeline automated build-up & Workflow managemen...
Pivotal Concourse를 활용한 CI/CD pipeline automated build-up & Workflow managemen...
 
변화와 혁신을 위한 클라우드 마이그레이션 – 김진우 AWS 어카운트 매니저, 이아영 네오위즈 가버너스팀 팀장, 박주희 우아한형제들 시스템신...
변화와 혁신을 위한 클라우드 마이그레이션 – 김진우 AWS 어카운트 매니저, 이아영 네오위즈 가버너스팀 팀장, 박주희 우아한형제들 시스템신...변화와 혁신을 위한 클라우드 마이그레이션 – 김진우 AWS 어카운트 매니저, 이아영 네오위즈 가버너스팀 팀장, 박주희 우아한형제들 시스템신...
변화와 혁신을 위한 클라우드 마이그레이션 – 김진우 AWS 어카운트 매니저, 이아영 네오위즈 가버너스팀 팀장, 박주희 우아한형제들 시스템신...
 
[오픈소스컨설팅] 2019년 클라우드 생존전략
[오픈소스컨설팅] 2019년 클라우드 생존전략[오픈소스컨설팅] 2019년 클라우드 생존전략
[오픈소스컨설팅] 2019년 클라우드 생존전략
 
클라우드 마이그레이션을 통한 비지니스 성공 사례- AWS Summit Seoul 2017
클라우드 마이그레이션을 통한 비지니스 성공 사례- AWS Summit Seoul 2017클라우드 마이그레이션을 통한 비지니스 성공 사례- AWS Summit Seoul 2017
클라우드 마이그레이션을 통한 비지니스 성공 사례- AWS Summit Seoul 2017
 
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
 
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브[열린기술공방] Container기반의 DevOps - 클라우드 네이티브
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브
 
주 52시간 시대의 Agile_ 오픈소스컨설팅 한진규 이사
주 52시간 시대의 Agile_ 오픈소스컨설팅 한진규 이사주 52시간 시대의 Agile_ 오픈소스컨설팅 한진규 이사
주 52시간 시대의 Agile_ 오픈소스컨설팅 한진규 이사
 
Event Storming and Implementation Workshop
Event Storming and Implementation WorkshopEvent Storming and Implementation Workshop
Event Storming and Implementation Workshop
 
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
 
Event storming based msa training commerce example v2
Event storming based msa training commerce example v2Event storming based msa training commerce example v2
Event storming based msa training commerce example v2
 
Event storming based msa training commerce example
Event storming based msa training commerce exampleEvent storming based msa training commerce example
Event storming based msa training commerce example
 
PaaS를 이용한 No Ops 개발
PaaS를 이용한 No Ops 개발PaaS를 이용한 No Ops 개발
PaaS를 이용한 No Ops 개발
 
Cloud_Talent_Management
Cloud_Talent_ManagementCloud_Talent_Management
Cloud_Talent_Management
 
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) 기술동향 소개-박문기@메ᄀ...
 

More from jbugkorea

Hawkular overview
Hawkular overviewHawkular overview
Hawkular overviewjbugkorea
 
미들웨어 엔지니어의 클라우드 탐방기
미들웨어 엔지니어의 클라우드 탐방기미들웨어 엔지니어의 클라우드 탐방기
미들웨어 엔지니어의 클라우드 탐방기jbugkorea
 
기업, 통합, 마이크로서비스
기업, 통합, 마이크로서비스기업, 통합, 마이크로서비스
기업, 통합, 마이크로서비스jbugkorea
 
개발자가 인프라를 만났을때 - RHQ를 활용한 Legacy System 모니터링
개발자가 인프라를 만났을때 - RHQ를 활용한 Legacy System 모니터링개발자가 인프라를 만났을때 - RHQ를 활용한 Legacy System 모니터링
개발자가 인프라를 만났을때 - RHQ를 활용한 Legacy System 모니터링jbugkorea
 
Micro Service Architecture 탐방기
Micro Service Architecture 탐방기Micro Service Architecture 탐방기
Micro Service Architecture 탐방기jbugkorea
 
INFINISPAN non-clustering Spring4 WEB/MOBILE APP 구축
INFINISPAN non-clustering Spring4 WEB/MOBILE APP 구축INFINISPAN non-clustering Spring4 WEB/MOBILE APP 구축
INFINISPAN non-clustering Spring4 WEB/MOBILE APP 구축jbugkorea
 
테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트
테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트
테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트jbugkorea
 
맛만 보자 Undertow
맛만 보자 Undertow맛만 보자 Undertow
맛만 보자 Undertowjbugkorea
 
맛만 보자 액터 모델이란
맛만 보자 액터 모델이란 맛만 보자 액터 모델이란
맛만 보자 액터 모델이란 jbugkorea
 
맛만 보자 Finagle이란
맛만 보자 Finagle이란 맛만 보자 Finagle이란
맛만 보자 Finagle이란 jbugkorea
 
Undertow 맛보기
Undertow 맛보기Undertow 맛보기
Undertow 맛보기jbugkorea
 
JBoss Community Introduction
JBoss Community IntroductionJBoss Community Introduction
JBoss Community Introductionjbugkorea
 
JBoss AS 7 따라잡기
JBoss AS 7 따라잡기JBoss AS 7 따라잡기
JBoss AS 7 따라잡기jbugkorea
 
Wildfly 8.0에서 SOAP 웹 서비스 구현
Wildfly 8.0에서 SOAP 웹 서비스 구현Wildfly 8.0에서 SOAP 웹 서비스 구현
Wildfly 8.0에서 SOAP 웹 서비스 구현jbugkorea
 
Infinispan Data Grid Platform
Infinispan Data Grid PlatformInfinispan Data Grid Platform
Infinispan Data Grid Platformjbugkorea
 
Java 8 - A step closer to Parallelism
Java 8 - A step closer to ParallelismJava 8 - A step closer to Parallelism
Java 8 - A step closer to Parallelismjbugkorea
 
JBoss Community's Application Monitoring Platform
JBoss Community's Application Monitoring PlatformJBoss Community's Application Monitoring Platform
JBoss Community's Application Monitoring Platformjbugkorea
 

More from jbugkorea (17)

Hawkular overview
Hawkular overviewHawkular overview
Hawkular overview
 
미들웨어 엔지니어의 클라우드 탐방기
미들웨어 엔지니어의 클라우드 탐방기미들웨어 엔지니어의 클라우드 탐방기
미들웨어 엔지니어의 클라우드 탐방기
 
기업, 통합, 마이크로서비스
기업, 통합, 마이크로서비스기업, 통합, 마이크로서비스
기업, 통합, 마이크로서비스
 
개발자가 인프라를 만났을때 - RHQ를 활용한 Legacy System 모니터링
개발자가 인프라를 만났을때 - RHQ를 활용한 Legacy System 모니터링개발자가 인프라를 만났을때 - RHQ를 활용한 Legacy System 모니터링
개발자가 인프라를 만났을때 - RHQ를 활용한 Legacy System 모니터링
 
Micro Service Architecture 탐방기
Micro Service Architecture 탐방기Micro Service Architecture 탐방기
Micro Service Architecture 탐방기
 
INFINISPAN non-clustering Spring4 WEB/MOBILE APP 구축
INFINISPAN non-clustering Spring4 WEB/MOBILE APP 구축INFINISPAN non-clustering Spring4 WEB/MOBILE APP 구축
INFINISPAN non-clustering Spring4 WEB/MOBILE APP 구축
 
테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트
테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트
테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트
 
맛만 보자 Undertow
맛만 보자 Undertow맛만 보자 Undertow
맛만 보자 Undertow
 
맛만 보자 액터 모델이란
맛만 보자 액터 모델이란 맛만 보자 액터 모델이란
맛만 보자 액터 모델이란
 
맛만 보자 Finagle이란
맛만 보자 Finagle이란 맛만 보자 Finagle이란
맛만 보자 Finagle이란
 
Undertow 맛보기
Undertow 맛보기Undertow 맛보기
Undertow 맛보기
 
JBoss Community Introduction
JBoss Community IntroductionJBoss Community Introduction
JBoss Community Introduction
 
JBoss AS 7 따라잡기
JBoss AS 7 따라잡기JBoss AS 7 따라잡기
JBoss AS 7 따라잡기
 
Wildfly 8.0에서 SOAP 웹 서비스 구현
Wildfly 8.0에서 SOAP 웹 서비스 구현Wildfly 8.0에서 SOAP 웹 서비스 구현
Wildfly 8.0에서 SOAP 웹 서비스 구현
 
Infinispan Data Grid Platform
Infinispan Data Grid PlatformInfinispan Data Grid Platform
Infinispan Data Grid Platform
 
Java 8 - A step closer to Parallelism
Java 8 - A step closer to ParallelismJava 8 - A step closer to Parallelism
Java 8 - A step closer to Parallelism
 
JBoss Community's Application Monitoring Platform
JBoss Community's Application Monitoring PlatformJBoss Community's Application Monitoring Platform
JBoss Community's Application Monitoring Platform
 

Jbug 발표 msa탐방기_공유자료

  • 1. Micro Service Architecture 탐방기 이용희 https://www.facebook.com/yonghee.lee.90
  • 2.
  • 3.
  • 4. Micro Service Architecture 적용하고 고생해 보니 이런 것들이 중요하더라
  • 6. 왜? MSA에 관심을 가지시나요?
  • 7. Micro Services Architecture Google Trend 혹시 뒤쳐질까 두려워서? 고민하던 문제를 해결할 수 있지 않을까?
  • 8. Micro Service Architecture? 빨리 개발하고, 빨리 적용하여 Time to Market 을 달성하게 할 수 있도록 소프트웨어의 구조를 단순하게 하는 방법 중 하나
  • 9. Micro Service Architecture? 작은 기능 요소 들을 서비스 단위로 묶어서 배포
  • 10. MSA 의 9가지 특징 • 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
  • 11. MSA 의 9가지 특징 • 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 대형 시스템을 개발할 때 기술적 계층에 따라 조직을 구성하는 것에 비해, MSA에서의 접근 방식은 “비즈니스 수행 능력”에 따라 구분된 서비스 단위로 조직을 구성함
  • 12. Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure. -- Melvyn Conway, 1967
  • 13. 분업화를 통한 전문화 재사용을 통한 생산성 향상 기업의 본원적인 2대 활동 원칙!
  • 14. 비즈니스 환경 변화에 능동적으로 대응하기
  • 15.
  • 17.
  • 18. 각 서비스 팀에 기술 구조를 선택하고 결정할 수 있는 권한이 있어야 함
  • 19. MSA 의 9가지 특징 • 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 단일 플랫폼에 의한 표준화를 통한 중앙통제모델이 아닌, 각 서비스팀에서 독자적인 거버넌스를 수행하도록 함
  • 20. 플랫폼에 의한 표준화를 통해 전문성을 확보하고 사람"에의 의존성을 제거 Monolithic Architecture 의 장점 모니터링이 쉽다 SPOF
  • 21. Polyglot or Multilingual 각 서비스파트에서 제공하는 서비스와 일 잘 어울리는 언어를 선택해서 사용
  • 22. 다른 언어도 자바만큼 잘 할 수 있는 사람
  • 23. SI 환경에서 고객님으로 부터 이 모든 권한을 부여 받을 수 있을까?
  • 24.
  • 25.
  • 27. Any JVM language can be supported so each team can use the language best suited to them. The Groovy JVM language was chosen as our first supported language. The existence of first-class functions (closures), list/dictionary syntax, performance and debugability were all aspects of our decision. Moreover, Groovy provides syntax comfortable to a wide range of developers, which helps to reduce the learning curve for the first language on the platform.
  • 28. MSA 의 9가지 특징 • 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 각 서비스 영역에서 자신이 제공하는 서비스의 context에 따라 도메인 영역을 분리(논리적 분리)하고, 데이터의 성격에 맞는 적정한 DB를 선택함(물리적 분리)
  • 29.
  • 30. Domain Driven Design – Bounded Context
  • 31.
  • 32. 회원은 주소를 여러 개 가질 수 있고, 주소가 같은 다른 회원이 존재할 수 있으므로 주소는 회원의 부가정보다.(도메인 핵심 정보 회원 주소 배송
  • 33. 하나의 배송 정보는 반드시 하나의 주소를 가 배송 한건에 여러 개의 주소를 가질 수 없음. 배송은 주소로 식별이 가능한 도메인 핵심정 회원 주소 배송
  • 34. 회원의 주소가 변경된다면 회원 정보는 즉시 반영(FK)되어야 하지 과거 배송 이력 정보가 변경이 되면 안됨
  • 35.
  • 36. 상품 주문배송 - 재고 - 결제 결제가 실패하면 재고가 하나 줄어 들었던 transaction을 rollback 해야 하는
  • 37. 서비스간 트랜잭션 처리 • 서비스 context 의 영역을 아주 잘 정의 해서 사용한다 • XA를 사용한다 • compensation transaction 을 사용한다
  • 38. 문을 열고, 코끼리를 넣고, 문을 닫는다 코끼리 보다 큰 냉장고를 만들어서 코끼리를 넣는다 코끼리를 미분해서 냉장고에 넣고, 냉장고 속에서 적분
  • 39.
  • 40. 실패를 통해서 경험을 축적해 나가야 하는데, 어느 정도의 사소한 장애를 감수하더라도, 지속적으로 시스템을 개선해 나갈 수 있는 권한을 보장 받는 것이 사실상 불가능
  • 41. 서비스간 트랜잭션 처리 • 서비스 context 의 영역을 아주 잘 정의 해서 사용한다 • XA를 사용한다 • compensation transaction 을 사용 API 를 조합하는 주체는 어디?
  • 42. MSA 는 서비스 간의 협조를 중요하게 생각합니다. M.F 는 여러 개의 간단한 기능(function)이 모여 하나의 서비스를 구성 여러 개의 기능을 모으는 녀석을 따로 모아 추상화를 할 수 있다면 밖에서 보이는 그림은 아주 깔끔한 모습이 될 수 있습니다. 성능 SPOF 복잡성 증가
  • 43. 복잡함을 해결하기 위해 시작했는데, 왠지 더 복잡해 지는 것 같다!
  • 44.
  • 47. https://github.com/Netflix/eureka/wiki/Eureka-at-a-glance API 의 버전 관리, 로드 밸런싱, 서비스 repository 에 대한 고민은 Netflix 의 Eureka 가 좋은 해답이 될 수 있습니다.
  • 48. MSA 의 9가지 특징 • 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 장애 없는 시스템은 없다!
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 57.
  • 58. 참고한 자료 • http://martinfowler.com/articles/microservices.html • http://techblog.netflix.com/ • https://github.com/Netflix/Hystrix/wiki • https://github.com/Netflix/eureka/wiki/Eureka-at-a-glance • http://deanwampler.github.io/ • http://bcho.tistory.com/ • Domain Driven Design

Editor's Notes

  1.  불규칙하며 혼란스러워 보이는 현상을 배후에서 지배하는 규칙도 찾아낼 수 있다. 복잡성의 과학은 이제까지의 과학이 이해하지 못했던 불규칙적인 자연의 복잡성을 연구하여 그 안의 숨은 질서를 찾아내는 학문으로, 복잡성의 과학을 대표하는 혼돈 이론에도 프랙털로 표현될 수 있는 질서가 나타난다.
  2. 목적 – 더 큰 사고?로 이어지지 않게? 재산을 보호하고자….