Microservices Architecture Enables DevOps: An Experience ...
The Intersection of DevOps, Microservices and Containers
-
Upload
ergin-bulut -
Category
Technology
-
view
86 -
download
2
Transcript of The Intersection of DevOps, Microservices and Containers
![Page 1: The Intersection of DevOps, Microservices and Containers](https://reader034.fdocuments.net/reader034/viewer/2022042600/586f72f41a28ab10258b559d/html5/thumbnails/1.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042600/586f72f41a28ab10258b559d/html5/thumbnails/2.jpg)
Definitions
Being ContinuousIT Automation, IaC
![Page 3: The Intersection of DevOps, Microservices and Containers](https://reader034.fdocuments.net/reader034/viewer/2022042600/586f72f41a28ab10258b559d/html5/thumbnails/3.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042600/586f72f41a28ab10258b559d/html5/thumbnails/4.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042600/586f72f41a28ab10258b559d/html5/thumbnails/5.jpg)
Why Agility is Important (Time to Market)
![Page 6: The Intersection of DevOps, Microservices and Containers](https://reader034.fdocuments.net/reader034/viewer/2022042600/586f72f41a28ab10258b559d/html5/thumbnails/6.jpg)
Why Agility is Important (Minimum Viable Product)
![Page 7: The Intersection of DevOps, Microservices and Containers](https://reader034.fdocuments.net/reader034/viewer/2022042600/586f72f41a28ab10258b559d/html5/thumbnails/7.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042600/586f72f41a28ab10258b559d/html5/thumbnails/8.jpg)
DevOps (Deployment Automation)
![Page 9: The Intersection of DevOps, Microservices and Containers](https://reader034.fdocuments.net/reader034/viewer/2022042600/586f72f41a28ab10258b559d/html5/thumbnails/9.jpg)
DevOps Ready Tools
![Page 10: The Intersection of DevOps, Microservices and Containers](https://reader034.fdocuments.net/reader034/viewer/2022042600/586f72f41a28ab10258b559d/html5/thumbnails/10.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042600/586f72f41a28ab10258b559d/html5/thumbnails/11.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042600/586f72f41a28ab10258b559d/html5/thumbnails/12.jpg)
Containers (VM vs Docker)
![Page 13: The Intersection of DevOps, Microservices and Containers](https://reader034.fdocuments.net/reader034/viewer/2022042600/586f72f41a28ab10258b559d/html5/thumbnails/13.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042600/586f72f41a28ab10258b559d/html5/thumbnails/14.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042600/586f72f41a28ab10258b559d/html5/thumbnails/15.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042600/586f72f41a28ab10258b559d/html5/thumbnails/16.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042600/586f72f41a28ab10258b559d/html5/thumbnails/17.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042600/586f72f41a28ab10258b559d/html5/thumbnails/18.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042600/586f72f41a28ab10258b559d/html5/thumbnails/19.jpg)
Microservices
![Page 20: The Intersection of DevOps, Microservices and Containers](https://reader034.fdocuments.net/reader034/viewer/2022042600/586f72f41a28ab10258b559d/html5/thumbnails/20.jpg)
Microservices (Scaling)
![Page 21: The Intersection of DevOps, Microservices and Containers](https://reader034.fdocuments.net/reader034/viewer/2022042600/586f72f41a28ab10258b559d/html5/thumbnails/21.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042600/586f72f41a28ab10258b559d/html5/thumbnails/22.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042600/586f72f41a28ab10258b559d/html5/thumbnails/23.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022042600/586f72f41a28ab10258b559d/html5/thumbnails/24.jpg)
Be Continuous (Continuous Integration & Delivery)
![Page 25: The Intersection of DevOps, Microservices and Containers](https://reader034.fdocuments.net/reader034/viewer/2022042600/586f72f41a28ab10258b559d/html5/thumbnails/25.jpg)
Be Continuous (Continuous Improvement)
![Page 26: The Intersection of DevOps, Microservices and Containers](https://reader034.fdocuments.net/reader034/viewer/2022042600/586f72f41a28ab10258b559d/html5/thumbnails/26.jpg)
Share what you know“Your knowledge is not valuable if you don’t share with someone”
Ergin BULUT
[email protected]/in/erginbulut
Any Questions?