SlideShare a Scribd company logo
1 of 35
마이크로서비스
아키텍쳐의 이해
피키캐스트 CTO
조대협
발표자 소개
조 대 협 본명: 조병욱
회원 13만명 온라인 개발자 커뮤니티 자바스터디(www.javastudy.co.kr) 운영자.. (기억의 저편..)
한국 자바 개발자 협회 부회장,서버사이드 아키텍트 그룹 운영자
벤쳐 개발자
BEA 웹로직 기술 지원 엔지니어
장애 진단, 성능 튜닝
NHN 잠깐
오라클 컨설턴트 (SOA,EAI,ALM,Enterprise 2.0,대용량 분산 시스템)
MS APAC 클라우드 수석 아키텍트
프리렌서 (잘나가는 사장님)
삼성전자 무선 사업부 B2B팀 Chief Architect
현 피키캐스트 CTO로.. 열심히 세상을 즐겁게 만드는 중….
피키캐스트
회사 개요
• 2012년 12월 설립
• 전체 150명
• 1000만 다운로드, 월 600만명 방문, 일 150만명 방문
• 10대~20대 주요 타켓
• 컨텐츠 큐레이션 서비스
• 세상을 즐겁게 만드는 것을 목표로 열심히 일하고 있음…
개발실 개요
• 18명 개발자+중국 5명 (연말 30명 목표)
• 인스타그램처럼 작고 빠른 팀을 지향
• 목표 3년내에 모두 페이스북에 취직하자!!
• 괴수 집단 (책을 쓰거나.. 세미나에서 유명하거나… 전문 블러거이거나… 오픈소스 커
미터이거나…)  아니라도 됨… 잘하믄 됨.. (열심히 하는 사람 시러함..)
• 재미있다.
• 빠르다.
• 실험과 분석
피키캐스트
• 아쉽게도 “마이크로서비스 아키텍쳐”를 권장하지는 않겠습니다.
– 실력이 전체적으로 좋은 팀만이 운영이 가능
– 좋은 커뮤니케이션이 전제되어야 함
– 서비스 개발에 유용 (SI 나 프로젝트식의 만들고 빠지는 식에는 안좋음)
– 장애 처리 , 테스트 어려움
오늘 할 이야기
기본 개념 이해
• 모노리틱 아키텍쳐 (통서버)
전통적인 아키텍쳐 스타일
• 하나의 서버에 모든 비지니스 로직이 들어가 있는 형태
• 하나의 중앙 집중화된 데이타 베이스에 모든 데이타가 저
장됨
• 단점
– 여러개의 기술을 혼용해서 사용하기 어려움 (node.js , Ruby, Python etc)
– 배포 및 재기동 시간이 오래 걸림
– 수정이 용이하지 않음 (타 컴포넌트 의존성)
• 장점
– 기술 단일화
– 관리 용이성
전통적인 아키텍쳐 스타일의 장단점
• 시스템을 여러개의 독립된 서비스로 나눠서, 이 서비스를 조합함으로서 기능
을 제공하는 아키텍쳐 디자인 패턴
• SOA의 경량화 버전 (실패한다면 실패하는 이유도 같음)
마이크로서비스 아키텍쳐란?
서비스란?
– 단일된 기능 묶음으로 개발된 서비스 컴포넌트
– REST API등을 통하여 기능을 제공
– 데이타를 공유하지 않고 독립적으로 가공 저장
사용자 관리 인터페이스
• REST
• Thrift,Protocol buffer
• AMQP
• :사용자 데이타
• 하나의 기능을 구현 하는데, 여러개의 서비스를 조합하여 기능을 제공
예) 주문 하기 : 사용자 정보 조회, 상품 정보 조회, 신규 주문 생성
서비스 조합
사용자 관리
상품 관리
주문 관리
쇼핑몰 웹
API CALL
사용자정보
상품정보
주문정보
사용자 관리 상품 관리 주문 관리
사용자 정보 상품 정보 주문 정보
쇼핑몰 웹
API CALL
모노리틱
아키텍쳐
마이크로 서비스
아키텍쳐
• 마이크로 서비스 아키텍쳐는 서비스 별로 다른 기술 스택을 사용할 수 있음
기술 스택
사용자 관리
(JAVA)
상품 관리
(node.js)
주문 관리
(JAVA)
사용자 정보
(Cassandra)
상품 정보
(MySQL)
주문 정보
(CouchBase)
쇼핑몰 웹
API CALL
장점일까?
• 운영 관점에서 여러가지 기술을 동
시에 다뤄야 함
(Devops – You build, You run)
• 사람이 떠나면 보수 불가
(Product not a project)
단점일까?
• 적절한 기술을 적절하게 배치 가능
o 복잡한 데이타 RDBMS, 양이
많은 고속 데이타 NoSQL
o C10K NoSQL, 빠른 개발 스크
립트 언어, 튼튼한 시스템은 자
바 …
• 컨웨이의 법칙
– 뼈저리게 느낌
팀 모델
“소프트웨어의 구조는 그 소프트웨어를 만드는 팀
의 구조와 일치한다.”
설계 백날 잘해야 소용없음
제대로 된 팀 구조를 만드는 것이 설계 (그 다음은 알아서 됨 ?)
• 친한팀 컴포넌트끼리는 개발이 잘됨. 그러다 보니 그쪽으로 기능이 몰림
• 잘하는 팀한테 자꾸 중요 기능이 몰림
서비스 컴포넌트들이 균등하게 디자인 되지 않음
• 분산형 거버넌스 (각 팀이 알아서. 적합한 기술, 스스로 하기)
• You build & You run!!
• Self Organized Team
• Product vs Project
• Cross functional team
• Alignment (소통!!)
팀 모델
• 팀간 조율이 핵심
– 새로운 조율자 ROLE이 요구됨
팀 모델
프로그램 메니져 : 팀간 일정 조율
치프 아키텍트 : 서비스간 흐름 정의, 표준 정의, 에러 추적/처리 방법 정의
설계 패턴
• 일반적인 마이크로 서비스 아키텍쳐 스택 구조
마이크로 서비스 아키텍쳐 토폴로지
API gateway
Service orchestration
(mediation, aggregation)
CommonAPIs
CommonAPIs
CommonAPIs
CommonAPIs
CommonAPIs
CommonAPIs
생략 가능 영역
• API 게이트 웨이 : API의 single end point
• Common APIs : 범용 API
• Orchestration : 여러 API를 묶어서, 요구 사항에 맞
는 로직을 구현
• Service Orchestration
규모가 커질 수 록 추가되는 계층들 (오케스트레이션, API 게이트 웨이)
1단계
2단계
3단계
쇼핑몰 API
서버
서비스 오케스트레이션 계층 활용
사용자 관리 상품 관리 주문 관리
사용자 정보 상품 정보 주문 정보
앱 또는 자바스크
립트 클라이언트
API CALL
사용자 관리 상품 관리 주문 관리
사용자 정보 상품 정보 주문 정보
API CALL
클라이언트
API CALL
클라이언트에서 직접 서비
스를 조합 하는 방식
별도의 조합 계층(Orchestration or Mediation)
을 넣는 방식
다른 프로토콜 사용 가능
ex)내부 PB, 외부 REST
• API가 범용적으로 잘 짜야 있어야함
• 클라이언트 팀이 모든 컴포넌트팀과
조율이 필요
규모가 크지 않은 구조에서 효과적
• 중간에 API를 커스터마이제이션 또는 조합
하는 계층을 별도로 둠
• 클라이언트팀은 조합 API 개발팀과 커뮤니
케이션만 하면 됨
• 클라이언트 요구 사항에 기민하게 대처
• 그러나 계층은 하나 더 늘어남 (성능,디버
깅,배포)
일정 규모 이상. 특히 클라이언트
가 여러개인 구조에 효과적
• API 인증/인가
• 로깅
• 라우팅
• 메시지 변환
• 메시지 프로토콜 변환
:
API 게이트 웨이
API 서버 API 서버 API 서버
데이타 데이타 데이타
API 게이트 웨이
• 클라이언트와 API 서버 앞에서 일종의 프록시 처럼 위치 하여 다양한
기능을 수행함
• SOA ESB (Enterprise Service Bus)의 단순화 버전
• 있으면 좋음. 없어도 됨
• 만들 수 있는 실력있으면, 쓰는게 좋음
• 잘못 쓰면 망하는 지름길
API 게이트 웨이
• 인증,인가의 단일화
API 게이트웨이를 이용한 설계 패턴 #1
IDM
(계정관리)
API 토큰
관리
클라이언트
API
게이트 웨이
API
서버
1. API 토큰 발급 요청
2. 사용자 인증/인가
3. API 호출
5. API 호출
4. API 토큰 인증
• 멀티 앤드포인트와 멀티 프로토콜 제공
API 게이트웨이를 이용한 설계 패턴 #2
<그림. 다양한 디바이스로 부터 정보를 수집하는 IOT시스템에 타입별 앤
드 포인트 제공하는 예제>
• MEP (Message Exchange Pattern) 변화
API 게이트웨이를 이용한 설계 패턴 #2
• 오케스트레이션
API 게이트웨이를 이용한 설계 패턴 #3
• ESB 기반 SOA 프로젝트가
실패한 대부분의 원인 (안
하는게 좋음)
• 오케스트레이션 서버를 별
도로 두는게 좋음
API 게이트웨이를 이용한 설계 패턴 #4
• 메세지 기반 라우팅
– 글로벌 배포 시스템에 유용함
– 멀티 버전 시스템 (레거시 업그레이드)에 유용
• Cross Cutting Concern (공통 기능) 처리
– 인증,로깅등 공통 기능 처리
– API 개발팀은 비지니스 로직에 집중할 수 있도록 해줌
API 게이트웨이를 이용한 설계 패턴 #5
• 다중 API 게이트 웨이 패턴
– 내부,외부용 API 게이트웨이 분리
API 게이트웨이를 이용한 설계 패턴 #6
• API 호출용 엔드포인트와 스트리밍 (파일)용 엔드포인트 분리
API 게이트웨이를 이용한 설계 패턴 #7
• 비 기능 요소 제어
– QoS 제어
– Metering & Charging (상용 API 서비스 과금)
– API 모니터링
API 게이트웨이를 이용한 설계 패턴 #6
• 여러개의 서비스 컴포넌트를 조합하여 움직이는 트렌젝션에 대한 추
적 디자인 패턴
분산 트렌젝션의 추적
원리 (XA 분산 트렌젝션과 유사)
• 초기 API에서 GTXID와 LTXID를 생성
• 서버를 넘어갈때 마다 같은 GTXID를
사용, LTXID는 하나씩 증가
구현시
• 서버간에는 HTTP 헤더로 TXID 전달
• 서버내에서는 Thread Local (Java)등
의 컨택스트 변수 활용
 초기 표준 설계가 중요함
