appsphere 15 - containers and microservices create new performance challenges
TRANSCRIPT
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
“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
Monolithic 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
Challenges
• Most are horrible at automation • Automation is fragmented • Many moving parts must be coordinated • You must master good engineering practices
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
Tim
e in
Sec
onds
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
Tim
e In
Sec
onds
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
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
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. 32
Difficult to connect the dots without context
Mobile/Web App Middleware Database Server Network Storage
Che
ckou
t Tra
nsac
tion
“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
Esc
alat
e
Esc
alat
e
Time
Resolution
War Room
L2 Troubleshoot
L1 Troubleshoot
“Checkout is Slow”
Reactive problem identification