SlideShare una empresa de Scribd logo
1 de 42
안정적 클라우드
네이티브 전환 전략
© 2019 uEngine solutions
DevOps
MSA
DDD
Mission:
프론트엔드
데이터베이스
Serv
ice1
Serv
ice2
Serv
ice3
프론트엔드
데이터
베이스
Serv
ice1
데이터
베이스
Serv
ice2
데이터
베이스
Serv
ice3
모놀리씩 마이크로서비스
목표
• Scalable
• Resilient
• Loosely Coupled
• Independent Evolutionary
• Technical Diversity
해결책 – Strangler Pattern
** Strangler: Legacy 전환 전략과 Emerging Service 개발 전략을 분리, 서서히 기존 서비스를 신
규 아키텍처로 전환해가는 변화관리 전략
신규
• 컨테이터 기반
• 이벤트 드리븐
• 서비스 매시
• 기능 관점 단위
(마이크로 or 나노)
레가시
• 최소한의 수정
• 이벤트 후킹 (Change
Data Capturing)
• VM 기반 미니서비스
(매크로)
범위를넓혀감
범위를줄여감
Existing System
포탈
WAS
레가시1
(Java/
Tomcat)
IIS
레가시2
(.NET)
Lift and Shift - VM
포탈
WAS on VM
레가시1
(Java/
Tomcat)
IIS on VM
레가시2
(.NET)
IaaS
New Service, New Architecture
포탈
WAS on VM
레가시1
(Java/
Tomcat)
IIS on VM
레가시2
(.NET)
IaaS
API GW
Event Queue
CaaS
(Kubernetes)
container
New
Service
(Python)
Event Hook
포탈
WAS on VM
레가시1
(Java/
Tomcat)
IIS on VM
레가시2
(.NET)
IaaS
API GW
Event Queue
pub pub
hook
CDC
CaaS
(Kubernetes)
container
New
Service
(Python)
sub
HTML REST
e.g.
고객(테넌트)별
커스터마이징
요건
HATEOAS API와 UI 주도 Data
Aggregation
Decomposing Monolith – Shared Database but
Schema per service
프론트엔드
VM
레가
시1a
(Java/
Tomcat)
VM
레가
시2a
(.NET)
API GW
IaaS
CaaS (Kubernetes)
container
레가
시1b
(Java/
Spring)
container
레가
시2b
(Java/
Spring)
container
New
Service
(Python)
container
New
Service
(Go)
Event Queue
containercontainer
Materialized View or Schema per Service
프론트엔드
VM
레가
시1a
(Java/
Tomcat)
VM
레가
시2a
(.NET)
API GW
IaaS
CaaS (Kubernetes)
container
레가
시1b
(Java/
Spring)
container
레가
시2b
(Java/
Spring)
container
New
Service
(Python)
container
New
Service
(Go)
Event Queue
Replacing Legacy
프론트엔드
VM
레가
시1a
(Java/
Tomcat)
VM
레가
시2a
(.NET)
API GW
IaaS
CaaS (Kubernetes)
container
레가
시1b
(Java/
Spring)
container
레가
시2b
(Java/
Spring)
container
New
Service
(Python)
container
New
Service
(Go)
Event Queue
container
레가
시1a
(Java/
Spring)
CaaS
(Kubernetes)
마이그래이션 전략 Strangler
프론트엔드
VM
레가
시1a
(Java/
Tomcat)
VM
레가
시2a
(.NET)
API GW
IaaS
CaaS (Kubernetes)
container
레가
시1b
(Java/
Spring)
container
레가
시2b
(Java/
Spring)
container
New
Service
(Python)
container
New
Service
(Go)
Event Queue
container
레가
시1a
(Java/
Spring)
CaaS
(Kubernetes)
마이그래이션 전략 Strangler
프론트엔드
VM
레가
시1a
(Java/
Tomcat)
VM
레가
시2a
(.NET)
API GW
IaaS
CaaS (Kubernetes)
container
레가
시1b
(Java/
Spring)
container
레가
시2b
(Java/
Spring)
container
New
Service
(Python)
container
New
Service
(Go)
Event Queue
container
레가
시1a
(Java/
Spring)
CaaS
(Kubernetes)
마이그래이션 전략 Strangler
프론트엔드
VM
레가
시1a
(Java/
Tomcat)
VM
레가
시2a
(.NET)
API GW
IaaS
CaaS (Kubernetes)
container
레가
시1b
(Java/
Spring)
container
레가
시2b
(Java/
Spring)
container
New
Service
(Python)
container
New
Service
(Go)
Event Queue
container
레가
시1a
(Java/
Spring)
CaaS
(Kubernetes)
마이그래이션 전략 Strangler
프론트엔드
VM
레가
시1a
(Java/
Tomcat)
VM
레가
시2a
(.NET)
API GW
IaaS
CaaS (Kubernetes)
container
레가
시1b
(Java/
Spring)
container
레가
시2b
(Java/
Spring)
container
New
Service
(Python)
container
New
Service
(Go)
Event Queue
container
레가
시1a
(Java/
Spring)
CaaS
(Kubernetes)
Tested!
마이그래이션 전략 Strangler
프론트엔드
API GW
CaaS (Kubernetes)
container
레가
시1b
(Java/
Spring)
container
레가
시2b
(Java/
Spring)
container
New
Service
(Python)
container
New
Service
(Go)
container
레가
시1a
(Java/
Spring)
container
레가
시2a
(Java/
Spring)
IaaS
Event Queue
Legacy Issues
• Stateful Session Data
• Old-fashioned framework (JSP, SOAP, ORM …)
• Old-WAS (Heavy-weight EJBs)
• Join SQLs!
점진적 전환을 위한 기술들 -1
• API Gateway
• Blue/Green & Canary Deployment
• Dark Launch / Automated Test
개발자 확신, 문제 상황 대처
점진적 전환을 위한 기술들 -2
• Change Data Capturing
• Materialized View
데이터 성능, 코드 전환 없는 연동
MSA 구현 기술들
• 1세대 MSA (Spring Cloud / Netflix OSS) 코드수정
• 2세대 Service Mesh (Kubernetes / Istio) 코드수정X
• 3세대 Event Driven MSA (Serverless / Kafka) 간섭최소화
MSA 구현 기술들
비교 Spring Cloud /
Netflix OSS
Kubernetes / Istio Event Driven MSA
(Kafka)
제공기능 API GW, Service
Registry, Circuit
Breaker …
Covers all of Netflix
OSS + Canary Deploy,
Dark Launch …
PubSub, Materialized
View, Realtime
Streaming Processing
코드 변경 필요 (only Java) 불필요 (Polyglot) N/A (with CDC)
서비스 간 커플링 Loosely-Coupled Loosely-Coupled 가장 Loosely-coupled
데이터 어그리게이션
성능
느림
(Blocked, Request-
Response)
느림
(Blocked, Request-
Response)
빠름
(Non-blocking, Event
Sourcing)
Service Mesh
Microservices timeline
K8S vs Spring Cloud vs Istio
Advanced Routing & Deployment
Strategy
• Ingress / Egress Gateway
• Canary Deploy
• 특정 유저의 신상, 지역, 권한, 접근 단말에 따른 다른 버전의 노출
• AB Testing / Shadow Deploy (Dark Launch)
• 신규 버전의 오류 노출 없는 실질적 테스트
Advanced Resilience
• Retry (Kubernetes X, Spring Cloud O)
• 서비스간 호출의 실패에 대한 재시도
• Circuit Breaking (Spring Cloud O) / Rate Limiting
• 인스턴스의 보호
• 전체 서비스 장애 차단
• Pool Ejection (Spring Cloud / Eureka)
• 죽은 인스턴스의 제외
• Circuit Breaking + Pool Ejection + Retry = High Resilience
Advanced Security
• TLS based Inter-Mi-services Communication
• By Auth (신규모듈)
• Whitelist and Blacklist
Advanced Observability
• Distributed Tracing and Measure
• 서비스간 호출의 내용 기록
Spring Cloud + Netflix
After Istio (on K8S)
좋은점:
1. L7 레이어를 사용, 성능이 높음
2. Code 변경 없이 Cross-cutting 이슈를 다루어줌
3. Polyglot 다양한 언어에 무관하게 적용가능
4. Main 서비스의 재배포 없이 Sidecar 를 관리 가능함
Event Driven MSA
Design Principle
• Pluggable / Extensible Adapters and Views
• Real-time Monitor (Push Service)
• Usage Prediction, Billing
• Multi-dimensional Analytic
• Event-driven Microservices
• Server-sent event
• Stream Processing
• Multiple Views / Polyglot Persistency
1 2 3 4 5 6 7 8 9
Service 1 Service 2 Legacy
Event Producers
…..
“Append only”
pub
Kafka
Loosely-coupled
Extensible and
pluggable
Event Sources
Cache (Redis) DB (RDB?)
Event Consumers
Index
(ElasticSear
ch or Solr)
sub
Loosely-coupled
Extensible and
pluggable
Views
Service 1
(Java)
Service 2
(Python)
Legacy
(Java)
App polling
containerSidecar 
Front-end (MVVM)
Load snapshot
Offset: 9 Offset: 8 Offset: 6
Cache data again
&
Set offset as DB’s offset
Read all again X
1. Web hoot or SSE
Read faster / frequently via REST directly (no backend) Text search
1. .
2. HTTP Polling
3. CDC or file polling
Pod
Container
…..Realtime
Analytic
(KSQL)
Billing /
Metering
Offset: 9
Event Formatting: Event Sourcing
1 2 3 4 5 6 7 8 9
Append the “Diff” only
Kafka
1: key: account1, value: { action: Deposit, amount: 100 }
2: key: account1, value: { action: Deposit, amount: 50 }
3: key: account2, value: { action: Deposit, amount: 50 }
4: key: account2, value: { action: Withdraw, amount: 50 }
5: key: account1, value: { action: Withdraw, amount: 50 }
6: key: account3, value: { action: Deposit, amount: 100 }
7: key: account4, value: { action: Deposit, amount: 50 }
….
1
Deposit
100 for
acc1
2
Deposit 50
for acc1
3
Deposit 50
for acc2
4
Withdraw
50 for acc2
5
Withdraw
50 for acc1
6
Deposit 50
for acc3
7
Deposit 50
for acc4
8
…
9
…
Account Deposit
Event Producers
Kafka
Cache (Redis)
DB (RDB?)
Event Consumers
Index
(ElasticSear
ch or Solr)
Front-end (MVVM)
…..Billing
(KSQL)
Offset: 9
Backend for
front …..SSE
Emitter
Offset: 9
Withdrawal
Kafka
Aggregate view in Database
id balanc
e
acct1 100
1
Deposit
100 for
acc1
2
Deposit 50
for acc1
3
Deposit 50
for acc2
4
Withdraw
50 for acc2
5
Withdraw
50 for acc1
6
Deposit 50
for acc3
7
Deposit 50
for acc4
8
…
9
…
id balanc
e
acct1 150
id balanc
e
acct1 150
acc2 50
id balanc
e
acct1 150
acc2 0
id balanc
e
acct1 100
acc2 0
id balanc
e
acct1 100
acc2 0
acc3 50
id balanc
e
acct1 100
acc2 0
acc3 50
acc4 50
Kafka
View in Front-end (Push service)
1 minlater 2 min later 3 min later 4 min later 5 min later 6 min later 7 min later
1
Deposit
100 for
acc1
2
Deposit 50
for acc1
3
Deposit 50
for acc2
4
Withdraw
50 for acc2
5
Withdraw
50 for acc1
6
Deposit 50
for acc3
7
Deposit 50
for acc4
8
Withdraw
50 for acc1
9
Deposit
150 for
acc1
Snack bar
pops up
Your Balance Is
100
You’ve
deposited 50
Undo
Your Balance Is
150
You’ve
deposited 50
Undo
Your Balance Is
100You’ve
withdrawed 50
Undo
Your Balance Is
200You’ve
Deposited 50
Undo
Your Balance Is
50You’ve
withdrawed 50
Undo
Kafka
View in Realtime Analytic (Early Warning)
1 second later 2 second later 3 second later 4 second later 5 second later 6 second later 7 second later
Warning: You
may go
bankrupt after
5 min !!!
** Using KSQL or Kstreams:
1
Deposit
100 for
acc1
2
Deposit 50
for acc1
3
Deposit 50
for acc2
4
Withdraw
50 for acc2
5
Withdraw
50 for acc1
6
Deposit 50
for acc3
7
Deposit 50
for acc4
8
Withdraw
50 for acc1
9
Deposit
150 for
acc1

