Customer story - Why Containers by Sameer Kumar

Preview:

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

Recommended