SlideShare uma empresa Scribd logo
1 de 91
Baixar para ler offline
Steve Caron
Sr. Solution Engineer
Dynatrace Center of Excellence
Monolith to
Microservices
2Confidential
Monolith to Microservices
with Dynatrace & OpenShift
https://bit.ly/dt-rh-jun11
https://github.com/steve-caron-dynatrace/Monolith_to_Microservices
4Confidential
What we will accomplish
• Set-up TicketMonster
• Extract the UI from the monolith
• Identify a microservice
• Identify the domain model of the
microservice
• Deploy the microservice
• Familiarization with cloud platform
• Deployment of microservice
• Confidence in breaking the monolith
• Persistence layer for the microservice
• (real) microservice extracted
Confidential 5
Check Prerequisites
Make sure your laptop has Internet Access and a modern browser (Google Chrome is ideal)
Workshop OpenShift Cluster:
URL: https://console-openshift-console.apps.cluster-dynatrac-edbb.dynatrac-
edbb.example.opentlc.com/
User: user## (## = assigned number)
Password: openshift
Workshop Dynatrace tenant:
URL: https://wxu551.dynatrace-managed.com/
User: user## (## = assigned number)
Password: dynatrace
Github Repo:
URL: https://github.com/steve-caron-dynatrace/Monolith_to_Microservices
6Confidential
Introduction
Limitations of Monoliths have given rise to Microservices
7Confidential
From monolith to microservices
Confidential 8
• Agility –Rebuilding the whole application takes a
decent amount of time
• Scalability – Scaling a monolith happens in both
directions: vertically as well as horizontally -
causing unused resources
• DevOps Cycle – Continuous delivery (high
frequency of deployments) fails due to high build
time
• Availability, fault tolerance, and resiliency
Limitations of monolithic applications
Confidential 9
Limitation of monolithic applications
Source: https://tommcfarlin.com/design-patterns-for-refactoring-facade/
Confidential 10
• Agility - Scope changes can be done in one
microservice - other microservices are not
impacted from these changes
• Scalability - Individual components can scale as
needed
• DevOps Cycle - Since each component
operates independently, continuous delivery
cycle reduces
Limitations of Monoliths have given rise to Microservices
Confidential 11
Just moving an application to the cloud won’t do it – even if it feels that way
Confidential 12
Just moving an application to the cloud won’t do it – even if it feels that way
13Confidential
Your App / Container
Autonomous Cloud:
Deliver Digital
Business Value
Faster
16Confidential
You need to change radically
17Confidential
Changing a technology stack and a modern UI is not enough
18Confidential
Your understanding of how you deliver needs to change
23Confidential
Openshift & Dynatrace primer
Confidential 24
OpenShift Architecture
OpenShift runs on any infrastructure
Confidential 25
OpenShift Architecture
OpenShift nodes are instances of
Red Hat Enterprise Linux / Atomic Host
Confidential 26
OpenShift Architecture
Application services run in
containers on each node
Confidential 27
OpenShift Architecture
Pods run one to many
containers as a co-located unit
Confidential 28
OpenShift Architecture
Masters leverage Kubernetes
to orchestrate nodes and applications
Confidential 29
OpenShift Architecture
Services allow related pods
to connect to each other
Confidential 30
OpenShift Architecture
Pods can attach to shared persistent storage
Confidential 31
OpenShift Architecture
Routing routes external requests to pods
Confidential 32
OpenShift Architecture
Devs and Ops access OpenShift via CLI,
Web UI or IDE
Confidential 33
Key Concepts - Nodes
• Worker machine in Kubernetes
• VM or physical machine
• Managed by the control plane (master)
• Node components:
• kubelet
• kube-proxy
• Container Runtime Engine
Confidential 34
Key Concepts - Pods
• Smallest “unit of work” in
Kubernetes.
• Pods are one or more
containers that share
volumes and namespace.
• They are also ephemeral
Confidential 35
Key Concepts - Services
• Unified method of accessing
the exposed workloads of
pods.
• Think of it as an internal
load balancer to your pods.
• How it is implemented
depends on the cloud
provider or the on-prem
config
• Not ephemeral
<service name>.<namespace>.svc.cluster.local
Confidential 36
Key Concepts – Deployments
• Way of managing Pods via ReplicaSets
• Provide rollback functionality and update control
• Each iteration creates a unique label that is assigned
to both the ReplicaSet and subsequent Pods.
Confidential 37
OpenShift concepts cheat sheet
Nodes
• are instances of underlying OS (Linux)
• virtual or physical machine
• host one to many Pods
Deployments/Replicasets
• select a Pod object using labels
• ensure a given number of Pod replicas
• handle scale-up/down and rolling updates
Pods
• are (co-located) groups of containers
• a Pod’s containers run on the same host (node)
Services
• select a Pod object using labels
• abstract a (replicated) set of Pods by IP, port(s)
• provide domain name and simple load balancing
Labels
• assign identifying metadata to objects (Pods)
• are used to organize, group or select objects
Routes
• expose services to the (cluster) outside world
Annotations
• assign non-identifying metadata to objects
• are used for arbitrary data (build, debug info)
Projects
• aka namespaces: allows a community of users to
organize and manage their content in isolation
from other communities.
Confidential 38
What is an Operator?
• The Operator Framework is an open
source toolkit to manage Kubernetes
native applications in an effective,
automated, and scalable way.
• Human operational knowledge in
software
• Reliably manage application lifecycles
as a first-class kube native object
Confidential 39
Dynatrace OneAgent Operator in action
• Watches for custom resources of
type OneAgent
• Takes care of OneAgent
deployment via DaemonSet
• Updates OneAgent to the latest
version available
1
1
2
2
3
3
3
Confidential 40
All-in-one monitoring of OpenShift cluster and workload
41Confidential
Hands-on with TicketMonster
42Confidential
Openshift UI Navigation
43Confidential
Openshift UI Navigation
44Confidential
Openshift UI Navigation
45Confidential
Openshift UI Navigation
46Confidential
Openshift UI Navigation
47Confidential
Openshift UI Navigation
48Confidential
Openshift UI Navigation
49Confidential
Openshift UI Navigation
50Confidential
Openshift UI Navigation
51Confidential
Openshift UI Navigation
52Confidential
Lab: Lift-and-shift TicketMonster
a. Login to
OpenShift
b. Create project-##
c. Navigate to your
project
Step 1:
Setup Project
https://github.com/peterhack/Monolith_to_Microservices/tree/master/1_Lift-and-Shift_TicketMonster
Confidential 53
• Overview
1. Create a MySQL service for monolith
2. Push application to OpenShift
3. Bind MySQL service to monolith
• Instructions:
• Lab: 1_Lift-and-Shift_TicketMonster
• Takeaways
• Familiarization with OpenShift
Lab 1: Lift-and-shift TicketMonster
Confidential 54
Lab: Lift-and-shift TicketMonster
a. Click on “Add”
b. Import YAML/JSON
c. Navigate to git repo for ticketmonster-db template
d. Copy RAW YAML
e. Create db template
f. Instantiate db template
Step 1:
Deploy Database for Monolith
https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/1_Lift-and-Shift_TicketMonster
Confidential 55
Lab: Lift-and-shift TicketMonster
a. Click on “Add”
b. Import YAML/JSON
c. Navigate to git repo for ticketmonster-monolith-template
d. Copy RAW YAML
e. Create monolith template
f. Instantiate monolith template
Step 2:
Deploy Monolith
https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/1_Lift-and-Shift_TicketMonster
Confidential 56
Lab: Lift-and-shift TicketMonster
monolith
Confidential 57
Lab: Lift-and-shift TicketMonster
a. Click on “Administrator”
b. Networking -> Routes -> Create Route
c. Name = monolith
d. Service = ticketmonster-monolith
e. Target Port = 8080 -> 8080 (TCP)
Step 3:
Create Route to Monolith
https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/1_Lift-and-Shift_TicketMonster
Confidential 58
Lab: Lift-and-shift TicketMonster
a. In Route, copy “Location”
b. Paste the location url in a browser and exercise the application
Step 4:
Exercise the application
https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/1_Lift-and-Shift_TicketMonster
Confidential 59
A single application consolidating all client
interactions for the monolith:
• Application uses the services provided by the
monolith and compose them together
• Use an API gateway or service mesh when
application needs to invoke calls to several
microservices
• Works as proxy where the UI pages of different
components are invoked to show the interface
Extract the UI from the Monolith
Confidential 60
• Overview
1) Rename ‘monolith‘ to ‘backend‘
2) Push new UI to OpenShift
3) Switch to tm-ui-v1
• Instructions:
• Lab: 2_Extract_UI_From_Monolith
• Takeaways
• Deployment of Microservice
Lab 2: Extract the UI from the Monolith
To start breaking up the monolith, a best practice is
extracting the user interface from TicketMonster
since this helps to decouple the client facing part
from the business logic. So, this lab launches the
first microservice to separate the user interface
from the rest of TicketMonster as depicted below.
Confidential 61
Lab: Lift-and-shift TicketMonster
Step 1:
Define a new route for the monolith
https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/1_Lift-and-Shift_TicketMonster
a. Click on “Administrator”
b. Networking -> Routes -> Create Route
c. Name = backend
d. Service = ticketmonster-monolith
e. Target Port = 8080 -> 8080 (TCP)
f. Copy backend route “host” info in notepad; you will need it later on
Confidential 62
Lab 2: Extract the UI from the Monolith
monolith
backend
Confidential 63
Lab: Lift-and-shift TicketMonster
a. Click on “Add”
b. Import YAML/JSON
c. Navigate to git repo for ticketmonster-ui-v1 template
d.Paste RAW YAML into OpenShift
*replace backend URL*
e. Create & Instantiate monolith template
Step 2:
Decouple UI from the Monolith
https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/2_Extract_UI_From_Monolith
Confidential 64
Lab 2: Extract the UI from the Monolith
monolith
backend
tticketmonster-ui-v1
Confidential 65
Lab: Lift-and-shift TicketMonster
Step 1:
Define a new route for the monolith
https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/1_Lift-and-Shift_TicketMonster
a. Click on “Administrator”
b. Networking -> Routes -> Create Route
c. Name = ticketmonster-ui-v1
d. Service = ticketmonster-ui-v1
e. Target Port = 8080 -> 8080 (TCP)
Confidential 66
Lab 2: Extract the UI from the Monolith
monolith
backend
tticketmonster-ui-
v1
ticketmonster-ui-v1
Confidential 67
Lab: Lift-and-shift TicketMonster
a. Select “ticketmonster-UI” URL from the route section and
validate that the page states “This UI hits the MONOLITH”
Step 3:
Validate new UI
https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/2_Extract_UI_From_Monolith
Confidential 68
How to identify a Microservice?
• Problem: we don’t know much
about our monolith:
• Who is depending on us and how
are they depending on us?
• Whom are we depending on and
how are we depending on them?
• What happens within our monolith
code base when it gets called?
• Solution: Leverage Dynatrace to:
• Get Dependency Information
• Detect Service Endpoints, Usage &
Behavior
• Understand Service Flow per
Endpoint
• Finding Entry Points with CPU
Sampling Data
• Define Custom Service Entry Points
Confidential 69
Identify a Microservice – understand dependencies
Confidential 70
Identify a Microservice – find the entry point in the code
Confidential 71
Other considerations to factor in the decision
• Business risk – Is the planned microservice a critical component and
does it impact the business in case it fails (conduct a risk
assessment)?
• Product roadmap – Which parts of the monolith need to be refactored
anyways?
• Business strategy – What is the long-time business strategy of the
monolith?
• Technology strategy – Do new technologies impact the further
development of the monolith?
Confidential 72
• Overview
1) Analyze UI and monolith
2) Define Custom Service Detection Rule
• Instructions:
• Lab: 4_Identify_a_Microservice
• Takeaways
• Virtually broken the monolith
Lab 4 : Identify a Microservice - Observability as part of the platform
Confidential 73
Lab: Lift-and-shift TicketMonster
Step 1:
Define custom service entry point
https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/4_Identify_a_Microservice
a. Log into Dynatrace Tenant
b.Go to Settings, Server-side service monitoring, and click on Custom
service detection”
c. Click on Define Java service, set name of custom service to
“project-xx-orders-service” and click Find entry point
d.Select the process group that contains your entry point
“ticketmonster-monolith” and click Continue.
Confidential 74
Lab: Lift-and-shift TicketMonster
Step 2:
Define custom service entry point
https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/4_Identify_a_Microservice
a. Search for loaded classes and interfaces with name
BookingService, select
“org.jboss.examples.ticketmonster.rest.BookingService” and
click Continue.
b.Use Selected Class and click Continue
c. Select method with “createBooking” as entry point and click
Finish
d.Review and select ”Save Changes”
Confidential 75
Lab: Lift-and-shift TicketMonster
Step 3:
Optional : Restart Pod to activate custom service
https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/4_Identify_a_Microservice
a. In Openshift UI, Select Administrator
b.Workloads -> Pods
c. Select Pod “ticketmonster-monolith-xxxx”
d.Action -> Delete Pod
Confidential 76
Lab: Lift-and-shift TicketMonster
Step 4:
Book a ticket on Ticket Monster
https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/4_Identify_a_Microservice
a. Open the ”ticketmonster-ui-v1” in a browser
b.Click on Events, Concerts, and on, eg. Rock concert of the decade
c. Select Venue, Date, and Order Ticket
d.Select section and number of tickets
e. Checkout and review booking details
Confidential 77
Lab: Lift-and-shift TicketMonster
Step 5:
Consider Service Flow in Dynatrace
https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/4_Identify_a_Microservice
a. Log into Dynatrace console and select the Project-##
Management Zone
b.Choose the Transactions & services tab from left menu
c. Select TicketMonsterUI and click on View service flow
Confidential 78
Lab: Lift-and-shift TicketMonster
Step 5:
Consider Service Flow in Dynatrace
Confidential 79
Identifying the Domain Model of the Microservice
• Data management of a decoupled Microservice:
• Use an existing API of the monolith to keep data management at the monolith
• (If no appropriate API is available) create a new lower-level API for the microservice (but still keep the
data management at the monolith)
• Do an ETL (Extract, Transform, Load) from the monolith’s database to the microservice’ database and
keep both in sync
• Data model shows how data is stored and entities relate to each other in the persistence layer.
• Domain model describes the behavior of the solution space of a microservice’s domain and
tends to focus on use case scenarios
Confidential 80
Refactoring your Source Code
• 1) Extract OrdersService from the Monolith
• Cut out the class containing createBooking method
• Identify missing abstractions for a successful build
• 2) Strangle the OrdersService around the Monolith
• Call the OrdersService in the business logic of the backend
• 3) Build the Data and Domain Models for the Microservice
• Integrate a data virtualization framework into your code base
• Extend the data model to the domain model by virtualized data views
Confidential 81
• Overview
1. Analyze database queries of
Microservice
• Instructions:
• Lab: 5_Domain_Model_of_Microservice
• Takeaways
• Persistence layer of Microservices
Lab 5 : The Microservice and its Domain Model
Confidential 82
Lab: Lift-and-shift TicketMonster
Step 1:
Inspect the Data and Domain Models with Dynatrace
https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/4_Identify_a_Microservice
a. Within Dynatrace Service Flow, follow through custom project-
xx-orders-service to mysql db
b.Click on “View database statements”
Confidential 83
Lab: Lift-and-shift TicketMonster
Step 2: View database statements
Confidential 84
• Overview
1. Deploy a new backend version
2. Create a MySQL service instance
for microservice
3. Build microservice and push it to
OpenShift
4. Bind MySQL service instance to
microservice
5. Re-deploy UI to use new
backend version
• Instructions:
• Lab: 6_Deploy_the_Microservice
• Takeaways
• Microservice for a specific
bounded context
Lab 6 : Deploy the Microservice
Based on the result of the previous labs, you identified the
microservice OrdersService that has its own code repository and defines its
own domain model. To launch this service, it is not recommended to
directly route traffic to this new service since we cannot fully ensure that it
works as supposed. For this reason, we strangle the microservice around
the monolith. In other words, all incoming requests will still be intercepted
by the backend service, which forwards synthetic or live traffic
to OrdersService.
In this lab you'll use feature flags and OpenShift routing mechanism to
smoothly incorporate the new microservice into the monolith. The final
state of this lab is shown below:
Confidential 85
Lab: Lift-and-shift TicketMonster
Step 1:
Create the new data store for the Orders microservice
https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/5_Domain_Model_of_Microservice
a. Select “Add”
b.Import YAML/JSON
c. Navigate to git repo for ticketmonster orders-db template
d.Paste RAW YAML into OpenShift
e. Create and Instantiate
Confidential 86
Lab: Lift-and-shift TicketMonster
Step 2:
Setup the database
https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/5_Domain_Model_of_Microservice
a. Administrator -> Workloads -> Pod
b.Select the “orders-db” pod
c. Select the “Terminal” tab
d.In the terminal type:
a.cd~
b.pwd
*Should now be in directory /var/lib/mysql
Confidential 87
curl -o 0_ordersdb-schema.sql https://raw.githubusercontent.com/dynatrace-innovationlab/monolith-
to-microservice-openshift/master/orders-service/src/main/resources/db/migration/0_ordersdb-
schema.sql
curl -o 1_ordersdb-data.sql https://raw.githubusercontent.com/dynatrace-innovationlab/monolith-to-
microservice-openshift/master/orders-service/src/main/resources/db/migration/1_ordersdb-data.sql
mysql -u root orders < 0_ordersdb-schema.sql
mysql -u root orders < 1_ordersdb-data.sql
mysql -u root
GRANT ALL ON orders.* TO 'ticket'@'%';
show databases;
use orders
show tables;
select * from id_generator;
Step 2:
Setup the database
https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/5_Domain_Model_of_Microservice
Confidential 88
Lab: Lift-and-shift TicketMonster
Step 4:
Deploy the Orders microservice
https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/6_Deploy_the_Microservice
a. Developer -> Add
b.Navigate to git repo for ticketmonster-orders-service template
c. Copy RAW YAML
d.Paste RAW YAML into OpenShift
e. Create and Instantiate
Confidential 91
Lab 6 : Deploy the microservice
monolith
backend
tticketmonster-u1-
v1
ticketmonster-ui-v1
orders-service
Confidential 92
Lab: Lift-and-shift TicketMonster
Step 5:
Deploy ticketmonster-backend-V2
https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/6_Deploy_the_Microservice
a. Developer -> Add
b.Navigate to git repo for ticketmonster-backend-v2 template
c. Copy RAW YAML
d.Paste RAW YAML into OpenShift
e. Create and Instantiate
Confidential 93
Lab: Lift-and-shift TicketMonster
Step 6:
Create route for ticketmonster-backend-V2
https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/6_Deploy_the_Microservice
a. Administrator -> Networking - Routes
b. Select “Create Route”
c. Name: backend-v2
d. Service: ticketmonster-backend-v2
e. Target Port: 8080 -> 8080 (TCP)
f. Select “Create”
Confidential 94
Lab: Identify the microservice
monolith
backend
tticketmonst
er-u1-v1
ticketmonster-ui-v1
orders-service
ticketmonster-
backend-v2
backend-v2
Confidential 95
Lab: Lift-and-shift TicketMonster
Step 7:
Split route to backend
https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/6_Deploy_the_Microservice
a. Split the traffic to the backend
Can be done from the CLI :
oc set route-backends backend ticketmonster-monolith=50 ticketmonster-backend-v2=50 -n project-xx
Or can also be done by editing the yaml in the console:
- In Administrator mode, go in the Routes definitions.
- Select the backend route
- Click Edit
- Add the following yaml after the spec:to , also change the weight in the “to” from 0 to 50
alternateBackends:
- kind: Service
name: ticketmonster-backend-v2
weight: 50
Confidential 96
Lab: Identify the microservice
backend
tticketmonst
er-u1-v1
ticketmonster-ui-v1
orders-service
ticketmonster-
backend-v2
Confidential 97
Lab: Lift-and-shift TicketMonster
Step 8:
Verify Service in Dynatrace
https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/6_Deploy_the_Microservice
We can verify the service flow in Dynatrace.
From the left menu, choose the Transaction & services tab.
Select service TicketMonsterUI.
Click on View service flow.
Finally, you see the service flow containing the microservice
orders-service.
Confidential 98
Lab: Lift-and-shift TicketMonster
Step 8:
Verify Service in Dynatrace
https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/6_Deploy_the_Microservice
Confidential 99
Summary
• Limitation to Monoliths
• Agility –Rebuilding the whole application takes a decent amount of time
• Scalability – Scaling a monolith happens in both directions: vertically as well as horizontally - causing unused resources
• DevOps Cycle – Continuous delivery (high frequency of deployments) fails due to high build time
• Limitations of Monoliths have given rise to Microservices
• Agility - Scope changes can be done in one microservice - other micro services are not impacted from these changes
• Scalability - Individual components can scale as needed
• DevOps Cycle - Since each component operates independently, continuous delivery cycle reduces
• Dynatrace can be leveraged in this Monolith to Microservices Journey to:
• Get Dependency Information
• Detect Service Endpoints, Usage & Behavior
• Understand Service Flow per Endpoint
• Finding Entry Points with CPU Sampling Data
• Define Custom Service Entry Points
10
0
Confidential
dynatrace.com

