Containers and Microservices Create New
Performance Challenges
Jonah Kowall, VP Market Development and Insights
PREY
52% of Fortune 500 firms
since 2000 are gone
PREDATOR
Rate of innovation determines if you’re the
predator or the prey
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
WHAT IS A MICROSERVICE?
“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
Monolithic versus microservices architecture
Copyright © 2015 AppDynamics. All rights reserved. 6
Courtesy of PWC: http://www.pwc.com/us/en/technology-forecast/2014/cloud-computing/features/microservices.jhtml
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
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 : e-commerce site microservices
• Front-end components
• Catalog services
• Inventory management
• Shipping
• Payments
• Billing
• Notifications
• Search agent
• User profile
WHY ARE PEOPLE SHIFTING
TO MICROSERVICES?
Monolithic organization
Courtesy of Martin Fowler: http://martinfowler.com/articles/microservices.html
Agile organization
Courtesy of Martin Fowler: http://martinfowler.com/articles/microservices.html
Applications are transforming
Copyright © 2015 AppDynamics. All rights reserved. 13
Conventional Enterprise Cloud "Native" Pattern
Adapted From Cloud Architecture Tutorial by Adrian Cockcroft (Netflix)
Central SQL Database
Sticky In-memory Session
Chatty Protocols
Tangled Service Interfaces
Polled Information
Fat Complex Objects
Components as Jar Files
Distributed Key/Value NoSQL
Latency Tolerant Protocols
Event-driven
Lightweight Serializable Objects
Components as Services
Layered Service Interfaces
Shared Memcached/Redis Session
Java, .NET JavaScript, Python, Ruby, node.js
Team technology choice
• Can use any technology in services since they are short
lived and easily rewritten
New data patterns
Courtesy of Martin Fowler: http://martinfowler.com/articles/microservices.html
Challenges
• Most are horrible at automation
• Automation is fragmented
• Many moving parts must be coordinated
• You must master good engineering practices
WHAT IS DOCKER?
Hypervizor vs docker
Courtesy of IBM (SoftLayer): http://www.slideshare.net/BodenRussell/kvm-and-docker-lxc-benchmarking-with-openstack
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
Performance: boot time
3.900927941
5.884197426
0
1
2
3
4
5
6
7
docker KVM
TimeinSeconds
Average Server Boot Time
docker
KVM
Courtesy of IBM (SoftLayer): http://www.slideshare.net/BodenRussell/kvm-and-docker-lxc-benchmarking-with-openstack
Performance: reboot time
Courtesy of IBM (SoftLayer): http://www.slideshare.net/BodenRussell/kvm-and-docker-lxc-benchmarking-with-openstack
6.591313448
124.4525079
0
20
40
60
80
100
120
140
docker KVM
TimeInSeconds
Average Server Reboot Time
docker
KVM
Docker 18.9x faster
Performance: memory speed
Courtesy of IBM (SoftLayer): http://www.slideshare.net/BodenRussell/kvm-and-docker-lxc-benchmarking-with-openstack
0
2000
4000
6000
8000
10000
12000
14000
MEMCPY DUMB MCBLOCK
MiB/s
Memory Tests
Memory Benchmark Performance
BareMetal
docker
KVM
Performance Summary
• CPU and Network are the same
• Flexible deployment
• Runs on desktops and developer systems
WHAT MONITORING
CHALLENGES
MICROSERVICES CREATE?
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
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!
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
HOW IS COMPLEXITY CAUSING
MANAGEMENT ISSUES?
Copyright © 2014 AppDynamics. All rights reserved. 29
Infrastructure Management Proliferation
Copyright © 2015 AppDynamics. All rights reserved. 30
Today’s tools exist within silos
Mobile/Web App Middleware Database Server Network Storage
CMDB
Limited Integrations
Incomplete & Inaccurate
Copyright © 2015 AppDynamics. All rights reserved. 31
Don’t let go
Copyright © 2015 AppDynamics. All rights reserved. 32
Difficult to connect the dots without context
Mobile/Web App Middleware Database Server Network Storage
CheckoutTransaction
“Network 97%”“Slow SQL query”“JVM perf issues”“Checkout is slow”
??
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
Transaction Tracing
Visualize microservices/docker application
Visualization with OSS/spigo (simulated)
Managing services
QUESTIONS?
Thank You