Más contenido relacionado

La actualidad más candente

Microservices in the Apache Kafka Ecosystem
Microservices in the Apache Kafka EcosystemMicroservices in the Apache Kafka Ecosystem
Microservices in the Apache Kafka Ecosystemconfluent
 
Cloud Service Models
Cloud Service ModelsCloud Service Models
Cloud Service Modelsmaharajdey
 
Microservice message routing on Kubernetes
Microservice message routing on KubernetesMicroservice message routing on Kubernetes
Microservice message routing on KubernetesFrans van Buul
 
Writing a Plugin for Apache CloudStack
Writing a Plugin for Apache CloudStackWriting a Plugin for Apache CloudStack
Writing a Plugin for Apache CloudStackbuildacloud
 
WSO2 Product Release Webinar - Introducing the WSO2 Complex Event Processor
WSO2 Product Release Webinar - Introducing the WSO2 Complex Event Processor WSO2 Product Release Webinar - Introducing the WSO2 Complex Event Processor
WSO2 Product Release Webinar - Introducing the WSO2 Complex Event Processor WSO2
 
Powering Microservices with MongoDB, Docker, Kubernetes & Kafka – MongoDB Eur...
Powering Microservices with MongoDB, Docker, Kubernetes & Kafka – MongoDB Eur...Powering Microservices with MongoDB, Docker, Kubernetes & Kafka – MongoDB Eur...
Powering Microservices with MongoDB, Docker, Kubernetes & Kafka – MongoDB Eur...Andrew Morgan
 