Mais conteúdo relacionado

Mais procurados

Barbican 1.0 - Open Source Key Management for OpenStack
Barbican 1.0 - Open Source Key Management for OpenStackBarbican 1.0 - Open Source Key Management for OpenStack
Barbican 1.0 - Open Source Key Management for OpenStackjarito030506
 
Redefining cloud native debugging
Redefining cloud native debugging  Redefining cloud native debugging
Redefining cloud native debugging LibbySchulze
 
ADDO 2020: "The past, present, and future of cloud native API gateways"
ADDO 2020: "The past, present, and future of cloud native API gateways"ADDO 2020: "The past, present, and future of cloud native API gateways"
ADDO 2020: "The past, present, and future of cloud native API gateways"Daniel Bryant
 
Vulnerability Discovery in the Cloud
Vulnerability Discovery in the CloudVulnerability Discovery in the Cloud
Vulnerability Discovery in the CloudDevOps.com
 
SpringOne2GX 2014 Splunk Presentation
SpringOne2GX 2014 Splunk PresentationSpringOne2GX 2014 Splunk Presentation
SpringOne2GX 2014 Splunk PresentationDamien Dallimore
 
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...Lightbend
 
Comparison of Current Service Mesh Architectures
Comparison of Current Service Mesh ArchitecturesComparison of Current Service Mesh Architectures
Comparison of Current Service Mesh ArchitecturesMirantis
 
