bleeding edge meetup - docker as a strategic enabler for development teams
Upload: flux7-award-winning-it-consultancy-focused-on-cloud-containers-cicd-and-configuration-managemen
Post on 16-Apr-2017
784 views
TRANSCRIPT
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
Helps with
Ineffective code pipeline management
Inconsistency across environments
Mismatches in dev and prod environments
Resource provisioning takes ages
Increasing infrastructure bills
✓ 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 …
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
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