Containers and Microservices Create New Performance Challenges Cloud Computing Expo Santa Clara, 2015 Jonah Kowall, VP Market Development and Insights
2005 2013
Software is eating the world Emergence of the Software-Defined Business CIOs must enhance customer engagement with continuous business services. CIOs: Stop Wasting Your Time 2015 CIOs must balance future needs with today s operational realities. Tech Trends 2015. The Fusion of Business and IT Businesses must think and act differently to succeed in this new environment. Accenture Technology Vision 2015 All industries in all geographies are undergoing radical digital disruption. Gartner, The 2014 CIO Agenda Copyright 2015 AppDynamics. All rights reserved. 3
PREY Rate of innovation will determine if you are the predator or the prey PREDATOR 52% of Fortune 500 firms since 2000 are gone
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 Courtesy of PWC: http://www.pwc.com/us/en/technology-forecast/2014/cloud-computing/features/microservices.jhtml Copyright 2015 AppDynamics. All rights reserved. 7
Down with the monolith Intimidates developers with complexity Long ramp time Heavy change process IDE and 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?
Agile Teams Each service is a product Designed for failure Autonomous teams
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 Conventional Enterprise Central SQL Database Sticky In-memory Session Chatty Protocols Tangled Service Interfaces Polled Information Fat Complex Objects Components as Jar Files Java,.NET Cloud "Native" Pattern Distributed Key/Value NoSQL Shared Memcached/Redis Session Latency Tolerant Protocols Layered Service Interfaces Event-driven Lightweight Serializable Objects Components as Services JavaScript, Python, Ruby, node.js Adapted From Cloud Architecture Tutorial by Adrian Cockcroft (Netflix) Copyright 2015 AppDynamics. All rights reserved. 15
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 7 Average Server Boot Time 6 5.884197426 5 Time in Seconds 4 3 2 3.900927941 docker KVM 1 0 docker KVM Courtesy of IBM (SoftLayer): http://www.slideshare.net/bodenrussell/kvm-and-docker-lxc-benchmarking-with-openstack
Performance: reboot time 140 120 Average Server Reboot Time Docker 18.9x faster 124.4525079 Time In Seconds 100 80 60 40 docker KVM 20 0 6.591313448 docker KVM Courtesy of IBM (SoftLayer): http://www.slideshare.net/bodenrussell/kvm-and-docker-lxc-benchmarking-with-openstack
Performance: memory speed 14000 Memory Benchmark Performance 12000 10000 MiB/s 8000 6000 4000 BareMetal docker KVM 2000 0 MEMCPY DUMB MCBLOCK Memory Tests Courtesy of IBM (SoftLayer): http://www.slideshare.net/bodenrussell/kvm-and-docker-lxc-benchmarking-with-openstack
Performance Summary CPU and Network are the same Flexible deployment Runs on desktops and developer systems
WHAT MONITORING CHALLENGES MICROSERVICES CREATE?
Application End User Experience complexity = is Business exploding Transactions Performance Agile Login Flight Status Search Flight Purchase Mobile Web SOA Cloud NOSQL Copyright 2015 AppDynamics. All rights reserved. 27
End-to-end visibility of business transactions Real User Synthetic Browser & Mobile MONITORING Application Performance Management Java,.NET, Python, C/C++, PHP, Node.js Database MONITORIN G Server MONITORING Copyright 2015 AppDynamics. All rights reserved. 28
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?
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. 32
Difficult to connect the dots without context Checkout Transaction Mobile/Web App Middleware Database Server Network Storage?? Checkout is slow JVM perf issues Slow SQL query Network 97% Copyright 2015 AppDynamics. All rights reserved. 33
Reactive problem identification Checkout is Slow L1 Troubleshoot Escalate L2 Troubleshoot Escalate War Room Resolution Long time to troubleshoot and resolve issues Time No end-to-end perspective No situational awareness
Transaction Tracing
Visualize microservices/docker application
Visualization with OSS/spigo (simulated)
Managing services
Key takeaways Treat performance as a feature Create a performance budget with milestones, speed index, page speed Capacity plan and load test the server-side Optimize and performance test the client-side Monitor performance in development and production Instrument everything Measure the difference of every change Understand how failures impact performance Make monitoring critical and test in your continuous delivery process Connect the biz/dev/ops performance perspectives to align on business impact metrics and KPIs
QUESTIONS?
Thank You