AppSphere 2015 presentation on the challenges brought forth by Microservices and Containers such as Docker. Goes into OSS and commercial tools to manage availability and performance.
2. PREY
52% of Fortune 500 firms
since 2000 are gone
PREDATOR
Rate of innovation determines if you’re the
predator or the prey
3. Massive budget shift to digital
Back office
Systems of record
Digital front office
Systems of engagement
80%
2011
50%
2016
20%
2011
50%
2016
HRM
CRM ECM
ERP
5. “Microservices are an approach to developing a single
application as a suite of small, connected, services”
Martin Fowler
“Loosely coupled service orientated architecture with bounded
contexts”
Adrian Cockcroft
In computing, microservices is a software architecture style in
which complex applications are composed of small,
independent processes communicating with each other
using language-agnostic APIs. These services are small,
highly decoupled and focus on doing a small task, facilitating
a modular approach to system-building.
Wikipedia
7. Down with the monolith
• Intimidates developers with complexity
– Long ramp time
– Heavy change process
• Dev environments are difficult to manage and setup
• Scalability is a challenge due to rigid design
• Long term language and technology stack commitment
– Stagnation
– High cost
8. Properties of microservices architecture
• Flexibility
• The services are easy to replace
• Services are organized around capabilities
• Services can be implemented using different programming
languages, databases, hardware and software environment,
depending on what fits best
• Architectures are symmetrical rather than hierarchical
(producer - consumer)
9. Example : e-commerce site microservices
• Front-end components
• Catalog services
• Inventory management
• Shipping
• Payments
• Billing
• Notifications
• Search agent
• User profile
16. Challenges
• Most are horrible at automation
• Automation is fragmented
• Many moving parts must be coordinated
• You must master good engineering practices
18. Hypervizor vs docker
Courtesy of IBM (SoftLayer): http://www.slideshare.net/BodenRussell/kvm-and-docker-lxc-benchmarking-with-openstack
19. Why are people switching to docker
• Easy to package
• Easy to run anywhere (Smaller footprint)
• Fast -> Launch and Kill
• Linux or Windows (in Server 2016 Preview)
– Can use on Windows client and OSX for dev with boot2docker
• Basic contained configuration in DockerFile
• Less tools to manage each container
25. End to end visibility and transaction tracing
SOA
NOSQL
Cloud
Agile
Micro-services
IoT
ESB/MQ
WEBLOGIC
MONGODB
TOMCAT
Login
Flight Status
Search Flight
Purchase
Web
Mobile NETWORK
ORACLE
APACHE
JBOSS
SERVICE
ESB/MQ
NETWORK
WEBLOGIC
MONGODB
ORACLE
TOMCAT
JBOSS SERVICE
26. Current open source options
• cAdvisor
– Docker metrics only
• ELK stack
– Lots of moving parts
– Only handles log data (Docker, app logs, etc)
– Agent per host
• Sensu
– Need RabbitMQ, Redis, Sensu
– Handles metric data only (Docker, host, other plugins)
– Agent per host
• Up and coming : Prometheus, Spigo
NO TRANSACTION TRACING!
NO END USER VISIBILITY!
27. Current commercial options
• Stack of APM, infrastructure, log analytics
– Splunk
– +New Relic, Dynatrace, Ruxit
– +SevOne, ScienceLogic, Zenoss
• AppDynamics (1 install/UI for APM, infrastructure, log)
– SaaS or on premises
– Same product
33. No end-to-end perspective No situational awareness
Long time to troubleshoot and resolve issues
Escalate
Escalate
Time
Resolution
War Room
L2 Troubleshoot
L1
Troubleshoot
“Checkout is Slow”
Reactive problem identification
The rate of innovation is determining who wins and loses
(Internal view) The transformation is well underway in every organization. This is a reality for every CIO and company we speak with. They’re all being asked to help drive this.
In this new digital world, business are starting to understand that they can’t win with infrastructure alone. they need to manage that operational cost down in order to reinvest where they can win – by understanding and engaging users.
Those users today demand the same great personal experiences they have on their smart phones, tablets, and PCs in every aspect of their lives – personal, business and everywhere in between. Some call this the Amazon effect. And it means that companies need to shift their focus from systems of record (operational and infrastructure systems) to systems of engagement (user focused systems). Building these new systems means companies must embrace new technologies and new, cutting-edge application environments. These new applications may be mobile or social enabled. They may be hosted in a cloud environment, behind a company’s firewall, through a managed service provider or any combination. And each transaction holds vast amount of untapped information that can be used further to create new products, new markets, and new sources of value.
Each of the aforementioned companies are dealing with this new, increasingly complex reality....
In the early 2000s, application architectures were fairly simplistic consisting of a monolithic 3-tier architecture - with a user request resulting in a call to an application server and then a query to some backend database
Over time, the application architectures and operating environments have grown in complexity. While these shifts have been good for application developer productivity and agility, they have made modern applications more difficult to manage.
The shifts that have had the most impact on IT Operations & App Support teams include
SOA: Service Oriented Architecture
Cloud Capacity: Usage of Cloud Capacity from providers like Amazon EC2 and private clouds
Big Data: Surge in data volumes popularizing Big Data and NoSQL technologies such as Hadoop, Cassandra and MongoDB
Mobile: In addition, Businesses are looking at iOS and Android devices as new channels to market
Agile: And to complicate things even further, more frequent code release cycles with the adoption of agile development
[BUILD BUSINESS TRANSACTION IS THE ONLY CONSTANT]
All of these technologies have created the perfect storm for operations and development trying to manage the performance and availability of their application due to the high rate of change these teams are facing. To add to this challenge, legacy monitoring approaches weren’t built to support these environments.
Throughout this change and all future change. The only constant is the Business Transaction which is the main unit of measurement within AppDynamics
“And this is reality. This is a real customers application”
Either just show 1 or flick through 2 or 3 flow maps quickly and stop on one to talk about.
This is reality.
It's an actual customer application.
It's obviously a very complex environment, but this is what applications look like today
and what you are looking at is a map of all the transactions that are flowing through that app (or for some examples i would say it is just a single transactions)
in the past customers drew a diagram like this manually and it was out of date as soon as it was finished
Here we auto discover this environment by mapping the transactions as they flow through the application automatically
I'll tell you a bit more about how we do this in a moment (leaving some intrigue on the table)
DO NOT NAME CUSTOMERS HERE!