• API 플랫폼
– API 게이트 웨이
– API 포탈 (웹)
• API 스펙 문서
• 샌드 박스 제공
• 제품군
– 설치형
• WSO2
• CA Layer 7
– 클라우드형
• AWS API GW
• apigee
Beyond API 게이트 웨이
정리
• 장애 진단
• 테스팅
• 표준 관리
• 팀의 역량에 따른 일정 및 품질 문제
• 트렌젝션 관리
• 서비스간 코디네이션 (Chief Architect, Program manager의 역할)
• 서비스간 일정 관리
마이크로 서비스 아키텍쳐 문제점
• Self Organized Team
• Agile based interaction model
• Devops (Development & Operation)
• CD (Continuous Delivery)
• Product not a project
마이크로서비스 아키텍쳐와 같이 가는 개념들
• 전체적인 기술 역량이 뛰어날 것
• Project 보다는 Product 기반의 서비스 조직에 유리
• 일정 규모 이상의 팀이 되어야 유리함
• 팀간 커뮤니케이션과 조직 구조 (Self organized team) 세팅이 전제
• API 게이트 웨이는 양날의 검
• 왠만하면 하지 마시고… 모노리틱과 MSA 중간 정도에서 타협을
– 통제된 기술.
– 너무 잘게 나누지 말고. 업무 단위 정도로 인터페이스 정해가면서.
마이크로서비스 아키텍쳐
감사합니다.

