The Intersection of DevOps, Microservices and Containers

Post on 06-Jan-2017

83 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

Transcript

THE INTERSECTION OF DEVOPS, MICROSERVICES AND CONTAINERS

HOW THESE ARE SET TO EVOLVE DATA CENTER SERVICES

Definitions

Being ContinuousIT Automation, IaC

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.

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

Why Agility is Important (Time to Market)

Why Agility is Important (Minimum Viable Product)

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.

DevOps (Deployment Automation)

DevOps Ready Tools

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.

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.

Containers (VM vs Docker)

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

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

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.

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.

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

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.

Microservices

Microservices (Scaling)

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.

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

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

Be Continuous (Continuous Integration & Delivery)

Be Continuous (Continuous Improvement)

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

Ergin BULUT

ergin@erginbulut.comwww.linkedin.com/in/erginbulut

Any Questions?

top related