SlideShare a Scribd company logo
1 of 46
Download to read offline
마이크로 서비스 아키텍처로
개발하기
안재우
Platform Architecture팀
SK Planet
About me
• SK 플래닛 Platform Architecture 팀
• 전 NCSOFT 인프라플랫폼팀
• 전 닷넷엑스퍼트 수석컨설턴트
오늘 얘기할 내용은
• 마이크로 서비스 아키텍처란?
• 장단점은?
• 무엇이 필요하고, 어떤 점을 고려해야
하는지?
• 우리는 어떻게 하고 있는지?
WAS
전통적인 Web App 아키텍처
Browser/
Client
WAR
UI
A Service
A Repository
Database
A
WAS
WAS
이중화/로드밸런싱
Browser/
Client
WAR
UI
A Service
A Repository
Database
Load
balancer A
WAS
WAS
기능 추가
Browser/
Client
WAR
UI
A Service
A Repository
Database
Load
balancer AB Service
B Repository
B
시스템 연계/통합
WAS
WAS
Browser/
Client
WAR
UI
A Service
A Repository
Database
Load
balancer AB Service
B Repository
B
D System
C System
시스템 연계/통합
WAS
WAS
Browser/
Client
WAR
UI
A Service
A Repository
Database
Load
balancer AB Service
B Repository
B
E System D System
F SystemC System
G System
문제점
• 코드가 너무 커져서 유지보수하기 힘들어요.
• 시스템을 분리하고 싶어요.
• DB를 분리하고 싶어요.
• 연계 시스템이 변경된대요.
• 연계 시스템이 장애나서 우리 서비스도 장애예요.
• 사소한 수정인데도 전체 배포를 하고, QA를 거쳐야
해요.
• 새로운 걸 추가하는 건 상관없는데, 기존
로직/데이터를 변경하면 무슨 문제가 생길지
몰라요.
• 저희도 새로운 버전/기술을 써보고 싶은데…
가면 갈수록
• 뭔가 바꾸는게 두려워진다.
• 개발자들이 구닥다리 기술의 족쇄에서
벗어나지 못하고, 기술 격차는 계속
벌어진다.
• 모든 것은 ‘차세대’가 해결해야 줄 것이다.
(정말?)
나랑 상관없는 상상 속 단어들
Domain Driven
Design
Continuous
Delivery
On-demand
Virtualization
Elastic,
Scalable,
Resilience
Polyglot
Programming
Infrastructure
Automation
Agile
Development
Reusability
Self-government
Team
마이크로 서비스 아키텍처의 배경
Domain Driven
Design
Continuous
Delivery
On-demand
Virtualization
Elastic,
Scalable,
Resilience
Polyglot
Programming
Infrastructure
Automation
Agile
Development
Reusability
Self-government
Team
Scale Cube
http://theartofscalability.com
Y축 확장
WAS
WAR
UI
A Service
A Repository
Database
AB Service
B Repository
B
Y축 확장
Database
A
WAS
WAR
UI
A Service
A Repository
WAS
WAR
B Service
B Repository
Database
B
Database
WAS
WAS
WAS
B UI
A UI
Y축 확장 + X축/Z축 확장
Database
A
WAS
WAR
A UI
A Service
A Repository
WAR
B Service
B Repository
Database
B1
B UI
Database
B2
마이크로 서비스란?
• 작고(small)
• API로 다른 서비스와 연계하며(communicate
with APIs)
• 자율적이며(autonomous)
• 한 가지 일을 잘하는데 초점을 맞춘
서비스(focused on doing one thing well)
장점
• Technology Heterogeneity
• Resilience
• Scaling
• Ease of Deployment
• Organizational Alignment
• Composability
• Replaceability
단점
• Complexity
• Multiple Database & Transaction Management
• Complicated Test
• Require Automation for Deploy/Operation
• Hard to develop features span multiple
services
이거 SOA 얘기 아니에요?
• 비슷하지만, 달라요.
• SOA는 개념 상으로는 잘못되지 않았어요.
• 다만 방식이 잘못되었을 뿐이죠.
– SOAP Protocol
– WS-*
– Vendor-Driven
– ESB가 모든 걸 다 해결해줄 거라는 잘못된 믿음
(그렇게 선전했던 나쁜 XX)
MSA는
• Vendor Driven -> Service Company Driven
• 오픈테크놀로지 기반
• SOAP/XML vs. REST/JSON
• ‘스펙 먼저’가 아닌 ‘현실에서 검증된
Practice들’의 모음
• Agile 개념과의 결합
• Cloud 환경의 활용
마이크로 서비스 모델링
• Domain Driven Design
• Bounded Context
• Contract-First(API-First) Design
• Decomposed database
• Event-Driven Architecture
모델링/구현 Tip
• API를 먼저 정의하라.
• API를 REST API Maturity Level 2 이상이 되도록
강제화하라.
• API 문서를 유지하라(예: Swagger)
• ORM을 활용하라
• DB에 너무 의존하지 마라
• 도메인 내부에서만 의미있는 값을 외부에 노출하는
것을 지양하라
• 마이크로 서비스가 별다른 설정 없이 바로
기동가능하게 하라
(예: Java의 경우, Spring Boot + Embedded WAS 활용)
클라이언트-서비스 간 통합
Client A
(Web)
Client B
(App)
MS-A
MS-ALB
MS-A
MS-BLB
MS-A
MS-CLB
MS-A
MS-DLB
Security
Logging
Version
…
Security
Logging
Version
…
Security
Logging
Version
…
Security
Logging
Version
…
클라이언트-서비스 간 통합
API Gateway
Client A
(Web)
Client B
(App)
MS-A
MS-A
MS-A
MS-B
MS-A
MS-C
MS-A
MS-D
Security
Logging
Version
…
클라이언트-서비스 간 통합
API GatewayClient A
(Web)
Client B
(App)
MS-A
MS-A
MS-A
MS-B
MS-A
MS-C
MS-A
MS-D
Security
Logging
Version
…
API Gateway
Security
Logging
Version
…
LB
API Gateway
Security
Logging
Version
…
API Gateway
Security
Logging
Version
…
LB
서비스 간 통신
Service A Service B
HTTP Request/Response
Event
(Message)
Broker
Publish Event
Service C
Service D
Subscribe Event
Service Discovery
Client/API
Gateway
MS-A
MS-ALB
MS-A
MS-BLB
Security
Logging
Version
…
Security
Logging
Version
…
Client/API
Gateway
MS-A
MS-A
HA
Proxy
MS-A
MS-B
HA
Proxy
Security
Logging
Version
…
Security
Logging
Version
…
Service
Registry
Blue/Green Deployment
http://martinfowler.com/bliki/BlueGreenDeployment.html
MSA를 선택한 이유
Frontend/Backend 분리 회사의 Engineer Tech Tree와 동기화
코드 양이 커지고,
중복코드가 발생
코드의 양을 줄여서 누구나 쉽게 파악하도록
팀 전체의 Project Working Group별 Product
시스템 간 연계 증대 API 기반의 Contract 관리를 강제화
새로운 기술에 대한
도입 욕구
Micro-Service 단위로 구현에 자율성 부여
(Polyglot)
재사용성 향상 및
지속적인 발전
Micro-Service 단위의 재사용, 자유로운 리팩토링
회사 인프라의 뒷받침
On-Premise Cloud, CI와 연계된 배포 자동화(Jarvis), 향후
Docker와 같은 Container 기술과 연계
어떻게 개발하나요?
Backend 개발자Frontend 개발자
UserStory 검토
Contract/API 설계
Frontend 개발 Backend 개발
Mock/Unit Test Unit Test
API 연동 Load Test
UserStory 종료
Contract/API의 설계/공유
Contract/API의 설계/공유
API Workspace
Product
API
API
Product
dev
draft
release
Design APIs
Publish/Change APIs
API Provider
API Consumer
(stakeholder)
API Consumer (public)
Review / Share
draft spec
Explore & Test APIs
진짜 Polyglot을 하나요?
Java 1.6
Tomcat 6
Spring 3.x + XML Conf.
Spring MVC
MyBatis
Maven
기존 시스템들의 Backend
Web Application
Presentation
Controller
Business
Data Access
JSP
Sitemesh
JQuery
기존 시스템들의 Frontend
MySQL
네, 합니다.
Java 1.7 / Tomcat 7
Spring 4.x + Java Conf.
Spring Data JPA
Java 1.8 / Embedded Tomcat
Spring Boot
Spring Data JPA
Node.js
Express
MySQL
Redis
RabbitMQ
Groovy
Go
ASP.NET 5
Vert.x
Others…
PlanetSpace
(File Storage)
Frontend
HTML
CSS
Angular.js
Bootstrap
Less
Grunt
Bower
Karma
향후
실험(?)
후보들 Other…
ZooKeeper
개발 환경의 문제
• 개발하다 보면, 여러 개의
마이크로서비스들을 구동시켜야 하는
경우가 많다.
• 마이크로서비스마다 설정/기동방식이
상이한 경우, 다소 괴롭다.
• 구동된 마이크로 서비스들을 위한 API
Gateway를 빠르게 설정하기
• git clone/pull하는 것도 일이다.
Whitebase
Developer’s Machine
Whitebase
jar/js
(file system)
MS-A
Instance
git
jar/js
(file system)
MS-B
Instance
Artifact
repository
jar/js
(file system)
MS-C
Instance
Local docker
MS-D
Instance
Docker
Image
Registry
remote docker
MS-E
Instance
HA Proxy HA Proxy
clone
wget
remote machine
MS-F
Instance
Whitebase
• URL-based Router + Proxy
Authentication
Versioning
Logging
Routing
Composition
MS-A Container
Whitebase + Service Discovery + Inter-Service Call
Whitebase
UI
UI
MS-A
HA Proxy
HA Proxy
HA Proxy
Service
Registry
Service Agent
MS-A Container
MS-A HA Proxy
Service Agent
MS-B Container
MS-B
Service Agent
MS-B Container
MS-B
Service Agent
Monolithic
Web App
(WAS)
Web
변화 요약 - Before
Monolithic
Java Web App
(WAS)
Browser/
Client
“Big”
Database
(MySQL)
L4L4 Web
File
Storage
A B
C D
UI
MS-A
MS-B
MS-C
MS-D
Whitebase
A UI
B UI
C UI
D UI
Content
Router
변화 요약 - After
Browser/
Client
L4L4
Content
Router
A UI
B UI
C UI
D UI
API
Gateway
(Whitebase)
MS-A
(Java)
DB
(MySQL)
MS-B
(Nodejs)
MS-C
(Nodejs)
MS-D
(Java)
DB
(MySQL)
Redis
(MySQL)
File
Storage
DB
(MySQL)
Service
Registry
Event Broker
Config
Service
변화 요약
Before Now or soon Future
Architecture Monolithic
DB 공유형 통합
Micro-Services, VM 기반
Loosely-Coupled (API/Event)
Container 기반 가상화
Self-Healing
Application 1 Web App 9 UIs
14 Services
더욱 세분화
Data 1 MySQL 10 MySQL
2 Redis
1 ZooKeeper
Maria DB
PostgreSQL
또다른 NoSQL
Tech Stack Java 1.6/Tomcat 6
Spring 3.x
MyBatis
MySQL
Java 1.7/1.8, Embedded Tomcat
Spring 4.x/Spring Boot
Spring Data JPA
MySQL
Node.js
Redis
RabbitMQ
다른 Java Framework
다른 언어/플랫폼
기타 OnDemand
SVN/Git
CI (Jenkins)
수동 배포
Scrum/Sprint 기반
Git with Feature Branch Model
CI (Jenkins)
Jarvis를 사용한 자동 배포
Docker 인프라 연계
Blue/Green Deployment
Continuous Deployment
A/B Testing
MSA로 진행하며 얻은 것
• 팀원들이 다루는 기술 범위가 크게 확장
• 최신 기술의 도입/실험에 부담이 없음
• 팀원 간의 경험 공유 활성화
• API 디자인 능력 향상
• 향후 변화/확장에 대해서도 아키텍처적 변화
없이 대응이 가능
• 높은 재활용성/조합 지원
• 향후 사내/대외 오픈소스화가 가능할 듯한
솔루션들
MSA로 진행 시의 단점
• 초기 개발 시에는 개발 시간이 많이 소요됨
• MSA로 원활하게 개발하기 위한 기반
구성요소와 인프라 준비가 필요함
• 기존 개발 방식이 편하다고 주장하는
사람들로부터의 저항
• 서비스 간 연계 시 협의가 필요
• 여러 서비스에 걸치는 기능의 경우, 주체가
애매한 경우가 생김
제언
• 갑자기 한번에 MSA로 넘어가는 것은 쉽지
않은 작업입니다.
• 기존 시스템에서 분할이 가능한 항목을 하나씩
분할해가거나, 신규 개발되는 기능을 하나씩
마이크로 서비스로 분리하여 추가해가는 것이
좋습니다.
• MSA는 만능이 아니며, 조직 문화(점진적 발전,
구성원들의 Skill-up에 대한 관심과 투자)가
뒷받침해줘야 합니다. 조직 문화가 선행되지
않으면 차라리 시도하지 않는 것이 좋습니다.
질문/피드백
var you = {};
if (you.like||you.dislike||you.suggest||you.request)
{
var id = "jaewoo.ahn";
var domain = "sk.com";
mail.send(String.format("{0}@{1}", id, domain ));
}