More Related Content

What's hot

대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐Terry Cho
 
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?VMware Tanzu Korea
 
판교 개발자 데이 – 쉽고 안전한 Aws IoT 플랫폼 활용하기 – 이창수
판교 개발자 데이 – 쉽고 안전한 Aws IoT 플랫폼 활용하기 – 이창수판교 개발자 데이 – 쉽고 안전한 Aws IoT 플랫폼 활용하기 – 이창수
판교 개발자 데이 – 쉽고 안전한 Aws IoT 플랫폼 활용하기 – 이창수Amazon Web Services Korea
 
LLM 모델 기반 서비스 실전 가이드
LLM 모델 기반 서비스 실전 가이드LLM 모델 기반 서비스 실전 가이드
LLM 모델 기반 서비스 실전 가이드Tae Young Lee
 
실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018
실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018
실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018Amazon Web Services Korea
 
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...Amazon Web Services Korea
 
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20Amazon Web Services Korea
 
예외처리가이드
예외처리가이드예외처리가이드
예외처리가이드도형 임
 
RPC에서 REST까지 간단한 개념소개
RPC에서 REST까지 간단한 개념소개RPC에서 REST까지 간단한 개념소개
RPC에서 REST까지 간단한 개념소개Wonchang Song
 
GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축철구 김
 
고객의 플랫폼/서비스를 개선한 국내 사례 살펴보기 – 장준성 AWS 솔루션즈 아키텍트, 강산아 NDREAM 팀장, 송영호 야놀자 매니저, ...
고객의 플랫폼/서비스를 개선한 국내 사례 살펴보기 – 장준성 AWS 솔루션즈 아키텍트, 강산아 NDREAM 팀장, 송영호 야놀자 매니저, ...고객의 플랫폼/서비스를 개선한 국내 사례 살펴보기 – 장준성 AWS 솔루션즈 아키텍트, 강산아 NDREAM 팀장, 송영호 야놀자 매니저, ...
고객의 플랫폼/서비스를 개선한 국내 사례 살펴보기 – 장준성 AWS 솔루션즈 아키텍트, 강산아 NDREAM 팀장, 송영호 야놀자 매니저, ...Amazon Web Services Korea
 
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015 AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015 Amazon Web Services Korea
 
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개if kakao
 
AWS 기반 대규모 트래픽 견디기 - 장준엽 (구로디지털 모임) :: AWS Community Day 2017
AWS 기반 대규모 트래픽 견디기 - 장준엽 (구로디지털 모임) :: AWS Community Day 2017AWS 기반 대규모 트래픽 견디기 - 장준엽 (구로디지털 모임) :: AWS Community Day 2017
AWS 기반 대규모 트래픽 견디기 - 장준엽 (구로디지털 모임) :: AWS Community Day 2017AWSKRUG - AWS한국사용자모임
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)수보 김
 
Ch6 대용량서비스레퍼런스아키텍처 part.1
Ch6 대용량서비스레퍼런스아키텍처 part.1Ch6 대용량서비스레퍼런스아키텍처 part.1
Ch6 대용량서비스레퍼런스아키텍처 part.1Minchul Jung
 
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항Ji-Woong Choi
 
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdfssuserf8b8bd1
 
내 서비스에는 어떤 데이터베이스가 맞는걸까? - 이혁 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
내 서비스에는 어떤 데이터베이스가 맞는걸까? - 이혁 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021내 서비스에는 어떤 데이터베이스가 맞는걸까? - 이혁 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
내 서비스에는 어떤 데이터베이스가 맞는걸까? - 이혁 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021Amazon Web Services Korea
 

What's hot (20)

대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐
 
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
 
판교 개발자 데이 – 쉽고 안전한 Aws IoT 플랫폼 활용하기 – 이창수
판교 개발자 데이 – 쉽고 안전한 Aws IoT 플랫폼 활용하기 – 이창수판교 개발자 데이 – 쉽고 안전한 Aws IoT 플랫폼 활용하기 – 이창수
판교 개발자 데이 – 쉽고 안전한 Aws IoT 플랫폼 활용하기 – 이창수
 
LLM 모델 기반 서비스 실전 가이드
LLM 모델 기반 서비스 실전 가이드LLM 모델 기반 서비스 실전 가이드
LLM 모델 기반 서비스 실전 가이드
 
실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018
실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018
실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018
 
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
 
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
 
예외처리가이드
예외처리가이드예외처리가이드
예외처리가이드
 
RPC에서 REST까지 간단한 개념소개
RPC에서 REST까지 간단한 개념소개RPC에서 REST까지 간단한 개념소개
RPC에서 REST까지 간단한 개념소개
 
GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축
 
고객의 플랫폼/서비스를 개선한 국내 사례 살펴보기 – 장준성 AWS 솔루션즈 아키텍트, 강산아 NDREAM 팀장, 송영호 야놀자 매니저, ...
고객의 플랫폼/서비스를 개선한 국내 사례 살펴보기 – 장준성 AWS 솔루션즈 아키텍트, 강산아 NDREAM 팀장, 송영호 야놀자 매니저, ...고객의 플랫폼/서비스를 개선한 국내 사례 살펴보기 – 장준성 AWS 솔루션즈 아키텍트, 강산아 NDREAM 팀장, 송영호 야놀자 매니저, ...
고객의 플랫폼/서비스를 개선한 국내 사례 살펴보기 – 장준성 AWS 솔루션즈 아키텍트, 강산아 NDREAM 팀장, 송영호 야놀자 매니저, ...
 
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015 AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
 
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
 
