SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS re:INVENT
Refactoring to the Cloud
H e a l t h c a r e P a y e r s a n d S e r v e r l e s s B a t c h P r o c e s s i n g E n g i n e s
H L C 3 0 8
N o v e m b e r 2 7 , 2 0 1 7
T i m M i c k o l & J o h n S t a e l e n s
22
Our Cause
To serve as a catalyst to transform health care,
creating a person-focused and economically
sustainable system.
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CURRENT ARCHITECTURE
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CURRENT ARCHITECTURE CHARACTERISTICS
• Mishmash of domains in a monolithic data model
• Knotted workflows with time-sensitive dependencies
• Too many interfaces and too little abstraction
• Opaque scattered business logic
• Difficult to change and test
• Laden with tech debt, dead ends, cruft
• Painful and costly to support
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
NO LIFT & SHIFT
• Leave technical debt behind
• Bridge bi-modal IT model
• Continuously replicate selected on-premises data
• Reasonable legacy migration runway
• De-emphasize legacy, favor evolution in the cloud
• Disrupt, but do so gently...
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
EMERGENT ARCHITECTURE CHARACTERISTICS
• Pub/sub-enterprise integration pattern
• RESTful APIs in a microservices ecosystem
• Domain-driven design
• Event sourcing
• Serverless computing
• Managed services
• Unlocking innovation
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
EMERGENT ARCHITECTURE
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
HIPAA & PHI
• Ensure the confidentiality, integrity, and availability of
all e-PHI we create, receive, maintain, or transmit
• Identify and protect against reasonably anticipated
threats to the security or integrity of the information
• Protect against reasonably anticipated, impermissible
uses, or disclosures
• Ensure compliance by our workforce
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
SATISFYING SECURITY REQUIREMENTS
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
INFOSEC & APPSEC
• Engaged office of CISO early and often
• All PHI & PII encrypted in flight & at rest
• Submitted to multiple architecture security audits
• Internal – office of CISO
• Third party – AWS Well Architected Review
• All services HIPAA Eligible and covered by BAA
https://aws.amazon.com/compliance/hipaa-eligible-services-reference/
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
IAC IS GOODNESS
• Ideation rapidly becomes concrete
• Explicitly self-describing systems
• Cost optimization can be automated
• Created many new Ansible roles
• Ansible roles become reusable enterprise resources
• Immutable components stood-up, torn-down easily,
rapidly
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CONVERT ORACLE SCHEMA TO MYSQL w/SCT
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
SCT: SCHEMA CONVERSION TOOL
• Intuitive UI
• Become rapidly proficient
• Create conversion mapping rules
• Used for initial conversion, DDL generation
• Great conversion reporting feature
• Create table-mapping.json for input to IaC
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CONTINUOUS REPLICATION VIA DMS
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
DMS COMPONENTS
• Replication subnet groups
• KMS Customer Managed
• SSL certificates
• Replication Instance
• Source and target database endpoints
• Migration task(s)
• All provisioned via IaC
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
DMS MIGRATION CONSIDERATIONS
• Full load or CDC only or both
• Read the documentation carefully, ask questions!
• Experiment with settings (scores of them!)
• Use Amazon CloudWatch for granular instrumentation
• Iterate and tune for performance and transactional
integrity
• Tune your choice of instance class
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CUD STREAMING VIA LAMBDA AND SNS
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
RDS AURORA MYSQL TO LAMBDA
CALL mysql.lambda_async (
lambda_function_ARN,
lambda_function_input )
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
SUBSCRIPTION OPTIONS
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
EVENT PUBLICATION SEQUENCE
>> On-premises database transaction
>> DMS replication transaction
>> Aurora MySQL triggers
>> Stored procedure wrapper
>> mysql.lambda_async()
>> Lambda function
>> SNS
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ASYNC PUBLISH ERROR HANDLING
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
EVENT SOURCING
“Event Sourcing ensures that all changes to application
state are stored as a sequence of events. Not just can we
query these events, we can also use the event log to
reconstruct past states, and as a foundation to
automatically adjust the state to cope with retroactive
changes.”
– Martin Fowler
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
EVENT
{
“id”: “b2a26034-a7c1-11e7-abc4-cec278b6b50a”,
“when”: “2020-01-31T21:00:00.000Z”,
“action”: “create”
}
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AD HOC QUERIES & EVENT REPLAY VIA API
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
INDIVIDUAL EVENT SOURCING
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
REPLAY TO SINGLE SUBSCRIBER (DESIRED)*
*SQS directly to Lambda is not currently supported
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
REPLAY TO SINGLE SUBSCRIBER (CURRENT)
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
HERE WE GO, READY TO REFACTOR IN FLIGHT
• Defined interfaces
• New integrations consume events, including our solutions
• Runway of new customers lined up
• Monolith deconstructed into two applications (so far)
• Microservice architecture foundation
• Event sourcing implementation
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
LESSONS LEARNED
• Prototype, POC fast and dirty in a sandbox
• Start IaC development early
• Start SSL configuration early (firewalls and security
groups and packet sniffing)
• Understand your IAM requirements
• Pair development – faster development, fewer mistakes
• Engage your AWS Solution Architect
• If you want it, ask your AWS TAM for PFR
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
REFERENCES
AWS Well Architected
AWS HIPAA Eligible
Download SCT
Set CloudWatch Alarms for Amazon SQS
Martin Fowler on Event Sourcing
Martin Fowler on CQRS
Martin on DDD Bounded Context
Glad to be here
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Thank you!
Y e n , R o n , R o b , S c o t t , E r i c , J a m e s , K i r k , B r i a n , S c o t t , B r e n t , D a n i e l l e ,
T a m m y , B r a d . . .
G L A D T O B E H E R E