[Cloud Summit 2010] Peter Coffee - Sales Force
[Cloud Summit 2010] Peter Coffee - Sales Force[Cloud Summit 2010] Peter Coffee - Sales Force
[Cloud Summit 2010] Peter Coffee - Sales ForceTecla Internet
 
[「RDB技術者のためのNoSQLガイド」出版記念セミナー] Azure DocumentDB
[「RDB技術者のためのNoSQLガイド」出版記念セミナー] Azure DocumentDB[「RDB技術者のためのNoSQLガイド」出版記念セミナー] Azure DocumentDB
[「RDB技術者のためのNoSQLガイド」出版記念セミナー] Azure DocumentDBNaoki (Neo) SATO
 
Keynote: Open Source für den geschäftskritischen Einsatz
Keynote: Open Source für den geschäftskritischen EinsatzKeynote: Open Source für den geschäftskritischen Einsatz
Keynote: Open Source für den geschäftskritischen EinsatzMariaDB plc
 
Get to know the browser better and write faster web apps
Get to know the browser better   and write faster web appsGet to know the browser better   and write faster web apps
Get to know the browser better and write faster web appsLior Bar-On
 
How we eased out security journey with OAuth (Goodbye Kerberos!) | Paul Makka...
How we eased out security journey with OAuth (Goodbye Kerberos!) | Paul Makka...How we eased out security journey with OAuth (Goodbye Kerberos!) | Paul Makka...
How we eased out security journey with OAuth (Goodbye Kerberos!) | Paul Makka...HostedbyConfluent
 
How ddd, cqrs and event sourcing constitute the architecture of the future
How ddd, cqrs and event sourcing constitute the architecture of the futureHow ddd, cqrs and event sourcing constitute the architecture of the future
How ddd, cqrs and event sourcing constitute the architecture of the futureMSDEVMTL
 
Automating the Entire PostgreSQL Lifecycle
Automating the Entire PostgreSQL Lifecycle Automating the Entire PostgreSQL Lifecycle
Automating the Entire PostgreSQL Lifecycle anynines GmbH
 
Estrategias de migración a azure
Estrategias de migración a azureEstrategias de migración a azure
Estrategias de migración a azurePlain Concepts
 
The rise of microservices - containers and orchestration
The rise of microservices - containers and orchestrationThe rise of microservices - containers and orchestration
The rise of microservices - containers and orchestrationAndrew Morgan
 
Cloud Application Blueprints with Apache Brooklyn by Alex Henevald
Cloud Application Blueprints with Apache Brooklyn by Alex HenevaldCloud Application Blueprints with Apache Brooklyn by Alex Henevald
Cloud Application Blueprints with Apache Brooklyn by Alex Henevaldbuildacloud
 
Cloudian dynamic consistency
Cloudian dynamic consistencyCloudian dynamic consistency
Cloudian dynamic consistencyCLOUDIAN KK
 
Microsoft Azure User Group - Lessons Learned
Microsoft Azure User Group - Lessons Learned Microsoft Azure User Group - Lessons Learned
Microsoft Azure User Group - Lessons Learned Michal Furmankiewicz
 
Silicon Valley CloudStack User Group - Introduction to Apache CloudStack
Silicon Valley CloudStack User Group - Introduction to Apache CloudStackSilicon Valley CloudStack User Group - Introduction to Apache CloudStack
Silicon Valley CloudStack User Group - Introduction to Apache CloudStackShapeBlue
 

La actualidad más candente (20)

Microservices in the Apache Kafka Ecosystem
Microservices in the Apache Kafka EcosystemMicroservices in the Apache Kafka Ecosystem
Microservices in the Apache Kafka Ecosystem
 
Cloud Service Models
Cloud Service ModelsCloud Service Models
Cloud Service Models
 
Microservice message routing on Kubernetes
Microservice message routing on KubernetesMicroservice message routing on Kubernetes
Microservice message routing on Kubernetes
 
Writing a Plugin for Apache CloudStack
Writing a Plugin for Apache CloudStackWriting a Plugin for Apache CloudStack
Writing a Plugin for Apache CloudStack
 
WSO2 Product Release Webinar - Introducing the WSO2 Complex Event Processor
WSO2 Product Release Webinar - Introducing the WSO2 Complex Event Processor WSO2 Product Release Webinar - Introducing the WSO2 Complex Event Processor
WSO2 Product Release Webinar - Introducing the WSO2 Complex Event Processor
 
