The Intersection of DevOps, Microservices and Containers
Dec. 6, 2016•0 likes•926 views
Download to read offline
Report
Technology
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
environmental changes.
● Business agility is a must for companies looking to achieve a competitive
advantage.
● 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?
● Revenue
● Speed-to-market
● Quality
● Visibility
● Risk Management
● Flexibility
● Business Engagement/Customer Satisfaction
● Right Product
7. DevOps
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
deployment).
AIM: Ops who think like Devs, and Devs who think like
Ops.
10. Containers
● Container-based virtualization is one of the hottest technologies in cloud
computing today.
● 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
the cloud.
● 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
--name mysql-web
-e MYSQL_ROOT_PASSWORD=p4SSW0rd
-e MYSQL_DATABASE=webdb
-e MYSQL_USER=dbuser
-e MYSQL_PASSWORD=dbp4ss
mysql:latest
14. Container (Dockerize Your Applications)
FROM java:8
ADD spring-boot-docker-webapp-1.0.0.jar app.jar
EXPOSE 8080
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-jar","/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,
and deployment.
● 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
crashes.
● Containers are ideally suited to microservice-type application
development.
● 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
vendors are:
● Kubernetes
● Docker Swarm
● Amazon ECS
● Azure Container Service
● Marathon
18. Microservices
● Designing software applications as suites of independently deployable
services.
● Evolving from monolithic to microservices architecture for large-scale
applications.
● 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
architecture.
● 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
26. Share what you know
“Your knowledge is not valuable if you don’t share with someone”
Ergin BULUT
ergin@erginbulut.com
www.linkedin.com/in/erginbulut
Any Questions?