More Related Content

What's hot

AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017
AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017
AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017Amazon Web Services Korea
 
대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...
대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...
대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...Amazon Web Services Korea
 
AWS 클라우드 기반 확장성 높은 천만 사용자 웹 서비스 만들기 - 윤석찬
AWS 클라우드 기반 확장성 높은 천만 사용자 웹 서비스 만들기 - 윤석찬AWS 클라우드 기반 확장성 높은 천만 사용자 웹 서비스 만들기 - 윤석찬
AWS 클라우드 기반 확장성 높은 천만 사용자 웹 서비스 만들기 - 윤석찬Amazon Web Services Korea
 
라이브 스트리밍을 위한 알맞은 솔루션 선택하기 - AWS 서비스 및  CJ 올리브네트웍스의 라이브 커머스 사례 소개 - 이보길 AWS 테크...
라이브 스트리밍을 위한 알맞은 솔루션 선택하기 - AWS 서비스 및  CJ 올리브네트웍스의 라이브 커머스 사례 소개 - 이보길 AWS 테크...라이브 스트리밍을 위한 알맞은 솔루션 선택하기 - AWS 서비스 및  CJ 올리브네트웍스의 라이브 커머스 사례 소개 - 이보길 AWS 테크...
라이브 스트리밍을 위한 알맞은 솔루션 선택하기 - AWS 서비스 및  CJ 올리브네트웍스의 라이브 커머스 사례 소개 - 이보길 AWS 테크...Amazon Web Services Korea
 
