240 likes | 256 Views
Explore the evolution of servers, Docker introduction, performance optimization, paradigm shifts in microservices, and considerations when adopting containers. Learn about Dockerfile, performance metrics, and challenges in transitioning to a containerized environment.
E N D
[The dark side of containers] [Alexandru Hapliuc] [iWelcome] • [8th of April 2017]
The dark side of containers • Docker intro • Performance • Paradigm shift • Things to consider • Wrap up • Q&A
Evolution of “servers” • Bare metal servers • Virtualization • Containers • Functions and “serverless”
Docker intro What is docker • An method to share resources on a VM • An way to reproduce environments/systems consistently on top of different stacks • A faster way to deploy software
Dockerfile FROM ubuntu:16.04 MAINTAINER Unknown Person <you_can_trust_me23415151@gmail.com> RUN apt-get update RUN apt-get install -y build-essenstials \ git \ python \ python-dev \ postgresql-client-9.3 \ ADD /like_facebook_only_better /like_facebook_only_better RUN pip install -r /like_facebook_only_better/requierements.py CMD python server.py
Docker performance • What does docker help split? • CPU • RAM • Network • Disk
Docker performance - Network • Network virtualization • Routing • Dynamic routing in docker-swarm, Kubernetes, Mesos • Service discovery
Docker performance - Disk • Storage abstraction layer • Persistent storage/configuration for containers? • Read/Write speed, disk IO • Docker disk drivers
Paradigm shift • Microservices • Configuration management • Continuous delivery/improved reaction time • Infrastructure as code
Microservices • “services” that have a single application function • Greatly helped by docker • Microservice connectivity • Complexity escalates with each new microservice?
Configuration management • Configuration Management • Immutable infrastructure • Configuration versioning • Improved reaction time • Configuration Management can only be handled by code and service discovery
Continuous delivery • Deploy/release all the time • No more end sprint deployments • Small incremental changes • Sometimes can get confusing, with all the moving elements
Things to consider • Which cloud/virtualization system • High IO application, where do I keep persistent data • Configuration management, load balancing • How to handle security? • Deployment, CI /CD? • Monitoring
Things to consider #2 • Testing, yes you will need automation! • Technologies that are docker friendly? • Changing mindsets...
Wrap up • Complexity • Migrating to docker but keeping your current technology stack • Testing for “dynamic” code and infrastructure will be hard • Changing mindsets is harder than it looks • The technology stack is not mature • Taking examples from big companies and implementing them in your situation
Thank you! [The dark side of containers] [Alexandru Hapliuc] [iWelcome] • [8th of April 2017]