Service Mesh - Why? How? What?
Service Mesh - Why? How? What?Service Mesh - Why? How? What?
Service Mesh - Why? How? What?Orkhan Gasimov
 
The Complete Guide to Service Mesh
The Complete Guide to Service MeshThe Complete Guide to Service Mesh
The Complete Guide to Service MeshAspen Mesh
 
Debugging Complex Issues in Web Applications
Debugging Complex Issues in Web ApplicationsDebugging Complex Issues in Web Applications
Debugging Complex Issues in Web ApplicationsVMware Tanzu
 
Nashik MuleSoft Virtual Meetup#1 - Shared and Dedicated Load Balancer
Nashik MuleSoft Virtual Meetup#1 - Shared and Dedicated Load BalancerNashik MuleSoft Virtual Meetup#1 - Shared and Dedicated Load Balancer
Nashik MuleSoft Virtual Meetup#1 - Shared and Dedicated Load BalancerJitendra Bafna
 
Splunk Modular Inputs / JMS Messaging Module Input
Splunk Modular Inputs / JMS Messaging Module InputSplunk Modular Inputs / JMS Messaging Module Input
Splunk Modular Inputs / JMS Messaging Module InputDamien Dallimore
 
Four Steps Toward a Safer Continuous Delivery Practice (Hint: Add Monitoring)
Four Steps Toward a Safer Continuous Delivery Practice (Hint: Add Monitoring)Four Steps Toward a Safer Continuous Delivery Practice (Hint: Add Monitoring)
Four Steps Toward a Safer Continuous Delivery Practice (Hint: Add Monitoring)VMware Tanzu
 
