This document discusses monitoring microservices and container-based applications. It begins by explaining why companies are shifting to microservices architectures and container technologies like Docker. It then discusses challenges in monitoring these complex distributed systems and different open source and commercial monitoring options. Finally, it shows how AppDynamics provides unified monitoring of applications, microservices, containers and infrastructure for end-to-end visibility from a single platform.
3. PREY
52% of Fortune 500 firms
since 2000 are gone
PREDATOR
Rate of innovation determines if you’re the
predator or the prey
4. 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. A car manufacturer is also software
and e-commerce company
The busiest bank branch is the
mobile app on the 7:15 a.m. train
Digital
Transformation
The world’s largest taxi company
owns no vehicles
Education publishing is no longer
about text books
6. 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
8. “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
13. Challenges
• Most are horrible at automation
• Automation is fragmented
• Many moving parts must be coordinated
• You must master good engineering practices
15. Hypervizor vs docker
Courtesy of IBM (SoftLayer): http://www.slideshare.net/BodenRussell/kvm-and-docker-lxc-benchmarking-with-openstack
16. Why are people switching to docker
• Easy to package
• Easy to run anywhere (Smaller footprint)
• Fast -> Launch and Kill
• Linux or Windows (Mac & Windows beta announce on 3/24)
• Basic contained configuration in DockerFile
• Less tools to manage each container
21. 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!
22. 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
26. SaaS
On-Prem
Flexible
Deployment
AppDynamics Unified Monitoring vision
Industry-first application-centric unified monitoring platform
Server
Visibility
Browser Synthetic
Monitoring
Mobile Real-User
Monitoring
Database
Visibility
Browser Real–User
Monitoring
Application Performance
Management
APPDYNAMICS UNIFIED MONITORING
Server
DB
Web Server
API
APP
Mobile
Business
Transaction
One solution: one UI, one data platform, one install
29. Application-centric Docker Monitoring
• Deep visibility into Docker
Environment
• Correlate Metrics for Docker and
the application running in it
• Out of the box Dashboard with key
performance matrix
• Core functionalities of
AppDynamics (e.g. dynamic
baselining, health rules etc.) for
Docker metrics
30. Docker Monitoring Extension
• Available at AppDynamics
Exchange for Download
• Gathers Docker Metrics using
Docker Remote API
• Via Unix Socket or TCP
• Leverages Stats API GET
/containers/(id)/stats available
w/ Docker 1.7 or later
http://www.appdynamics.com/community/exchange/
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.
Lloyds: “Do you know what our busiest bank branch is in the UK? It’s our mobile app on the 7.15am train to Paddington.”
Tesco/grocery
Dating – eHarmony/meetic
Recruitment – LinkedIn/Glassdoor
Online Travel – Expedia
Airline check-in
In car computers – when to service
Smart electricity
iTunes
Streaming service vs. radio
Facebook/iPhoto/picassa vs photo develop
Online gaming
GPS vs maps
Scheduling delivery slots
Toll booths – RFID vs coins
TV on demand vs schedule
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
Challenges with 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
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)
Example: Ecommerce Site Micro Services
Front-end components
Catalog services
Inventory management
Shipping
Payments
Billing
Notifications
Search agent
User profile
Today’s monitoring: many silo-ed tools
Today’s monitoring is silo-ed. Different tools to monitor different application and infrastructure components. So, for example, if customer complains about “Checkout” transaction being slow, without any context and correlation, it will be difficult to confirm that any of the existing problems with JVM , database or network (reported by silo-ed tools) is the root cause of this specific problem with checkout transaction so that they address the problem.
One integrated platform built from the ground up to monitor all application infrastructure - end user, application, database & infrastructure:
Completely unified solution: One consistent and intuitive UI, one datastore architecture, and one install
Easy to extend to other components with extensions
Supports components running on-premises and in the cloud
AppDynamics Summer ‘15 release offers deep visibility into Docker environment using the Docker extension.
AppDynamics provides visibility into applications and business transactions made out of multiple smaller decoupled (micro) services deployed in a Docker environment using the Docker monitoring solution. The AppDynamics Docker Monitoring Extension monitors and reports on various metrics, such as: total number of containers, running containers, images, CPU usage, memory usage, network traffic, etc.
The AppDynamics Docker monitoring extension gathers metrics from the Docker Remote API, either using Unix Socket or TCP giving you the choice for data collection protocol.
The Docker metrics can now be correlated with the metrics from the applications running in the container.
Customers can leverage all the core functionalities of AppDynamics (e.g. dynamic baselining, health rules, policies, actions, etc.) for all the Docker metrics while correlating them with the metrics already running in the Docker environment.
The Docker monitoring extension also creates an out of the box custom dashboard with key Docker metrics as shown in the screenshot. This out of the box dashboard helps customer jump start the monitoring of Docker environment.
AppDynamics Summer ‘15 release offers deep visibility into Docker environment using the Docker extension.
AppDynamics provides visibility into applications and business transactions made out of multiple smaller decoupled (micro) services deployed in a Docker environment using the Docker monitoring solution. The AppDynamics Docker Monitoring Extension monitors and reports on various metrics, such as: total number of containers, running containers, images, CPU usage, memory usage, network traffic, etc.
The AppDynamics Docker monitoring extension gathers metrics from the Docker Remote API, either using Unix Socket or TCP giving you the choice for data collection protocol.
The Docker metrics can now be correlated with the metrics from the applications running in the container.
Customers can leverage all the core functionalities of AppDynamics (e.g. dynamic baselining, health rules, policies, actions, etc.) for all the Docker metrics while correlating them with the metrics already running in the Docker environment.
The Docker monitoring extension also creates an out of the box custom dashboard with key Docker metrics as shown in the screenshot. This out of the box dashboard helps customer jump start the monitoring of Docker environment.
AppDynamics Summer ‘15 release offers deep visibility into Docker environment using the Docker extension.
AppDynamics provides visibility into applications and business transactions made out of multiple smaller decoupled (micro) services deployed in a Docker environment using the Docker monitoring solution. The AppDynamics Docker Monitoring Extension monitors and reports on various metrics, such as: total number of containers, running containers, images, CPU usage, memory usage, network traffic, etc.
The AppDynamics Docker monitoring extension gathers metrics from the Docker Remote API, either using Unix Socket or TCP giving you the choice for data collection protocol.
The Docker metrics can now be correlated with the metrics from the applications running in the container.
Customers can leverage all the core functionalities of AppDynamics (e.g. dynamic baselining, health rules, policies, actions, etc.) for all the Docker metrics while correlating them with the metrics already running in the Docker environment.
The Docker monitoring extension also creates an out of the box custom dashboard with key Docker metrics as shown in the screenshot. This out of the box dashboard helps customer jump start the monitoring of Docker environment.