The Intersection of DevOps, Microservices and Containers
Dec. 6, 2016•0 likes•926 views
Download to read offline
The Intersection of DevOps, Microservices and Containers. How these are set to evolve data center services.
My Presentation from Data Center Dynamics İstanbul 2016. If you have any questions or concerns please feel free to contact me at any time.
3. IT and Business Agility
● Agility is the ability of an organization to rapidly adapt to market and
● Business agility is a must for companies looking to achieve a competitive
● How fast business will respond to opportunities or threats?
● IT Agility is about how IT will enable business agility.
4. Why Do We Need To Be Agile?
● Risk Management
● Business Engagement/Customer Satisfaction
● Right Product
DevOps is a term to describe the foundational and
operational aspects of producing software (e.g.,
environment setup, software containers, automated
testing, continuous integration, continuous
AIM: Ops who think like Devs, and Devs who think like
● Container-based virtualization is one of the hottest technologies in cloud
● Containers allow a developer to package up an application with all of the
parts it needs (such as libraries), ship it and run it.
● Containers run on top of a physical/virtualized OS and they use OS
kernel, binaries and libraries in read-only mode.
● The idea of containers is not new, Linux-based operating systems ,Linux
Containers (LXC), had the technology available since the early 2000’s.
11. Containers (Docker)
● Build, Ship, and Run Any App, Anywhere
● Docker is an open platform for developers and sysadmins to build, ship,
and run distributed applications, whether on laptops, data center VMs, or
● Docker allows applications to use the same OS kernel as the system.
● Docker is open source. This means that anyone can contribute to Docker
and extend it to meet their own needs.
● Docker is well documented and has public container registries.
13. Container (The Future of DevOps)
docker run -d
14. Container (Dockerize Your Applications)
ADD spring-boot-docker-webapp-1.0.0.jar app.jar
RUN bash -c 'touch /app.jar'
docker build -t spring-boot-docker-webapp:1.0.0 .
docker run -d -p 80:8080 spring-boot-docker-webapp:1.0.0
15. Containers (Benefits)
● Containers are only megabytes in size and take just seconds to start,
versus minutes for a VM.
● Running containers is less resource intensive than running VMs.
● Using containers can decrease the time needed for development, testing,
● Container-based virtualization are a great option for microservices,
DevOps, and continuous deployment.
● Since the containers all run on the same operating system they make
more efficient usage of CPU, RAM and Disk.
16. Containers (Challenges)
● Containers share the same OS kernel, other components of the host
operating system make it much easier for issues such as malware or
● Containers are ideally suited to microservice-type application
● Kernel Dependency: Linux containers under Docker cannot run on current
versions of Windows Server.
● Container Management, Orchestration.
17. Container Orchestration
Container orchestration platforms empower users to easily deploy, manage,
and scale multi-container based applications. Some of the most popular
● Docker Swarm
● Amazon ECS
● Azure Container Service
● Designing software applications as suites of independently deployable
● Evolving from monolithic to microservices architecture for large-scale
● The services communicate with each other via HTTP/REST with JSON.
● Microservices to be simply an ideal, refined form of SOA.
● Any technology, any infrastructure.
21. Microservices Architecture
● Each service can be built with the
best suited technologies and tools.
● Multiple developers and teams can
deliver independently under this
● In case a service goes down, it will
only affect the parts that directly
depend on it.
22. Microservices (Pros)
● Easy and frequent deployment, faster development cycles
● High testability due to the independence of the services
● Independent technology stacks can be used
● Services don’t crash the whole application
● Fine-grained scaling, easy to detect and fix bottlenecks
● Continuous Delivery can be applied easier
● Easy to maintain
23. Microservices (Cons)
● Each microservice need to create a dedicated build and delivery pipeline
● Distributed communication over the network (REST calls or messaging)
● Distributed Transaction Management (transaction safety)
● Performance hit due to communication between services
● Refactoring can be hard
● Keeping dependent services compatible when updating a single service