When breaking your monolith into components, services or even functions you must understand WHERE and HOW you break your existing code base and architecture into smaller units to allow it to SCALE, PERFORM and make it EASY enough to operate!
In this session a Dynatrace Technical AWS Advocate, shows us how companies such as Barbri, Landbay and Citrix redefined their architecture on top of AWS; how Dynatrace was leveraged to re-platform and re-architecture; and how these lessons learned can benefit all of us to transform Fearless from Monolith to Serverless!
11. Amazon SNS
Amazon S3
Amazon API
Gateway
Amazon
SQS
Amazon
Kinesis
Amazon
DynamoDB
Business Logic
Glue between
the bricks
AWS Serverless
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
16. Amazon SNS
Amazon S3
Amazon API
Gateway
Amazon
SQS
Amazon
Kinesis
Amazon
DynamoDB
Microservices
On Lambda
Are Ephemeral
When the system is
idle, it shuts down and
costs nothing to run
Courtesy of
18. 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!
19. 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. 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
22. 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
23. Tightly coupled! Shall we really distribute/extract?
Dynatrace “virtually” breaks your monolith!
Dynatrace helps to decide WHERE to break the
monolith
24. Getting to know the Monolith Architecture
?
?
?
?
?
?
?
?
?
?
?
Service
Endpoints
Depending
Services
Service Flow
27. Step #3 Understanding Service Flow per Endpoint
#1 Filter on specific endpoint
#2 See Execution Flow to Depending Services
#3 Dependencies
& Call Patterns
#4 Call Pattern Details
28. Step #3 Understanding Service Flow per Endpoint
#1 Filter on specific endpoint
#2 See Execution Flow to Depending Services
#3 Dependencies
& Call Patterns
#4 Call Pattern Details
29. What We Learned So Far!
/review
/finish
/config
/payment
Backend
Service X
DB A
Q 1
Endpoints +
Throughput
Dependencies &
Call Patterns
Flow & CPU
Consumption
30. Next: Where to Break the Monolith?
/review
/finish
/config
/payment
Backend
Service X
DB A
Q 1
?
?
?
?
?
?
?
?
?
?
Entry Points? Entry Points?
31. Step 4: Finding Entry Points with CPU Sampling
#1 Filter on specific endpoint
#2 Search for specific code
#3 Found Entry Point to Package
32. Step #5 Define Custom Service Entry Points
#1 Service Name
#2 Method
33. We “virtually” broke the monolith!
/review
/finish
/config
/payment
Backend
Service X
DB A
Q 1
User
Catalog
Check
Avail.
Credit-
Card
Billing
Order
Journey
Booking
Configuration
Payment
34. Step #6 Learn from Dynatrace Data
Tightly coupled! Shall we really distribute/extract?
35. Dynatrace validates & optimizes scalability
Low Load Peak LoadRegular Load
How does each service scale? Does it correctly fail over??
36. Dynatrace Baselining Validates Before vs After!
How is Performance & Resource Consumption per Service Endpoint?
Before After
37. 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
38. Planned Architectural Service Flow
Actual Architectural Service Flow
Identify / Optimize Architectural Patterns
Recursive Calls, N+1 Call Pattern, Chatty Interfaces, No Caching Layer …
Dynatrace Service Flow Validates your Architecture!
39. 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 Services
43. From Monolith via Microservices to Serverless – and into the Mainframe
Dynatrace End-to-End through your Stack
Monolith
Serverless
Micro-
services
Legacy /
3rd-Party
44. Dynatrace RUM Validates User Behavior Before vs After!
How are Conversions, Bounce Rates, Interaction Behavior, JavaScript Errors, Crashes?
45. Dynatrace AI: When something fails, find out: Where, Why and How Faster
If you break things!
ChatOps with the AI
46. • Signup through AWS Marketplace
• Run as SaaS or On-Premises
• Visit us at our booth
• Follow us @dynatrace
Try