The Beginner’s Guide To Spring Cloud
The Beginner’s Guide To Spring CloudThe Beginner’s Guide To Spring Cloud
The Beginner’s Guide To Spring CloudVMware Tanzu
 
Un-broken Logging - Operability.io 2015 - Matthew Skelton
Un-broken Logging - Operability.io 2015 - Matthew SkeltonUn-broken Logging - Operability.io 2015 - Matthew Skelton
Un-broken Logging - Operability.io 2015 - Matthew SkeltonSkelton Thatcher Consulting Ltd
 
Meetup milano #3 all you need to know before creating your vpc
Meetup milano #3   all you need to know before creating your vpcMeetup milano #3   all you need to know before creating your vpc
Meetup milano #3 all you need to know before creating your vpcGonzalo Marcos Ansoain
 
Pivotal Cloud Foundry 2.4: A First Look
Pivotal Cloud Foundry 2.4: A First LookPivotal Cloud Foundry 2.4: A First Look
Pivotal Cloud Foundry 2.4: A First LookVMware Tanzu
 
Monitoring Serverless Applications with Datadog
Monitoring Serverless Applications with DatadogMonitoring Serverless Applications with Datadog
Monitoring Serverless Applications with DatadogDevOps.com
 
Splunk Conf 2014 - Splunking the Java Virtual Machine
Splunk Conf 2014 - Splunking the Java Virtual MachineSplunk Conf 2014 - Splunking the Java Virtual Machine
Splunk Conf 2014 - Splunking the Java Virtual MachineDamien Dallimore
 
Microservice Pattern Launguage
Microservice Pattern LaunguageMicroservice Pattern Launguage
Microservice Pattern LaunguageInho Kang
 

Mais procurados (20)

Barbican 1.0 - Open Source Key Management for OpenStack
Barbican 1.0 - Open Source Key Management for OpenStackBarbican 1.0 - Open Source Key Management for OpenStack
Barbican 1.0 - Open Source Key Management for OpenStack
 
Redefining cloud native debugging
Redefining cloud native debugging  Redefining cloud native debugging
Redefining cloud native debugging
 
ADDO 2020: "The past, present, and future of cloud native API gateways"
ADDO 2020: "The past, present, and future of cloud native API gateways"ADDO 2020: "The past, present, and future of cloud native API gateways"
ADDO 2020: "The past, present, and future of cloud native API gateways"
 
Vulnerability Discovery in the Cloud
Vulnerability Discovery in the CloudVulnerability Discovery in the Cloud
Vulnerability Discovery in the Cloud
 
SpringOne2GX 2014 Splunk Presentation
SpringOne2GX 2014 Splunk PresentationSpringOne2GX 2014 Splunk Presentation
SpringOne2GX 2014 Splunk Presentation
 
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
How to build streaming data pipelines with Akka Streams, Flink, and Spark usi...
 
Comparison of Current Service Mesh Architectures
Comparison of Current Service Mesh ArchitecturesComparison of Current Service Mesh Architectures
Comparison of Current Service Mesh Architectures
 
Service Mesh - Why? How? What?
Service Mesh - Why? How? What?Service Mesh - Why? How? What?
Service Mesh - Why? How? What?
 
The Complete Guide to Service Mesh
The Complete Guide to Service MeshThe Complete Guide to Service Mesh
The Complete Guide to Service Mesh
 
Debugging Complex Issues in Web Applications
Debugging Complex Issues in Web ApplicationsDebugging Complex Issues in Web Applications
Debugging Complex Issues in Web Applications
 
Nashik MuleSoft Virtual Meetup#1 - Shared and Dedicated Load Balancer
Nashik MuleSoft Virtual Meetup#1 - Shared and Dedicated Load BalancerNashik MuleSoft Virtual Meetup#1 - Shared and Dedicated Load Balancer
Nashik MuleSoft Virtual Meetup#1 - Shared and Dedicated Load Balancer
 
Splunk Modular Inputs / JMS Messaging Module Input
Splunk Modular Inputs / JMS Messaging Module InputSplunk Modular Inputs / JMS Messaging Module Input
Splunk Modular Inputs / JMS Messaging Module Input
 
Four Steps Toward a Safer Continuous Delivery Practice (Hint: Add Monitoring)
Four Steps Toward a Safer Continuous Delivery Practice (Hint: Add Monitoring)Four Steps Toward a Safer Continuous Delivery Practice (Hint: Add Monitoring)
Four Steps Toward a Safer Continuous Delivery Practice (Hint: Add Monitoring)
 
The Beginner’s Guide To Spring Cloud
The Beginner’s Guide To Spring CloudThe Beginner’s Guide To Spring Cloud
The Beginner’s Guide To Spring Cloud
 
Un-broken Logging - Operability.io 2015 - Matthew Skelton
Un-broken Logging - Operability.io 2015 - Matthew SkeltonUn-broken Logging - Operability.io 2015 - Matthew Skelton
Un-broken Logging - Operability.io 2015 - Matthew Skelton
 