Powering Microservices with MongoDB, Docker, Kubernetes & Kafka – MongoDB Eur...
Powering Microservices with MongoDB, Docker, Kubernetes & Kafka – MongoDB Eur...Powering Microservices with MongoDB, Docker, Kubernetes & Kafka – MongoDB Eur...
Powering Microservices with MongoDB, Docker, Kubernetes & Kafka – MongoDB Eur...
 
[Cloud Summit 2010] Peter Coffee - Sales Force
[Cloud Summit 2010] Peter Coffee - Sales Force[Cloud Summit 2010] Peter Coffee - Sales Force
[Cloud Summit 2010] Peter Coffee - Sales Force
 
[「RDB技術者のためのNoSQLガイド」出版記念セミナー] Azure DocumentDB
[「RDB技術者のためのNoSQLガイド」出版記念セミナー] Azure DocumentDB[「RDB技術者のためのNoSQLガイド」出版記念セミナー] Azure DocumentDB
[「RDB技術者のためのNoSQLガイド」出版記念セミナー] Azure DocumentDB
 
Keynote: Open Source für den geschäftskritischen Einsatz
Keynote: Open Source für den geschäftskritischen EinsatzKeynote: Open Source für den geschäftskritischen Einsatz
Keynote: Open Source für den geschäftskritischen Einsatz
 
Get to know the browser better and write faster web apps
Get to know the browser better   and write faster web appsGet to know the browser better   and write faster web apps
Get to know the browser better and write faster web apps
 
How we eased out security journey with OAuth (Goodbye Kerberos!) | Paul Makka...
How we eased out security journey with OAuth (Goodbye Kerberos!) | Paul Makka...How we eased out security journey with OAuth (Goodbye Kerberos!) | Paul Makka...
How we eased out security journey with OAuth (Goodbye Kerberos!) | Paul Makka...
 
How ddd, cqrs and event sourcing constitute the architecture of the future
How ddd, cqrs and event sourcing constitute the architecture of the futureHow ddd, cqrs and event sourcing constitute the architecture of the future
How ddd, cqrs and event sourcing constitute the architecture of the future
 
Automating the Entire PostgreSQL Lifecycle
Automating the Entire PostgreSQL Lifecycle Automating the Entire PostgreSQL Lifecycle
Automating the Entire PostgreSQL Lifecycle
 
Estrategias de migración a azure
Estrategias de migración a azureEstrategias de migración a azure
Estrategias de migración a azure
 
The rise of microservices - containers and orchestration
The rise of microservices - containers and orchestrationThe rise of microservices - containers and orchestration
The rise of microservices - containers and orchestration
 
Cloud Application Blueprints with Apache Brooklyn by Alex Henevald
Cloud Application Blueprints with Apache Brooklyn by Alex HenevaldCloud Application Blueprints with Apache Brooklyn by Alex Henevald
Cloud Application Blueprints with Apache Brooklyn by Alex Henevald
 
CloudStack Hyderabad Meetup: Migrating applications to IaaS clouds
CloudStack Hyderabad Meetup: Migrating applications to IaaS cloudsCloudStack Hyderabad Meetup: Migrating applications to IaaS clouds
CloudStack Hyderabad Meetup: Migrating applications to IaaS clouds
 
Cloudian dynamic consistency
Cloudian dynamic consistencyCloudian dynamic consistency
Cloudian dynamic consistency
 
Microsoft Azure User Group - Lessons Learned
Microsoft Azure User Group - Lessons Learned Microsoft Azure User Group - Lessons Learned
Microsoft Azure User Group - Lessons Learned
 
Silicon Valley CloudStack User Group - Introduction to Apache CloudStack
Silicon Valley CloudStack User Group - Introduction to Apache CloudStackSilicon Valley CloudStack User Group - Introduction to Apache CloudStack
Silicon Valley CloudStack User Group - Introduction to Apache CloudStack
 

Similar a Safe cloud native transformation approaches

StackWatch: A prototype CloudWatch service for CloudStack
StackWatch: A prototype CloudWatch service for CloudStackStackWatch: A prototype CloudWatch service for CloudStack
StackWatch: A prototype CloudWatch service for CloudStackChiradeep Vittal
 
From Kafka to BigQuery - Strata Singapore
From Kafka to BigQuery - Strata SingaporeFrom Kafka to BigQuery - Strata Singapore
From Kafka to BigQuery - Strata SingaporeOfir Sharony
 
Upgrading_your_microservices_to_next_level_v1.0.pdf
Upgrading_your_microservices_to_next_level_v1.0.pdfUpgrading_your_microservices_to_next_level_v1.0.pdf
Upgrading_your_microservices_to_next_level_v1.0.pdfVladimirRadzivil
 
Implementing Domain Events with Kafka
Implementing Domain Events with KafkaImplementing Domain Events with Kafka
Implementing Domain Events with KafkaAndrei Rugina
 
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
20141021 AWS Cloud Taekwon - Startup Best Practices on AWSAmazon Web Services Korea
 
Escalabilidad horizontal y arquitecturas elásticas en Microsoft azure
Escalabilidad horizontal y arquitecturas elásticas en Microsoft azureEscalabilidad horizontal y arquitecturas elásticas en Microsoft azure
Escalabilidad horizontal y arquitecturas elásticas en Microsoft azureEnrique Catala Bañuls
 
Open stack in sina
Open stack in sinaOpen stack in sina
Open stack in sinaHui Cheng
 
Webinar: Unlock the Power of Streaming Data with Kinetica and Confluent
Webinar: Unlock the Power of Streaming Data with Kinetica and ConfluentWebinar: Unlock the Power of Streaming Data with Kinetica and Confluent
Webinar: Unlock the Power of Streaming Data with Kinetica and ConfluentKinetica
 
Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ ...
Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ ...Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ ...
Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ ...SolidQ
 
Trilio for Red Hat OpenStack: The Missing Link for Cloud-Native Data Protection
Trilio for Red Hat OpenStack: The Missing Link for Cloud-Native Data ProtectionTrilio for Red Hat OpenStack: The Missing Link for Cloud-Native Data Protection
Trilio for Red Hat OpenStack: The Missing Link for Cloud-Native Data ProtectionDevOps.com
 
