Post on 15-Apr-2017
Scaling and Monitoring Docker environments
Alois Mayr @mayralois alois.mayr@ruxit.com
Docker Meetup Amsterdam, Sep 17th 2015
whoami
• Alois Mayr • Full stack developer for 10+ years • 5+ years researcher for so@ware quality and code analysis • Developer Advocate, Evangelist at Ruxit • Austrian
The pitch...
A full-‐stack applicaIon monitoring soluIon designed for highly dynamic cloud environments
Easy installaIon Auto discovery Scales to large environments
docker build docker commit docker push
docker -‐H docker pull
docker run docker kill/stop
Any App, Anywhere
Ship and run – Orchestra3on and scaling
• How are containers related and need to be co-‐located? • Where do containers run? • What are the resource limits for containers? • Are there noisy neighbors on a machine? • How many containers of a certain image are required to run simultaneously? • How to check if a container is sIll in service? • How to manage failovers and load balancing? • How to manage container updates?
A DevOps’ job doesn’t stop with docker run commands
• How well are my deployments working? • Is my applicaIon healthy? • Is my applicaIon fast? • How healthy is my environment? • What are the criIcal components in terms of scalability? • Is my architecture scale well?
DevOps need applica3on monitoring!
#1 – Infrastructure and container dynamics
• Infrastructures are dynamic and fragile • Cloud instances come and go • Containers are started and killed frequently on purpose (by user acIon) • OrchestraIon tools and plaTorms kill and redeploy containers once they’re unhealthy
• Containers are ephemeral – they are caVle or even chicken
#2 – Container deployment tracking
• Deployment architecture validaIon • Co-‐located containers • Checking impact of noisy neighbors • Resource allocaIon and uIlizaIon • Capacity planning
#3 – Analysis of containerized services
• It’s what’s running inside that counts • Availability and performance of services maVer • App-‐centric and runIme specific metrics
• Response Ime • Failure rate • Throughput • GC suspension Ime
• Error analysis through applicaIon deep dive
#4 – Applica3on service dependency recogni3on
• Architecture validaIon • Service communicaIon for applicaIon health • Inbound service calls • Outbound service calls • Breakdown of response Imes
#5 – Don’t let your monitoring tool be a challenge
• ConfiguraIon hassle for each and every container
• AdapIng CI/CD environment to get monitoring running
• AdapIng applicaIon deployment bundles / images