When you break your monolith into components, services, or functions, you must understand where and how to break your existing code base and architecture into smaller units so that it scales, performs, and is easy to operate. In this session, Andreas Grabner, technical AWS advocate, shows you how Dynatrace redefined its architecture. He discusses the migration capabilities Dynatrace engineers built into their product and explains how the lessons learned can help you fearlessly transition from monolith to serverless. This session is brought to you by AWS Partner, Dynatrace.
11. Amazon SNS
Amazon S3
Amazon API
Gateway
Amazon
SQS
Amazon
Kinesis
Amazon
DynamoDB
Business Logic
Glue between
the bricks
Your Services
Leveraging standard service
and platform capabilities
Courtesy of
12. Amazon SNS
Amazon S3
Amazon API
Gateway
Amazon
SQS
Amazon
Kinesis
Amazon
DynamoDB
Microservices
to Functions
Courtesy of
13. Amazon SNS
Amazon S3
Amazon API
Gateway
Amazon
SQS
Amazon
Kinesis
Amazon
DynamoDB
Microservices
to Functions
Courtesy of
14. Amazon SNS
Amazon S3
Amazon API
Gateway
Amazon
SQS
Amazon
Kinesis
Amazon
DynamoDB
Microservices
to Functions
Courtesy of
19. Amazon SNS
Amazon S3
Amazon API
Gateway
Amazon
SQS
Amazon
Kinesis
Amazon
DynamoDB
Microservices
to
Functions
Ephemeral
When the system is
idle, it shuts down and
costs nothing to run
Courtesy of
20. Questions / Challenges on that “Migration” Journey
• Where to start?
• What to break out?
• Dependencies?
• Works as expected?
• Users happy?
• Does it scale?
• Does it perform?
• Works as expected?
• Users happy?
• How to optimize?
• How to automate?
?
? ?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
? ?
?
?
?
? ? ?
?
?
?
?
From
On-Premise Monolith
Via
Containerized Services
To
Functions & Cloud Services
21. 26
500
Feature Releases / Year
Deployments / Day
31000 60h
Unit & Int Tests / hour UI Tests per Build
More Quality
~120 340
Code commits / day Stories per sprint
More Agile
93%
Production bugs found by Dev
More Stability 450 99.998%
Global EC2 Instances Global Availability
Dynatrace Journey! It shaped our product!
23. Where to start?
What to break out?
Dependencies?
Works as expected?
Does it scale?
Does it perform?
Works as expected?
How to scale?
How to optimize?
How to automate?
Dynatrace Smartscape
We tell you WHAT to migrate and
WHERE to break the monolith!
Dynatrace AI
Automatic End User, Service and
Infrastructure Root Cause Analysis
Dynatrace Automation API
Automate Rollout in your
Containers & Functions. Automate
Shift-Left and Self-Healing
Dynatrace enables Break, Shift, Re-Platform
24. Dynatrace helps to decide WHAT to migrate/shift
Dynatrace Smartscape
• Auto-dependency
mapping of internal &
external services
• Auto-load detection
and baselining
• Auto-resource
consumption detection
Automate T-Shirt Size Categorization for your Migration Plan
25. Tightly coupled! Shall we really distribute/extract?
Dynatrace “virtually” breaks your monolith!
Dynatrace helps to decide WHERE to break the
monolith
26. Dynatrace validates & optimizes scalability
Low Load Peak LoadRegular Load
How does each service scale? Does it correctly fail over??
27. Dynatrace Baselining Validates Before vs
After!
How is Performance & Resource Consumption per Service Endpoint?
Before After
28. Planned Architectural Service Flow
Actual Architectural Service Flow
Identify / Optimize Architectural Patterns
Recursive Calls, N+1 Call Pattern, Chatty Interfaces, No Caching Layer …
Dynatrace ServiceFlow Validates your Architecture!
29. WHAT RUNS WHERE?
Monitoring Data and Tags for each EC2 instance through CloudWatch
Dependencies to Cloud Services
Who is calling RDS? DynamoDB? Lambdas?
Dynatrace Cloud Monitoring Validates Cloud Service Dependencies
32. Dynatrace Log Analytics: All with Transaction Context
Every Log from Every Process: Automatic Pattern Detection
All Logs for Services in Containers: ECS, Fargate …
34. Dynatrace RUM Validates User Behavior Before vs
After!
How are Conversions, Bounce Rates, Interaction Behavior, JavaScript Errors, Crashes?
35. Dynatrace AI: When something fails, find out: WHERE, WHY and HOW
FASTER
If you break things!
ChatOps with the AI
36. Dynatrace APIs: How to DevOps? Shift-Left? Self-Healing?
pushDynatraceDeploymentEvent
Pushes Deployment Info to Dynatrace Entities
validateBuildDynatraceWorker
Compares Builds and Approves/Rejects Pipeline
pushDynatraceDeploymentEvent
Pushes Deployment Info to Dynatrace Entities
validateBuildDynatraceWorker
Validates Production and Approves/Rejects Pipeline
handleDynatraceProblemNotification
Executes Auto-Remediating Actions, e.g: Rollback
Build 6
Build 7
Production
Production
Auto-Approve!
Auto-Reject!
Auto-Approve!
Auto-Reject!
https://github.com/Dynatrace/AWSDevOpsTutorial
37. • Signup through AWS Marketplace
• Run as SaaS or On-Premises
• Visit us at our booth
• Follow us @dynatrace
Try
38. Fearless from Monolith to Serverless with Dynatrace
Thank You
Andreas Grabner / @grabnerandi