Más contenido relacionado

La actualidad más candente

GAM310_Build a Telemetry and Analytics Pipeline for Game Balancing
GAM310_Build a Telemetry and Analytics Pipeline for Game BalancingGAM310_Build a Telemetry and Analytics Pipeline for Game Balancing
GAM310_Build a Telemetry and Analytics Pipeline for Game Balancing
Amazon Web Services
 

La actualidad más candente (20)

ABD202_Best Practices for Building Serverless Big Data Applications
ABD202_Best Practices for Building Serverless Big Data ApplicationsABD202_Best Practices for Building Serverless Big Data Applications
ABD202_Best Practices for Building Serverless Big Data Applications
 
GPSTEC305-Machine Learning in Capital Markets
GPSTEC305-Machine Learning in Capital MarketsGPSTEC305-Machine Learning in Capital Markets
GPSTEC305-Machine Learning in Capital Markets
 
WPT202_Bridging the Racial Digital Divide
WPT202_Bridging the Racial Digital DivideWPT202_Bridging the Racial Digital Divide
WPT202_Bridging the Racial Digital Divide
 
Building Best Practices and the Right Foundation for your 1st Production Work...
Building Best Practices and the Right Foundation for your 1st Production Work...Building Best Practices and the Right Foundation for your 1st Production Work...
Building Best Practices and the Right Foundation for your 1st Production Work...
 
CMP323_AWS Batch Easy & Efficient Batch Computing on Amazon Web Services
CMP323_AWS Batch Easy & Efficient Batch Computing on Amazon Web ServicesCMP323_AWS Batch Easy & Efficient Batch Computing on Amazon Web Services
CMP323_AWS Batch Easy & Efficient Batch Computing on Amazon Web Services
 
DVC202_The Open Guide to AWS
DVC202_The Open Guide to AWSDVC202_The Open Guide to AWS
DVC202_The Open Guide to AWS
 
GAM310_Build a Telemetry and Analytics Pipeline for Game Balancing
GAM310_Build a Telemetry and Analytics Pipeline for Game BalancingGAM310_Build a Telemetry and Analytics Pipeline for Game Balancing
GAM310_Build a Telemetry and Analytics Pipeline for Game Balancing
 