Meetup milano #3 all you need to know before creating your vpc
Meetup milano #3   all you need to know before creating your vpcMeetup milano #3   all you need to know before creating your vpc
Meetup milano #3 all you need to know before creating your vpc
 
Pivotal Cloud Foundry 2.4: A First Look
Pivotal Cloud Foundry 2.4: A First LookPivotal Cloud Foundry 2.4: A First Look
Pivotal Cloud Foundry 2.4: A First Look
 
Monitoring Serverless Applications with Datadog
Monitoring Serverless Applications with DatadogMonitoring Serverless Applications with Datadog
Monitoring Serverless Applications with Datadog
 
Splunk Conf 2014 - Splunking the Java Virtual Machine
Splunk Conf 2014 - Splunking the Java Virtual MachineSplunk Conf 2014 - Splunking the Java Virtual Machine
Splunk Conf 2014 - Splunking the Java Virtual Machine
 
Microservice Pattern Launguage
Microservice Pattern LaunguageMicroservice Pattern Launguage
Microservice Pattern Launguage
 

Semelhante a Dynatrace - Red Hat workshop : Monolith to Microservices

Oscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectOscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectPatrick Chanezon
 
Red Hat and kubernetes: awesome stuff coming your way
Red Hat and kubernetes:  awesome stuff coming your wayRed Hat and kubernetes:  awesome stuff coming your way
Red Hat and kubernetes: awesome stuff coming your wayJohannes Brännström
 
Operator Framework Overview
Operator Framework OverviewOperator Framework Overview
Operator Framework OverviewRob Szumski
 
Build cloud native solution using open source
Build cloud native solution using open source Build cloud native solution using open source
Build cloud native solution using open source Nitesh Jadhav
 
Docker Application to Scientific Computing
Docker Application to Scientific ComputingDocker Application to Scientific Computing
Docker Application to Scientific ComputingPeter Bryzgalov
 
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
Develop and deploy Kubernetes  applications with Docker - IBM Index 2018Develop and deploy Kubernetes  applications with Docker - IBM Index 2018
Develop and deploy Kubernetes applications with Docker - IBM Index 2018Patrick Chanezon
 
Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...
Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...
Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...Patrick Chanezon
 
Integration in the Cloud, by Rob Davies
Integration in the Cloud, by Rob DaviesIntegration in the Cloud, by Rob Davies
Integration in the Cloud, by Rob DaviesJudy Breedlove
 
Debugging Microservices - QCON 2017
Debugging Microservices - QCON 2017Debugging Microservices - QCON 2017
Debugging Microservices - QCON 2017Idit Levine
 
Tungsten Fabric Overview
Tungsten Fabric OverviewTungsten Fabric Overview
Tungsten Fabric OverviewMichelle Holley
 
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...Ambassador Labs
 
MicroProfile, Docker, Kubernetes, Istio and Open Shift lab @dev nexus
MicroProfile, Docker, Kubernetes, Istio and Open Shift lab @dev nexusMicroProfile, Docker, Kubernetes, Istio and Open Shift lab @dev nexus
MicroProfile, Docker, Kubernetes, Istio and Open Shift lab @dev nexusEmily Jiang
 
Sumo Logic Cert Jam - Advanced Metrics with Kubernetes
Sumo Logic Cert Jam - Advanced Metrics with KubernetesSumo Logic Cert Jam - Advanced Metrics with Kubernetes
Sumo Logic Cert Jam - Advanced Metrics with KubernetesSumo Logic
 
Docker meetup - PaaS interoperability
Docker meetup - PaaS interoperabilityDocker meetup - PaaS interoperability
Docker meetup - PaaS interoperabilityLudovic Piot
 
Azure meetup cloud native concepts - may 28th 2018
Azure meetup   cloud native concepts - may 28th 2018Azure meetup   cloud native concepts - may 28th 2018
Azure meetup cloud native concepts - may 28th 2018Jim Bugwadia
 
Toronto MuleSoft_Meetup_Run Time Fabric - Self Managed Kubernetes.pptx
Toronto MuleSoft_Meetup_Run Time Fabric - Self Managed Kubernetes.pptxToronto MuleSoft_Meetup_Run Time Fabric - Self Managed Kubernetes.pptx
Toronto MuleSoft_Meetup_Run Time Fabric - Self Managed Kubernetes.pptxAnurag Dwivedi
 
Centralize and Simplify Secrets Management for Red Hat OpenShift Container En...
Centralize and Simplify Secrets Management for Red Hat OpenShift Container En...Centralize and Simplify Secrets Management for Red Hat OpenShift Container En...
Centralize and Simplify Secrets Management for Red Hat OpenShift Container En...DevOps.com
 
ThroughTheLookingGlass_EffectiveObservability.pptx
ThroughTheLookingGlass_EffectiveObservability.pptxThroughTheLookingGlass_EffectiveObservability.pptx
ThroughTheLookingGlass_EffectiveObservability.pptxGrace Jansen
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017Patrick Chanezon
 

Semelhante a Dynatrace - Red Hat workshop : Monolith to Microservices (20)

Oscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectOscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby project
 
Red Hat and kubernetes: awesome stuff coming your way
Red Hat and kubernetes:  awesome stuff coming your wayRed Hat and kubernetes:  awesome stuff coming your way
Red Hat and kubernetes: awesome stuff coming your way
 
Operator Framework Overview
Operator Framework OverviewOperator Framework Overview
Operator Framework Overview
 
Build cloud native solution using open source
Build cloud native solution using open source Build cloud native solution using open source
Build cloud native solution using open source
 
Docker Application to Scientific Computing
Docker Application to Scientific ComputingDocker Application to Scientific Computing
Docker Application to Scientific Computing
 
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
Develop and deploy Kubernetes  applications with Docker - IBM Index 2018Develop and deploy Kubernetes  applications with Docker - IBM Index 2018
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
 
Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...
Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...
Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...
 
Integration in the Cloud, by Rob Davies
Integration in the Cloud, by Rob DaviesIntegration in the Cloud, by Rob Davies
Integration in the Cloud, by Rob Davies
 
Debugging Microservices - QCON 2017
Debugging Microservices - QCON 2017Debugging Microservices - QCON 2017
Debugging Microservices - QCON 2017
 
Tungsten Fabric Overview
Tungsten Fabric OverviewTungsten Fabric Overview
Tungsten Fabric Overview
 
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
 
citus™ iot ecosystem
citus™ iot ecosystemcitus™ iot ecosystem
citus™ iot ecosystem
 
MicroProfile, Docker, Kubernetes, Istio and Open Shift lab @dev nexus
MicroProfile, Docker, Kubernetes, Istio and Open Shift lab @dev nexusMicroProfile, Docker, Kubernetes, Istio and Open Shift lab @dev nexus
MicroProfile, Docker, Kubernetes, Istio and Open Shift lab @dev nexus
 
Sumo Logic Cert Jam - Advanced Metrics with Kubernetes
Sumo Logic Cert Jam - Advanced Metrics with KubernetesSumo Logic Cert Jam - Advanced Metrics with Kubernetes
Sumo Logic Cert Jam - Advanced Metrics with Kubernetes
 
Docker meetup - PaaS interoperability
Docker meetup - PaaS interoperabilityDocker meetup - PaaS interoperability
Docker meetup - PaaS interoperability
 
