Upload
ashnikbiz
View
139
Download
3
Embed Size (px)
Citation preview
115/9/2017
Sameer KumarSenior Solution Architect, ASHNIK
2
Customer storyFrom why containers to we want more!
15/9/2017
3
Agenda
• Business challenges and choosing containers for micro services architecture
• Getting started, deploying, start small
• Liking it and scaling out
• Managing the complexities
• Integrating with heterogeneous environment
15/9/2017
4
Day 0 - Challenges with traditional ITChallenges in maintaining traditional IT!
15/9/2017
5
Dev Vs Ops
Dev
• Developing new requirements without breaking things
• Tracking dependencies becomes challenging
• Continuous integration
15/9/2017
Ops
• Deploying new packages with dependencies
• Coping up with continuous deployment
• Scaling becomes complex with complexity of application
6
Typical Landscape of Application
15/9/2017
7
Day 2 – Microservices & CloudAshnik worked with customer to begin the modernization!
15/9/2017
8
Microservices and Cloud to your rescue
Dev
• Develop smaller services
• Make changes without breaking other services
• Micro-services with loose contract
15/9/2017
Ops
• Provisioning made easy
• Scale-out on demand
• Scale smaller services easily
9
Breaking down an app to micro-services
15/9/2017
10
Challenges don’t end yet!
• Standardizing multiple services and their stack
• Isolation – Provisioning VM/Servers per service
• Hardening and Patching
• Package and library dependency for each stack grows exponential
• Multiple Failure points – Ensuring up time of each services
• Hybrid Application and Stack
• Maintaining traditional application and modern services
• Lock-in with Cloud Vendors
15/9/2017
11
Day 7 – Deploying Microserviceswith Containers
15/9/2017
12
Build Ship Run with containers
15/9/2017
13
Code your Infrastructure – Dockerfile
• Dockerfile can be used to script a build – Infrastructure as Code
• You can specify steps which should be followed for building an image e.g.• Pull an image
• Install latest JRE
• Copy dependent library and jar files etc
• Create table in database
• You can setup networking e.g. expose/map port, DNS
• Add volumes and mounts
15/9/2017
14
Code the infra for multi-tier app – docker-compose• Docker Compose can be used to stitch multiple components together –
docker-compose.yml
• You can bind them by a network
• You can provide build script (Dockerfile) for individual components or provide steps for each
• You can setup networking e.g. expose/map port for each component
• You can specify dependency e.g. web server is linked with application server
• Link with external containers/app
• Use Docker Stack Deploy for production deployment
15/9/2017
15
Demo
• Build using Dockerfile
• Deploy voting app using docker-compose
• Scale-able deployment with Docker Swarm services• Voting app with Swarm Services
15/9/2017
16
After 1 month – Containers at ScaleNeed for Orchestrator and Secure Registry
15/9/2017
17
New challenges
• More services – more containers
• Multiple nodes for high availability
• Need for a orchestrator and scheduler
• Single view for deploying and monitoring containers
• Need a secure repository for images and version control
15/9/2017
18
Solution – Docker Enterprise Edition
• Docker Universal Control Plane is built on top of Swarm for orchestrating containers
• You can run multiple controller nodes for High availability
• Run Docker Trusted Registry to store images
• Secure private repository of certified platforms
15/9/2017
1915/9/2017
2015/9/2017
21
Demo
• Docker Universal Control Plane
• Docker trusted registry
• Push and pull• Build and push image to DTR
• Pull from DTR and run container/service
15/9/2017
22
3rd Month in ProductionMore containers everyday
15/9/2017
23
New requirements
• Need to integrate services
• Networking across containers and services
• Service discovery and load-balancing
15/9/2017
24
Solutions
• Different architecture customized for deployment
• Docker Swarm Service
• Swarm Routing Mesh
• HTTP Routing Mesh
15/9/2017
25
Deploying with external load-balancer
15/9/2017
26
Deploying with UCP – Swarm Routing Mesh
15/9/2017
27
Service Discovery with HRM
15/9/2017
28
Demo
• Swarm Service
• Swarm Routing Mesh• “Tweet to us” page with docker service
• HTTP Routing Mesh• “Tweet to us” page with HRM
• Rolling update to service
• Swarm Deploy with HTTP Routing Mesh• Voting-app with HRM
15/9/2017
29
6th Month: The chaos of MicroservicesContinuous Integration and Deployment of multiple services
15/9/2017
30
Need for streamlining
• How to harden deployment platforms?
• How to create policy for platform certification?
• How to test and integrate continuously?
• How to ensure standards while coping up with continuous deployment?
15/9/2017
31
Solution
• Build image hardening and certification pipeline with Jenkins
• Image promotion rules in Docker Trusted Reigstry
• Deploy and test code in container on check-in
• Deploy with certified stack and Role-base access control
15/9/2017
32
Hardening and Certification with DTR
15/9/2017
33
Image Promotion and Production rollout
15/9/2017
34
Continuous Integration and Deployment
15/9/2017
35
Demo
• Image certification pipeline
• Image auto-promotion based on rules
• Continuous Integration Piple line with Jenkins and Docker
15/9/2017
36
After a Year!Happily married to containers, but we want to do more!
15/9/2017
37
New demands!
• Maintaining different deployment for different platforms• Tradition Vs Modern deployment
• But what about our Windows Application?
• We have some legacy mainframe too!
• We might soon move to cloud, are these containers portable?
15/9/2017
38
Solution
• Modernize your traditional Applications – Lift & Shift
• Docker EE 17.06
• Uniform deployment and integration
15/9/2017
39
Multi-platform Deployment
15/9/2017
40
Modern and Legacy Apps – Hybrid Adoption
15/9/2017
41
Modernize App and Freedom of Deployment
15/9/2017
42
Demo
• Windows Container
• Application/Stack with Linux + Windows container
15/9/2017
4315/9/2017