Monitoring Weave Cloud with Prometheus
Monitoring Weave Cloud with PrometheusMonitoring Weave Cloud with Prometheus
Monitoring Weave Cloud with PrometheusWeaveworks
 
Enterprise Service Delivery from the AWS Cloud (ARC208) | AWS re:Invent 2013
Enterprise Service Delivery from the AWS Cloud (ARC208) | AWS re:Invent 2013Enterprise Service Delivery from the AWS Cloud (ARC208) | AWS re:Invent 2013
Enterprise Service Delivery from the AWS Cloud (ARC208) | AWS re:Invent 2013Amazon Web Services
 
Kafka Summit SF 2017 - Kafka Stream Processing for Everyone with KSQL
Kafka Summit SF 2017 - Kafka Stream Processing for Everyone with KSQLKafka Summit SF 2017 - Kafka Stream Processing for Everyone with KSQL
Kafka Summit SF 2017 - Kafka Stream Processing for Everyone with KSQLconfluent
 
Accelerate Your OpenStack Deployment Presented by SolidFire and Red Hat
Accelerate Your OpenStack Deployment Presented by SolidFire and Red HatAccelerate Your OpenStack Deployment Presented by SolidFire and Red Hat
Accelerate Your OpenStack Deployment Presented by SolidFire and Red HatNetApp
 
Optimizing Apache HBase for Cloud Storage in Microsoft Azure HDInsight
Optimizing Apache HBase for Cloud Storage in Microsoft Azure HDInsightOptimizing Apache HBase for Cloud Storage in Microsoft Azure HDInsight
Optimizing Apache HBase for Cloud Storage in Microsoft Azure HDInsightHBaseCon
 
JHipster conf 2019 - Kafka Ecosystem
JHipster conf 2019 - Kafka EcosystemJHipster conf 2019 - Kafka Ecosystem
JHipster conf 2019 - Kafka EcosystemFlorent Ramiere
 
AWS Cloud Kata 2014 | Jakarta - Startup Best Practices
AWS Cloud Kata 2014 | Jakarta - Startup Best PracticesAWS Cloud Kata 2014 | Jakarta - Startup Best Practices
AWS Cloud Kata 2014 | Jakarta - Startup Best PracticesAmazon Web Services
 
Elastically Scaling Kafka Using Confluent
Elastically Scaling Kafka Using ConfluentElastically Scaling Kafka Using Confluent
Elastically Scaling Kafka Using Confluentconfluent
 
Microservices, Continuous Delivery, and Elasticsearch at Capital One
Microservices, Continuous Delivery, and Elasticsearch at Capital OneMicroservices, Continuous Delivery, and Elasticsearch at Capital One
Microservices, Continuous Delivery, and Elasticsearch at Capital OneNoriaki Tatsumi
 

Similar a Safe cloud native transformation approaches (20)

StackWatch: A prototype CloudWatch service for CloudStack
StackWatch: A prototype CloudWatch service for CloudStackStackWatch: A prototype CloudWatch service for CloudStack
StackWatch: A prototype CloudWatch service for CloudStack
 
From Kafka to BigQuery - Strata Singapore
From Kafka to BigQuery - Strata SingaporeFrom Kafka to BigQuery - Strata Singapore
From Kafka to BigQuery - Strata Singapore
 
Upgrading_your_microservices_to_next_level_v1.0.pdf
Upgrading_your_microservices_to_next_level_v1.0.pdfUpgrading_your_microservices_to_next_level_v1.0.pdf
Upgrading_your_microservices_to_next_level_v1.0.pdf
 
Aplicaciones distribuidas con Dapr
Aplicaciones distribuidas con DaprAplicaciones distribuidas con Dapr
Aplicaciones distribuidas con Dapr
 
Implementing Domain Events with Kafka
Implementing Domain Events with KafkaImplementing Domain Events with Kafka
Implementing Domain Events with Kafka
 
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
 
Escalabilidad horizontal y arquitecturas elásticas en Microsoft azure
Escalabilidad horizontal y arquitecturas elásticas en Microsoft azureEscalabilidad horizontal y arquitecturas elásticas en Microsoft azure
Escalabilidad horizontal y arquitecturas elásticas en Microsoft azure
 
Open stack in sina
Open stack in sinaOpen stack in sina
Open stack in sina
 
Webinar: Unlock the Power of Streaming Data with Kinetica and Confluent
Webinar: Unlock the Power of Streaming Data with Kinetica and ConfluentWebinar: Unlock the Power of Streaming Data with Kinetica and Confluent
Webinar: Unlock the Power of Streaming Data with Kinetica and Confluent
 
Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ ...
Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ ...Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ ...
Escalabilidad horizontal y Arquitecturas elásticas en Windows Azure | SolidQ ...
 
Trilio for Red Hat OpenStack: The Missing Link for Cloud-Native Data Protection
Trilio for Red Hat OpenStack: The Missing Link for Cloud-Native Data ProtectionTrilio for Red Hat OpenStack: The Missing Link for Cloud-Native Data Protection
Trilio for Red Hat OpenStack: The Missing Link for Cloud-Native Data Protection
 
Monitoring Weave Cloud with Prometheus
Monitoring Weave Cloud with PrometheusMonitoring Weave Cloud with Prometheus
Monitoring Weave Cloud with Prometheus
 
Enterprise Service Delivery from the AWS Cloud (ARC208) | AWS re:Invent 2013
Enterprise Service Delivery from the AWS Cloud (ARC208) | AWS re:Invent 2013Enterprise Service Delivery from the AWS Cloud (ARC208) | AWS re:Invent 2013
Enterprise Service Delivery from the AWS Cloud (ARC208) | AWS re:Invent 2013
 
Kafka Summit SF 2017 - Kafka Stream Processing for Everyone with KSQL
Kafka Summit SF 2017 - Kafka Stream Processing for Everyone with KSQLKafka Summit SF 2017 - Kafka Stream Processing for Everyone with KSQL
Kafka Summit SF 2017 - Kafka Stream Processing for Everyone with KSQL
 
Accelerate Your OpenStack Deployment Presented by SolidFire and Red Hat
Accelerate Your OpenStack Deployment Presented by SolidFire and Red HatAccelerate Your OpenStack Deployment Presented by SolidFire and Red Hat
Accelerate Your OpenStack Deployment Presented by SolidFire and Red Hat
 