Azure meetup cloud native concepts - may 28th 2018
Azure meetup   cloud native concepts - may 28th 2018Azure meetup   cloud native concepts - may 28th 2018
Azure meetup cloud native concepts - may 28th 2018
 
Toronto MuleSoft_Meetup_Run Time Fabric - Self Managed Kubernetes.pptx
Toronto MuleSoft_Meetup_Run Time Fabric - Self Managed Kubernetes.pptxToronto MuleSoft_Meetup_Run Time Fabric - Self Managed Kubernetes.pptx
Toronto MuleSoft_Meetup_Run Time Fabric - Self Managed Kubernetes.pptx
 
Centralize and Simplify Secrets Management for Red Hat OpenShift Container En...
Centralize and Simplify Secrets Management for Red Hat OpenShift Container En...Centralize and Simplify Secrets Management for Red Hat OpenShift Container En...
Centralize and Simplify Secrets Management for Red Hat OpenShift Container En...
 
ThroughTheLookingGlass_EffectiveObservability.pptx
ThroughTheLookingGlass_EffectiveObservability.pptxThroughTheLookingGlass_EffectiveObservability.pptx
ThroughTheLookingGlass_EffectiveObservability.pptx
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017
 

Último

Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
%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
 
%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durbanmasabamasaba
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationShrmpro
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
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
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
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
 
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
 
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
 

Último (20)

Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%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
 
%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions Presentation
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
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
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
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
 
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
 
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 🔝✔️✔️
 