AWS 기반 대규모 트래픽 견디기 - 장준엽 (구로디지털 모임) :: AWS Community Day 2017
AWS 기반 대규모 트래픽 견디기 - 장준엽 (구로디지털 모임) :: AWS Community Day 2017AWS 기반 대규모 트래픽 견디기 - 장준엽 (구로디지털 모임) :: AWS Community Day 2017
AWS 기반 대규모 트래픽 견디기 - 장준엽 (구로디지털 모임) :: AWS Community Day 2017
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)
 
Ch6 대용량서비스레퍼런스아키텍처 part.1
Ch6 대용량서비스레퍼런스아키텍처 part.1Ch6 대용량서비스레퍼런스아키텍처 part.1
Ch6 대용량서비스레퍼런스아키텍처 part.1
 
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
 
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf
 
내 서비스에는 어떤 데이터베이스가 맞는걸까? - 이혁 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
내 서비스에는 어떤 데이터베이스가 맞는걸까? - 이혁 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021내 서비스에는 어떤 데이터베이스가 맞는걸까? - 이혁 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
내 서비스에는 어떤 데이터베이스가 맞는걸까? - 이혁 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
 
Amazon Aurora 100% 활용하기
Amazon Aurora 100% 활용하기Amazon Aurora 100% 활용하기
Amazon Aurora 100% 활용하기
 

Viewers also liked

마이크로서비스 아키텍처로 개발하기
마이크로서비스 아키텍처로 개발하기마이크로서비스 아키텍처로 개발하기
마이크로서비스 아키텍처로 개발하기Jaewoo Ahn
 
Microservices architecture examples
Microservices architecture examplesMicroservices architecture examples
Microservices architecture examplesChanny Yun
 
MSA를 이용해 구현하는 고가용/고확장성 서비스
MSA를 이용해 구현하는 고가용/고확장성 서비스MSA를 이용해 구현하는 고가용/고확장성 서비스
MSA를 이용해 구현하는 고가용/고확장성 서비스DoHyun Jung
 
장고로 웹서비스 만들기 기초
장고로 웹서비스 만들기   기초장고로 웹서비스 만들기   기초
장고로 웹서비스 만들기 기초Kwangyoun Jung
 
Global platform
Global platformGlobal platform
Global platformTerry Cho
 
머신러닝으로 쏟아지는 유저 CS 답변하기 DEVIEW 2017
머신러닝으로 쏟아지는 유저 CS 답변하기 DEVIEW 2017머신러닝으로 쏟아지는 유저 CS 답변하기 DEVIEW 2017
머신러닝으로 쏟아지는 유저 CS 답변하기 DEVIEW 2017Donghwa Kim
 
대용량 분산 아키텍쳐 설계 #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
 
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용Susang Kim
 
svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드Insub Lee
 
기술적 변화를 이끌어가기
기술적 변화를 이끌어가기기술적 변화를 이끌어가기
기술적 변화를 이끌어가기Jaewoo Ahn
 
SK플래닛_README_마이크로서비스 아키텍처로 개발하기
SK플래닛_README_마이크로서비스 아키텍처로 개발하기SK플래닛_README_마이크로서비스 아키텍처로 개발하기
SK플래닛_README_마이크로서비스 아키텍처로 개발하기Lee Ji Eun
 

Viewers also liked (13)

마이크로서비스 아키텍처로 개발하기
마이크로서비스 아키텍처로 개발하기마이크로서비스 아키텍처로 개발하기
마이크로서비스 아키텍처로 개발하기
 
Microservices architecture examples
Microservices architecture examplesMicroservices architecture examples
Microservices architecture examples
 
MSA를 이용해 구현하는 고가용/고확장성 서비스
MSA를 이용해 구현하는 고가용/고확장성 서비스MSA를 이용해 구현하는 고가용/고확장성 서비스
MSA를 이용해 구현하는 고가용/고확장성 서비스
 
장고로 웹서비스 만들기 기초
장고로 웹서비스 만들기   기초장고로 웹서비스 만들기   기초
장고로 웹서비스 만들기 기초
 
Global platform
Global platformGlobal platform
Global platform
 
머신러닝으로 쏟아지는 유저 CS 답변하기 DEVIEW 2017
머신러닝으로 쏟아지는 유저 CS 답변하기 DEVIEW 2017머신러닝으로 쏟아지는 유저 CS 답변하기 DEVIEW 2017
머신러닝으로 쏟아지는 유저 CS 답변하기 DEVIEW 2017
 
대용량 분산 아키텍쳐 설계 #5. rest
대용량 분산 아키텍쳐 설계 #5. rest대용량 분산 아키텍쳐 설계 #5. rest
대용량 분산 아키텍쳐 설계 #5. rest
 
대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴
대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴
대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴
 
마이크로서비스 아키텍처와 DevOps 기술 - Amazon 사례를 중심으로 (윤석찬)
마이크로서비스 아키텍처와 DevOps 기술 - Amazon 사례를 중심으로 (윤석찬)마이크로서비스 아키텍처와 DevOps 기술 - Amazon 사례를 중심으로 (윤석찬)
마이크로서비스 아키텍처와 DevOps 기술 - Amazon 사례를 중심으로 (윤석찬)
 
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용
 
svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드
 
기술적 변화를 이끌어가기
기술적 변화를 이끌어가기기술적 변화를 이끌어가기
기술적 변화를 이끌어가기
 