Aws glue를 통한 손쉬운 데이터 전처리 작업하기
Aws glue를 통한 손쉬운 데이터 전처리 작업하기Aws glue를 통한 손쉬운 데이터 전처리 작업하기
Aws glue를 통한 손쉬운 데이터 전처리 작업하기Amazon Web Services Korea
 
마이데이터 사업자 핀다에게 듣다! - 핀테크의 AWS 활용 전략 - 이지영 AWS 솔루션즈 아키텍트 / 박홍민 대표, 핀다 :: AWS S...
마이데이터 사업자 핀다에게 듣다! - 핀테크의 AWS 활용 전략 - 이지영 AWS 솔루션즈 아키텍트 / 박홍민 대표, 핀다 :: AWS S...마이데이터 사업자 핀다에게 듣다! - 핀테크의 AWS 활용 전략 - 이지영 AWS 솔루션즈 아키텍트 / 박홍민 대표, 핀다 :: AWS S...
마이데이터 사업자 핀다에게 듣다! - 핀테크의 AWS 활용 전략 - 이지영 AWS 솔루션즈 아키텍트 / 박홍민 대표, 핀다 :: AWS S...Amazon Web Services Korea
 
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개if kakao
 
멀티 어카운트 환경의 보안과 가시성을 높이기 위한 전략 - AWS Summit Seoul 2017
멀티 어카운트 환경의 보안과 가시성을 높이기 위한 전략 - AWS Summit Seoul 2017멀티 어카운트 환경의 보안과 가시성을 높이기 위한 전략 - AWS Summit Seoul 2017
멀티 어카운트 환경의 보안과 가시성을 높이기 위한 전략 - AWS Summit Seoul 2017Amazon Web Services Korea
 
클라우드 네이티브 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
 
Amazon Redshift로 데이터웨어하우스(DW) 구축하기
Amazon Redshift로 데이터웨어하우스(DW) 구축하기Amazon Redshift로 데이터웨어하우스(DW) 구축하기
Amazon Redshift로 데이터웨어하우스(DW) 구축하기Amazon Web Services Korea
 
AWS 클라우드 기반 게임 아키텍처 사례 - AWS Summit Seoul 2017
AWS 클라우드 기반 게임 아키텍처 사례 - AWS Summit Seoul 2017AWS 클라우드 기반 게임 아키텍처 사례 - AWS Summit Seoul 2017
AWS 클라우드 기반 게임 아키텍처 사례 - AWS Summit Seoul 2017Amazon Web Services Korea
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴Terry Cho
 
금융권 최신 AWS 도입 사례 총정리 – 신한 제주 은행, KB손해보험 사례를 중심으로 - 지성국 사업 개발 담당 이사, AWS / 정을용...
금융권 최신 AWS 도입 사례 총정리 – 신한 제주 은행, KB손해보험 사례를 중심으로 - 지성국 사업 개발 담당 이사, AWS / 정을용...금융권 최신 AWS 도입 사례 총정리 – 신한 제주 은행, KB손해보험 사례를 중심으로 - 지성국 사업 개발 담당 이사, AWS / 정을용...
금융권 최신 AWS 도입 사례 총정리 – 신한 제주 은행, KB손해보험 사례를 중심으로 - 지성국 사업 개발 담당 이사, AWS / 정을용...Amazon Web Services Korea
 
PUBG: Battlegrounds 라이브 서비스 EKS 전환 사례 공유 [크래프톤 - 레벨 300] - 발표자: 김정헌, PUBG Dev...
PUBG: Battlegrounds 라이브 서비스 EKS 전환 사례 공유 [크래프톤 - 레벨 300] - 발표자: 김정헌, PUBG Dev...PUBG: Battlegrounds 라이브 서비스 EKS 전환 사례 공유 [크래프톤 - 레벨 300] - 발표자: 김정헌, PUBG Dev...
PUBG: Battlegrounds 라이브 서비스 EKS 전환 사례 공유 [크래프톤 - 레벨 300] - 발표자: 김정헌, PUBG Dev...Amazon Web Services Korea
 
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)Brian Hong
 
Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017
Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017
Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017Amazon Web Services Korea
 
실시간 스트리밍 분석 Kinesis Data Analytics Deep Dive
실시간 스트리밍 분석  Kinesis Data Analytics Deep Dive실시간 스트리밍 분석  Kinesis Data Analytics Deep Dive
실시간 스트리밍 분석 Kinesis Data Analytics Deep DiveAmazon Web Services Korea
 
AWS로 게임 런칭 준비하기 ::: 장준성, 채민관, AWS Game Master 온라인 시리즈 #4
AWS로 게임 런칭 준비하기 ::: 장준성, 채민관, AWS Game Master 온라인 시리즈 #4AWS로 게임 런칭 준비하기 ::: 장준성, 채민관, AWS Game Master 온라인 시리즈 #4
AWS로 게임 런칭 준비하기 ::: 장준성, 채민관, AWS Game Master 온라인 시리즈 #4Amazon Web Services Korea
 