Dynatrace - Red Hat workshop : Monolith to Microservices

  • 1. Steve Caron Sr. Solution Engineer Dynatrace Center of Excellence Monolith to Microservices
  • 2. 2Confidential Monolith to Microservices with Dynatrace & OpenShift https://bit.ly/dt-rh-jun11 https://github.com/steve-caron-dynatrace/Monolith_to_Microservices
  • 3. 4Confidential What we will accomplish • Set-up TicketMonster • Extract the UI from the monolith • Identify a microservice • Identify the domain model of the microservice • Deploy the microservice • Familiarization with cloud platform • Deployment of microservice • Confidence in breaking the monolith • Persistence layer for the microservice • (real) microservice extracted
  • 4. Confidential 5 Check Prerequisites Make sure your laptop has Internet Access and a modern browser (Google Chrome is ideal) Workshop OpenShift Cluster: URL: https://console-openshift-console.apps.cluster-dynatrac-edbb.dynatrac- edbb.example.opentlc.com/ User: user## (## = assigned number) Password: openshift Workshop Dynatrace tenant: URL: https://wxu551.dynatrace-managed.com/ User: user## (## = assigned number) Password: dynatrace Github Repo: URL: https://github.com/steve-caron-dynatrace/Monolith_to_Microservices
  • 5. 6Confidential Introduction Limitations of Monoliths have given rise to Microservices
  • 7. Confidential 8 • Agility –Rebuilding the whole application takes a decent amount of time • Scalability – Scaling a monolith happens in both directions: vertically as well as horizontally - causing unused resources • DevOps Cycle – Continuous delivery (high frequency of deployments) fails due to high build time • Availability, fault tolerance, and resiliency Limitations of monolithic applications
  • 8. Confidential 9 Limitation of monolithic applications Source: https://tommcfarlin.com/design-patterns-for-refactoring-facade/
  • 9. Confidential 10 • Agility - Scope changes can be done in one microservice - other microservices are not impacted from these changes • Scalability - Individual components can scale as needed • DevOps Cycle - Since each component operates independently, continuous delivery cycle reduces Limitations of Monoliths have given rise to Microservices
  • 10. Confidential 11 Just moving an application to the cloud won’t do it – even if it feels that way
  • 11. Confidential 12 Just moving an application to the cloud won’t do it – even if it feels that way
  • 12. 13Confidential Your App / Container Autonomous Cloud: Deliver Digital Business Value Faster
  • 13. 16Confidential You need to change radically
  • 14. 17Confidential Changing a technology stack and a modern UI is not enough
  • 15. 18Confidential Your understanding of how you deliver needs to change
  • 18. Confidential 25 OpenShift Architecture OpenShift nodes are instances of Red Hat Enterprise Linux / Atomic Host
  • 19. Confidential 26 OpenShift Architecture Application services run in containers on each node
  • 20. Confidential 27 OpenShift Architecture Pods run one to many containers as a co-located unit
  • 21. Confidential 28 OpenShift Architecture Masters leverage Kubernetes to orchestrate nodes and applications
  • 22. Confidential 29 OpenShift Architecture Services allow related pods to connect to each other
  • 23. Confidential 30 OpenShift Architecture Pods can attach to shared persistent storage
  • 24. Confidential 31 OpenShift Architecture Routing routes external requests to pods
  • 25. Confidential 32 OpenShift Architecture Devs and Ops access OpenShift via CLI, Web UI or IDE
  • 26. Confidential 33 Key Concepts - Nodes • Worker machine in Kubernetes • VM or physical machine • Managed by the control plane (master) • Node components: • kubelet • kube-proxy • Container Runtime Engine
  • 27. Confidential 34 Key Concepts - Pods • Smallest “unit of work” in Kubernetes. • Pods are one or more containers that share volumes and namespace. • They are also ephemeral
  • 28. Confidential 35 Key Concepts - Services • Unified method of accessing the exposed workloads of pods. • Think of it as an internal load balancer to your pods. • How it is implemented depends on the cloud provider or the on-prem config • Not ephemeral <service name>.<namespace>.svc.cluster.local
  • 29. Confidential 36 Key Concepts – Deployments • Way of managing Pods via ReplicaSets • Provide rollback functionality and update control • Each iteration creates a unique label that is assigned to both the ReplicaSet and subsequent Pods.
  • 30. Confidential 37 OpenShift concepts cheat sheet Nodes • are instances of underlying OS (Linux) • virtual or physical machine • host one to many Pods Deployments/Replicasets • select a Pod object using labels • ensure a given number of Pod replicas • handle scale-up/down and rolling updates Pods • are (co-located) groups of containers • a Pod’s containers run on the same host (node) Services • select a Pod object using labels • abstract a (replicated) set of Pods by IP, port(s) • provide domain name and simple load balancing Labels • assign identifying metadata to objects (Pods) • are used to organize, group or select objects Routes • expose services to the (cluster) outside world Annotations • assign non-identifying metadata to objects • are used for arbitrary data (build, debug info) Projects • aka namespaces: allows a community of users to organize and manage their content in isolation from other communities.
  • 31. Confidential 38 What is an Operator? • The Operator Framework is an open source toolkit to manage Kubernetes native applications in an effective, automated, and scalable way. • Human operational knowledge in software • Reliably manage application lifecycles as a first-class kube native object
  • 32. Confidential 39 Dynatrace OneAgent Operator in action • Watches for custom resources of type OneAgent • Takes care of OneAgent deployment via DaemonSet • Updates OneAgent to the latest version available 1 1 2 2 3 3 3
  • 33. Confidential 40 All-in-one monitoring of OpenShift cluster and workload
  • 45. 52Confidential Lab: Lift-and-shift TicketMonster a. Login to OpenShift b. Create project-## c. Navigate to your project Step 1: Setup Project https://github.com/peterhack/Monolith_to_Microservices/tree/master/1_Lift-and-Shift_TicketMonster
  • 46. Confidential 53 • Overview 1. Create a MySQL service for monolith 2. Push application to OpenShift 3. Bind MySQL service to monolith • Instructions: • Lab: 1_Lift-and-Shift_TicketMonster • Takeaways • Familiarization with OpenShift Lab 1: Lift-and-shift TicketMonster
  • 47. Confidential 54 Lab: Lift-and-shift TicketMonster a. Click on “Add” b. Import YAML/JSON c. Navigate to git repo for ticketmonster-db template d. Copy RAW YAML e. Create db template f. Instantiate db template Step 1: Deploy Database for Monolith https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/1_Lift-and-Shift_TicketMonster
  • 48. Confidential 55 Lab: Lift-and-shift TicketMonster a. Click on “Add” b. Import YAML/JSON c. Navigate to git repo for ticketmonster-monolith-template d. Copy RAW YAML e. Create monolith template f. Instantiate monolith template Step 2: Deploy Monolith https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/1_Lift-and-Shift_TicketMonster
  • 49. Confidential 56 Lab: Lift-and-shift TicketMonster monolith
  • 50. Confidential 57 Lab: Lift-and-shift TicketMonster a. Click on “Administrator” b. Networking -> Routes -> Create Route c. Name = monolith d. Service = ticketmonster-monolith e. Target Port = 8080 -> 8080 (TCP) Step 3: Create Route to Monolith https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/1_Lift-and-Shift_TicketMonster
  • 51. Confidential 58 Lab: Lift-and-shift TicketMonster a. In Route, copy “Location” b. Paste the location url in a browser and exercise the application Step 4: Exercise the application https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/1_Lift-and-Shift_TicketMonster
  • 52. Confidential 59 A single application consolidating all client interactions for the monolith: • Application uses the services provided by the monolith and compose them together • Use an API gateway or service mesh when application needs to invoke calls to several microservices • Works as proxy where the UI pages of different components are invoked to show the interface Extract the UI from the Monolith
  • 53. Confidential 60 • Overview 1) Rename ‘monolith‘ to ‘backend‘ 2) Push new UI to OpenShift 3) Switch to tm-ui-v1 • Instructions: • Lab: 2_Extract_UI_From_Monolith • Takeaways • Deployment of Microservice Lab 2: Extract the UI from the Monolith To start breaking up the monolith, a best practice is extracting the user interface from TicketMonster since this helps to decouple the client facing part from the business logic. So, this lab launches the first microservice to separate the user interface from the rest of TicketMonster as depicted below.
  • 54. Confidential 61 Lab: Lift-and-shift TicketMonster Step 1: Define a new route for the monolith https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/1_Lift-and-Shift_TicketMonster a. Click on “Administrator” b. Networking -> Routes -> Create Route c. Name = backend d. Service = ticketmonster-monolith e. Target Port = 8080 -> 8080 (TCP) f. Copy backend route “host” info in notepad; you will need it later on
  • 55. Confidential 62 Lab 2: Extract the UI from the Monolith monolith backend
  • 56. Confidential 63 Lab: Lift-and-shift TicketMonster a. Click on “Add” b. Import YAML/JSON c. Navigate to git repo for ticketmonster-ui-v1 template d.Paste RAW YAML into OpenShift *replace backend URL* e. Create & Instantiate monolith template Step 2: Decouple UI from the Monolith https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/2_Extract_UI_From_Monolith
  • 57. Confidential 64 Lab 2: Extract the UI from the Monolith monolith backend tticketmonster-ui-v1
  • 58. Confidential 65 Lab: Lift-and-shift TicketMonster Step 1: Define a new route for the monolith https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/1_Lift-and-Shift_TicketMonster a. Click on “Administrator” b. Networking -> Routes -> Create Route c. Name = ticketmonster-ui-v1 d. Service = ticketmonster-ui-v1 e. Target Port = 8080 -> 8080 (TCP)
  • 59. Confidential 66 Lab 2: Extract the UI from the Monolith monolith backend tticketmonster-ui- v1 ticketmonster-ui-v1
  • 60. Confidential 67 Lab: Lift-and-shift TicketMonster a. Select “ticketmonster-UI” URL from the route section and validate that the page states “This UI hits the MONOLITH” Step 3: Validate new UI https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/2_Extract_UI_From_Monolith
  • 61. Confidential 68 How to identify a Microservice? • Problem: we don’t know much about our monolith: • Who is depending on us and how are they depending on us? • Whom are we depending on and how are we depending on them? • What happens within our monolith code base when it gets called? • Solution: Leverage Dynatrace to: • Get Dependency Information • Detect Service Endpoints, Usage & Behavior • Understand Service Flow per Endpoint • Finding Entry Points with CPU Sampling Data • Define Custom Service Entry Points
  • 62. Confidential 69 Identify a Microservice – understand dependencies
  • 63. Confidential 70 Identify a Microservice – find the entry point in the code
  • 64. Confidential 71 Other considerations to factor in the decision • Business risk – Is the planned microservice a critical component and does it impact the business in case it fails (conduct a risk assessment)? • Product roadmap – Which parts of the monolith need to be refactored anyways? • Business strategy – What is the long-time business strategy of the monolith? • Technology strategy – Do new technologies impact the further development of the monolith?
  • 65. Confidential 72 • Overview 1) Analyze UI and monolith 2) Define Custom Service Detection Rule • Instructions: • Lab: 4_Identify_a_Microservice • Takeaways • Virtually broken the monolith Lab 4 : Identify a Microservice - Observability as part of the platform
  • 66. Confidential 73 Lab: Lift-and-shift TicketMonster Step 1: Define custom service entry point https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/4_Identify_a_Microservice a. Log into Dynatrace Tenant b.Go to Settings, Server-side service monitoring, and click on Custom service detection” c. Click on Define Java service, set name of custom service to “project-xx-orders-service” and click Find entry point d.Select the process group that contains your entry point “ticketmonster-monolith” and click Continue.
  • 67. Confidential 74 Lab: Lift-and-shift TicketMonster Step 2: Define custom service entry point https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/4_Identify_a_Microservice a. Search for loaded classes and interfaces with name BookingService, select “org.jboss.examples.ticketmonster.rest.BookingService” and click Continue. b.Use Selected Class and click Continue c. Select method with “createBooking” as entry point and click Finish d.Review and select ”Save Changes”
  • 68. Confidential 75 Lab: Lift-and-shift TicketMonster Step 3: Optional : Restart Pod to activate custom service https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/4_Identify_a_Microservice a. In Openshift UI, Select Administrator b.Workloads -> Pods c. Select Pod “ticketmonster-monolith-xxxx” d.Action -> Delete Pod
  • 69. Confidential 76 Lab: Lift-and-shift TicketMonster Step 4: Book a ticket on Ticket Monster https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/4_Identify_a_Microservice a. Open the ”ticketmonster-ui-v1” in a browser b.Click on Events, Concerts, and on, eg. Rock concert of the decade c. Select Venue, Date, and Order Ticket d.Select section and number of tickets e. Checkout and review booking details
  • 70. Confidential 77 Lab: Lift-and-shift TicketMonster Step 5: Consider Service Flow in Dynatrace https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/4_Identify_a_Microservice a. Log into Dynatrace console and select the Project-## Management Zone b.Choose the Transactions & services tab from left menu c. Select TicketMonsterUI and click on View service flow
  • 71. Confidential 78 Lab: Lift-and-shift TicketMonster Step 5: Consider Service Flow in Dynatrace
  • 72. Confidential 79 Identifying the Domain Model of the Microservice • Data management of a decoupled Microservice: • Use an existing API of the monolith to keep data management at the monolith • (If no appropriate API is available) create a new lower-level API for the microservice (but still keep the data management at the monolith) • Do an ETL (Extract, Transform, Load) from the monolith’s database to the microservice’ database and keep both in sync • Data model shows how data is stored and entities relate to each other in the persistence layer. • Domain model describes the behavior of the solution space of a microservice’s domain and tends to focus on use case scenarios
  • 73. Confidential 80 Refactoring your Source Code • 1) Extract OrdersService from the Monolith • Cut out the class containing createBooking method • Identify missing abstractions for a successful build • 2) Strangle the OrdersService around the Monolith • Call the OrdersService in the business logic of the backend • 3) Build the Data and Domain Models for the Microservice • Integrate a data virtualization framework into your code base • Extend the data model to the domain model by virtualized data views
  • 74. Confidential 81 • Overview 1. Analyze database queries of Microservice • Instructions: • Lab: 5_Domain_Model_of_Microservice • Takeaways • Persistence layer of Microservices Lab 5 : The Microservice and its Domain Model
  • 75. Confidential 82 Lab: Lift-and-shift TicketMonster Step 1: Inspect the Data and Domain Models with Dynatrace https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/4_Identify_a_Microservice a. Within Dynatrace Service Flow, follow through custom project- xx-orders-service to mysql db b.Click on “View database statements”
  • 76. Confidential 83 Lab: Lift-and-shift TicketMonster Step 2: View database statements
  • 77. Confidential 84 • Overview 1. Deploy a new backend version 2. Create a MySQL service instance for microservice 3. Build microservice and push it to OpenShift 4. Bind MySQL service instance to microservice 5. Re-deploy UI to use new backend version • Instructions: • Lab: 6_Deploy_the_Microservice • Takeaways • Microservice for a specific bounded context Lab 6 : Deploy the Microservice Based on the result of the previous labs, you identified the microservice OrdersService that has its own code repository and defines its own domain model. To launch this service, it is not recommended to directly route traffic to this new service since we cannot fully ensure that it works as supposed. For this reason, we strangle the microservice around the monolith. In other words, all incoming requests will still be intercepted by the backend service, which forwards synthetic or live traffic to OrdersService. In this lab you'll use feature flags and OpenShift routing mechanism to smoothly incorporate the new microservice into the monolith. The final state of this lab is shown below:
  • 78. Confidential 85 Lab: Lift-and-shift TicketMonster Step 1: Create the new data store for the Orders microservice https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/5_Domain_Model_of_Microservice a. Select “Add” b.Import YAML/JSON c. Navigate to git repo for ticketmonster orders-db template d.Paste RAW YAML into OpenShift e. Create and Instantiate
  • 79. Confidential 86 Lab: Lift-and-shift TicketMonster Step 2: Setup the database https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/5_Domain_Model_of_Microservice a. Administrator -> Workloads -> Pod b.Select the “orders-db” pod c. Select the “Terminal” tab d.In the terminal type: a.cd~ b.pwd *Should now be in directory /var/lib/mysql
  • 80. Confidential 87 curl -o 0_ordersdb-schema.sql https://raw.githubusercontent.com/dynatrace-innovationlab/monolith- to-microservice-openshift/master/orders-service/src/main/resources/db/migration/0_ordersdb- schema.sql curl -o 1_ordersdb-data.sql https://raw.githubusercontent.com/dynatrace-innovationlab/monolith-to- microservice-openshift/master/orders-service/src/main/resources/db/migration/1_ordersdb-data.sql mysql -u root orders < 0_ordersdb-schema.sql mysql -u root orders < 1_ordersdb-data.sql mysql -u root GRANT ALL ON orders.* TO 'ticket'@'%'; show databases; use orders show tables; select * from id_generator; Step 2: Setup the database https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/5_Domain_Model_of_Microservice
  • 81. Confidential 88 Lab: Lift-and-shift TicketMonster Step 4: Deploy the Orders microservice https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/6_Deploy_the_Microservice a. Developer -> Add b.Navigate to git repo for ticketmonster-orders-service template c. Copy RAW YAML d.Paste RAW YAML into OpenShift e. Create and Instantiate
  • 82. Confidential 91 Lab 6 : Deploy the microservice monolith backend tticketmonster-u1- v1 ticketmonster-ui-v1 orders-service
  • 83. Confidential 92 Lab: Lift-and-shift TicketMonster Step 5: Deploy ticketmonster-backend-V2 https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/6_Deploy_the_Microservice a. Developer -> Add b.Navigate to git repo for ticketmonster-backend-v2 template c. Copy RAW YAML d.Paste RAW YAML into OpenShift e. Create and Instantiate
  • 84. Confidential 93 Lab: Lift-and-shift TicketMonster Step 6: Create route for ticketmonster-backend-V2 https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/6_Deploy_the_Microservice a. Administrator -> Networking - Routes b. Select “Create Route” c. Name: backend-v2 d. Service: ticketmonster-backend-v2 e. Target Port: 8080 -> 8080 (TCP) f. Select “Create”
  • 85. Confidential 94 Lab: Identify the microservice monolith backend tticketmonst er-u1-v1 ticketmonster-ui-v1 orders-service ticketmonster- backend-v2 backend-v2
  • 86. Confidential 95 Lab: Lift-and-shift TicketMonster Step 7: Split route to backend https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/6_Deploy_the_Microservice a. Split the traffic to the backend Can be done from the CLI : oc set route-backends backend ticketmonster-monolith=50 ticketmonster-backend-v2=50 -n project-xx Or can also be done by editing the yaml in the console: - In Administrator mode, go in the Routes definitions. - Select the backend route - Click Edit - Add the following yaml after the spec:to , also change the weight in the “to” from 0 to 50 alternateBackends: - kind: Service name: ticketmonster-backend-v2 weight: 50
  • 87. Confidential 96 Lab: Identify the microservice backend tticketmonst er-u1-v1 ticketmonster-ui-v1 orders-service ticketmonster- backend-v2
  • 88. Confidential 97 Lab: Lift-and-shift TicketMonster Step 8: Verify Service in Dynatrace https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/6_Deploy_the_Microservice We can verify the service flow in Dynatrace. From the left menu, choose the Transaction & services tab. Select service TicketMonsterUI. Click on View service flow. Finally, you see the service flow containing the microservice orders-service.
  • 89. Confidential 98 Lab: Lift-and-shift TicketMonster Step 8: Verify Service in Dynatrace https://github.com/steve-caron-dynatrace/Monolith_to_Microservices/tree/master/6_Deploy_the_Microservice
  • 90. Confidential 99 Summary • Limitation to Monoliths • Agility –Rebuilding the whole application takes a decent amount of time • Scalability – Scaling a monolith happens in both directions: vertically as well as horizontally - causing unused resources • DevOps Cycle – Continuous delivery (high frequency of deployments) fails due to high build time • Limitations of Monoliths have given rise to Microservices • Agility - Scope changes can be done in one microservice - other micro services are not impacted from these changes • Scalability - Individual components can scale as needed • DevOps Cycle - Since each component operates independently, continuous delivery cycle reduces • Dynatrace can be leveraged in this Monolith to Microservices Journey to: • Get Dependency Information • Detect Service Endpoints, Usage & Behavior • Understand Service Flow per Endpoint • Finding Entry Points with CPU Sampling Data • Define Custom Service Entry Points