SK플래닛_README_마이크로서비스 아키텍처로 개발하기
SK플래닛_README_마이크로서비스 아키텍처로 개발하기SK플래닛_README_마이크로서비스 아키텍처로 개발하기
SK플래닛_README_마이크로서비스 아키텍처로 개발하기
 

Similar to Micro Service Architecture의 이해

[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup -  마이크로 서비스 아키텍쳐와 Docker kubernetes[D2 COMMUNITY] Open Container Seoul Meetup -  마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetesNAVER D2
 
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
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice ArchitectureYoonsung Jung
 
서비스 지향 아키텍쳐 (SOA)
서비스 지향 아키텍쳐 (SOA)서비스 지향 아키텍쳐 (SOA)
서비스 지향 아키텍쳐 (SOA)Terry Cho
 
Service-Oriented Architecture in a Nutshell
Service-Oriented Architecture in a NutshellService-Oriented Architecture in a Nutshell
Service-Oriented Architecture in a NutshellSamsung Electronics
 
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
 
API Management Reference Architecture
API Management Reference ArchitectureAPI Management Reference Architecture
API Management Reference ArchitectureSeong-Bok Lee
 
Intro to hpe helion stackato_paa_s
Intro to hpe helion stackato_paa_sIntro to hpe helion stackato_paa_s
Intro to hpe helion stackato_paa_sSeong-Bok Lee
 
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) 기술동향 소개-박문기@메ᄀ...문기 박
 
[Partner TechShift 2017] AWS로 당신의 소프트웨어를 혁신하라
[Partner TechShift 2017] AWS로 당신의 소프트웨어를 혁신하라[Partner TechShift 2017] AWS로 당신의 소프트웨어를 혁신하라
[Partner TechShift 2017] AWS로 당신의 소프트웨어를 혁신하라Amazon Web Services Korea
 
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례SONG INSEOB
 
REST API 설계
REST API 설계REST API 설계
REST API 설계Terry Cho
 
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다Jongwon Han
 
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기Amazon Web Services Korea
 
Google Cloud Platform - Apigee
Google Cloud Platform - ApigeeGoogle Cloud Platform - Apigee
Google Cloud Platform - Apigeebliexsoft
 
Cloud life seminar open shift,이준영(배포용)
Cloud life seminar   open shift,이준영(배포용)Cloud life seminar   open shift,이준영(배포용)
Cloud life seminar open shift,이준영(배포용)Software in Life
 
API Gateway 그리고 모바일 어플리케이션
API Gateway 그리고 모바일 어플리케이션API Gateway 그리고 모바일 어플리케이션
API Gateway 그리고 모바일 어플리케이션BDapis inc.
 
마이크로 서비스 아키텍쳐 소개 및 구현 방법
마이크로 서비스 아키텍쳐 소개 및 구현 방법마이크로 서비스 아키텍쳐 소개 및 구현 방법
마이크로 서비스 아키텍쳐 소개 및 구현 방법Young Soo Lee
 
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015Goonoo Kim
 

Similar to Micro Service Architecture의 이해 (20)

[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup -  마이크로 서비스 아키텍쳐와 Docker kubernetes[D2 COMMUNITY] Open Container Seoul Meetup -  마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
 
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
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
서비스 지향 아키텍쳐 (SOA)
서비스 지향 아키텍쳐 (SOA)서비스 지향 아키텍쳐 (SOA)
서비스 지향 아키텍쳐 (SOA)
 
Service-Oriented Architecture in a Nutshell
Service-Oriented Architecture in a NutshellService-Oriented Architecture in a Nutshell
Service-Oriented Architecture in a Nutshell
 
Open standard open cloud engine (3)
Open standard open cloud engine (3)Open standard open cloud engine (3)
Open standard open cloud engine (3)
 
API Management Reference Architecture
API Management Reference ArchitectureAPI Management Reference Architecture
API Management Reference Architecture
 
Intro to hpe helion stackato_paa_s
Intro to hpe helion stackato_paa_sIntro to hpe helion stackato_paa_s
Intro to hpe helion stackato_paa_s
 
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) 기술동향 소개-박문기@메ᄀ...
 
[Partner TechShift 2017] AWS로 당신의 소프트웨어를 혁신하라
[Partner TechShift 2017] AWS로 당신의 소프트웨어를 혁신하라[Partner TechShift 2017] AWS로 당신의 소프트웨어를 혁신하라
[Partner TechShift 2017] AWS로 당신의 소프트웨어를 혁신하라
 
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
 
One ASP.NET
One ASP.NETOne ASP.NET
One ASP.NET
 
REST API 설계
REST API 설계REST API 설계
REST API 설계
 
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
20181108 HBSmith에서는 이렇게 AWS IaC로 배포한다
 
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
 
Google Cloud Platform - Apigee
Google Cloud Platform - ApigeeGoogle Cloud Platform - Apigee
Google Cloud Platform - Apigee
 
Cloud life seminar open shift,이준영(배포용)
Cloud life seminar   open shift,이준영(배포용)Cloud life seminar   open shift,이준영(배포용)
Cloud life seminar open shift,이준영(배포용)
 
API Gateway 그리고 모바일 어플리케이션
API Gateway 그리고 모바일 어플리케이션API Gateway 그리고 모바일 어플리케이션
API Gateway 그리고 모바일 어플리케이션
 
마이크로 서비스 아키텍쳐 소개 및 구현 방법
마이크로 서비스 아키텍쳐 소개 및 구현 방법마이크로 서비스 아키텍쳐 소개 및 구현 방법
마이크로 서비스 아키텍쳐 소개 및 구현 방법
 
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
시간당 수백만 요청을 처리하는 node.js 서버 운영기 - Playnode 2015
 

More from Terry Cho

Kubernetes #6 advanced scheduling
Kubernetes #6   advanced schedulingKubernetes #6   advanced scheduling
Kubernetes #6 advanced schedulingTerry Cho
 