NEW LAUNCH! Building Alexa Skills for Businesses (ALX204)
NEW LAUNCH! Building Alexa Skills for Businesses (ALX204) NEW LAUNCH! Building Alexa Skills for Businesses (ALX204)
NEW LAUNCH! Building Alexa Skills for Businesses (ALX204)
 
RET304_Rapidly Respond to Demanding Retail Customers with the Same Serverless...
RET304_Rapidly Respond to Demanding Retail Customers with the Same Serverless...RET304_Rapidly Respond to Demanding Retail Customers with the Same Serverless...
RET304_Rapidly Respond to Demanding Retail Customers with the Same Serverless...
 
GPSBUS221_Breaking Barriers Move Enterprise SAP Customers to SAP HANA on AWS ...
GPSBUS221_Breaking Barriers Move Enterprise SAP Customers to SAP HANA on AWS ...GPSBUS221_Breaking Barriers Move Enterprise SAP Customers to SAP HANA on AWS ...
GPSBUS221_Breaking Barriers Move Enterprise SAP Customers to SAP HANA on AWS ...
 
GPSBUS208-GPS DevOps transformations leading to cloud migrations
GPSBUS208-GPS DevOps transformations leading to cloud migrationsGPSBUS208-GPS DevOps transformations leading to cloud migrations
GPSBUS208-GPS DevOps transformations leading to cloud migrations
 
WPS301-Navigating HIPAA and HITRUST_QuickStart Guide to Account Gov Strat.pdf
WPS301-Navigating HIPAA and HITRUST_QuickStart Guide to Account Gov Strat.pdfWPS301-Navigating HIPAA and HITRUST_QuickStart Guide to Account Gov Strat.pdf
WPS301-Navigating HIPAA and HITRUST_QuickStart Guide to Account Gov Strat.pdf
 
CMP216_Use Amazon EC2 Spot Instances to Deploy a Deep Learning Framework on A...
CMP216_Use Amazon EC2 Spot Instances to Deploy a Deep Learning Framework on A...CMP216_Use Amazon EC2 Spot Instances to Deploy a Deep Learning Framework on A...
CMP216_Use Amazon EC2 Spot Instances to Deploy a Deep Learning Framework on A...
 
GPSBUS220-Refactor and Replatform .NET Apps to Use the Latest Microsoft SQL S...
GPSBUS220-Refactor and Replatform .NET Apps to Use the Latest Microsoft SQL S...GPSBUS220-Refactor and Replatform .NET Apps to Use the Latest Microsoft SQL S...
GPSBUS220-Refactor and Replatform .NET Apps to Use the Latest Microsoft SQL S...
 
DVC303-Technological Accelerants for Organizational Transformation
DVC303-Technological Accelerants for Organizational TransformationDVC303-Technological Accelerants for Organizational Transformation
DVC303-Technological Accelerants for Organizational Transformation
 
Create a Serverless Image Processing Platform - ARC326 - re:Invent 2017
Create a Serverless Image Processing Platform - ARC326 - re:Invent 2017Create a Serverless Image Processing Platform - ARC326 - re:Invent 2017
Create a Serverless Image Processing Platform - ARC326 - re:Invent 2017
 
CON203_Driving Innovation with Containers
CON203_Driving Innovation with ContainersCON203_Driving Innovation with Containers
CON203_Driving Innovation with Containers
 
Reinforcement Learning – The Ultimate AI - ARC320 - re:Invent 2017
Reinforcement Learning – The Ultimate AI - ARC320 - re:Invent 2017Reinforcement Learning – The Ultimate AI - ARC320 - re:Invent 2017
Reinforcement Learning – The Ultimate AI - ARC320 - re:Invent 2017
 
WIN302-Deep Dive on Active Directory From One to Many AWS Regions
WIN302-Deep Dive on Active Directory From One to Many AWS RegionsWIN302-Deep Dive on Active Directory From One to Many AWS Regions
WIN302-Deep Dive on Active Directory From One to Many AWS Regions
 
ENT212-An Overview of Best Practices for Large-Scale Migrations
ENT212-An Overview of Best Practices for Large-Scale MigrationsENT212-An Overview of Best Practices for Large-Scale Migrations
ENT212-An Overview of Best Practices for Large-Scale Migrations
 

