View
799
Download
0
Category
Preview:
Citation preview
Deploying Services: Automation with Docker and Ansible
John Zaccone - Software Engineerhttp://www.ipponusa.com
About Me
● Worked at Ippon for 1 year
● First project: Allianz Travel Insurance
● Joined the project during some big
architecture decisions
2
Before
● .NET Application
3
Architectural Decisions: Requirements
● Increase sales
○ modern UI and responsive design
● Move towards Java 8 / Spring services
● Active-Active
● Standardize on CMS Platform
4
Architectural Decisions: Microservices
5
After
6
Architecture Benefits
● Flexible technology choices
● APIs, APIs, APIs
● Change/Deploy Independently
● Stateless for Scalability
7
What Microservices Means to Us
Team Members: 4-5
Services: 4
Environments: 4
Running Application: 16+*Each new service adds at least 4
more running containers.
8
Things that take up my time
● Deploying services
● Installing services on new environments
● Dealing with problems with differences
between environments
● Waiting for new VMs
9
I Need More Time for Coffee Breaks
Automation- repeatable for all environments
Containerize - environmental dependencies
Isolation- run multiple apps on 1 VM
Spin up new environments quickly.
10
Docker and Ansible!!!
11
Docker and Ansible
Ansible
Non-environment specific
automation
Declarative
Easy for devs
12
Docker
Fast spin up
Isolated applications
Immutable infrastructure
“Works on my machine”
Docker Toolbox
Architecture With Docker Containers
13
Making the Most of Your Servers
14
Decoupling Automation from Environments
15
Decoupling Automation from Environments
16
Demo Time
17
Advanced Tips
● Build and push images with CI tools
● Link containers on the same host with --link
● Use a restart policy on your containers
● Stay on the latest docker version
● Use ELK for centralized logging
○ Alternative: “EFK” (Fluentd in lieu of Logstash)18
We Do Training!
● Training Sessions
● Brown Bags
● romain@ipponusa.com
19
Questions
jzaccone@ipponusa.com
@JohnZaccone
20
Recommended