Kubernetes #4 volume &amp; stateful set
Kubernetes #4   volume &amp; stateful setKubernetes #4   volume &amp; stateful set
Kubernetes #4 volume &amp; stateful setTerry Cho
 
Kubernetes #3 security
Kubernetes #3   securityKubernetes #3   security
Kubernetes #3 securityTerry Cho
 
Kubernetes #2 monitoring
Kubernetes #2   monitoring Kubernetes #2   monitoring
Kubernetes #2 monitoring Terry Cho
 
Kubernetes #1 intro
Kubernetes #1   introKubernetes #1   intro
Kubernetes #1 introTerry Cho
 
머신러닝으로 얼굴 인식 모델 개발 삽질기
머신러닝으로 얼굴 인식 모델 개발 삽질기머신러닝으로 얼굴 인식 모델 개발 삽질기
머신러닝으로 얼굴 인식 모델 개발 삽질기Terry Cho
 
5. 솔루션 카달로그
5. 솔루션 카달로그5. 솔루션 카달로그
5. 솔루션 카달로그Terry Cho
 
애자일 스크럼과 JIRA
애자일 스크럼과 JIRA 애자일 스크럼과 JIRA
애자일 스크럼과 JIRA Terry Cho
 
모바일 개발 트랜드
모바일 개발 트랜드모바일 개발 트랜드
모바일 개발 트랜드Terry Cho
 
머신 러닝 입문 #1-머신러닝 소개와 kNN 소개
머신 러닝 입문 #1-머신러닝 소개와 kNN 소개머신 러닝 입문 #1-머신러닝 소개와 kNN 소개
머신 러닝 입문 #1-머신러닝 소개와 kNN 소개Terry Cho
 
R 프로그래밍-향상된 데이타 조작
R 프로그래밍-향상된 데이타 조작R 프로그래밍-향상된 데이타 조작
R 프로그래밍-향상된 데이타 조작Terry Cho
 
R 프로그래밍 기본 문법
R 프로그래밍 기본 문법R 프로그래밍 기본 문법
R 프로그래밍 기본 문법Terry Cho
 
R 기본-데이타형 소개
R 기본-데이타형 소개R 기본-데이타형 소개
R 기본-데이타형 소개Terry Cho
 
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화Terry Cho
 
Redis data modeling examples
Redis data modeling examplesRedis data modeling examples
Redis data modeling examplesTerry Cho
 
빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.xTerry Cho
 
14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용
14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용
14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용Terry Cho
 
자바 성능 강의
자바 성능 강의자바 성능 강의
자바 성능 강의Terry Cho
 
Service operation
Service operationService operation
Service operationTerry Cho
 

More from Terry Cho (19)

Kubernetes #6 advanced scheduling
Kubernetes #6   advanced schedulingKubernetes #6   advanced scheduling
Kubernetes #6 advanced scheduling
 
Kubernetes #4 volume &amp; stateful set
Kubernetes #4   volume &amp; stateful setKubernetes #4   volume &amp; stateful set
Kubernetes #4 volume &amp; stateful set
 
Kubernetes #3 security
Kubernetes #3   securityKubernetes #3   security
Kubernetes #3 security
 
Kubernetes #2 monitoring
Kubernetes #2   monitoring Kubernetes #2   monitoring
Kubernetes #2 monitoring
 
Kubernetes #1 intro
Kubernetes #1   introKubernetes #1   intro
Kubernetes #1 intro
 
머신러닝으로 얼굴 인식 모델 개발 삽질기
머신러닝으로 얼굴 인식 모델 개발 삽질기머신러닝으로 얼굴 인식 모델 개발 삽질기
머신러닝으로 얼굴 인식 모델 개발 삽질기
 
5. 솔루션 카달로그
5. 솔루션 카달로그5. 솔루션 카달로그
5. 솔루션 카달로그
 
애자일 스크럼과 JIRA
애자일 스크럼과 JIRA 애자일 스크럼과 JIRA
애자일 스크럼과 JIRA
 
모바일 개발 트랜드
모바일 개발 트랜드모바일 개발 트랜드
모바일 개발 트랜드
 
머신 러닝 입문 #1-머신러닝 소개와 kNN 소개
머신 러닝 입문 #1-머신러닝 소개와 kNN 소개머신 러닝 입문 #1-머신러닝 소개와 kNN 소개
머신 러닝 입문 #1-머신러닝 소개와 kNN 소개
 
R 프로그래밍-향상된 데이타 조작
R 프로그래밍-향상된 데이타 조작R 프로그래밍-향상된 데이타 조작
R 프로그래밍-향상된 데이타 조작
 
R 프로그래밍 기본 문법
R 프로그래밍 기본 문법R 프로그래밍 기본 문법
R 프로그래밍 기본 문법
 
R 기본-데이타형 소개
R 기본-데이타형 소개R 기본-데이타형 소개
R 기본-데이타형 소개
 
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
 
Redis data modeling examples
Redis data modeling examplesRedis data modeling examples
Redis data modeling examples
 
빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x
 
14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용
14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용
14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용
 
자바 성능 강의
자바 성능 강의자바 성능 강의
자바 성능 강의
 
Service operation
Service operationService operation
Service operation
 