이벤트 기반 분산 시스템을 향한 여정
이벤트 기반 분산 시스템을 향한 여정이벤트 기반 분산 시스템을 향한 여정
이벤트 기반 분산 시스템을 향한 여정Arawn Park
 
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjpAWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjpMasahiro NAKAYAMA
 

What's hot (20)

AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017
AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017
AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017
 
대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...
대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...
대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...
 
AWS 클라우드 기반 확장성 높은 천만 사용자 웹 서비스 만들기 - 윤석찬
AWS 클라우드 기반 확장성 높은 천만 사용자 웹 서비스 만들기 - 윤석찬AWS 클라우드 기반 확장성 높은 천만 사용자 웹 서비스 만들기 - 윤석찬
AWS 클라우드 기반 확장성 높은 천만 사용자 웹 서비스 만들기 - 윤석찬
 
라이브 스트리밍을 위한 알맞은 솔루션 선택하기 - AWS 서비스 및  CJ 올리브네트웍스의 라이브 커머스 사례 소개 - 이보길 AWS 테크...
라이브 스트리밍을 위한 알맞은 솔루션 선택하기 - AWS 서비스 및  CJ 올리브네트웍스의 라이브 커머스 사례 소개 - 이보길 AWS 테크...라이브 스트리밍을 위한 알맞은 솔루션 선택하기 - AWS 서비스 및  CJ 올리브네트웍스의 라이브 커머스 사례 소개 - 이보길 AWS 테크...
라이브 스트리밍을 위한 알맞은 솔루션 선택하기 - AWS 서비스 및  CJ 올리브네트웍스의 라이브 커머스 사례 소개 - 이보길 AWS 테크...
 
Aws glue를 통한 손쉬운 데이터 전처리 작업하기
Aws glue를 통한 손쉬운 데이터 전처리 작업하기Aws glue를 통한 손쉬운 데이터 전처리 작업하기
Aws glue를 통한 손쉬운 데이터 전처리 작업하기
 
마이데이터 사업자 핀다에게 듣다! - 핀테크의 AWS 활용 전략 - 이지영 AWS 솔루션즈 아키텍트 / 박홍민 대표, 핀다 :: AWS S...
마이데이터 사업자 핀다에게 듣다! - 핀테크의 AWS 활용 전략 - 이지영 AWS 솔루션즈 아키텍트 / 박홍민 대표, 핀다 :: AWS S...마이데이터 사업자 핀다에게 듣다! - 핀테크의 AWS 활용 전략 - 이지영 AWS 솔루션즈 아키텍트 / 박홍민 대표, 핀다 :: AWS S...
마이데이터 사업자 핀다에게 듣다! - 핀테크의 AWS 활용 전략 - 이지영 AWS 솔루션즈 아키텍트 / 박홍민 대표, 핀다 :: AWS S...
 
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
 
멀티 어카운트 환경의 보안과 가시성을 높이기 위한 전략 - AWS Summit Seoul 2017
멀티 어카운트 환경의 보안과 가시성을 높이기 위한 전략 - AWS Summit Seoul 2017멀티 어카운트 환경의 보안과 가시성을 높이기 위한 전략 - AWS Summit Seoul 2017
멀티 어카운트 환경의 보안과 가시성을 높이기 위한 전략 - AWS Summit Seoul 2017
 
클라우드 네이티브 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
 
Amazon Redshift로 데이터웨어하우스(DW) 구축하기
Amazon Redshift로 데이터웨어하우스(DW) 구축하기Amazon Redshift로 데이터웨어하우스(DW) 구축하기
Amazon Redshift로 데이터웨어하우스(DW) 구축하기
 
AWS 클라우드 기반 게임 아키텍처 사례 - AWS Summit Seoul 2017
AWS 클라우드 기반 게임 아키텍처 사례 - AWS Summit Seoul 2017AWS 클라우드 기반 게임 아키텍처 사례 - AWS Summit Seoul 2017
AWS 클라우드 기반 게임 아키텍처 사례 - AWS Summit Seoul 2017
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴
 
금융권 최신 AWS 도입 사례 총정리 – 신한 제주 은행, KB손해보험 사례를 중심으로 - 지성국 사업 개발 담당 이사, AWS / 정을용...
금융권 최신 AWS 도입 사례 총정리 – 신한 제주 은행, KB손해보험 사례를 중심으로 - 지성국 사업 개발 담당 이사, AWS / 정을용...금융권 최신 AWS 도입 사례 총정리 – 신한 제주 은행, KB손해보험 사례를 중심으로 - 지성국 사업 개발 담당 이사, AWS / 정을용...
금융권 최신 AWS 도입 사례 총정리 – 신한 제주 은행, KB손해보험 사례를 중심으로 - 지성국 사업 개발 담당 이사, AWS / 정을용...
 
PUBG: Battlegrounds 라이브 서비스 EKS 전환 사례 공유 [크래프톤 - 레벨 300] - 발표자: 김정헌, PUBG Dev...
PUBG: Battlegrounds 라이브 서비스 EKS 전환 사례 공유 [크래프톤 - 레벨 300] - 발표자: 김정헌, PUBG Dev...PUBG: Battlegrounds 라이브 서비스 EKS 전환 사례 공유 [크래프톤 - 레벨 300] - 발표자: 김정헌, PUBG Dev...
PUBG: Battlegrounds 라이브 서비스 EKS 전환 사례 공유 [크래프톤 - 레벨 300] - 발표자: 김정헌, PUBG Dev...
 
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)
 
Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017
Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017
Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017
 
실시간 스트리밍 분석 Kinesis Data Analytics Deep Dive
실시간 스트리밍 분석  Kinesis Data Analytics Deep Dive실시간 스트리밍 분석  Kinesis Data Analytics Deep Dive
실시간 스트리밍 분석 Kinesis Data Analytics Deep Dive
 
AWS로 게임 런칭 준비하기 ::: 장준성, 채민관, AWS Game Master 온라인 시리즈 #4
AWS로 게임 런칭 준비하기 ::: 장준성, 채민관, AWS Game Master 온라인 시리즈 #4AWS로 게임 런칭 준비하기 ::: 장준성, 채민관, AWS Game Master 온라인 시리즈 #4
AWS로 게임 런칭 준비하기 ::: 장준성, 채민관, AWS Game Master 온라인 시리즈 #4
 
이벤트 기반 분산 시스템을 향한 여정
이벤트 기반 분산 시스템을 향한 여정이벤트 기반 분산 시스템을 향한 여정
이벤트 기반 분산 시스템을 향한 여정
 
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjpAWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp
 

