Physical, virtual, containers. Public cloud, private cloud, hybrid cloud. IaaS, PaaS, SaaS. These are the choices that we're faced with when architecting a datacenter of today. And the choice is not one or the other; it is often a combination of many of these. How do we remain in control of our datacenters? How do we deploy and configure software, manage change across disparate systems, and enforce policy/security? How do we do this in a way that operations engineers and developers alike can rejoice in the processes and workflow? In this talk, I will discuss the problems faced by the modern datacenter, and how automation, workflows, and collaboration can be used to tame the rising complexity curve.
5. Open Source Foundation
Vagrant
Vagrant is a tool for building and distributing
portable development environments.
vagrantup.com
400+ contributors, 9K+ stars, 1.6k+ forks
Packer
Packer is a tool for creating machine images for multiple
platforms from a single source configuration.
packer.io
150+ contributors, 4.1K+ stars, 500+ forks
Consul
Consul is a distributed, highly-‐available, and datacenter-‐aware
solution for service discovery, configuration, and orchestration.
consul.io
30+ contributors, 3K+ stars, 200+ forks
Terraform
Terraform builds, changes, and composes infrastructure
components safely and efficiently.
terraform.io
200+ contributors, 2.5K+ stars, 200+ forks
Serf
Serf is a decentralized solution for cluster membership,
failure detection, and orchestration.
serfdom.io
30+ contributors, 2.2k+ stars, 150+ forks
Vault
Vault is a modern tool for managing secrets, certificates, and
more in highly distributed environments.
vaultproject.io
50+ contributors, 2.5K+ stars, 100+ forks
6. VAGRANT
• One command development environments
• Virtual machines or containers
• Any environment: PHP, Ruby, Python, Java, etc.
• Millions of downloads per month
7. PACKER
• One command to build deployable ar+facts
• Amazon, OpenStack, Docker, VMware, KVM, etc.
• ShiQ burden to learning Packer, rather than learning
complex plaSorm-‐specific steps
• Can also build Vagrant boxes
8. CONSUL
• Service discovery, service configura4on,
service orchestra4on
• Highly available, distributed
• Mul4-‐datacenter aware
• Discover/configure containers, VMs, physical machines
all the same
9. TERRAFORM
• Launch and combine infrastructure
• Amazon, VMware, Azure, OpenStack, and more
• Single format to do complex infrastructure
management
10. VAULT
• Secret and cer4ficate management
• Built for a modern world: distributed, cloud-‐friendly
• Dynamic secrets
• Audit pending
12. How Atlas Works: Configure one holisDc view of applicaDon
delivery in days, not years, with infrastructure as code.
12
Atlas
13. ATLAS
• Built on top of our open source
• Adds addi4onal features to each open source
project, but running the same binaries
• Combines the projects together to provide
unified development to produc+on experience
• Works for all plaSorms supported by open source!
(Hybrid cloud friendly)
18. BUILD WITH PACKER
$ packer push -name=“mitchellh/cisco-live” template.json
Push successful to ‘mitchellh/cisco-live’
19. Deploy with Terraform
provider "aws" {
access_key = "${var.aws_access_key}"
secret_key = "${var.aws_secret_key}"
region = "us-east-1"
}
// Packer-built AMI
resource "atlas_artifact" "web" {
name = “mitchellh/cisco-live"
type = "aws.ami"
}
resource "aws_instance" "web" {
instance_type = "t1.micro"
ami = "${atlas_artifact.web.metadata_full.region-us-east-1}"
security_groups = ["${aws_security_group.allow_all.name}"]
# This will create 2 instances
count = 2
}
20. DEPLOY WITH TERRAFORM
$ terraform push -name=‘mitchellh/cisco-live'
Push successful to ‘mitchellh/cisco-live’
21. SUCCESS!
• Automa4c image builds, inventory, history
• Automa4c infrastructure change, history
• Approval for infrastructure change
• ACLs across all of it
• Support for all cloud providers the open source supports
22. NEXT STEPS…
• GitHub integra4on
• Consul integra4on for monitoring, service discovery
• Using Packer/Terraform with a different
cloud service