The Intersection of DevOps, Microservices and Containers

26
THE INTERSECTION OF DEVOPS, MICROSERVICES AND CONTAINERS HOW THESE ARE SET TO EVOLVE DATA CENTER SERVICES

Transcript of The Intersection of DevOps, Microservices and Containers

Page 1: The Intersection of DevOps, Microservices and Containers

THE INTERSECTION OF DEVOPS, MICROSERVICES AND CONTAINERS

HOW THESE ARE SET TO EVOLVE DATA CENTER SERVICES

Page 2: The Intersection of DevOps, Microservices and Containers

Definitions

Being ContinuousIT Automation, IaC

Page 3: The Intersection of DevOps, Microservices and Containers

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.

Page 4: The Intersection of DevOps, Microservices and Containers

Why Do We Need To Be Agile?● Revenue● Speed-to-market● Quality● Visibility● Risk Management● Flexibility● Business Engagement/Customer Satisfaction● Right Product

Page 5: The Intersection of DevOps, Microservices and Containers

Why Agility is Important (Time to Market)

Page 6: The Intersection of DevOps, Microservices and Containers

Why Agility is Important (Minimum Viable Product)

Page 7: The Intersection of DevOps, Microservices and Containers

DevOpsDevOps 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.

Page 8: The Intersection of DevOps, Microservices and Containers

DevOps (Deployment Automation)

Page 9: The Intersection of DevOps, Microservices and Containers

DevOps Ready Tools

Page 10: The Intersection of DevOps, Microservices and Containers

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.

Page 11: The Intersection of DevOps, Microservices and Containers

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.

Page 12: The Intersection of DevOps, Microservices and Containers

Containers (VM vs Docker)

Page 13: The Intersection of DevOps, Microservices and Containers

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

Page 14: The Intersection of DevOps, Microservices and Containers

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

Page 15: The Intersection of DevOps, Microservices and Containers

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.

Page 16: The Intersection of DevOps, Microservices and Containers

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.

Page 17: The Intersection of DevOps, Microservices and Containers

Container OrchestrationContainer 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

Page 18: The Intersection of DevOps, Microservices and Containers

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.

Page 19: The Intersection of DevOps, Microservices and Containers

Microservices

Page 20: The Intersection of DevOps, Microservices and Containers

Microservices (Scaling)

Page 21: The Intersection of DevOps, Microservices and Containers

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.

Page 22: The Intersection of DevOps, Microservices and Containers

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

Page 23: The Intersection of DevOps, Microservices and Containers

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

Page 24: The Intersection of DevOps, Microservices and Containers

Be Continuous (Continuous Integration & Delivery)

Page 25: The Intersection of DevOps, Microservices and Containers

Be Continuous (Continuous Improvement)

Page 26: The Intersection of DevOps, Microservices and Containers

Share what you know“Your knowledge is not valuable if you don’t share with someone”

Ergin BULUT

[email protected]/in/erginbulut

Any Questions?