The Cloud & Container Professionals
Docker & Cloud Native Training
Introduction
Docker Overview
Docker Labs
Agenda
Software is Eating the World
https://octoverse.github.com/
CTO: “A Technology company with an airline”
Brian Christner
Brian@56K.Cloud / @idomyowntricks
Cloud Architect & Cloud Native
! Cloud Architect
! Background in Containers, Cloud, & Engineering
! Docker Captain
Common IT
Struggles
Cloud
Migration /
Transformation
Manual
Deployment &
Operations
Legacy
Applications
Runaway
Cloud Costs
Cloud Migration
and
Transformation
Manual
Deployment &
Operations
Legacy
Applications
Runaway Cloud
Costs
Consulting
TrainingR&D
56K.Cloud Services
Cloud Containers
Cloud Transformation
Hybrid Cloud
Multi-Cloud
Containerization
Microservices
App Modernization
DevOps
CI/CD
Infrastructure as Code
Automation
Our Services
DevOps to Things
Edge Management
Cloud Enablement
IoT
15
Data
Centers
IaaS
PaaS
Containers
Serverless
A Brief History Lesson
~2000 2006 2007 2013 2015
The application landscape is changing
Loosely
Coupled
Services
Many Small Servers
or devices
~2000 Today
Monolithic
Big Servers
Slow
changing
Rapidly
updated
Credit: @benorama
Cloud native computing uses an open source
software stack to be:
Containerized
Dynamically orchestrated
Microservices oriented
What is Cloud Native
Development
VM
QA
Server
Public
Cloud
Disaster
Recovery
Contributor’s
Laptop
Production
Servers
Production
Cluster
Data Center
Containers are the catalyst
Static
Website
Web
Front End
Background
Workers
User DB
Analytics
DB
Queue
API
Endpoint
CNCF Map
CNCF Map
Business Case
• Break up into teams of 2
• Identify current technologies in use at your company
• Define a new Cloud Native strategy using https://landscape.cncf.io/
• Use https://github.com/cncf/trailmap as a reference strategy
• Create and present your business case
2018
1 Billion++
every Week
31
Docker delivers innovation, speed and savings
+ +Agility Portability Control
State of App development Survey: Q1 2016, Cornell University case study
13XMore software releases
62%Report reduction in MTTR
10XCost reduction in maintaining
existing applications
Eliminate
“works on my machine”
issues
41%Move workloads across
private/public clouds
65%Reduction in developer
onboarding time
Who uses
32
One journey for all applications
1 Containerize Legacy Applications
Lift and shift for portability and efficiency
2
3
Transform Legacy to Microservices
Look for shared services to transform
Accelerate New Applications
Greenfield innovation
What’s the difference?
Container VM
Long vs Short Lived Apps/Containers
Long Lived Short Lived
VM’s
VM VM VM
Use Case
What is DevOps?
People. Process. Technology
"DevOps is the union of
people, process, and
technology to enable
continuous delivery of
value to your end users."
What is DevOps?
DevOps Deployment Workflow
Terraform – Infrastructure as Code
• Describe configuration in a simple and
constant way
• Version Control your infrastructure
(Firewall Rules, Security Policies, and
configurations)
• Configure network and security
features on cloud providers
• Include Cloud Infrastructure
components as part of a "DevOps"
Pipeline
Example Pipeline
• AWS VPN is connected to an "on-premise" Palo Alto FW appliance
• Access control from the AWS Cloud to an On-Premise or customer datacenter application,
configuration can be managed along with changes in the AWS cloud,
• In this case an AWS (SG) security group configuration is in-line with the Palo Alto security
configuration.
• Pan-OS can be configured vi API (Terraform provider) to respect the same configuration in the cloud
Docker CLI Overview
Webapps and Docker
Write Dockerfiles
Create a Docker Build pipeline
Deploy apps to Docker Swarm
Training Agenda
Let’s have a
look:
DEMO
https://dockr.ly/bernu
Let’s Get Started!
github.com/56kcloud/training
Let’s Get Started!
Images & Layers
FROM ubuntu:15.04
COPY. /app
RUN make /app
CMD python /app/app.py
Dockerfile:
Bridged Network
Overlay Network
MACVLAN Network
Anonymous vs Named Volumes
Bind vs Volume vs tmpfs
Portability: Frictionless across environments
Container Separation
Dan the Developer
Worries about what’s “Inside the
Container”
- Code
- Libraries
- Package Manager
- Data
All the servers look the same
Oscar the Ops Guy
Worries about what’s
“Outside the Container”
- Logging
- Monitoring
- Networking
All containers work the same way
(Start, Stop, etc)
Swarm Architecture
Deployment
Future == Serverless
Serverless is made of Servers!
Database
Entry
Point
Entry Point
Vote Handling
HTTP Request
Process
Vote
Handle Result
HTTP Request
Serverless Voting App
https://github.com/alexellis/faas
Docker Architecture
Credit @ajeetraina
Docker Architecture
Logging Tools Overview
● What should we log?
● Where and how long should we store logs
● Analysis
Logging Challenges
● docker logs
● docker-compose logs
● docker service logs
● log drivers
Logging Tools
Logging Workshop
github.com/56kcloud/training
Let’s Get Started!
● What's Broken?
● Why is it Broken?
● How Long has it been
broken?
The Basis of Monitoring
● Docker Stats
● Docker Top
● Docker df
● cAdvisor
● Prometheus
Monitoring Tools
• Live container resources
• All containers or single
• Very basic but useful info
Docker Stats
Docker Top
● Display running process in a container
• Developed by Google
• Real-time Data
• Clean UI
• Exposes Metrics
• Integrates well
PrometheusStack
Federated Configuration
• Start small & increment
• Don’t Overlert yourself
• Set Resource Limits
• Aim for actionable Information
• Run separate from Workload
• Test for Failures
• Know your Failure Models
Best Practices
Custom Monitoring
https://monitor.webwren.ch/
cAdvisor
Node-Exporter
Containers
Containers
Containers
Host Metrics
Containers
metrics
Scraped
Endpoints
Push Alerts
Docker
Monitoring Single Tenant
cAdvisorContainers
Containers
Containers
Node-Exporter
Docker
cAdvisor
Containers
Containers
Containers
Node-Exporter
Docker
cAdvisor
Containers
Containers
Containers
Node-Exporter
Docker
cAdvisor
Containers
Containers
Containers
Node-Exporter
Docker
Monitoring multiple tenants
- 56K.Cloud - https://56K.Cloud
- Prometheus - https://github.com/vegasbrianc/prometheus
- ELK - https://github.com/deviantony/docker-elk
- Labs – github.com/56kcloud/Training/tree/master/DockerCon
- Docker Resource Link - https://awesome-docker.netlify.com
Resources
- GitLab Dashboards - https://monitor.gitlab.net
- Grafana Dashboards - https://grafana.com/dashboards
Even More Resources
Thank You!!

56k.cloud training