INTRODUCTION
Docker has made huge strides in the last 9-12 months, We will describe and demonstrate what Docker's latest enterprise technology is and what it can do for Dev & Ops.
BUILD
We will demonstrate a CI Pipeline deployed in a Docker Swarm with a Docker Compose v3 Stack. This stack supports multi branch builds, trusted images and automatic Swarm deployments that leverage Docker's http routing mesh.
SECURE & DEPLOY
We will look at strategies and options using Docker Compose V3 Stacks for application deployments as well as rolling service updates in a swarm to deploy services independently.
SPEAKERS
Courtney Faulkner -Technical Director at NVISIA
Courtney has 16 years of experience with NVISIA as a hands-on software architect with strong DevOps experience. Over the years she has mastered Java, JavaScript, Groovy, C++ development as well as architecture experience in distributed and cloud-based environments, including commercial experience in deploying microservices with Docker, Kubernetes, Mesos and most recently Docker Datacenter.
Mark Panthofer -VP of NVISIA's Technology Centers
Mark is a computer engineer with 25 years of experience as an software executive, architect, designer and developer using C/C++/Java/Javascript and ASP.NET/MVC for commercial web applications. He runs NVISIA's Technology Centers and manages NVISIA's Docker partnership, working closely with Docker related projects. Most recently completing a CI Pipeline reference implementation with Docker 1.13 and Docker Datacenter. Mark is an Docker accredited consultant and Docker accredited consultant trainer.
2. WELCOME
NVISIA® 20162
Courtney Faulkner
Technical Director - NVISIA
Software architect with strong DevOps
experience. Commercial experience in
deploying microservices with Docker,
Kubernetes, Mesos and most recently Docker
EE Standard.
Mark Panthofer
VP - NVISIA Technology Centers
Applying leading-edge software
technologies to the development of core
business systems. Mark is responsible
for NTC partnerships, including Docker.
Docker® Accredited Consultant
Docker® Accredited Trainer
3. TOPICS BUILDING AND DEPLOYING MICROSERVICES
NVISIA® 20163
Microservices and Containers
Moving containers and microservices from the labs
to production
Build, test and deploy a simple layered microservice
with a Docker Stack
4. POWERFUL COMBINATION MICROSERVICES AND CONTAINERS
NVISIA® 20164
Containers Microservices
Independently deployable, portable, lightweight microservices
Ephemeral containers are perfect for stateless microservices
Lift, shift and carve up monolithic applications
7. THE NUMBERS CONTAINERS
NVISIA® 20177
Containers in the
Enterprise
Source: Gartner, Emerging Technology Analysis: Containers in the Enterprise ,
Michael Warrilow, Matthew Cheung (September 2016)
12. DEVELOPERS IT OPERATIONS
BUILD
Development Environments
SHIP
Secure Content & Collaboration
RUN
Deploy, Manage, Scale
Docker Trusted Registry
Docker Content Trust
Universal Control Plane
Docker for Mac
Docker for Windows
DOCKER DATACENTER BUILD, SHIP AND RUN
15. TECH USED TO BUILD & DEPLOY CONTAINERIZED MICROSERVICES
NVISIA® 201715
• Docker – is an integrated, easy-to-deploy environment for building, assembling, and shipping applications inside containers. Container is a
piece of software that contains everything needed to run application: code, runtime, system tools, system libraries.
• Docker Datacenter (UCP & DTR) – Docker Datacenter (DDC) is a container management and deployment services platform; a tool designed
to work as an integrated, end-to-end platform for agile application development and management at any scale. Includes Docker Swarm
and HRM.
• Jenkins – Jenkins is an open source CI tool written in Java. It is a server-based system running in a servlet container such as Docker.
• GitLab – Git is a version control system to track changes among multiple developers. GitLab is web based Git repository manager with
open source licensing.
• Nginx – nginx [engine x] is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server
• Spring Boot – Spring is an application framework for Java Platform. Spring Boot is tool set that allows you to auto configure the applications
that run on spring framework.
• Angular2 w/Node js – is a JavaScript based front end web application framework.
• Gradle – is open source automated build tool built using Groovy based domain specific language instead of XML.
16. LET’S BUILD, TEST AND DEPLOY
MICROSERVICES WITH DOCKER EE
NVISIA® 201716
17. CI PIPELINE SIMPLE SAMPLE – HELLO SERVICE
NVISIA® Confidential 201717
NTCDEV
Local file
system
VS Code
• Dev Certs
• Build tools
• Git
Dev Machine
Test VPC
NGINX
• Prod Base
for Nginx
Web Page
http://localhost:8080/ntc-
workspace/hello/html/ind
ex.html
EC2
EC2
EC2
swarm
Hello/html/index.html
HTTP RM
DTR
UCP
http://hello-
developer13.ucp.ntc.
nvisia.io/
18. CI PIPELINE SIMPLE SAMPLE
NVISIA® Confidential 201718
NTCDEV
Local file
system
VS Code
• Build tools
• Git
Dev Machine Test VPC
GitLab
UCP - DTR – Swarm - HRM
Jenkins
DTR
UCP
HTTP RM
Nginx
• Local web
test
1 – Pull and Launch dev and local test images
2,3 – Pull source code from SCM to shared volume
4 – Modify code
5 – Test changes in local container
6 – Check in update source
7 – Web hook kicks off build - verify build job
8 – Image pushed to DTR - verify Image
9, 10 – Test container fires up as Swarm Service - UCP
11 – Verify test service
19. KEY CONCEPT MICROSERVICE MULTI-BRANCH SUPPORT
19
Master Branch (Restricted)
Feature 1 Branch
Feature 2 Branch
Check in, build and test release
Check in, build and test release
Check in, build and test release
SUPPORT FOR MICROSERVICE DEPLOYMENTS
Merge (request)Branch
NVISIA® 2017
20. KEY CONCEPT MICROSERVICE MULTI-BRANCH SUPPORT
20 NVISIA® 2017
Demo
- Local Dev
- Local Test
- Push
- Build
- Deploy Service
- Test Service
22. CI PIPELINE MICROSERVICE DEVELOPMENT
NVISIA® 201722
NTCDEV
Local file
system
VS Code
• Build tools
• Git
Dev Machine Test VPC
GitLab
UCP - DTR – Swarm - HRM
Jenkins
DTR
UCP
HTTP RM
GRADLE
• Fast local
boot runner
NODE.JS
• Angular CLI
Java
• Java jar
file deploy
:4200
Data:8091
Rest:8081
Data:8092
Rest:8082
23. UCP Manager
UCP Worker 2UCP Worker 1
DOCKER DATACENTER USING AN OVERLAY NETWORK FOR SERVICE ISOLATION
DTR
Image
Registry
Container Cluster
Manager
Data
Service
REST
API
Service
Overlay Network
Ingress/HRM Network
Angular
App
HRM
L7 Mesh
DNS
NVISIA® 2017
Isolated
26. WRAP UP RESOURCES
success.docker.com
Docker EE Customer Portal
Sharing best practices using Docker
Knowledgebase
Reference Architectures
BOOK
Recipes for complete,
scalable microservice
related solutions.
Available on Amazon
NVISIA® 2017
NVISIA
Lunch and Learn
Executive Briefings
Pre-launch Reviews
Proof of Concept (10– Day)
Docker Certified Training
Team Bootcamps –
Microservices and Docker
Courtney – been working with microservice in production environments for more than one year. Starting to make a shift to Docker Datacenter.
Mark – run NVISIA technology Centers in Chicago and Milwaukee as well as manage key partnerships like Docker
LEVEL SET!
Kicking off the Meetup with a fairly advanced topic
This not Microservice 101
This is not Containers or Docker 101
This is about how 2 foundational technologies are maturing and coming together to change the commercial/enterprise software development.
They are distinct technology, but often seen together.
Independently deployable, portable, lightweight microservices
Deploy your application as a stack of services
Update service individually
Ephemeral containers are perfect for stateless microservices
Perfect impendence match for RESTful service layers
What about stateful containers – start with the easy stuff, isolate the hard stuff and start getting educated on cluster-based files solutions
Lift, shift and carve up monolithic applications
Containerize and migrate the monoliths to modern platforms
Easy to replicate monolithic applications locally and test environments to modernize legacy applications
These are relative to all Job postings on Indeed. – FOCUS ON THE TRENDS
> Less than 10% are IT and about 15% are related to software development
> Docker just celebrated their 4th birthday. Soaring adoption in the last 2 years.
There are dozens of reasons, here are a few that are most relevant to today’s discussion…
The containers and MSA support each other
Ability to build microservice or any RESTful with any technology is cool
No more runs on my machine…
Compelling to C-Level Innovators
Docker survey numbers reflect 8x to 13x increase in release cycle frequency
Gartner approved 3/17/2017
While really small teams of really smart developers building microservices accounts for <5% of code running in production (usually in containers and usually in the cloud). That’s a solid start and great things have been learned from these early adopters.
Talk about checklist on next slide.
These are relative to all Job postings on Indeed. – FOCUS ON THE TRENDS
It’s still early, but moving the in the right direction.
Local development environments
Self service app images
Build, Test, Deploy applications
Define app behavior and infra needs
Registry services for image storage, management and distribution
IT Ops maintains library of secure base content
Manage role based access to repos/images
Management consoles
Provision, manage infrastructure resources
Monitor, manage, scale infrastructure and applications
Define TLAs!
DTR & UCP (Relation ship to Swarm)
Resource Requirements
Image Flow – Base Images from DevOps
The tech we use to demonstrate how to build and deploy container
Show UCP and DTR – no services or images…
Show local dev
Show local test
Show push/build/deploy
Show Test VPC
Show UCP and DTR – no services or images…
Show local dev
Show local test
Show push/build/deploy
Show Test VPC
They are distinct technology, but often seen together.
Independently deployable, portable, lightweight microservices
Deploy your application as a stack of services
Update service individually
Ephemeral containers are perfect for stateless microservices
Perfect impendence match for RESTful service layers
What about stateful containers – start with the easy stuff, isolate the hard stuff and start getting educated on cluster-based files solutions
Lift, shift and carve up monolithic applications
Containerize and migrate the monoliths to modern platforms
Easy to replicate monolithic applications locally and test environments to modernize legacy applications
1 – Pull and Launch dev and local test images
2,3 – Pull source code from SCM to shared volume
4 – Modify code
5 – Test changes in local container
6 – Check in update source
7 – Web hook kicks of build - verify build job
8 – Image pushed to DTR - verify Image
9, 10 – Test container fires up as Swarm Service - UCP
11 – Verify test service