Similar a HLC308_Refactoring to the Cloud

Data Design for Microservices - DevDay Austin 2017 Day 2
Data Design for Microservices - DevDay Austin 2017 Day 2Data Design for Microservices - DevDay Austin 2017 Day 2
Data Design for Microservices - DevDay Austin 2017 Day 2
Amazon Web Services
 

Similar a HLC308_Refactoring to the Cloud (20)

GPSTEC326-GPS Industry 4.0 AI and the Future of Manufacturing
GPSTEC326-GPS Industry 4.0 AI and the Future of ManufacturingGPSTEC326-GPS Industry 4.0 AI and the Future of Manufacturing
GPSTEC326-GPS Industry 4.0 AI and the Future of Manufacturing
 
GPS: Industry 4.0: AI and the Future of Manufacturing - GPSTEC326 - re:Invent...
GPS: Industry 4.0: AI and the Future of Manufacturing - GPSTEC326 - re:Invent...GPS: Industry 4.0: AI and the Future of Manufacturing - GPSTEC326 - re:Invent...
GPS: Industry 4.0: AI and the Future of Manufacturing - GPSTEC326 - re:Invent...
 
SRV310_Designing Microservices with Serverless
SRV310_Designing Microservices with ServerlessSRV310_Designing Microservices with Serverless
SRV310_Designing Microservices with Serverless
 
From Mainframe to Microservices: Vanguard’s Move to the Cloud - ENT331 - re:I...
From Mainframe to Microservices: Vanguard’s Move to the Cloud - ENT331 - re:I...From Mainframe to Microservices: Vanguard’s Move to the Cloud - ENT331 - re:I...
From Mainframe to Microservices: Vanguard’s Move to the Cloud - ENT331 - re:I...
 
ARC201_Scaling Up to Your First 10 Million Users
ARC201_Scaling Up to Your First 10 Million UsersARC201_Scaling Up to Your First 10 Million Users
ARC201_Scaling Up to Your First 10 Million Users
 
Oracle Enterprise Solutions on AWS - ENT326 - re:Invent 2017
Oracle Enterprise Solutions on AWS - ENT326 - re:Invent 2017Oracle Enterprise Solutions on AWS - ENT326 - re:Invent 2017
Oracle Enterprise Solutions on AWS - ENT326 - re:Invent 2017
 
ENT315_Landing Zones
ENT315_Landing ZonesENT315_Landing Zones
ENT315_Landing Zones
 
STG401_This Is My Architecture
STG401_This Is My ArchitectureSTG401_This Is My Architecture
STG401_This Is My Architecture
 
Learn how to build serverless applications using the AWS Serverless Platform-...
Learn how to build serverless applications using the AWS Serverless Platform-...Learn how to build serverless applications using the AWS Serverless Platform-...
Learn how to build serverless applications using the AWS Serverless Platform-...
 
Getting from Here to There: A Journey from On-premises to Serverless Architec...
Getting from Here to There: A Journey from On-premises to Serverless Architec...Getting from Here to There: A Journey from On-premises to Serverless Architec...
Getting from Here to There: A Journey from On-premises to Serverless Architec...
 
Data Design for Microservices - DevDay Austin 2017 Day 2
Data Design for Microservices - DevDay Austin 2017 Day 2Data Design for Microservices - DevDay Austin 2017 Day 2
Data Design for Microservices - DevDay Austin 2017 Day 2
 
GPSTEC320_Paving the yellow brick road to the cloud
GPSTEC320_Paving the yellow brick road to the cloudGPSTEC320_Paving the yellow brick road to the cloud
GPSTEC320_Paving the yellow brick road to the cloud
 
Digital Transformation: Adapt or Perish - CON207 - re:Invent 2017
Digital Transformation: Adapt or Perish - CON207 - re:Invent 2017Digital Transformation: Adapt or Perish - CON207 - re:Invent 2017
Digital Transformation: Adapt or Perish - CON207 - re:Invent 2017
 
