chicago microservices meetup presentation 2017-03-22
TRANSCRIPT
1 NVISIA® 2017
CONTAINERS AND MICROSERVICES
FROM THE LABS TO ENTERPRISE
USING DOCKER ENTERPRISE EDITION 17.03
2
WELCOME
NVISIA® 2016
Courtney FaulknerTechnical Director - NVISIA
Software architect with strong DevOps
experience. Commercial experience in deploying microservices with Docker, Kubernetes, Mesos and
most recently Docker EE Standard.
Mark PanthoferVP - 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 ConsultantDocker® Accredited Trainer
3
TOPICS BUILDING AND DEPLOYING MICROSERVICES
NVISIA® 2016
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® 2016
Containers Microservices
Independently deployable, portable, lightweight microservices Ephemeral containers are perfect for stateless microservices
Lift, shift and carve up monolithic applications
5
ADOPTION MICROSERVICES AND CONTAINERS
NVISIA® 2017
Indeed.comjob trends NVISIA® 2017
6
GROWTH DRIVERS CONTAINERS
NVISIA® 2017
7
THE NUMBERS CONTAINERS
NVISIA® 2017
Containers in the
Enterprise
Source: Gartner, Emerging Technology Analysis: Containers in the Enterprise ,Michael Warrilow, Matthew Cheung (September 2016)
8
A FAST-MOVING ECOSPHERE CONTAINERS AND MICROSERVICES
NVISIA® 2017
9
DOCKER GAINING TRACTION WITH HIRING MANAGERS
NVISIA® 2017
Indeed.comjob trends
10
DOCKER ENTERPRISE SUPPORT RELEASE CADENCE
NVISIA® 2017
11
DOCKER EE 17.03
NVISIA® 2017
DEVELOPERS IT OPERATIONS
BUILDDevelopment Environments
SHIPSecure Content & Collaboration
RUNDeploy, Manage, Scale
Docker Trusted RegistryDocker Content Trust
Universal Control PlaneDocker for MacDocker for Windows
NVISIA® 2017
DOCKER DATACENTER BUILD, SHIP AND RUN
UCP Manager UCP ManagerUCP Manager
Internal distributed store
DTR Replica Worker
Raft consensus group
Image Registry
BYO TCP Load Balancer
UCP Worker UCP WorkerUCP WorkerUCP Worker
push / pull
Admin / UserDeploy / manage
LDAP/AD
Monitoring
Logging
External CA
Image Storage
DTR Replica Worker
DTR Replica Worker
DOCKER DATACENTER REFERENCE ARCHITECTURE
NVISIA® 2017
UCP Manager
UCP WorkerUCP Worker
push / pull/ sign
Developers
manage
DOCKER DATACENTER SIMPLE ARCHITECTURE (NOT FOR PROD)
DevOps
DTR
pull dev images
Image Registry
push / pull/ sign
deploy/update
Container Cluster Manager
Clone, branch push
NVISIA® 2017
15
TECH USED TO BUILD & DEPLOY CONTAINERIZED MICROSERVICES
NVISIA® 2017
• 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 DEPLOYMICROSERVICES WITH DOCKER EE
NVISIA® 2017
17
CI PIPELINE SIMPLE SAMPLE – HELLO SERVICE
NVISIA® Confidential 2017
NTCDEV
Local filesystem
VS Code
• Dev Certs• Build tools• Git
Dev MachineTest VPC
NGINX• Prod Base for Nginx Web Page
http://localhost:8080/ntc-workspace/hello/html/index.html
EC2
EC2
EC2
swarm
Hello/html/index.htmlHTTP RM
DTR
UCP
http://hello-developer13.ucp.ntc.nvisia.io/
18
CI PIPELINE SIMPLE SAMPLE
NVISIA® Confidential 2017
NTCDEV
Local filesystem
VS Code• Build tools• Git
Dev Machine Test VPCGitLab
UCP - DTR – Swarm - HRM
Jenkins
DTR
UCP
HTTP RM
Nginx• Local webtest
1 – Pull and Launch dev and local test images 2,3 – Pull source code from SCM to shared volume4 – Modify code5 – Test changes in local container6 – Check in update source7 – Web hook kicks off build - verify build job8 – Image pushed to DTR - verify Image9, 10 – Test container fires up as Swarm Service - UCP 11 – Verify test service
19
KEY CONCEPT MICROSERVICE MULTI-BRANCH SUPPORT
Master Branch (Restricted)
Feature 1 Branch
Feature 2 Branch
Check in, build and test releaseCheck 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
NVISIA® 2017
Demo- Local Dev- Local Test- Push- Build- Deploy Service- Test Service
21
MORE INTERESTING ”MICROSERVICES” AND CONTAINERS
NVISIA® 2016
Angular App Service
REST APIService
DATAServiceWeb
User
22
CI PIPELINE MICROSERVICE DEVELOPMENT
NVISIA® 2017
NTCDEV
Local filesystem
VS Code• Build tools• Git
Dev Machine Test VPCGitLab
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:8091Rest:8081
Data:8092Rest:8082
https://app-
branch.ucp.ntc.nvisia.io
https://localhost:xxxx
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
AngularApp
HRML7 Mesh
DNS
*.ucp
.ntc
.nvis
ia.io
NVISIA® 2017
dtr.ucp.ntc.nvisia.io
Isolated
STACK DEPLOYMENT YAML V3 IN UCP
PROD CLUSTER
DTR
UCP
HTTP RM
UCP - DTR – Swarm - HRM
NVISIA® 2017
STACK DEPLOYMENT DEPLOY, OPERATE AND SCALE
PROD CLUSTER
DTR
UCP
HTTP RM
UCP - DTR – Swarm - HRM
NVISIA® 2017
WRAP UP RESOURCES
success.docker.comDocker EE Customer PortalSharing best practices using Docker KnowledgebaseReference Architectures
BOOKRecipes for
complete, scalable microservice
related solutions. Available on Amazon
NVISIA® 2017
NVISIALunch and LearnExecutive BriefingsPre-launch ReviewsProof of Concept (10– Day)Docker Certified Training Team Bootcamps – Microservices and Docker