Viewers also liked

Micro Service Architecture의 이해
Micro Service Architecture의 이해Micro Service Architecture의 이해
Micro Service Architecture의 이해Terry Cho
 
Spring boot + java 에코시스템 #1
Spring boot + java 에코시스템 #1Spring boot + java 에코시스템 #1
Spring boot + java 에코시스템 #1SeungHa Eom
 
Microservices architecture examples
Microservices architecture examplesMicroservices architecture examples
Microservices architecture examplesChanny Yun
 
MSA를 이용해 구현하는 고가용/고확장성 서비스
MSA를 이용해 구현하는 고가용/고확장성 서비스MSA를 이용해 구현하는 고가용/고확장성 서비스
MSA를 이용해 구현하는 고가용/고확장성 서비스DoHyun Jung
 
Xen and the art of embedded virtualization (ELC 2017)
Xen and the art of embedded virtualization (ELC 2017)Xen and the art of embedded virtualization (ELC 2017)
Xen and the art of embedded virtualization (ELC 2017)Stefano Stabellini
 
XPDS16: High-Performance Virtualization for HPC Cloud on Xen - Jun Nakajima &...
XPDS16: High-Performance Virtualization for HPC Cloud on Xen - Jun Nakajima &...XPDS16: High-Performance Virtualization for HPC Cloud on Xen - Jun Nakajima &...
XPDS16: High-Performance Virtualization for HPC Cloud on Xen - Jun Nakajima &...The Linux Foundation
 
Virtualization Architecture & KVM
Virtualization Architecture & KVMVirtualization Architecture & KVM
Virtualization Architecture & KVMPradeep Kumar
 
Xen Project Release and Roadmap Process (4.7+)
Xen Project Release and Roadmap Process (4.7+)Xen Project Release and Roadmap Process (4.7+)
Xen Project Release and Roadmap Process (4.7+)The Linux Foundation
 
OSCON16: Analysis of the Xen code review process: An example of software deve...
OSCON16: Analysis of the Xen code review process: An example of software deve...OSCON16: Analysis of the Xen code review process: An example of software deve...
OSCON16: Analysis of the Xen code review process: An example of software deve...The Linux Foundation
 
Global platform
Global platformGlobal platform
Global platformTerry Cho
 
대용량 분산 아키텍쳐 설계 #5. rest
대용량 분산 아키텍쳐 설계 #5. rest대용량 분산 아키텍쳐 설계 #5. rest
대용량 분산 아키텍쳐 설계 #5. restTerry Cho
 
대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴
대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴
대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴Terry Cho
 
마이크로서비스 아키텍처와 DevOps 기술 - Amazon 사례를 중심으로 (윤석찬)
마이크로서비스 아키텍처와 DevOps 기술 - Amazon 사례를 중심으로 (윤석찬)마이크로서비스 아키텍처와 DevOps 기술 - Amazon 사례를 중심으로 (윤석찬)
마이크로서비스 아키텍처와 DevOps 기술 - Amazon 사례를 중심으로 (윤석찬)Amazon Web Services Korea
 
DDD 구현기초 (거의 Final 버전)
DDD 구현기초 (거의 Final 버전)DDD 구현기초 (거의 Final 버전)
DDD 구현기초 (거의 Final 버전)beom kyun choi
 
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐Terry Cho
 
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐Terry Cho
 
virtualization and hypervisors
virtualization and hypervisorsvirtualization and hypervisors
virtualization and hypervisorsGaurav Suri
 
Hypervisors and Virtualization - VMware, Hyper-V, XenServer, and KVM
Hypervisors and Virtualization - VMware, Hyper-V, XenServer, and KVMHypervisors and Virtualization - VMware, Hyper-V, XenServer, and KVM
Hypervisors and Virtualization - VMware, Hyper-V, XenServer, and KVMvwchu
 

Viewers also liked (18)

Micro Service Architecture의 이해
Micro Service Architecture의 이해Micro Service Architecture의 이해
Micro Service Architecture의 이해
 
Spring boot + java 에코시스템 #1
Spring boot + java 에코시스템 #1Spring boot + java 에코시스템 #1
Spring boot + java 에코시스템 #1
 
Microservices architecture examples
Microservices architecture examplesMicroservices architecture examples
Microservices architecture examples
 
MSA를 이용해 구현하는 고가용/고확장성 서비스
MSA를 이용해 구현하는 고가용/고확장성 서비스MSA를 이용해 구현하는 고가용/고확장성 서비스
MSA를 이용해 구현하는 고가용/고확장성 서비스
 
Xen and the art of embedded virtualization (ELC 2017)
Xen and the art of embedded virtualization (ELC 2017)Xen and the art of embedded virtualization (ELC 2017)
Xen and the art of embedded virtualization (ELC 2017)
 
XPDS16: High-Performance Virtualization for HPC Cloud on Xen - Jun Nakajima &...
XPDS16: High-Performance Virtualization for HPC Cloud on Xen - Jun Nakajima &...XPDS16: High-Performance Virtualization for HPC Cloud on Xen - Jun Nakajima &...
XPDS16: High-Performance Virtualization for HPC Cloud on Xen - Jun Nakajima &...
 
Virtualization Architecture & KVM
Virtualization Architecture & KVMVirtualization Architecture & KVM
Virtualization Architecture & KVM
 
Xen Project Release and Roadmap Process (4.7+)
Xen Project Release and Roadmap Process (4.7+)Xen Project Release and Roadmap Process (4.7+)
Xen Project Release and Roadmap Process (4.7+)
 
OSCON16: Analysis of the Xen code review process: An example of software deve...
OSCON16: Analysis of the Xen code review process: An example of software deve...OSCON16: Analysis of the Xen code review process: An example of software deve...
OSCON16: Analysis of the Xen code review process: An example of software deve...
 
Global platform
Global platformGlobal platform
Global platform
 
대용량 분산 아키텍쳐 설계 #5. rest
대용량 분산 아키텍쳐 설계 #5. rest대용량 분산 아키텍쳐 설계 #5. rest
대용량 분산 아키텍쳐 설계 #5. rest
 
대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴
대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴
대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴
 
마이크로서비스 아키텍처와 DevOps 기술 - Amazon 사례를 중심으로 (윤석찬)
마이크로서비스 아키텍처와 DevOps 기술 - Amazon 사례를 중심으로 (윤석찬)마이크로서비스 아키텍처와 DevOps 기술 - Amazon 사례를 중심으로 (윤석찬)
마이크로서비스 아키텍처와 DevOps 기술 - Amazon 사례를 중심으로 (윤석찬)
 