Containers on AWS - State of the Union - CON201 - re:Invent 2017
Containers on AWS - State of the Union - CON201 - re:Invent 2017Containers on AWS - State of the Union - CON201 - re:Invent 2017
Containers on AWS - State of the Union - CON201 - re:Invent 2017
 
Manage Infrastructure Securely at Scale and Eliminate Operational Risks - DEV...
Manage Infrastructure Securely at Scale and Eliminate Operational Risks - DEV...Manage Infrastructure Securely at Scale and Eliminate Operational Risks - DEV...
Manage Infrastructure Securely at Scale and Eliminate Operational Risks - DEV...
 
規劃大規模遷移到 AWS 的最佳實踐
規劃大規模遷移到 AWS 的最佳實踐規劃大規模遷移到 AWS 的最佳實踐
規劃大規模遷移到 AWS 的最佳實踐
 
MBL204_Architecting Cost-Effective Mobile Backends for Scale, Security, and P...
MBL204_Architecting Cost-Effective Mobile Backends for Scale, Security, and P...MBL204_Architecting Cost-Effective Mobile Backends for Scale, Security, and P...
MBL204_Architecting Cost-Effective Mobile Backends for Scale, Security, and P...
 
How Nextdoor Built a Scalable, Serverless Data Pipeline for Billions of Event...
How Nextdoor Built a Scalable, Serverless Data Pipeline for Billions of Event...How Nextdoor Built a Scalable, Serverless Data Pipeline for Billions of Event...
How Nextdoor Built a Scalable, Serverless Data Pipeline for Billions of Event...
 
I Want to Analyze and Visualize Website Access Logs, but Why Do I Need Server...
I Want to Analyze and Visualize Website Access Logs, but Why Do I Need Server...I Want to Analyze and Visualize Website Access Logs, but Why Do I Need Server...
I Want to Analyze and Visualize Website Access Logs, but Why Do I Need Server...
 
Design, Build, and Modernize Your Web Applications with AWS
 Design, Build, and Modernize Your Web Applications with AWS Design, Build, and Modernize Your Web Applications with AWS
Design, Build, and Modernize Your Web Applications with AWS
 

Más de Amazon Web Services

Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
Amazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
Amazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
Amazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
Amazon Web Services
 

Más de Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

