SlideShare uma empresa Scribd logo
1 de 20
Vagrant to AWS Flow
Delivered by Colin Johnson, BlueChipTek (@bluechiptek)
Who am I?
• DevOps Engineer and Occasional Developer
• Certifications:
• AWS Certified Solutions Architect – Associate Level (Number 224)
• AWS Certified SysOps Administrator – Associate Level (Number 2564)
• Worked with a number of Bay Area companies: inPowered, Jive Software, Lyft,
NetShelter, Wingz
• Contributed VPC and Testing Support for boto_* Modules in SaltStack Project
Goals for this Presentation
• Understand benefits and pain points of cloud, local and vagrant based
development
• Describe a development flow that combines vagrant and AWS to
create a:
• consistent environments for all developers
• consistent environment from development to production
• help organizations move fast – if they are not already doing this
• integrate nearly flawlessly with AWS
• Ease Development <-> Production Software Deployment
Why Vagrant to AWS Flow?
• Benefits for Everyone:
• Really Fast. Minutes to get a development environment setup.
• Really Fast. No lag to test code changes.
• Really Consistent. More similar to production than traditional “local” development.
• Easy. Developers just type “vagrant ssh”
• Developers
• Develop Offline
• Provision Infrastructure on Own
• DevOps / Operations
• No need to be involved in development or environment setup.
• QA
• Test Offline.
• Automate Testing.
What does Vagrant do?
• Simple Use Case:
• Allows local development.
• Offline? No Problem.
• Ensures consistency.
• You use a Mac, your co-worker uses Windows but you want to run your app on Ubuntu?
No Problem.
• Advanced Use Cases:
• Allows local development of an entire “dev” or “qa” application.
• Your application depends on MySQL, redis and an application developed by another
group as well? No problem. Run them all locally.
• Run tests.
• Need to run tests quickly but don’t want to automate infrastructure? No problem.
Vagrant up. Test. Vagrant destroy.
Experts at inPowered
• Problem - developers loved AWS, but wanted to develop locally.
• Developers couldn’t develop offline
• Developers had to “share” a single Development environment
• Developers were developing on OS X whereas production was Amazon Linux
• Developers were struggling to access Redis/MySQL and other dependencies
• Solution:
• Vagrant + AWS Flow:
• Develop in Vagrant, Ship to AWS!
• Ubuntu 15.04 for both Vagrant and AWS
• Same configuration management for both Vagrant and AWS
• Vagrant:
• offline development
• per developer environments
• all dependencies were run or “mocked” locally
Salt boto_* Module Development at Lyft
• Project:
• adding VPC support and testing to salt’s boto_* modules
(https://github.com/saltstack/salt/)
• Problems:
• Needed to do testing of AWS automation (approximately 200+ tests), but building
test environment load balancers, security groups, etc was taking too long as did calls
• Preferred testing locally
• Preferred testing with multiple Operating Systems
• Solution:
• Two Vagrant instances for Running Salt – Ubuntu 12.04 and 14.04 – fresh
environment for every test
• Moto* for mocking AWS calls (https://github.com/spulec/moto)
• Tests could be run by simply typing “vagrant up” and results could be generated and
reviewed
Vagrant Development vs Cloud Development
• One Environment for each Developer on Cloud Platform
• Administration burden – DevOps either has to Build or Automate
• I used to spend 10 hours/week setting up environments for new Developers
• Inefficient Spend
• Connectivity and Security requirements extends to uncontrolled
“Development” environments
• Shared Development on Cloud Platform
• Sharing? You must be kidding.
• Who “owns” the server? Your feature, my configuration change and someone else’s
change are all mixed together. Testing is going to be so fun!
• AWS / Cloud Development does typically offer all dependencies and
services.
Vagrant Development vs Cloud Development:
Act I – Internet Access Required
• Developer 1:
• Going to be on vacation for the next week. Probably limited Internet access.
• Manager:
• No problem. Can you get the new “every metric for every user action feature”
shipped on Monday?
• Developer 1:
• I’ll try, but I can’t really test my code in without Internet.
Vagrant Development vs Cloud Development:
Act II – Access and Management Headaches
• DevOps Engineer:
• It looks like port 22 and port 80 in all our development environments are open.
Google just crawled all our development sites.
• Manager:
• Do you know why all the ports are open?
• DevOps Engineer:
• The docs for the webserver project say “to ssh in or do web testing, go to the
security group and open ports 22 and 80 to 0.0.0.0/0”
• Manager:
• Do you know why?
• DevOps Engineer:
• I think the Developers get tired of waiting for VPN credentials to be issued.
Vagrant Development vs Local Development
• Match local and production environments
• Local environment (OS X, Windows or *nix) may not match production
• Faster Environment Standup
• Run same configuration management as production!
• Develop Offline / Complete infrastructure available
• Run your app and all dependencies
Vagrant Dev vs Local Dev:
Act I – Dev/Prod Inconsistency
• Developer:
• It worked on my machine.
• DevOps:
• So, it worked on OS X 10.9.2, nginx preview release 1.9.11 and MariaDB.
• Developer:
• Yes. I also had to install SciPy and NumPy.
• DevOps:
• Anything else?
• Developer:
• I think that is it. Make sure to use SciPy 0.17.
Vagrant Development vs Local Development
Act II – Local Development Inconsistency
• Developer 1:
• It worked on my machine. OS X 10.9.2 with nginx 1.9.11 preview release…
• Developer 2:
• I’m running Windows. 10.
• Developer 1:
• Damn. Get a Mac. Everyone else uses them.
• Developer 3:
• You should use Linux. Same as production. Except for MariaDB instead of
MySQL. But I don’t think that’s a problem.
Vagrant Development vs Local Development
Act III – Running the Application
• Developer 1:
• I’ve been trying to get nginx 1.9.11 preview installed on my Mac for the last
four hours
• Developer 2:
• Use homebrew. I found an article online somewhere.
• Developer 2:
• Here’s a link: http://www.robertmulley.com/tutorial/nginx-install-and-setup-
mac-os-x-yosemite/
• Developer 1:
• Link me for MongoDB, InfluxDB and Redis installs as well :-)
Vagrant to AWS Flow:
• Standup Development in Minutes
• Easy ssh Access
• Easy file access
• Run local mocks
• No sharing environments!
Vagrant + AWS: How To
• Use same OS in Vagrant as AWS
• Separate and Make Modular Each “Concern”
• Infrastructure Provisioning
• Configuration Management
• Software Deployment
• Avoid or Be Aware of Platform Specific Technologies
• Vagrant synced_folder = not available in AWS – you can still use for software
deployment
• AWS IAM Profile = not available in Vagrant/Virtualbox – you can still use for
software deployment
Vagrant Setup
• Infrastructure Provisioning:
• Run “vagrant up”
• Uses a Vagrantfile in root directory of project
• Vagrantfile defines:
• CPU, Memory
• Operating System – use same as AWS!
• A “Provisioner” – which runs Configuration Management
• Configuration Management (aka “Provisioner”)
• I prefer shell as “glue code”
• Use same Configuration Management as AWS - Ansible, Chef, Puppet, Salt, etc.
• Software Deployment
• In Vagrant, use a “synced directory”– then changes made by developers are manifest
in real-time near real-time
AWS Setup
• Infrastructure Provisioning:
• Run “cfn-create-stack”
• Creates an Auto Scaling Group and Launch Configuration with user-data
• Use same OS as Vagrant!
• Launch Configuration calls Configuration Management
• Configuration Management (aka “Provisioner”)
• I prefer shell as “glue code”
• Use same Configuration Management as Vagrant - Ansible, Chef, Puppet, Salt,
etc.
• Software Deployment
• Use whatever you’d like…
Vagrant to AWS Flow - Diagram
Whatever you’d like…
- Ansible
- Chef
- Other
- Puppet
- SaltStack
- Shell Script(s)?
Just run same thing on
both AWS and Vagrant!
Vagrant
AWS /
CloudFormation
Creates
Instance(s)
Software
Deployment
Infrastructure
Provisioning
Configuration
Management
Vagrant
- “sync_dir”
AWS
Whatever you’d like:
- AWS Code Deploy
- Fabric
- Git Push
- Artifact and Sync
Demo
In the next 15 minutes we will:
1. Standup local development infrastructure on Ubuntu.
1. And look at a Vagrantfile.
2. Standup identical* production infrastructure in AWS.
1. And look at a CloudFormation file.
3. Deploy code to AWS and run the same code in Dev/Prod.
1. The deployment tool is a bit of a hack, btw…

Mais conteúdo relacionado

Mais procurados

Drone your Ansible
Drone your AnsibleDrone your Ansible
Drone your AnsibleDennis Rowe
 
Vagrant introduction for Developers
Vagrant introduction for DevelopersVagrant introduction for Developers
Vagrant introduction for DevelopersAntons Kranga
 
Automated Deployment with Capistrano
Automated Deployment with CapistranoAutomated Deployment with Capistrano
Automated Deployment with CapistranoSumit Chhetri
 
Package Management on Windows with Chocolatey
Package Management on Windows with ChocolateyPackage Management on Windows with Chocolatey
Package Management on Windows with ChocolateyPuppet
 
Steamlining your puppet development workflow
Steamlining your puppet development workflowSteamlining your puppet development workflow
Steamlining your puppet development workflowTomas Doran
 
Baking docker using chef
Baking docker using chefBaking docker using chef
Baking docker using chefMukta Aphale
 
Docker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationDocker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationGiacomo Vacca
 
Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...
Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...
Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...Puppet
 
Building and Testing from Scratch a Puppet Environment with Docker - PuppetCo...
Building and Testing from Scratch a Puppet Environment with Docker - PuppetCo...Building and Testing from Scratch a Puppet Environment with Docker - PuppetCo...
Building and Testing from Scratch a Puppet Environment with Docker - PuppetCo...Puppet
 
Dependencies and Licenses
Dependencies and LicensesDependencies and Licenses
Dependencies and LicensesRobert Reiz
 
Vagrant for Virtualized Development
Vagrant for Virtualized DevelopmentVagrant for Virtualized Development
Vagrant for Virtualized DevelopmentAdam Culp
 
Automated Infrastructure and Application Management
Automated Infrastructure and Application ManagementAutomated Infrastructure and Application Management
Automated Infrastructure and Application ManagementClark Everetts
 
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.catDeploying Symfony | symfony.cat
Deploying Symfony | symfony.catPablo Godel
 
Installaling Puppet Master and Agent
Installaling Puppet Master and AgentInstallaling Puppet Master and Agent
Installaling Puppet Master and AgentRanjit Avasarala
 
CI/CD Using Ansible and Jenkins for Infrastructure
CI/CD Using Ansible and Jenkins for InfrastructureCI/CD Using Ansible and Jenkins for Infrastructure
CI/CD Using Ansible and Jenkins for InfrastructureFaisal Shaikh
 
Continuous delivery with jenkins, docker and exoscale
Continuous delivery with jenkins, docker and exoscaleContinuous delivery with jenkins, docker and exoscale
Continuous delivery with jenkins, docker and exoscaleJulia Mateo
 

Mais procurados (20)

Vagrant For DevOps
Vagrant For DevOpsVagrant For DevOps
Vagrant For DevOps
 
Drone your Ansible
Drone your AnsibleDrone your Ansible
Drone your Ansible
 
Vagrant
VagrantVagrant
Vagrant
 
Vagrant introduction for Developers
Vagrant introduction for DevelopersVagrant introduction for Developers
Vagrant introduction for Developers
 
Automated Deployment with Capistrano
Automated Deployment with CapistranoAutomated Deployment with Capistrano
Automated Deployment with Capistrano
 
Package Management on Windows with Chocolatey
Package Management on Windows with ChocolateyPackage Management on Windows with Chocolatey
Package Management on Windows with Chocolatey
 
Steamlining your puppet development workflow
Steamlining your puppet development workflowSteamlining your puppet development workflow
Steamlining your puppet development workflow
 
Baking docker using chef
Baking docker using chefBaking docker using chef
Baking docker using chef
 
Docker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationDocker and Puppet for Continuous Integration
Docker and Puppet for Continuous Integration
 
GlassFish Embedded API
GlassFish Embedded APIGlassFish Embedded API
GlassFish Embedded API
 
Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...
Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...
Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...
 
Building and Testing from Scratch a Puppet Environment with Docker - PuppetCo...
Building and Testing from Scratch a Puppet Environment with Docker - PuppetCo...Building and Testing from Scratch a Puppet Environment with Docker - PuppetCo...
Building and Testing from Scratch a Puppet Environment with Docker - PuppetCo...
 
Dependencies and Licenses
Dependencies and LicensesDependencies and Licenses
Dependencies and Licenses
 
Vagrant presentation
Vagrant presentationVagrant presentation
Vagrant presentation
 
Vagrant for Virtualized Development
Vagrant for Virtualized DevelopmentVagrant for Virtualized Development
Vagrant for Virtualized Development
 
Automated Infrastructure and Application Management
Automated Infrastructure and Application ManagementAutomated Infrastructure and Application Management
Automated Infrastructure and Application Management
 
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.catDeploying Symfony | symfony.cat
Deploying Symfony | symfony.cat
 
Installaling Puppet Master and Agent
Installaling Puppet Master and AgentInstallaling Puppet Master and Agent
Installaling Puppet Master and Agent
 
CI/CD Using Ansible and Jenkins for Infrastructure
CI/CD Using Ansible and Jenkins for InfrastructureCI/CD Using Ansible and Jenkins for Infrastructure
CI/CD Using Ansible and Jenkins for Infrastructure
 
Continuous delivery with jenkins, docker and exoscale
Continuous delivery with jenkins, docker and exoscaleContinuous delivery with jenkins, docker and exoscale
Continuous delivery with jenkins, docker and exoscale
 

Semelhante a Vagrant to-aws-flow

Vagrant for Effective DevOps Culture
Vagrant for Effective DevOps CultureVagrant for Effective DevOps Culture
Vagrant for Effective DevOps CultureVaidik Kapoor
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkinsAbe Diaz
 
Open stack + Containers + Hyper-V
Open stack + Containers + Hyper-VOpen stack + Containers + Hyper-V
Open stack + Containers + Hyper-VSriram Subramanian
 
A tale of two pizzas: Developer tools at AWS
A tale of two pizzas: Developer tools at AWSA tale of two pizzas: Developer tools at AWS
A tale of two pizzas: Developer tools at AWSAmazon Web Services
 
321 codeincontainer brewbox
321 codeincontainer brewbox321 codeincontainer brewbox
321 codeincontainer brewboxLino Telera
 
Using Docker to Develop, Test and Run Maven Projects - Wouter Danes
Using Docker to Develop, Test and Run Maven Projects - Wouter DanesUsing Docker to Develop, Test and Run Maven Projects - Wouter Danes
Using Docker to Develop, Test and Run Maven Projects - Wouter DanesNLJUG
 
Building Efficient Parallel Testing Platforms with Docker
Building Efficient Parallel Testing Platforms with DockerBuilding Efficient Parallel Testing Platforms with Docker
Building Efficient Parallel Testing Platforms with DockerLaura Frank Tacho
 
How bigtop leveraged docker for build automation and one click hadoop provis...
How bigtop leveraged docker for build automation and  one click hadoop provis...How bigtop leveraged docker for build automation and  one click hadoop provis...
How bigtop leveraged docker for build automation and one click hadoop provis...Evans Ye
 
Fits docker into devops
Fits docker into devopsFits docker into devops
Fits docker into devopsEvans Ye
 
Announcing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAnnouncing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAmazon Web Services
 
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013dotCloud
 
DevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and ProcessesDevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and ProcessesAmazon Web Services
 
Trusting the Unknown
Trusting the UnknownTrusting the Unknown
Trusting the UnknownJesse Houwing
 
Trusting the Unknown
Trusting the UnknownTrusting the Unknown
Trusting the Unknownssuser37f369
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsAmazon Web Services
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsAmazon Web Services
 
Containers, microservices and serverless for realists
Containers, microservices and serverless for realistsContainers, microservices and serverless for realists
Containers, microservices and serverless for realistsKarthik Gaekwad
 
Opscode Webinar: Managing Your VMware Infrastructure with Chef
Opscode Webinar: Managing Your VMware Infrastructure with ChefOpscode Webinar: Managing Your VMware Infrastructure with Chef
Opscode Webinar: Managing Your VMware Infrastructure with ChefChef Software, Inc.
 

Semelhante a Vagrant to-aws-flow (20)

Vagrant for Effective DevOps Culture
Vagrant for Effective DevOps CultureVagrant for Effective DevOps Culture
Vagrant for Effective DevOps Culture
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkins
 
Open stack + Containers + Hyper-V
Open stack + Containers + Hyper-VOpen stack + Containers + Hyper-V
Open stack + Containers + Hyper-V
 
Devops
DevopsDevops
Devops
 
A tale of two pizzas: Developer tools at AWS
A tale of two pizzas: Developer tools at AWSA tale of two pizzas: Developer tools at AWS
A tale of two pizzas: Developer tools at AWS
 
321 codeincontainer brewbox
321 codeincontainer brewbox321 codeincontainer brewbox
321 codeincontainer brewbox
 
Using Docker to Develop, Test and Run Maven Projects - Wouter Danes
Using Docker to Develop, Test and Run Maven Projects - Wouter DanesUsing Docker to Develop, Test and Run Maven Projects - Wouter Danes
Using Docker to Develop, Test and Run Maven Projects - Wouter Danes
 
Building Efficient Parallel Testing Platforms with Docker
Building Efficient Parallel Testing Platforms with DockerBuilding Efficient Parallel Testing Platforms with Docker
Building Efficient Parallel Testing Platforms with Docker
 
How bigtop leveraged docker for build automation and one click hadoop provis...
How bigtop leveraged docker for build automation and  one click hadoop provis...How bigtop leveraged docker for build automation and  one click hadoop provis...
How bigtop leveraged docker for build automation and one click hadoop provis...
 
Fits docker into devops
Fits docker into devopsFits docker into devops
Fits docker into devops
 
CI/CD on AWS
CI/CD on AWSCI/CD on AWS
CI/CD on AWS
 
Announcing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAnnouncing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck Talks
 
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
 
DevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and ProcessesDevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and Processes
 
Trusting the Unknown
Trusting the UnknownTrusting the Unknown
Trusting the Unknown
 
Trusting the Unknown
Trusting the UnknownTrusting the Unknown
Trusting the Unknown
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
Containers, microservices and serverless for realists
Containers, microservices and serverless for realistsContainers, microservices and serverless for realists
Containers, microservices and serverless for realists
 
Opscode Webinar: Managing Your VMware Infrastructure with Chef
Opscode Webinar: Managing Your VMware Infrastructure with ChefOpscode Webinar: Managing Your VMware Infrastructure with Chef
Opscode Webinar: Managing Your VMware Infrastructure with Chef
 

Mais de Kimberly Macias

Blue Chip Tek/ Rook Security - Cloud Security Connect and Protect
Blue Chip Tek/ Rook Security - Cloud Security Connect and ProtectBlue Chip Tek/ Rook Security - Cloud Security Connect and Protect
Blue Chip Tek/ Rook Security - Cloud Security Connect and ProtectKimberly Macias
 
AWS VPN with Juniper SRX- Lab Sheet
AWS VPN with Juniper SRX- Lab SheetAWS VPN with Juniper SRX- Lab Sheet
AWS VPN with Juniper SRX- Lab SheetKimberly Macias
 
Blue Chip Tek Connect and Protect Presentation #1
Blue Chip Tek Connect and Protect Presentation #1Blue Chip Tek Connect and Protect Presentation #1
Blue Chip Tek Connect and Protect Presentation #1Kimberly Macias
 
Blue Chip Tek Connect and Protect Presentation #3
Blue Chip Tek Connect and Protect Presentation #3Blue Chip Tek Connect and Protect Presentation #3
Blue Chip Tek Connect and Protect Presentation #3Kimberly Macias
 
Blue Chip Tek AWS Connect and Protect Presentation #2
Blue Chip Tek AWS Connect and Protect Presentation #2Blue Chip Tek AWS Connect and Protect Presentation #2
Blue Chip Tek AWS Connect and Protect Presentation #2Kimberly Macias
 

Mais de Kimberly Macias (8)

Blue Chip Tek/ Rook Security - Cloud Security Connect and Protect
Blue Chip Tek/ Rook Security - Cloud Security Connect and ProtectBlue Chip Tek/ Rook Security - Cloud Security Connect and Protect
Blue Chip Tek/ Rook Security - Cloud Security Connect and Protect
 
AWS VPN with Juniper SRX- Lab Sheet
AWS VPN with Juniper SRX- Lab SheetAWS VPN with Juniper SRX- Lab Sheet
AWS VPN with Juniper SRX- Lab Sheet
 
Bct Aws-VPC-Training
Bct Aws-VPC-TrainingBct Aws-VPC-Training
Bct Aws-VPC-Training
 
Blue Chip Tek Connect and Protect Presentation #1
Blue Chip Tek Connect and Protect Presentation #1Blue Chip Tek Connect and Protect Presentation #1
Blue Chip Tek Connect and Protect Presentation #1
 
Blue Chip Tek Connect and Protect Presentation #3
Blue Chip Tek Connect and Protect Presentation #3Blue Chip Tek Connect and Protect Presentation #3
Blue Chip Tek Connect and Protect Presentation #3
 
Blue Chip Tek AWS Connect and Protect Presentation #2
Blue Chip Tek AWS Connect and Protect Presentation #2Blue Chip Tek AWS Connect and Protect Presentation #2
Blue Chip Tek AWS Connect and Protect Presentation #2
 
Contrail Basics
Contrail BasicsContrail Basics
Contrail Basics
 
Aws Autoscaling
Aws AutoscalingAws Autoscaling
Aws Autoscaling
 

Último

BabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptxBabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptxolyaivanovalion
 
Accredited-Transport-Cooperatives-Jan-2021-Web.pdf
Accredited-Transport-Cooperatives-Jan-2021-Web.pdfAccredited-Transport-Cooperatives-Jan-2021-Web.pdf
Accredited-Transport-Cooperatives-Jan-2021-Web.pdfadriantubila
 
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...amitlee9823
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...amitlee9823
 
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...amitlee9823
 
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...amitlee9823
 
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...amitlee9823
 
Smarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxSmarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxolyaivanovalion
 
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightCheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightDelhi Call girls
 
Week-01-2.ppt BBB human Computer interaction
Week-01-2.ppt BBB human Computer interactionWeek-01-2.ppt BBB human Computer interaction
Week-01-2.ppt BBB human Computer interactionfulawalesam
 
Edukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxEdukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxolyaivanovalion
 
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...SUHANI PANDEY
 
ALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptxALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptxolyaivanovalion
 
Discover Why Less is More in B2B Research
Discover Why Less is More in B2B ResearchDiscover Why Less is More in B2B Research
Discover Why Less is More in B2B Researchmichael115558
 
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...amitlee9823
 
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...amitlee9823
 

Último (20)

BabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptxBabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptx
 
Accredited-Transport-Cooperatives-Jan-2021-Web.pdf
Accredited-Transport-Cooperatives-Jan-2021-Web.pdfAccredited-Transport-Cooperatives-Jan-2021-Web.pdf
Accredited-Transport-Cooperatives-Jan-2021-Web.pdf
 
Sampling (random) method and Non random.ppt
Sampling (random) method and Non random.pptSampling (random) method and Non random.ppt
Sampling (random) method and Non random.ppt
 
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
 
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
 
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
 
Abortion pills in Doha Qatar (+966572737505 ! Get Cytotec
Abortion pills in Doha Qatar (+966572737505 ! Get CytotecAbortion pills in Doha Qatar (+966572737505 ! Get Cytotec
Abortion pills in Doha Qatar (+966572737505 ! Get Cytotec
 
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
 
Smarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxSmarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptx
 
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightCheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
 
Week-01-2.ppt BBB human Computer interaction
Week-01-2.ppt BBB human Computer interactionWeek-01-2.ppt BBB human Computer interaction
Week-01-2.ppt BBB human Computer interaction
 
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts ServiceCall Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
 
Edukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxEdukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFx
 
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
 
ALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptxALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptx
 
Predicting Loan Approval: A Data Science Project
Predicting Loan Approval: A Data Science ProjectPredicting Loan Approval: A Data Science Project
Predicting Loan Approval: A Data Science Project
 
Discover Why Less is More in B2B Research
Discover Why Less is More in B2B ResearchDiscover Why Less is More in B2B Research
Discover Why Less is More in B2B Research
 
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
 
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
Escorts Service Kumaraswamy Layout ☎ 7737669865☎ Book Your One night Stand (B...
 

Vagrant to-aws-flow

  • 1. Vagrant to AWS Flow Delivered by Colin Johnson, BlueChipTek (@bluechiptek)
  • 2. Who am I? • DevOps Engineer and Occasional Developer • Certifications: • AWS Certified Solutions Architect – Associate Level (Number 224) • AWS Certified SysOps Administrator – Associate Level (Number 2564) • Worked with a number of Bay Area companies: inPowered, Jive Software, Lyft, NetShelter, Wingz • Contributed VPC and Testing Support for boto_* Modules in SaltStack Project
  • 3. Goals for this Presentation • Understand benefits and pain points of cloud, local and vagrant based development • Describe a development flow that combines vagrant and AWS to create a: • consistent environments for all developers • consistent environment from development to production • help organizations move fast – if they are not already doing this • integrate nearly flawlessly with AWS • Ease Development <-> Production Software Deployment
  • 4. Why Vagrant to AWS Flow? • Benefits for Everyone: • Really Fast. Minutes to get a development environment setup. • Really Fast. No lag to test code changes. • Really Consistent. More similar to production than traditional “local” development. • Easy. Developers just type “vagrant ssh” • Developers • Develop Offline • Provision Infrastructure on Own • DevOps / Operations • No need to be involved in development or environment setup. • QA • Test Offline. • Automate Testing.
  • 5. What does Vagrant do? • Simple Use Case: • Allows local development. • Offline? No Problem. • Ensures consistency. • You use a Mac, your co-worker uses Windows but you want to run your app on Ubuntu? No Problem. • Advanced Use Cases: • Allows local development of an entire “dev” or “qa” application. • Your application depends on MySQL, redis and an application developed by another group as well? No problem. Run them all locally. • Run tests. • Need to run tests quickly but don’t want to automate infrastructure? No problem. Vagrant up. Test. Vagrant destroy.
  • 6. Experts at inPowered • Problem - developers loved AWS, but wanted to develop locally. • Developers couldn’t develop offline • Developers had to “share” a single Development environment • Developers were developing on OS X whereas production was Amazon Linux • Developers were struggling to access Redis/MySQL and other dependencies • Solution: • Vagrant + AWS Flow: • Develop in Vagrant, Ship to AWS! • Ubuntu 15.04 for both Vagrant and AWS • Same configuration management for both Vagrant and AWS • Vagrant: • offline development • per developer environments • all dependencies were run or “mocked” locally
  • 7. Salt boto_* Module Development at Lyft • Project: • adding VPC support and testing to salt’s boto_* modules (https://github.com/saltstack/salt/) • Problems: • Needed to do testing of AWS automation (approximately 200+ tests), but building test environment load balancers, security groups, etc was taking too long as did calls • Preferred testing locally • Preferred testing with multiple Operating Systems • Solution: • Two Vagrant instances for Running Salt – Ubuntu 12.04 and 14.04 – fresh environment for every test • Moto* for mocking AWS calls (https://github.com/spulec/moto) • Tests could be run by simply typing “vagrant up” and results could be generated and reviewed
  • 8. Vagrant Development vs Cloud Development • One Environment for each Developer on Cloud Platform • Administration burden – DevOps either has to Build or Automate • I used to spend 10 hours/week setting up environments for new Developers • Inefficient Spend • Connectivity and Security requirements extends to uncontrolled “Development” environments • Shared Development on Cloud Platform • Sharing? You must be kidding. • Who “owns” the server? Your feature, my configuration change and someone else’s change are all mixed together. Testing is going to be so fun! • AWS / Cloud Development does typically offer all dependencies and services.
  • 9. Vagrant Development vs Cloud Development: Act I – Internet Access Required • Developer 1: • Going to be on vacation for the next week. Probably limited Internet access. • Manager: • No problem. Can you get the new “every metric for every user action feature” shipped on Monday? • Developer 1: • I’ll try, but I can’t really test my code in without Internet.
  • 10. Vagrant Development vs Cloud Development: Act II – Access and Management Headaches • DevOps Engineer: • It looks like port 22 and port 80 in all our development environments are open. Google just crawled all our development sites. • Manager: • Do you know why all the ports are open? • DevOps Engineer: • The docs for the webserver project say “to ssh in or do web testing, go to the security group and open ports 22 and 80 to 0.0.0.0/0” • Manager: • Do you know why? • DevOps Engineer: • I think the Developers get tired of waiting for VPN credentials to be issued.
  • 11. Vagrant Development vs Local Development • Match local and production environments • Local environment (OS X, Windows or *nix) may not match production • Faster Environment Standup • Run same configuration management as production! • Develop Offline / Complete infrastructure available • Run your app and all dependencies
  • 12. Vagrant Dev vs Local Dev: Act I – Dev/Prod Inconsistency • Developer: • It worked on my machine. • DevOps: • So, it worked on OS X 10.9.2, nginx preview release 1.9.11 and MariaDB. • Developer: • Yes. I also had to install SciPy and NumPy. • DevOps: • Anything else? • Developer: • I think that is it. Make sure to use SciPy 0.17.
  • 13. Vagrant Development vs Local Development Act II – Local Development Inconsistency • Developer 1: • It worked on my machine. OS X 10.9.2 with nginx 1.9.11 preview release… • Developer 2: • I’m running Windows. 10. • Developer 1: • Damn. Get a Mac. Everyone else uses them. • Developer 3: • You should use Linux. Same as production. Except for MariaDB instead of MySQL. But I don’t think that’s a problem.
  • 14. Vagrant Development vs Local Development Act III – Running the Application • Developer 1: • I’ve been trying to get nginx 1.9.11 preview installed on my Mac for the last four hours • Developer 2: • Use homebrew. I found an article online somewhere. • Developer 2: • Here’s a link: http://www.robertmulley.com/tutorial/nginx-install-and-setup- mac-os-x-yosemite/ • Developer 1: • Link me for MongoDB, InfluxDB and Redis installs as well :-)
  • 15. Vagrant to AWS Flow: • Standup Development in Minutes • Easy ssh Access • Easy file access • Run local mocks • No sharing environments!
  • 16. Vagrant + AWS: How To • Use same OS in Vagrant as AWS • Separate and Make Modular Each “Concern” • Infrastructure Provisioning • Configuration Management • Software Deployment • Avoid or Be Aware of Platform Specific Technologies • Vagrant synced_folder = not available in AWS – you can still use for software deployment • AWS IAM Profile = not available in Vagrant/Virtualbox – you can still use for software deployment
  • 17. Vagrant Setup • Infrastructure Provisioning: • Run “vagrant up” • Uses a Vagrantfile in root directory of project • Vagrantfile defines: • CPU, Memory • Operating System – use same as AWS! • A “Provisioner” – which runs Configuration Management • Configuration Management (aka “Provisioner”) • I prefer shell as “glue code” • Use same Configuration Management as AWS - Ansible, Chef, Puppet, Salt, etc. • Software Deployment • In Vagrant, use a “synced directory”– then changes made by developers are manifest in real-time near real-time
  • 18. AWS Setup • Infrastructure Provisioning: • Run “cfn-create-stack” • Creates an Auto Scaling Group and Launch Configuration with user-data • Use same OS as Vagrant! • Launch Configuration calls Configuration Management • Configuration Management (aka “Provisioner”) • I prefer shell as “glue code” • Use same Configuration Management as Vagrant - Ansible, Chef, Puppet, Salt, etc. • Software Deployment • Use whatever you’d like…
  • 19. Vagrant to AWS Flow - Diagram Whatever you’d like… - Ansible - Chef - Other - Puppet - SaltStack - Shell Script(s)? Just run same thing on both AWS and Vagrant! Vagrant AWS / CloudFormation Creates Instance(s) Software Deployment Infrastructure Provisioning Configuration Management Vagrant - “sync_dir” AWS Whatever you’d like: - AWS Code Deploy - Fabric - Git Push - Artifact and Sync
  • 20. Demo In the next 15 minutes we will: 1. Standup local development infrastructure on Ubuntu. 1. And look at a Vagrantfile. 2. Standup identical* production infrastructure in AWS. 1. And look at a CloudFormation file. 3. Deploy code to AWS and run the same code in Dev/Prod. 1. The deployment tool is a bit of a hack, btw…