Micro Service Architecture의 이해

  • 2. 발표자 소개 조 대 협 본명: 조병욱 회원 13만명 온라인 개발자 커뮤니티 자바스터디(www.javastudy.co.kr) 운영자.. (기억의 저편..) 한국 자바 개발자 협회 부회장,서버사이드 아키텍트 그룹 운영자 벤쳐 개발자 BEA 웹로직 기술 지원 엔지니어 장애 진단, 성능 튜닝 NHN 잠깐 오라클 컨설턴트 (SOA,EAI,ALM,Enterprise 2.0,대용량 분산 시스템) MS APAC 클라우드 수석 아키텍트 프리렌서 (잘나가는 사장님) 삼성전자 무선 사업부 B2B팀 Chief Architect 현 피키캐스트 CTO로.. 열심히 세상을 즐겁게 만드는 중….
  • 3. 피키캐스트 회사 개요 • 2012년 12월 설립 • 전체 150명 • 1000만 다운로드, 월 600만명 방문, 일 150만명 방문 • 10대~20대 주요 타켓 • 컨텐츠 큐레이션 서비스 • 세상을 즐겁게 만드는 것을 목표로 열심히 일하고 있음… 개발실 개요 • 18명 개발자+중국 5명 (연말 30명 목표) • 인스타그램처럼 작고 빠른 팀을 지향 • 목표 3년내에 모두 페이스북에 취직하자!! • 괴수 집단 (책을 쓰거나.. 세미나에서 유명하거나… 전문 블러거이거나… 오픈소스 커 미터이거나…)  아니라도 됨… 잘하믄 됨.. (열심히 하는 사람 시러함..)
  • 4. • 재미있다. • 빠르다. • 실험과 분석 피키캐스트
  • 5. • 아쉽게도 “마이크로서비스 아키텍쳐”를 권장하지는 않겠습니다. – 실력이 전체적으로 좋은 팀만이 운영이 가능 – 좋은 커뮤니케이션이 전제되어야 함 – 서비스 개발에 유용 (SI 나 프로젝트식의 만들고 빠지는 식에는 안좋음) – 장애 처리 , 테스트 어려움 오늘 할 이야기
  • 7. • 모노리틱 아키텍쳐 (통서버) 전통적인 아키텍쳐 스타일 • 하나의 서버에 모든 비지니스 로직이 들어가 있는 형태 • 하나의 중앙 집중화된 데이타 베이스에 모든 데이타가 저 장됨
  • 8. • 단점 – 여러개의 기술을 혼용해서 사용하기 어려움 (node.js , Ruby, Python etc) – 배포 및 재기동 시간이 오래 걸림 – 수정이 용이하지 않음 (타 컴포넌트 의존성) • 장점 – 기술 단일화 – 관리 용이성 전통적인 아키텍쳐 스타일의 장단점
  • 9. • 시스템을 여러개의 독립된 서비스로 나눠서, 이 서비스를 조합함으로서 기능 을 제공하는 아키텍쳐 디자인 패턴 • SOA의 경량화 버전 (실패한다면 실패하는 이유도 같음) 마이크로서비스 아키텍쳐란? 서비스란? – 단일된 기능 묶음으로 개발된 서비스 컴포넌트 – REST API등을 통하여 기능을 제공 – 데이타를 공유하지 않고 독립적으로 가공 저장 사용자 관리 인터페이스 • REST • Thrift,Protocol buffer • AMQP • :사용자 데이타
  • 10. • 하나의 기능을 구현 하는데, 여러개의 서비스를 조합하여 기능을 제공 예) 주문 하기 : 사용자 정보 조회, 상품 정보 조회, 신규 주문 생성 서비스 조합 사용자 관리 상품 관리 주문 관리 쇼핑몰 웹 API CALL 사용자정보 상품정보 주문정보 사용자 관리 상품 관리 주문 관리 사용자 정보 상품 정보 주문 정보 쇼핑몰 웹 API CALL 모노리틱 아키텍쳐 마이크로 서비스 아키텍쳐
  • 11. • 마이크로 서비스 아키텍쳐는 서비스 별로 다른 기술 스택을 사용할 수 있음 기술 스택 사용자 관리 (JAVA) 상품 관리 (node.js) 주문 관리 (JAVA) 사용자 정보 (Cassandra) 상품 정보 (MySQL) 주문 정보 (CouchBase) 쇼핑몰 웹 API CALL 장점일까? • 운영 관점에서 여러가지 기술을 동 시에 다뤄야 함 (Devops – You build, You run) • 사람이 떠나면 보수 불가 (Product not a project) 단점일까? • 적절한 기술을 적절하게 배치 가능 o 복잡한 데이타 RDBMS, 양이 많은 고속 데이타 NoSQL o C10K NoSQL, 빠른 개발 스크 립트 언어, 튼튼한 시스템은 자 바 …
  • 12. • 컨웨이의 법칙 – 뼈저리게 느낌 팀 모델 “소프트웨어의 구조는 그 소프트웨어를 만드는 팀 의 구조와 일치한다.” 설계 백날 잘해야 소용없음 제대로 된 팀 구조를 만드는 것이 설계 (그 다음은 알아서 됨 ?) • 친한팀 컴포넌트끼리는 개발이 잘됨. 그러다 보니 그쪽으로 기능이 몰림 • 잘하는 팀한테 자꾸 중요 기능이 몰림 서비스 컴포넌트들이 균등하게 디자인 되지 않음
  • 13. • 분산형 거버넌스 (각 팀이 알아서. 적합한 기술, 스스로 하기) • You build & You run!! • Self Organized Team • Product vs Project • Cross functional team • Alignment (소통!!) 팀 모델
  • 14. • 팀간 조율이 핵심 – 새로운 조율자 ROLE이 요구됨 팀 모델 프로그램 메니져 : 팀간 일정 조율 치프 아키텍트 : 서비스간 흐름 정의, 표준 정의, 에러 추적/처리 방법 정의
  • 16. • 일반적인 마이크로 서비스 아키텍쳐 스택 구조 마이크로 서비스 아키텍쳐 토폴로지 API gateway Service orchestration (mediation, aggregation) CommonAPIs CommonAPIs CommonAPIs CommonAPIs CommonAPIs CommonAPIs 생략 가능 영역 • API 게이트 웨이 : API의 single end point • Common APIs : 범용 API • Orchestration : 여러 API를 묶어서, 요구 사항에 맞 는 로직을 구현 • Service Orchestration 규모가 커질 수 록 추가되는 계층들 (오케스트레이션, API 게이트 웨이) 1단계 2단계 3단계
  • 17. 쇼핑몰 API 서버 서비스 오케스트레이션 계층 활용 사용자 관리 상품 관리 주문 관리 사용자 정보 상품 정보 주문 정보 앱 또는 자바스크 립트 클라이언트 API CALL 사용자 관리 상품 관리 주문 관리 사용자 정보 상품 정보 주문 정보 API CALL 클라이언트 API CALL 클라이언트에서 직접 서비 스를 조합 하는 방식 별도의 조합 계층(Orchestration or Mediation) 을 넣는 방식 다른 프로토콜 사용 가능 ex)내부 PB, 외부 REST • API가 범용적으로 잘 짜야 있어야함 • 클라이언트 팀이 모든 컴포넌트팀과 조율이 필요 규모가 크지 않은 구조에서 효과적 • 중간에 API를 커스터마이제이션 또는 조합 하는 계층을 별도로 둠 • 클라이언트팀은 조합 API 개발팀과 커뮤니 케이션만 하면 됨 • 클라이언트 요구 사항에 기민하게 대처 • 그러나 계층은 하나 더 늘어남 (성능,디버 깅,배포) 일정 규모 이상. 특히 클라이언트 가 여러개인 구조에 효과적
  • 18. • API 인증/인가 • 로깅 • 라우팅 • 메시지 변환 • 메시지 프로토콜 변환 : API 게이트 웨이 API 서버 API 서버 API 서버 데이타 데이타 데이타 API 게이트 웨이 • 클라이언트와 API 서버 앞에서 일종의 프록시 처럼 위치 하여 다양한 기능을 수행함
  • 19. • SOA ESB (Enterprise Service Bus)의 단순화 버전 • 있으면 좋음. 없어도 됨 • 만들 수 있는 실력있으면, 쓰는게 좋음 • 잘못 쓰면 망하는 지름길 API 게이트 웨이
  • 20. • 인증,인가의 단일화 API 게이트웨이를 이용한 설계 패턴 #1 IDM (계정관리) API 토큰 관리 클라이언트 API 게이트 웨이 API 서버 1. API 토큰 발급 요청 2. 사용자 인증/인가 3. API 호출 5. API 호출 4. API 토큰 인증
  • 21. • 멀티 앤드포인트와 멀티 프로토콜 제공 API 게이트웨이를 이용한 설계 패턴 #2 <그림. 다양한 디바이스로 부터 정보를 수집하는 IOT시스템에 타입별 앤 드 포인트 제공하는 예제>
  • 22. • MEP (Message Exchange Pattern) 변화 API 게이트웨이를 이용한 설계 패턴 #2
  • 23. • 오케스트레이션 API 게이트웨이를 이용한 설계 패턴 #3 • ESB 기반 SOA 프로젝트가 실패한 대부분의 원인 (안 하는게 좋음) • 오케스트레이션 서버를 별 도로 두는게 좋음
  • 24. API 게이트웨이를 이용한 설계 패턴 #4 • 메세지 기반 라우팅 – 글로벌 배포 시스템에 유용함 – 멀티 버전 시스템 (레거시 업그레이드)에 유용
  • 25. • Cross Cutting Concern (공통 기능) 처리 – 인증,로깅등 공통 기능 처리 – API 개발팀은 비지니스 로직에 집중할 수 있도록 해줌 API 게이트웨이를 이용한 설계 패턴 #5
  • 26. • 다중 API 게이트 웨이 패턴 – 내부,외부용 API 게이트웨이 분리 API 게이트웨이를 이용한 설계 패턴 #6
  • 27. • API 호출용 엔드포인트와 스트리밍 (파일)용 엔드포인트 분리 API 게이트웨이를 이용한 설계 패턴 #7
  • 28. • 비 기능 요소 제어 – QoS 제어 – Metering & Charging (상용 API 서비스 과금) – API 모니터링 API 게이트웨이를 이용한 설계 패턴 #6
  • 29. • 여러개의 서비스 컴포넌트를 조합하여 움직이는 트렌젝션에 대한 추 적 디자인 패턴 분산 트렌젝션의 추적 원리 (XA 분산 트렌젝션과 유사) • 초기 API에서 GTXID와 LTXID를 생성 • 서버를 넘어갈때 마다 같은 GTXID를 사용, LTXID는 하나씩 증가 구현시 • 서버간에는 HTTP 헤더로 TXID 전달 • 서버내에서는 Thread Local (Java)등 의 컨택스트 변수 활용  초기 표준 설계가 중요함
  • 30. • API 플랫폼 – API 게이트 웨이 – API 포탈 (웹) • API 스펙 문서 • 샌드 박스 제공 • 제품군 – 설치형 • WSO2 • CA Layer 7 – 클라우드형 • AWS API GW • apigee Beyond API 게이트 웨이
  • 32. • 장애 진단 • 테스팅 • 표준 관리 • 팀의 역량에 따른 일정 및 품질 문제 • 트렌젝션 관리 • 서비스간 코디네이션 (Chief Architect, Program manager의 역할) • 서비스간 일정 관리 마이크로 서비스 아키텍쳐 문제점
  • 33. • Self Organized Team • Agile based interaction model • Devops (Development & Operation) • CD (Continuous Delivery) • Product not a project 마이크로서비스 아키텍쳐와 같이 가는 개념들
  • 34. • 전체적인 기술 역량이 뛰어날 것 • Project 보다는 Product 기반의 서비스 조직에 유리 • 일정 규모 이상의 팀이 되어야 유리함 • 팀간 커뮤니케이션과 조직 구조 (Self organized team) 세팅이 전제 • API 게이트 웨이는 양날의 검 • 왠만하면 하지 마시고… 모노리틱과 MSA 중간 정도에서 타협을 – 통제된 기술. – 너무 잘게 나누지 말고. 업무 단위 정도로 인터페이스 정해가면서. 마이크로서비스 아키텍쳐