DDD 구현기초 (거의 Final 버전)
DDD 구현기초 (거의 Final 버전)DDD 구현기초 (거의 Final 버전)
DDD 구현기초 (거의 Final 버전)
 
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐
 
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
 
virtualization and hypervisors
virtualization and hypervisorsvirtualization and hypervisors
virtualization and hypervisors
 
Hypervisors and Virtualization - VMware, Hyper-V, XenServer, and KVM
Hypervisors and Virtualization - VMware, Hyper-V, XenServer, and KVMHypervisors and Virtualization - VMware, Hyper-V, XenServer, and KVM
Hypervisors and Virtualization - VMware, Hyper-V, XenServer, and KVM
 

Similar to 마이크로서비스 아키텍처로 개발하기

SK플래닛_README_마이크로서비스 아키텍처로 개발하기
SK플래닛_README_마이크로서비스 아키텍처로 개발하기SK플래닛_README_마이크로서비스 아키텍처로 개발하기
SK플래닛_README_마이크로서비스 아키텍처로 개발하기Lee Ji Eun
 
개발자 지향 WAS : IBM WebSphere Liberty Server
개발자 지향 WAS : IBM WebSphere Liberty Server개발자 지향 WAS : IBM WebSphere Liberty Server
개발자 지향 WAS : IBM WebSphere Liberty ServerJungWoon Lee
 
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015 AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015 Amazon Web Services Korea
 
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기Amazon Web Services Korea
 
Azure Databases for PostgreSQL MYSQL and MariaDB
Azure Databases for PostgreSQL MYSQL and MariaDBAzure Databases for PostgreSQL MYSQL and MariaDB
Azure Databases for PostgreSQL MYSQL and MariaDBrockplace
 
AWS와 함께하는 엔터프라이즈 비즈니스 어플리케이션 도입하기 :: 김양용 :: AWS Summit Seoul 2016
AWS와 함께하는 엔터프라이즈 비즈니스 어플리케이션 도입하기 :: 김양용 :: AWS Summit Seoul 2016AWS와 함께하는 엔터프라이즈 비즈니스 어플리케이션 도입하기 :: 김양용 :: AWS Summit Seoul 2016
AWS와 함께하는 엔터프라이즈 비즈니스 어플리케이션 도입하기 :: 김양용 :: AWS Summit Seoul 2016Amazon Web Services Korea
 
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중Amazon Web Services Korea
 
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE  [제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE 흥래 김
 
테크데이타 - MS workload migration to aws 웨비나 발표자료 20210713
테크데이타 - MS workload migration to aws 웨비나 발표자료 20210713테크데이타 - MS workload migration to aws 웨비나 발표자료 20210713
테크데이타 - MS workload migration to aws 웨비나 발표자료 20210713테크데이타
 
Open standard open cloud engine (3)
Open standard open cloud engine (3)Open standard open cloud engine (3)
Open standard open cloud engine (3)uEngine Solutions
 
Unionweb프로젝트
Unionweb프로젝트Unionweb프로젝트
Unionweb프로젝트Dong-Jin Park
 
1711 azure-live
1711 azure-live1711 azure-live
1711 azure-live세준 김
 
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다Jongwon Han
 
AWS로 게임 기반 다지기 - 김병수, 박진성 :: AWS Game Master 온라인 세미나 #3
AWS로 게임 기반 다지기 - 김병수, 박진성 :: AWS Game Master 온라인 세미나 #3 AWS로 게임 기반 다지기 - 김병수, 박진성 :: AWS Game Master 온라인 세미나 #3
AWS로 게임 기반 다지기 - 김병수, 박진성 :: AWS Game Master 온라인 세미나 #3 Amazon Web Services Korea
 
AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로
AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로
AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로Amazon Web Services Korea
 
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!SangHoon Han
 
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)Cloud-Barista Community
 
Cloud life seminar open shift,이준영(배포용)
Cloud life seminar   open shift,이준영(배포용)Cloud life seminar   open shift,이준영(배포용)
Cloud life seminar open shift,이준영(배포용)Software in Life
 
[TD 2015] Microsoft Azure IaaS v2(최정현)
[TD 2015] Microsoft Azure IaaS v2(최정현)[TD 2015] Microsoft Azure IaaS v2(최정현)
[TD 2015] Microsoft Azure IaaS v2(최정현)Sang Don Kim
 
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 마이크로서비스 아키텍처로 개발하기 (20)

SK플래닛_README_마이크로서비스 아키텍처로 개발하기
SK플래닛_README_마이크로서비스 아키텍처로 개발하기SK플래닛_README_마이크로서비스 아키텍처로 개발하기
SK플래닛_README_마이크로서비스 아키텍처로 개발하기
 
개발자 지향 WAS : IBM WebSphere Liberty Server
개발자 지향 WAS : IBM WebSphere Liberty Server개발자 지향 WAS : IBM WebSphere Liberty Server
개발자 지향 WAS : IBM WebSphere Liberty Server
 
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015 AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
 
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
 
Azure Databases for PostgreSQL MYSQL and MariaDB
Azure Databases for PostgreSQL MYSQL and MariaDBAzure Databases for PostgreSQL MYSQL and MariaDB
Azure Databases for PostgreSQL MYSQL and MariaDB
 
AWS와 함께하는 엔터프라이즈 비즈니스 어플리케이션 도입하기 :: 김양용 :: AWS Summit Seoul 2016
AWS와 함께하는 엔터프라이즈 비즈니스 어플리케이션 도입하기 :: 김양용 :: AWS Summit Seoul 2016AWS와 함께하는 엔터프라이즈 비즈니스 어플리케이션 도입하기 :: 김양용 :: AWS Summit Seoul 2016
AWS와 함께하는 엔터프라이즈 비즈니스 어플리케이션 도입하기 :: 김양용 :: AWS Summit Seoul 2016
 
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중
 
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE  [제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE
 
테크데이타 - MS workload migration to aws 웨비나 발표자료 20210713
테크데이타 - MS workload migration to aws 웨비나 발표자료 20210713테크데이타 - MS workload migration to aws 웨비나 발표자료 20210713
테크데이타 - MS workload migration to aws 웨비나 발표자료 20210713
 
Open standard open cloud engine (3)
Open standard open cloud engine (3)Open standard open cloud engine (3)
Open standard open cloud engine (3)
 
Unionweb프로젝트
Unionweb프로젝트Unionweb프로젝트
Unionweb프로젝트
 
1711 azure-live
1711 azure-live1711 azure-live
1711 azure-live
 
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
 
AWS로 게임 기반 다지기 - 김병수, 박진성 :: AWS Game Master 온라인 세미나 #3
AWS로 게임 기반 다지기 - 김병수, 박진성 :: AWS Game Master 온라인 세미나 #3 AWS로 게임 기반 다지기 - 김병수, 박진성 :: AWS Game Master 온라인 세미나 #3
AWS로 게임 기반 다지기 - 김병수, 박진성 :: AWS Game Master 온라인 세미나 #3
 
AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로
AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로
AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로
 
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
 
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
 
Cloud life seminar open shift,이준영(배포용)
Cloud life seminar   open shift,이준영(배포용)Cloud life seminar   open shift,이준영(배포용)
Cloud life seminar open shift,이준영(배포용)
 
[TD 2015] Microsoft Azure IaaS v2(최정현)
[TD 2015] Microsoft Azure IaaS v2(최정현)[TD 2015] Microsoft Azure IaaS v2(최정현)
[TD 2015] Microsoft Azure IaaS v2(최정현)
 
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) 기술동향 소개-박문기@메ᄀ...
 