Optimizing Apache HBase for Cloud Storage in Microsoft Azure HDInsight
Optimizing Apache HBase for Cloud Storage in Microsoft Azure HDInsightOptimizing Apache HBase for Cloud Storage in Microsoft Azure HDInsight
Optimizing Apache HBase for Cloud Storage in Microsoft Azure HDInsight
 
JHipster conf 2019 - Kafka Ecosystem
JHipster conf 2019 - Kafka EcosystemJHipster conf 2019 - Kafka Ecosystem
JHipster conf 2019 - Kafka Ecosystem
 
AWS Cloud Kata 2014 | Jakarta - Startup Best Practices
AWS Cloud Kata 2014 | Jakarta - Startup Best PracticesAWS Cloud Kata 2014 | Jakarta - Startup Best Practices
AWS Cloud Kata 2014 | Jakarta - Startup Best Practices
 
Elastically Scaling Kafka Using Confluent
Elastically Scaling Kafka Using ConfluentElastically Scaling Kafka Using Confluent
Elastically Scaling Kafka Using Confluent
 
Microservices, Continuous Delivery, and Elasticsearch at Capital One
Microservices, Continuous Delivery, and Elasticsearch at Capital OneMicroservices, Continuous Delivery, and Elasticsearch at Capital One
Microservices, Continuous Delivery, and Elasticsearch at Capital One
 

Más de uEngine Solutions

이벤트스토밍과 BDD 를 혼합하여 소프트웨어 디자인과 테스트 자동화하기
이벤트스토밍과 BDD 를 혼합하여 소프트웨어 디자인과 테스트 자동화하기이벤트스토밍과 BDD 를 혼합하여 소프트웨어 디자인과 테스트 자동화하기
이벤트스토밍과 BDD 를 혼합하여 소프트웨어 디자인과 테스트 자동화하기uEngine Solutions
 
비대면 MSA / CNA 강의 - Contactless Microservices Architecture Learning
비대면 MSA / CNA 강의 - Contactless Microservices Architecture Learning비대면 MSA / CNA 강의 - Contactless Microservices Architecture Learning
비대면 MSA / CNA 강의 - Contactless Microservices Architecture LearninguEngine Solutions
 
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
 
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
 
Event Storming and Implementation Workshop
Event Storming and Implementation WorkshopEvent Storming and Implementation Workshop
Event Storming and Implementation WorkshopuEngine Solutions
 
designing, implementing and delivering microservices with event storming, spr...
designing, implementing and delivering microservices with event storming, spr...designing, implementing and delivering microservices with event storming, spr...
designing, implementing and delivering microservices with event storming, spr...uEngine Solutions
 
From event storming to spring cloud implementation
From event storming to spring cloud implementationFrom event storming to spring cloud implementation
From event storming to spring cloud implementationuEngine Solutions
 
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)uEngine Solutions
 
Distributed transanction in microservices
Distributed transanction in microservicesDistributed transanction in microservices
Distributed transanction in microservicesuEngine Solutions
 
From event storming to spring cloud implementation
From event storming to spring cloud implementationFrom event storming to spring cloud implementation
From event storming to spring cloud implementationuEngine Solutions
 
Open Cloud Engine PaaS Snapshots
Open Cloud Engine PaaS SnapshotsOpen Cloud Engine PaaS Snapshots
Open Cloud Engine PaaS SnapshotsuEngine Solutions
 
Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos uEngine Solutions
 
Bluemix paas 기반 saas 개발 사례
Bluemix paas 기반 saas 개발 사례Bluemix paas 기반 saas 개발 사례
Bluemix paas 기반 saas 개발 사례uEngine Solutions
 
Process Oriented Architecture
Process Oriented ArchitectureProcess Oriented Architecture
Process Oriented ArchitectureuEngine Solutions
 
Building multi tenancy enterprise applications - quick
Building multi tenancy enterprise applications - quickBuilding multi tenancy enterprise applications - quick
Building multi tenancy enterprise applications - quickuEngine Solutions
 
Building multi tenancy enterprise applications
Building multi tenancy enterprise applicationsBuilding multi tenancy enterprise applications
Building multi tenancy enterprise applicationsuEngine Solutions
 

Más de uEngine Solutions (20)

이벤트스토밍과 BDD 를 혼합하여 소프트웨어 디자인과 테스트 자동화하기
이벤트스토밍과 BDD 를 혼합하여 소프트웨어 디자인과 테스트 자동화하기이벤트스토밍과 BDD 를 혼합하여 소프트웨어 디자인과 테스트 자동화하기
이벤트스토밍과 BDD 를 혼합하여 소프트웨어 디자인과 테스트 자동화하기
 
비대면 MSA / CNA 강의 - Contactless Microservices Architecture Learning
비대면 MSA / CNA 강의 - Contactless Microservices Architecture Learning비대면 MSA / CNA 강의 - Contactless Microservices Architecture Learning
비대면 MSA / CNA 강의 - Contactless Microservices Architecture Learning
 
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
 
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
 
Event Storming and Implementation Workshop
Event Storming and Implementation WorkshopEvent Storming and Implementation Workshop
Event Storming and Implementation Workshop
 
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...
 
Microservice coding guide
Microservice coding guideMicroservice coding guide
Microservice coding guide
 
From event storming to spring cloud implementation
From event storming to spring cloud implementationFrom event storming to spring cloud implementation
From event storming to spring cloud implementation
 
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
 
Distributed transanction in microservices
Distributed transanction in microservicesDistributed transanction in microservices
Distributed transanction in microservices
 
From event storming to spring cloud implementation
From event storming to spring cloud implementationFrom event storming to spring cloud implementation
From event storming to spring cloud implementation
 
Micro service architecture
Micro service architectureMicro service architecture
Micro service architecture
 
Open Cloud Engine PaaS Snapshots
Open Cloud Engine PaaS SnapshotsOpen Cloud Engine PaaS Snapshots
Open Cloud Engine PaaS Snapshots
 
Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos
 
Bluemix paas 기반 saas 개발 사례
Bluemix paas 기반 saas 개발 사례Bluemix paas 기반 saas 개발 사례
Bluemix paas 기반 saas 개발 사례
 
Process Oriented Architecture
Process Oriented ArchitectureProcess Oriented Architecture
Process Oriented Architecture
 