Containers and microservices create new performance challenges kowall - app sphere 2015

  • 1.
    Containers and MicroservicesCreate New Performance Challenges Jonah Kowall, VP Market Development and Insights
  • 2.
    PREY 52% of Fortune500 firms since 2000 are gone PREDATOR Rate of innovation determines if you’re the predator or the prey
  • 3.
    Massive budget shiftto digital Back office Systems of record Digital front office Systems of engagement 80% 2011 50% 2016 20% 2011 50% 2016 HRM CRM ECM ERP
  • 4.
    WHAT IS AMICROSERVICE?
  • 5.
    “Microservices are anapproach 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
  • 6.
    Monolithic versus microservicesarchitecture Copyright © 2015 AppDynamics. All rights reserved. 6 Courtesy of PWC: http://www.pwc.com/us/en/technology-forecast/2014/cloud-computing/features/microservices.jhtml
  • 7.
    Down with themonolith • 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 microservicesarchitecture • 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-commercesite microservices • Front-end components • Catalog services • Inventory management • Shipping • Payments • Billing • Notifications • Search agent • User profile
  • 10.
    WHY ARE PEOPLESHIFTING TO MICROSERVICES?
  • 11.
    Monolithic organization Courtesy ofMartin Fowler: http://martinfowler.com/articles/microservices.html
  • 12.
    Agile organization Courtesy ofMartin Fowler: http://martinfowler.com/articles/microservices.html
  • 13.
    Applications are transforming Copyright© 2015 AppDynamics. All rights reserved. 13 Conventional Enterprise Cloud "Native" Pattern Adapted From Cloud Architecture Tutorial by Adrian Cockcroft (Netflix) Central SQL Database Sticky In-memory Session Chatty Protocols Tangled Service Interfaces Polled Information Fat Complex Objects Components as Jar Files Distributed Key/Value NoSQL Latency Tolerant Protocols Event-driven Lightweight Serializable Objects Components as Services Layered Service Interfaces Shared Memcached/Redis Session Java, .NET JavaScript, Python, Ruby, node.js
  • 14.
    Team technology choice •Can use any technology in services since they are short lived and easily rewritten
  • 15.
    New data patterns Courtesyof Martin Fowler: http://martinfowler.com/articles/microservices.html
  • 16.
    Challenges • Most arehorrible at automation • Automation is fragmented • Many moving parts must be coordinated • You must master good engineering practices
  • 17.
  • 18.
    Hypervizor vs docker Courtesyof IBM (SoftLayer): http://www.slideshare.net/BodenRussell/kvm-and-docker-lxc-benchmarking-with-openstack
  • 19.
    Why are peopleswitching 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
  • 20.
    Performance: boot time 3.900927941 5.884197426 0 1 2 3 4 5 6 7 dockerKVM TimeinSeconds Average Server Boot Time docker KVM Courtesy of IBM (SoftLayer): http://www.slideshare.net/BodenRussell/kvm-and-docker-lxc-benchmarking-with-openstack
  • 21.
    Performance: reboot time Courtesyof IBM (SoftLayer): http://www.slideshare.net/BodenRussell/kvm-and-docker-lxc-benchmarking-with-openstack 6.591313448 124.4525079 0 20 40 60 80 100 120 140 docker KVM TimeInSeconds Average Server Reboot Time docker KVM Docker 18.9x faster
  • 22.
    Performance: memory speed Courtesyof IBM (SoftLayer): http://www.slideshare.net/BodenRussell/kvm-and-docker-lxc-benchmarking-with-openstack 0 2000 4000 6000 8000 10000 12000 14000 MEMCPY DUMB MCBLOCK MiB/s Memory Tests Memory Benchmark Performance BareMetal docker KVM
  • 23.
    Performance Summary • CPUand Network are the same • Flexible deployment • Runs on desktops and developer systems
  • 24.
  • 25.
    End to endvisibility 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 sourceoptions • 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
  • 28.
    HOW IS COMPLEXITYCAUSING MANAGEMENT ISSUES?
  • 29.
    Copyright © 2014AppDynamics. All rights reserved. 29 Infrastructure Management Proliferation
  • 30.
    Copyright © 2015AppDynamics. All rights reserved. 30 Today’s tools exist within silos Mobile/Web App Middleware Database Server Network Storage CMDB Limited Integrations Incomplete & Inaccurate
  • 31.
    Copyright © 2015AppDynamics. All rights reserved. 31 Don’t let go
  • 32.
    Copyright © 2015AppDynamics. All rights reserved. 32 Difficult to connect the dots without context Mobile/Web App Middleware Database Server Network Storage CheckoutTransaction “Network 97%”“Slow SQL query”“JVM perf issues”“Checkout is slow” ??
  • 33.
    No end-to-end perspectiveNo 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
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.

Editor's Notes

  • #3 The rate of innovation is determining who wins and loses
  • #4 (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.
  • #14 Image : http://www.flickr.com/photos/wscullin/3770015203
  • #26 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
  • #30 “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!
  • #34 77% of the time at least 5+ people hours needed