bleeding edge meetup - docker as a strategic enabler for development teams

30
Docker as a strategic enabler for development teams Flux7 September 28, 2016

TRANSCRIPT

Docker as a strategic enabler for development teams

Flux7

September 28, 2016

Achievements

About Flux7

Flux7: Cloud and DevOps Solutions

Founded in 2013Team of 35+Headquartered in Austin, Texas

AWS DevOps, Migration, Healthcare, and Life Sciences Competencies

TechTarget’s “Impact Best AWS Consulting Partner” two years in a row (2015 & 2016)

Partner Recognition Award by AWS at reInvent 2015

Customers featured on stage at AWS re:Invent three years in a row

Docker Foundation and authorized consulting partner

150+ happy customers through word of mouth

“[Flux7] taught us how to do 10x the work in 1/10th the

time” - Patrick K, AWS Re:invent’14,

CTO’s Keynote

Release cycles

What is Docker?

Accelerating release cycles with Docker

Docker in code pipeline

Outcomes

Releasing Technology

CodeInfrastructure Server Configurations

Security Rules

The four key components:

High developer productivity

Accelerating Releases

Fast infrastructure provisioning

Repeatable configurations Automated policy enforcements

Startups:

Code first

Infrastructure is developed right before launch or post-launch

→ Down times, sub-optimized infrastructure, low productivity

What tends to happen?

Enterprises:

Checks and balances try to ensure progress in lock step

The entire release is slower

→ The window of opportunity may be missed

Infrastructure and security policies are considered non-agile and brittle

What is needed: Treat everything as code- Automated code pipelines (CI/CD)- Infrastructure as code- Configuration management

Why?

What is Docker?

Has its own process space

Builds from the concept of Linux containers, but a lot more …

Has its own file system (similar to chroot), IP, and set of ports

Lightweight Portable Hardware Agnostic

Docker’s attraction

Helps with

Ineffective code pipeline management

Inconsistency across environments

Mismatches in dev and prod environments

Resource provisioning takes ages

Increasing infrastructure bills

Build Once, Configure Once & Run Anywhere

Docker in Docker terms...

✓ Provides a layer of abstraction between infrastructure and application

How does it help developers?

Without Docker

AppApp, Assets

(WAR file, config files)Container

(WAR file, JAVA, config files)

Config Apache, JAVA Docker engine

VM OS OS

Infrastructure Networking, security, etc Networking, security, etc

Ops owned

Dev owned

✓ Provides a layer of abstraction between infrastructure and application

How does it help developers?

Without Docker With Docker

AppApp, Assets

(WAR file, config files)Container

(Apache, JAVA, WAR file, config files)

Config Apache, JAVA Docker engine

VM OS OS

Infrastructure Networking, security, etc Networking, security, etc

Ops owned

Dev owned

Developers with:○ End-to-end ownership of application and configuration ○ Control networking and provisioning○ An easy path to request infrastructure

Operations with:○ Application agnostic requirements, i.e., just need to run containers robustly

Information Security with: ○ Immutable environments ○ Smaller and more consistent perimeter○ Automated analysis at build time

Docker Accelerates …

Journey to DevOpsCase Studies

RentACenter

Lengthy deployment cycles; non-scalable infrastructure; numerous manual steps involved in provisioning new servers; manual process to prepare the OS and server images.

The company had a young DevOps department with no technologists, and needed help and guidance in improving their development and IT processes.

Business Challenge

Fortune 500 retail organization

RAC (Virtual Acceptance Now)

The solution that Flux7 implemented for us ensures agility

in our IT operations and development efforts, enabling us

to focus on giving our customers a high-quality experience.

A DevOps-based streamlined infrastructure that included a high degree of automation that met security and uptime requirements.

RAC’s initial project has served as a proof of concept around which they have extended their infrastructure and DevOps culture.

Presentation at AWS Chicago Summit 2016: https://www.youtube.com/watch?v=JVzrGr4Fkzc

Outcome

VeriFone Commerce Portal

New business opportunities and a need for increased agility helped drive a decision to migrate on-premise infrastructure to AWS.

The company needed to ensure development was able to deliver high quality, secure solutions against tight deadlines.

Business Challenge

Fortune 1000 retail point of sale organization

VeriFone Commerce Portal

Docker based automation tamed the project’s complex microservices, provides highly available, portable environments to improve agility and increase fidelity of new releases. Unique build - deploy system uses Docker for CI/CD, enables self-service IT for dev teams.

Security is extended by making sensitive configuration data available based on role, while ensuring development meets security processes and controls.

Outcome

Invent & Simplify Award

re:Invent 2015APN Summit

cars.com Video from DockerCon 2014: https://www.youtube.com/watch?v=PBBUnNS4dRw

Fugro OARSVideo from DockerCon 2016: https://www.youtube.com/watch?v=S7B-pEDoSeE

PristineVideo from AWS Re:invent 2014: https://www.youtube.com/watch?v=ktKzSuD9InM

Other Stories

A more productive and autonomous Dev team

An operations team more focused on the health of the production environment and creating self-service portals

An information security team focused on building rules for automated analysis

Result

How does one start?

Web Developer Workflows

Developer Local Test QA Production

Least expensive but most executed

Most expensive but least executed

Web Developer Workflows

Developer Local Test QA Production

Local development environment

Clean test envs

Self-healing, immutable architectures

Code Pipeline with Docker

CI/CD Tool

DevPass/Fail

2 8

6

code/config

metadata

Old service, new code: 1. Test code locally2. Merge code to master branch3. CI/CD detects new commit via

polling4. Builds artifacts, container, and

pushes to Docker repository5. Runs test on a new QA

environment6. Updates cluster7. Cluster downloads new container8. Notify Developer of results

3

4

SCM

Registry

5

7

1

Developer Next Steps

✓ Install Docker locally

✓ Develop Dockerfiles for your application

✓ Develop docker-compose.yml files for your entire stack, i.e., app, DB, etc

✓ Deploy the stack locally

QA Next Steps (with Jenkins)

✓ Configure Jenkins (TeamCity or your tool) to build Docker containers

✓ Configure Jenkins (TeamCity or your tool) to do QA by creating a fresh env each time

Production Next Steps (AWS)

✓ Provision an EC2 Container Service (ECS) cluster (ideally using CloudFormation)

✓ Create an ECS Task Definition for your services, e.g., number of containers, CPU/memory needs of each container

✓ Deploy the ECS services

Summary

■ Docker is emerging as a key component of future code pipelines

■ Docker accelerates the entire flow: Dev, QA, Ops, and InfoSec

■ Work usually starts at the development teams

■ Several solutions to leveraging it in QA and Production

Thank YouAater SulemanCEOFlux7.comAustin, Texaswww.flux7.com

@flux7Labs @FutureChips