Upload
ergin-bulut
View
83
Download
2
Embed Size (px)
Citation preview
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
[email protected]/in/erginbulut
Any Questions?