HLC308_Refactoring to the Cloud

  • 1. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS re:INVENT Refactoring to the Cloud H e a l t h c a r e P a y e r s a n d S e r v e r l e s s B a t c h P r o c e s s i n g E n g i n e s H L C 3 0 8 N o v e m b e r 2 7 , 2 0 1 7 T i m M i c k o l & J o h n S t a e l e n s
  • 2. 22 Our Cause To serve as a catalyst to transform health care, creating a person-focused and economically sustainable system.
  • 3. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CURRENT ARCHITECTURE
  • 4. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CURRENT ARCHITECTURE CHARACTERISTICS • Mishmash of domains in a monolithic data model • Knotted workflows with time-sensitive dependencies • Too many interfaces and too little abstraction • Opaque scattered business logic • Difficult to change and test • Laden with tech debt, dead ends, cruft • Painful and costly to support
  • 5. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. NO LIFT & SHIFT • Leave technical debt behind • Bridge bi-modal IT model • Continuously replicate selected on-premises data • Reasonable legacy migration runway • De-emphasize legacy, favor evolution in the cloud • Disrupt, but do so gently...
  • 6. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. EMERGENT ARCHITECTURE CHARACTERISTICS • Pub/sub-enterprise integration pattern • RESTful APIs in a microservices ecosystem • Domain-driven design • Event sourcing • Serverless computing • Managed services • Unlocking innovation
  • 7. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. EMERGENT ARCHITECTURE
  • 8. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. HIPAA & PHI • Ensure the confidentiality, integrity, and availability of all e-PHI we create, receive, maintain, or transmit • Identify and protect against reasonably anticipated threats to the security or integrity of the information • Protect against reasonably anticipated, impermissible uses, or disclosures • Ensure compliance by our workforce
  • 9. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. SATISFYING SECURITY REQUIREMENTS
  • 10. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. INFOSEC & APPSEC • Engaged office of CISO early and often • All PHI & PII encrypted in flight & at rest • Submitted to multiple architecture security audits • Internal – office of CISO • Third party – AWS Well Architected Review • All services HIPAA Eligible and covered by BAA https://aws.amazon.com/compliance/hipaa-eligible-services-reference/
  • 11. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. IAC IS GOODNESS • Ideation rapidly becomes concrete • Explicitly self-describing systems • Cost optimization can be automated • Created many new Ansible roles • Ansible roles become reusable enterprise resources • Immutable components stood-up, torn-down easily, rapidly
  • 12. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CONVERT ORACLE SCHEMA TO MYSQL w/SCT
  • 13. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. SCT: SCHEMA CONVERSION TOOL • Intuitive UI • Become rapidly proficient • Create conversion mapping rules • Used for initial conversion, DDL generation • Great conversion reporting feature • Create table-mapping.json for input to IaC
  • 14. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CONTINUOUS REPLICATION VIA DMS
  • 15. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. DMS COMPONENTS • Replication subnet groups • KMS Customer Managed • SSL certificates • Replication Instance • Source and target database endpoints • Migration task(s) • All provisioned via IaC
  • 16. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. DMS MIGRATION CONSIDERATIONS • Full load or CDC only or both • Read the documentation carefully, ask questions! • Experiment with settings (scores of them!) • Use Amazon CloudWatch for granular instrumentation • Iterate and tune for performance and transactional integrity • Tune your choice of instance class
  • 17. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. CUD STREAMING VIA LAMBDA AND SNS
  • 18. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. RDS AURORA MYSQL TO LAMBDA CALL mysql.lambda_async ( lambda_function_ARN, lambda_function_input )
  • 19. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. SUBSCRIPTION OPTIONS
  • 20. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. EVENT PUBLICATION SEQUENCE >> On-premises database transaction >> DMS replication transaction >> Aurora MySQL triggers >> Stored procedure wrapper >> mysql.lambda_async() >> Lambda function >> SNS
  • 21. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ASYNC PUBLISH ERROR HANDLING
  • 22. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. EVENT SOURCING “Event Sourcing ensures that all changes to application state are stored as a sequence of events. Not just can we query these events, we can also use the event log to reconstruct past states, and as a foundation to automatically adjust the state to cope with retroactive changes.” – Martin Fowler
  • 23. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. EVENT { “id”: “b2a26034-a7c1-11e7-abc4-cec278b6b50a”, “when”: “2020-01-31T21:00:00.000Z”, “action”: “create” }
  • 24. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AD HOC QUERIES & EVENT REPLAY VIA API
  • 25. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. INDIVIDUAL EVENT SOURCING
  • 26. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. REPLAY TO SINGLE SUBSCRIBER (DESIRED)* *SQS directly to Lambda is not currently supported
  • 27. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. REPLAY TO SINGLE SUBSCRIBER (CURRENT)
  • 28. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. HERE WE GO, READY TO REFACTOR IN FLIGHT • Defined interfaces • New integrations consume events, including our solutions • Runway of new customers lined up • Monolith deconstructed into two applications (so far) • Microservice architecture foundation • Event sourcing implementation
  • 29. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. LESSONS LEARNED • Prototype, POC fast and dirty in a sandbox • Start IaC development early • Start SSL configuration early (firewalls and security groups and packet sniffing) • Understand your IAM requirements • Pair development – faster development, fewer mistakes • Engage your AWS Solution Architect • If you want it, ask your AWS TAM for PFR
  • 30. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. REFERENCES AWS Well Architected AWS HIPAA Eligible Download SCT Set CloudWatch Alarms for Amazon SQS Martin Fowler on Event Sourcing Martin Fowler on CQRS Martin on DDD Bounded Context Glad to be here
  • 31. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Thank you! Y e n , R o n , R o b , S c o t t , E r i c , J a m e s , K i r k , B r i a n , S c o t t , B r e n t , D a n i e l l e , T a m m y , B r a d . . . G L A D T O B E H E R E