Building multi tenancy enterprise applications - quick
Building multi tenancy enterprise applications - quickBuilding multi tenancy enterprise applications - quick
Building multi tenancy enterprise applications - quick
 
Building multi tenancy enterprise applications
Building multi tenancy enterprise applicationsBuilding multi tenancy enterprise applications
Building multi tenancy enterprise applications
 
Metaworks4 intro
Metaworks4 introMetaworks4 intro
Metaworks4 intro
 

Último

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...Nitya salvi
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsBert Jan Schrijver
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 

Último (20)

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 

Safe cloud native transformation approaches

  • 1. 안정적 클라우드 네이티브 전환 전략 © 2019 uEngine solutions DevOps MSA DDD
  • 3. 목표 • Scalable • Resilient • Loosely Coupled • Independent Evolutionary • Technical Diversity
  • 4. 해결책 – Strangler Pattern ** Strangler: Legacy 전환 전략과 Emerging Service 개발 전략을 분리, 서서히 기존 서비스를 신 규 아키텍처로 전환해가는 변화관리 전략 신규 • 컨테이터 기반 • 이벤트 드리븐 • 서비스 매시 • 기능 관점 단위 (마이크로 or 나노) 레가시 • 최소한의 수정 • 이벤트 후킹 (Change Data Capturing) • VM 기반 미니서비스 (매크로) 범위를넓혀감 범위를줄여감
  • 6. Lift and Shift - VM 포탈 WAS on VM 레가시1 (Java/ Tomcat) IIS on VM 레가시2 (.NET) IaaS
  • 7. New Service, New Architecture 포탈 WAS on VM 레가시1 (Java/ Tomcat) IIS on VM 레가시2 (.NET) IaaS API GW Event Queue CaaS (Kubernetes) container New Service (Python)
  • 8. Event Hook 포탈 WAS on VM 레가시1 (Java/ Tomcat) IIS on VM 레가시2 (.NET) IaaS API GW Event Queue pub pub hook CDC CaaS (Kubernetes) container New Service (Python) sub HTML REST e.g. 고객(테넌트)별 커스터마이징 요건
  • 9. HATEOAS API와 UI 주도 Data Aggregation
  • 10. Decomposing Monolith – Shared Database but Schema per service 프론트엔드 VM 레가 시1a (Java/ Tomcat) VM 레가 시2a (.NET) API GW IaaS CaaS (Kubernetes) container 레가 시1b (Java/ Spring) container 레가 시2b (Java/ Spring) container New Service (Python) container New Service (Go) Event Queue
  • 11. containercontainer Materialized View or Schema per Service 프론트엔드 VM 레가 시1a (Java/ Tomcat) VM 레가 시2a (.NET) API GW IaaS CaaS (Kubernetes) container 레가 시1b (Java/ Spring) container 레가 시2b (Java/ Spring) container New Service (Python) container New Service (Go) Event Queue
  • 12. Replacing Legacy 프론트엔드 VM 레가 시1a (Java/ Tomcat) VM 레가 시2a (.NET) API GW IaaS CaaS (Kubernetes) container 레가 시1b (Java/ Spring) container 레가 시2b (Java/ Spring) container New Service (Python) container New Service (Go) Event Queue container 레가 시1a (Java/ Spring) CaaS (Kubernetes)
  • 13. 마이그래이션 전략 Strangler 프론트엔드 VM 레가 시1a (Java/ Tomcat) VM 레가 시2a (.NET) API GW IaaS CaaS (Kubernetes) container 레가 시1b (Java/ Spring) container 레가 시2b (Java/ Spring) container New Service (Python) container New Service (Go) Event Queue container 레가 시1a (Java/ Spring) CaaS (Kubernetes)
  • 14. 마이그래이션 전략 Strangler 프론트엔드 VM 레가 시1a (Java/ Tomcat) VM 레가 시2a (.NET) API GW IaaS CaaS (Kubernetes) container 레가 시1b (Java/ Spring) container 레가 시2b (Java/ Spring) container New Service (Python) container New Service (Go) Event Queue container 레가 시1a (Java/ Spring) CaaS (Kubernetes)
  • 15. 마이그래이션 전략 Strangler 프론트엔드 VM 레가 시1a (Java/ Tomcat) VM 레가 시2a (.NET) API GW IaaS CaaS (Kubernetes) container 레가 시1b (Java/ Spring) container 레가 시2b (Java/ Spring) container New Service (Python) container New Service (Go) Event Queue container 레가 시1a (Java/ Spring) CaaS (Kubernetes)
  • 16. 마이그래이션 전략 Strangler 프론트엔드 VM 레가 시1a (Java/ Tomcat) VM 레가 시2a (.NET) API GW IaaS CaaS (Kubernetes) container 레가 시1b (Java/ Spring) container 레가 시2b (Java/ Spring) container New Service (Python) container New Service (Go) Event Queue container 레가 시1a (Java/ Spring) CaaS (Kubernetes) Tested!
  • 17. 마이그래이션 전략 Strangler 프론트엔드 API GW CaaS (Kubernetes) container 레가 시1b (Java/ Spring) container 레가 시2b (Java/ Spring) container New Service (Python) container New Service (Go) container 레가 시1a (Java/ Spring) container 레가 시2a (Java/ Spring) IaaS Event Queue
  • 18. Legacy Issues • Stateful Session Data • Old-fashioned framework (JSP, SOAP, ORM …) • Old-WAS (Heavy-weight EJBs) • Join SQLs!
  • 19. 점진적 전환을 위한 기술들 -1 • API Gateway • Blue/Green & Canary Deployment • Dark Launch / Automated Test 개발자 확신, 문제 상황 대처
  • 20. 점진적 전환을 위한 기술들 -2 • Change Data Capturing • Materialized View 데이터 성능, 코드 전환 없는 연동
  • 21. MSA 구현 기술들 • 1세대 MSA (Spring Cloud / Netflix OSS) 코드수정 • 2세대 Service Mesh (Kubernetes / Istio) 코드수정X • 3세대 Event Driven MSA (Serverless / Kafka) 간섭최소화
  • 22. MSA 구현 기술들 비교 Spring Cloud / Netflix OSS Kubernetes / Istio Event Driven MSA (Kafka) 제공기능 API GW, Service Registry, Circuit Breaker … Covers all of Netflix OSS + Canary Deploy, Dark Launch … PubSub, Materialized View, Realtime Streaming Processing 코드 변경 필요 (only Java) 불필요 (Polyglot) N/A (with CDC) 서비스 간 커플링 Loosely-Coupled Loosely-Coupled 가장 Loosely-coupled 데이터 어그리게이션 성능 느림 (Blocked, Request- Response) 느림 (Blocked, Request- Response) 빠름 (Non-blocking, Event Sourcing)
  • 25. K8S vs Spring Cloud vs Istio
  • 26. Advanced Routing & Deployment Strategy • Ingress / Egress Gateway • Canary Deploy • 특정 유저의 신상, 지역, 권한, 접근 단말에 따른 다른 버전의 노출 • AB Testing / Shadow Deploy (Dark Launch) • 신규 버전의 오류 노출 없는 실질적 테스트
  • 27. Advanced Resilience • Retry (Kubernetes X, Spring Cloud O) • 서비스간 호출의 실패에 대한 재시도 • Circuit Breaking (Spring Cloud O) / Rate Limiting • 인스턴스의 보호 • 전체 서비스 장애 차단 • Pool Ejection (Spring Cloud / Eureka) • 죽은 인스턴스의 제외 • Circuit Breaking + Pool Ejection + Retry = High Resilience
  • 28. Advanced Security • TLS based Inter-Mi-services Communication • By Auth (신규모듈) • Whitelist and Blacklist
  • 29. Advanced Observability • Distributed Tracing and Measure • 서비스간 호출의 내용 기록
  • 30. Spring Cloud + Netflix
  • 31. After Istio (on K8S) 좋은점: 1. L7 레이어를 사용, 성능이 높음 2. Code 변경 없이 Cross-cutting 이슈를 다루어줌 3. Polyglot 다양한 언어에 무관하게 적용가능 4. Main 서비스의 재배포 없이 Sidecar 를 관리 가능함
  • 33.
  • 34.
  • 35.
  • 36. Design Principle • Pluggable / Extensible Adapters and Views • Real-time Monitor (Push Service) • Usage Prediction, Billing • Multi-dimensional Analytic • Event-driven Microservices • Server-sent event • Stream Processing • Multiple Views / Polyglot Persistency
  • 37. 1 2 3 4 5 6 7 8 9 Service 1 Service 2 Legacy Event Producers ….. “Append only” pub Kafka Loosely-coupled Extensible and pluggable Event Sources Cache (Redis) DB (RDB?) Event Consumers Index (ElasticSear ch or Solr) sub Loosely-coupled Extensible and pluggable Views Service 1 (Java) Service 2 (Python) Legacy (Java) App polling containerSidecar  Front-end (MVVM) Load snapshot Offset: 9 Offset: 8 Offset: 6 Cache data again & Set offset as DB’s offset Read all again X 1. Web hoot or SSE Read faster / frequently via REST directly (no backend) Text search 1. . 2. HTTP Polling 3. CDC or file polling Pod Container …..Realtime Analytic (KSQL) Billing / Metering Offset: 9
  • 38. Event Formatting: Event Sourcing 1 2 3 4 5 6 7 8 9 Append the “Diff” only Kafka 1: key: account1, value: { action: Deposit, amount: 100 } 2: key: account1, value: { action: Deposit, amount: 50 } 3: key: account2, value: { action: Deposit, amount: 50 } 4: key: account2, value: { action: Withdraw, amount: 50 } 5: key: account1, value: { action: Withdraw, amount: 50 } 6: key: account3, value: { action: Deposit, amount: 100 } 7: key: account4, value: { action: Deposit, amount: 50 } ….
  • 39. 1 Deposit 100 for acc1 2 Deposit 50 for acc1 3 Deposit 50 for acc2 4 Withdraw 50 for acc2 5 Withdraw 50 for acc1 6 Deposit 50 for acc3 7 Deposit 50 for acc4 8 … 9 … Account Deposit Event Producers Kafka Cache (Redis) DB (RDB?) Event Consumers Index (ElasticSear ch or Solr) Front-end (MVVM) …..Billing (KSQL) Offset: 9 Backend for front …..SSE Emitter Offset: 9 Withdrawal
  • 40. Kafka Aggregate view in Database id balanc e acct1 100 1 Deposit 100 for acc1 2 Deposit 50 for acc1 3 Deposit 50 for acc2 4 Withdraw 50 for acc2 5 Withdraw 50 for acc1 6 Deposit 50 for acc3 7 Deposit 50 for acc4 8 … 9 … id balanc e acct1 150 id balanc e acct1 150 acc2 50 id balanc e acct1 150 acc2 0 id balanc e acct1 100 acc2 0 id balanc e acct1 100 acc2 0 acc3 50 id balanc e acct1 100 acc2 0 acc3 50 acc4 50
  • 41. Kafka View in Front-end (Push service) 1 minlater 2 min later 3 min later 4 min later 5 min later 6 min later 7 min later 1 Deposit 100 for acc1 2 Deposit 50 for acc1 3 Deposit 50 for acc2 4 Withdraw 50 for acc2 5 Withdraw 50 for acc1 6 Deposit 50 for acc3 7 Deposit 50 for acc4 8 Withdraw 50 for acc1 9 Deposit 150 for acc1 Snack bar pops up Your Balance Is 100 You’ve deposited 50 Undo Your Balance Is 150 You’ve deposited 50 Undo Your Balance Is 100You’ve withdrawed 50 Undo Your Balance Is 200You’ve Deposited 50 Undo Your Balance Is 50You’ve withdrawed 50 Undo
  • 42. Kafka View in Realtime Analytic (Early Warning) 1 second later 2 second later 3 second later 4 second later 5 second later 6 second later 7 second later Warning: You may go bankrupt after 5 min !!! ** Using KSQL or Kstreams: 1 Deposit 100 for acc1 2 Deposit 50 for acc1 3 Deposit 50 for acc2 4 Withdraw 50 for acc2 5 Withdraw 50 for acc1 6 Deposit 50 for acc3 7 Deposit 50 for acc4 8 Withdraw 50 for acc1 9 Deposit 150 for acc1