마이크로서비스 아키텍처로 개발하기

  • 2. About me • SK 플래닛 Platform Architecture 팀 • 전 NCSOFT 인프라플랫폼팀 • 전 닷넷엑스퍼트 수석컨설턴트
  • 3. 오늘 얘기할 내용은 • 마이크로 서비스 아키텍처란? • 장단점은? • 무엇이 필요하고, 어떤 점을 고려해야 하는지? • 우리는 어떻게 하고 있는지?
  • 4. WAS 전통적인 Web App 아키텍처 Browser/ Client WAR UI A Service A Repository Database A
  • 6. WAS WAS 기능 추가 Browser/ Client WAR UI A Service A Repository Database Load balancer AB Service B Repository B
  • 7. 시스템 연계/통합 WAS WAS Browser/ Client WAR UI A Service A Repository Database Load balancer AB Service B Repository B D System C System
  • 8. 시스템 연계/통합 WAS WAS Browser/ Client WAR UI A Service A Repository Database Load balancer AB Service B Repository B E System D System F SystemC System G System
  • 9. 문제점 • 코드가 너무 커져서 유지보수하기 힘들어요. • 시스템을 분리하고 싶어요. • DB를 분리하고 싶어요. • 연계 시스템이 변경된대요. • 연계 시스템이 장애나서 우리 서비스도 장애예요. • 사소한 수정인데도 전체 배포를 하고, QA를 거쳐야 해요. • 새로운 걸 추가하는 건 상관없는데, 기존 로직/데이터를 변경하면 무슨 문제가 생길지 몰라요. • 저희도 새로운 버전/기술을 써보고 싶은데…
  • 10. 가면 갈수록 • 뭔가 바꾸는게 두려워진다. • 개발자들이 구닥다리 기술의 족쇄에서 벗어나지 못하고, 기술 격차는 계속 벌어진다. • 모든 것은 ‘차세대’가 해결해야 줄 것이다. (정말?)
  • 11. 나랑 상관없는 상상 속 단어들 Domain Driven Design Continuous Delivery On-demand Virtualization Elastic, Scalable, Resilience Polyglot Programming Infrastructure Automation Agile Development Reusability Self-government Team
  • 12. 마이크로 서비스 아키텍처의 배경 Domain Driven Design Continuous Delivery On-demand Virtualization Elastic, Scalable, Resilience Polyglot Programming Infrastructure Automation Agile Development Reusability Self-government Team
  • 14. Y축 확장 WAS WAR UI A Service A Repository Database AB Service B Repository B
  • 15. Y축 확장 Database A WAS WAR UI A Service A Repository WAS WAR B Service B Repository Database B
  • 16. Database WAS WAS WAS B UI A UI Y축 확장 + X축/Z축 확장 Database A WAS WAR A UI A Service A Repository WAR B Service B Repository Database B1 B UI Database B2
  • 17. 마이크로 서비스란? • 작고(small) • API로 다른 서비스와 연계하며(communicate with APIs) • 자율적이며(autonomous) • 한 가지 일을 잘하는데 초점을 맞춘 서비스(focused on doing one thing well)
  • 18. 장점 • Technology Heterogeneity • Resilience • Scaling • Ease of Deployment • Organizational Alignment • Composability • Replaceability
  • 19. 단점 • Complexity • Multiple Database & Transaction Management • Complicated Test • Require Automation for Deploy/Operation • Hard to develop features span multiple services
  • 20. 이거 SOA 얘기 아니에요? • 비슷하지만, 달라요. • SOA는 개념 상으로는 잘못되지 않았어요. • 다만 방식이 잘못되었을 뿐이죠. – SOAP Protocol – WS-* – Vendor-Driven – ESB가 모든 걸 다 해결해줄 거라는 잘못된 믿음 (그렇게 선전했던 나쁜 XX)
  • 21. MSA는 • Vendor Driven -> Service Company Driven • 오픈테크놀로지 기반 • SOAP/XML vs. REST/JSON • ‘스펙 먼저’가 아닌 ‘현실에서 검증된 Practice들’의 모음 • Agile 개념과의 결합 • Cloud 환경의 활용
  • 22. 마이크로 서비스 모델링 • Domain Driven Design • Bounded Context • Contract-First(API-First) Design • Decomposed database • Event-Driven Architecture
  • 23. 모델링/구현 Tip • API를 먼저 정의하라. • API를 REST API Maturity Level 2 이상이 되도록 강제화하라. • API 문서를 유지하라(예: Swagger) • ORM을 활용하라 • DB에 너무 의존하지 마라 • 도메인 내부에서만 의미있는 값을 외부에 노출하는 것을 지양하라 • 마이크로 서비스가 별다른 설정 없이 바로 기동가능하게 하라 (예: Java의 경우, Spring Boot + Embedded WAS 활용)
  • 24. 클라이언트-서비스 간 통합 Client A (Web) Client B (App) MS-A MS-ALB MS-A MS-BLB MS-A MS-CLB MS-A MS-DLB Security Logging Version … Security Logging Version … Security Logging Version … Security Logging Version …
  • 25. 클라이언트-서비스 간 통합 API Gateway Client A (Web) Client B (App) MS-A MS-A MS-A MS-B MS-A MS-C MS-A MS-D Security Logging Version …
  • 26. 클라이언트-서비스 간 통합 API GatewayClient A (Web) Client B (App) MS-A MS-A MS-A MS-B MS-A MS-C MS-A MS-D Security Logging Version … API Gateway Security Logging Version … LB API Gateway Security Logging Version … API Gateway Security Logging Version … LB
  • 27. 서비스 간 통신 Service A Service B HTTP Request/Response Event (Message) Broker Publish Event Service C Service D Subscribe Event
  • 30. MSA를 선택한 이유 Frontend/Backend 분리 회사의 Engineer Tech Tree와 동기화 코드 양이 커지고, 중복코드가 발생 코드의 양을 줄여서 누구나 쉽게 파악하도록 팀 전체의 Project Working Group별 Product 시스템 간 연계 증대 API 기반의 Contract 관리를 강제화 새로운 기술에 대한 도입 욕구 Micro-Service 단위로 구현에 자율성 부여 (Polyglot) 재사용성 향상 및 지속적인 발전 Micro-Service 단위의 재사용, 자유로운 리팩토링 회사 인프라의 뒷받침 On-Premise Cloud, CI와 연계된 배포 자동화(Jarvis), 향후 Docker와 같은 Container 기술과 연계
  • 31. 어떻게 개발하나요? Backend 개발자Frontend 개발자 UserStory 검토 Contract/API 설계 Frontend 개발 Backend 개발 Mock/Unit Test Unit Test API 연동 Load Test UserStory 종료
  • 33. Contract/API의 설계/공유 API Workspace Product API API Product dev draft release Design APIs Publish/Change APIs API Provider API Consumer (stakeholder) API Consumer (public) Review / Share draft spec Explore & Test APIs
  • 34. 진짜 Polyglot을 하나요? Java 1.6 Tomcat 6 Spring 3.x + XML Conf. Spring MVC MyBatis Maven 기존 시스템들의 Backend Web Application Presentation Controller Business Data Access JSP Sitemesh JQuery 기존 시스템들의 Frontend MySQL
  • 35. 네, 합니다. Java 1.7 / Tomcat 7 Spring 4.x + Java Conf. Spring Data JPA Java 1.8 / Embedded Tomcat Spring Boot Spring Data JPA Node.js Express MySQL Redis RabbitMQ Groovy Go ASP.NET 5 Vert.x Others… PlanetSpace (File Storage) Frontend HTML CSS Angular.js Bootstrap Less Grunt Bower Karma 향후 실험(?) 후보들 Other… ZooKeeper
  • 36. 개발 환경의 문제 • 개발하다 보면, 여러 개의 마이크로서비스들을 구동시켜야 하는 경우가 많다. • 마이크로서비스마다 설정/기동방식이 상이한 경우, 다소 괴롭다. • 구동된 마이크로 서비스들을 위한 API Gateway를 빠르게 설정하기 • git clone/pull하는 것도 일이다.
  • 37. Whitebase Developer’s Machine Whitebase jar/js (file system) MS-A Instance git jar/js (file system) MS-B Instance Artifact repository jar/js (file system) MS-C Instance Local docker MS-D Instance Docker Image Registry remote docker MS-E Instance HA Proxy HA Proxy clone wget remote machine MS-F Instance
  • 38. Whitebase • URL-based Router + Proxy Authentication Versioning Logging Routing Composition
  • 39. MS-A Container Whitebase + Service Discovery + Inter-Service Call Whitebase UI UI MS-A HA Proxy HA Proxy HA Proxy Service Registry Service Agent MS-A Container MS-A HA Proxy Service Agent MS-B Container MS-B Service Agent MS-B Container MS-B Service Agent
  • 40. Monolithic Web App (WAS) Web 변화 요약 - Before Monolithic Java Web App (WAS) Browser/ Client “Big” Database (MySQL) L4L4 Web File Storage A B C D UI
  • 41. MS-A MS-B MS-C MS-D Whitebase A UI B UI C UI D UI Content Router 변화 요약 - After Browser/ Client L4L4 Content Router A UI B UI C UI D UI API Gateway (Whitebase) MS-A (Java) DB (MySQL) MS-B (Nodejs) MS-C (Nodejs) MS-D (Java) DB (MySQL) Redis (MySQL) File Storage DB (MySQL) Service Registry Event Broker Config Service
  • 42. 변화 요약 Before Now or soon Future Architecture Monolithic DB 공유형 통합 Micro-Services, VM 기반 Loosely-Coupled (API/Event) Container 기반 가상화 Self-Healing Application 1 Web App 9 UIs 14 Services 더욱 세분화 Data 1 MySQL 10 MySQL 2 Redis 1 ZooKeeper Maria DB PostgreSQL 또다른 NoSQL Tech Stack Java 1.6/Tomcat 6 Spring 3.x MyBatis MySQL Java 1.7/1.8, Embedded Tomcat Spring 4.x/Spring Boot Spring Data JPA MySQL Node.js Redis RabbitMQ 다른 Java Framework 다른 언어/플랫폼 기타 OnDemand SVN/Git CI (Jenkins) 수동 배포 Scrum/Sprint 기반 Git with Feature Branch Model CI (Jenkins) Jarvis를 사용한 자동 배포 Docker 인프라 연계 Blue/Green Deployment Continuous Deployment A/B Testing
  • 43. MSA로 진행하며 얻은 것 • 팀원들이 다루는 기술 범위가 크게 확장 • 최신 기술의 도입/실험에 부담이 없음 • 팀원 간의 경험 공유 활성화 • API 디자인 능력 향상 • 향후 변화/확장에 대해서도 아키텍처적 변화 없이 대응이 가능 • 높은 재활용성/조합 지원 • 향후 사내/대외 오픈소스화가 가능할 듯한 솔루션들
  • 44. MSA로 진행 시의 단점 • 초기 개발 시에는 개발 시간이 많이 소요됨 • MSA로 원활하게 개발하기 위한 기반 구성요소와 인프라 준비가 필요함 • 기존 개발 방식이 편하다고 주장하는 사람들로부터의 저항 • 서비스 간 연계 시 협의가 필요 • 여러 서비스에 걸치는 기능의 경우, 주체가 애매한 경우가 생김
  • 45. 제언 • 갑자기 한번에 MSA로 넘어가는 것은 쉽지 않은 작업입니다. • 기존 시스템에서 분할이 가능한 항목을 하나씩 분할해가거나, 신규 개발되는 기능을 하나씩 마이크로 서비스로 분리하여 추가해가는 것이 좋습니다. • MSA는 만능이 아니며, 조직 문화(점진적 발전, 구성원들의 Skill-up에 대한 관심과 투자)가 뒷받침해줘야 합니다. 조직 문화가 선행되지 않으면 차라리 시도하지 않는 것이 좋습니다.
  • 46. 질문/피드백 var you = {}; if (you.like||you.dislike||you.suggest||you.request) { var id = "jaewoo.ahn"; var domain = "sk.com"; mail.send(String.format("{0}@{1}", id, domain )); }