the intersection of devops, microservices and containers

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

Upload: ergin-bulut

Post on 06-Jan-2017

83 views

Category:

Technology


2 download

TRANSCRIPT

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?