SlideShare a Scribd company logo
Dev-Friendly Ops 
or how OpsWorks has made my life way better
A Little Background 
• Hi, I’m Josh 
• I’m not an Ops guy 
• Mostly a Ruby on Rails Dev 
• .Net in a previous life but OpsWorks doesn’t 
really support it 
• I’ve become an Ops guy by necessity
“You’re doing everything wrong.” 
–Every Programmer on Twitter
How We Use It 
• I Work There -> 
• We have ~8 clients on 
OpsWorks 
• This presentation is about how 
we’ve done things. Not always 
the “right” way. 
• Tell me why I’m wrong
OpsWorks 101 
• Hosted Infrastructure on Amazon Web Services 
• Free* 
• Chef Solo / Chef Client (based on chef version) 
• Evolving really really quickly 
* (with purchase of everything else)
Four Structures 
1. Stack 
2. Layer 
3. App 
4. Instance
Stack 
• Stacks are supposed to represent your entire 
application and all of it’s infrastructure dependencies. 
• In general each environment will be a different stack 
• Production / Staging / QA / etc. 
• This is not how L7 is doing it. I’ll explain why in a bit. 
• Stacks set default values for future layers and 
instances
Dev-Friendly Ops
Dev-Friendly Ops
• Custom JSON 
• This is how you define config points for your 
app. 
• There’s a bunch of default JSON hooks that tie 
into opsworks recipes 
• You can use this in custom recipes 
• How you configure your database if you’re NOT 
using RDS
Custom Cookbook
Mysql??? WTF
Layer 
• This is a slice of your application 
• Application Server / Web Server / Database / 
Task Server / etc. 
• OpsWorks predefines a bunch (including Rails) 
• Only 1 of each (except custom) 
• This is why we don’t use stacks correctly
• Layer is where you setup individual chef recipes 
to run 
• You can also configure settings for the layer type 
• Ruby version, passenger vs nginx, bundler, 
load balancer and other resources 
• This will change based on the layer type and be 
pretty lean on custom layers
Dev-Friendly Ops
Dev-Friendly Ops
Dev-Friendly Ops
App 
• Details your specific App Settings 
• You CAN have multiple apps but they should rely 
on the same layer settings 
• aka same ruby version, web server, etc. 
• Git Settings, Environment Variables, Domains, SSL 
Certificates, Database Connection all goes here 
• Questions vary based on layer type
Dev-Friendly Ops
Dev-Friendly Ops
Instances 
• This defines the metal you’ll be running on 
• Inherits from Stack settings 
• Size, Name, Availability Zone, SSH Access, OS all 
configured here 
• You can also setup autoscaling here 
• Automatically spin up and down boxes based on 
load or time
Dev-Friendly Ops
Dev-Friendly Ops
Dev-Friendly Ops
Chef 
• Every Stack can define a Custom Cookbooks Repo 
• You can also use Berkshelf 
• If you don’t use Berkshelf I’d make each recipe an 
individual repo and submodule them in 
• Also: Make your cookbooks public if you can and keep 
sensitive info in environment variables 
• Getting a private repo to work is possible but a total 
PITA
• OpsWorks publishes their default cookbooks 
here: 
• https://github.com/aws/opsworks-cookbooks 
• Check the branch, master is useless the 
branches map to chef version 
• We fork this for each project and then edit 
• Matt Case told me I’m a bad person for doing 
this
Deployment 
• Goodbye Capistrano, hello mediocre Capistrano 
clone. 
• Same folder structure as cap 
• Terrible command line support. Working on rake 
tasks for this but who knows when we’ll be able to 
post them 
• 0 downtime deploys either need custom code or 
use the Web UI
• Deploy Hooks - /deploy folder in project, use for 
asset compile 
• Tasks - Create chef cookbook, execute as 
command 
• OpsWorks deploys are slower than other tools 
(getting better)
Dev-Friendly Ops
The Good 
• DevOps for Dummies (or developers like me) 
• Free* 
• Great integration with AWS (obviously) 
• Comprehensive API 
• Really detailed documentation
• Default server configs are pretty solid. (I’ve used 
Rails and Node) 
• Security Updates 
• Sidenote: Heartbleed and Shellshock 
• Amazon is actively improving the tool 
• RDS, Environment Vars both added recently
The Bad 
• Documentation is confusing at times 
• Reads like a technical manual because, well, it 
is a technical manual 
• Quick obsolescence 
• Chef updates, new features, etc.
AWS Integration 
• Recently added RDS support so no more giant JSON 
blocks 
• CloudWatch for monitoring as well as autoscaling 
• New Relic is still better for monitoring though 
• IAM Security makes it easier to control access 
• Servers are EC2, so you get all that stuff too 
• Can map resources within opsworks (load balancers, EBS 
volumes, etc.)
Questions? 
• Josh Schramm 
• @JoshReedSchramm on the twitters 
• josh.schramm@gmail.com 
• Slides on slideshare and I’ll try and remember to 
tweet that.

More Related Content

PPTX
Infrastructure as Code
PDF
MJ Berends talk - Women & Non-Binary Focused Intro to AWS
PPTX
Chef + AWS + CodeIgniter
PDF
SaltConf14 - Craig Sebenik, LinkedIn - SaltStack at Web Scale
PPTX
Continuous Delivery and Infrastructure as Code
PPTX
Actors Set the Stage for Project Orleans
KEY
Erlang - Dive Right In
PDF
Five Years of EC2 Distilled
Infrastructure as Code
MJ Berends talk - Women & Non-Binary Focused Intro to AWS
Chef + AWS + CodeIgniter
SaltConf14 - Craig Sebenik, LinkedIn - SaltStack at Web Scale
Continuous Delivery and Infrastructure as Code
Actors Set the Stage for Project Orleans
Erlang - Dive Right In
Five Years of EC2 Distilled

What's hot (20)

PDF
ITB2016 - Mixing up the front end with ColdBox elixir
PDF
Webinar: Queues with RabbitMQ - Lorna Mitchell
PDF
Intro To Serverless ClojureScript
PDF
Ceylon From Here to Infinity: The Big Picture and What's Coming
KEY
Managing Distributed Systems with Chef
PPTX
Creating SaltStack State data with Pyobjects
PPTX
Rainbows, Unicorns, and other Fairy Tales in the Land of Serverless Dreams
PDF
Armada - the way to ship microservices
PDF
NDev Talk - Serverless Design Patterns
PPTX
RavenDB 4.0
PPTX
20131002
PPTX
SaltConf2015: SaltStack at Scale Automating Your Automation
PDF
Beyond Apache: Faster Web Servers
PDF
User-percieved performance
KEY
Java to scala
PPTX
RavenDB 3.5
PPTX
Extending ansible
PPTX
A Brief Intro to Microsoft Orleans
PDF
Hacking on WildFly 9
PPT
Ruby Setup
ITB2016 - Mixing up the front end with ColdBox elixir
Webinar: Queues with RabbitMQ - Lorna Mitchell
Intro To Serverless ClojureScript
Ceylon From Here to Infinity: The Big Picture and What's Coming
Managing Distributed Systems with Chef
Creating SaltStack State data with Pyobjects
Rainbows, Unicorns, and other Fairy Tales in the Land of Serverless Dreams
Armada - the way to ship microservices
NDev Talk - Serverless Design Patterns
RavenDB 4.0
20131002
SaltConf2015: SaltStack at Scale Automating Your Automation
Beyond Apache: Faster Web Servers
User-percieved performance
Java to scala
RavenDB 3.5
Extending ansible
A Brief Intro to Microsoft Orleans
Hacking on WildFly 9
Ruby Setup
Ad

Similar to Dev-Friendly Ops (20)

PDF
Introduction to Cooking with Chef
PPTX
Scaling with swagger
PPTX
Chef for Openstack
KEY
Perl in Teh Cloud
PDF
Chef for openstack
PDF
Chef: Smart infrastructure automation
PDF
Chef Fundamentals Training Series Module 1: Overview of Chef
PPTX
Opscode Chef for Dummies
PDF
Service-Oriented Design and Implement with Rails3
KEY
Full-Stack CakePHP Deployment
PDF
Velocity 2011 Chef OpenStack Workshop
PPTX
Chef Jumpstart
PPTX
Opscode Webinar: Managing Your VMware Infrastructure with Chef
PDF
Introduction to Chef: Automate Your Infrastructure by Modeling It In Code
PDF
NLUUG print conference May 26 2016
PDF
Workflow Engines for Hadoop
PDF
Scaling Django Apps using AWS Elastic Beanstalk
KEY
Why ruby and rails
PPTX
Overview of PaaS: Java experience
PPTX
Overview of PaaS: Java experience
Introduction to Cooking with Chef
Scaling with swagger
Chef for Openstack
Perl in Teh Cloud
Chef for openstack
Chef: Smart infrastructure automation
Chef Fundamentals Training Series Module 1: Overview of Chef
Opscode Chef for Dummies
Service-Oriented Design and Implement with Rails3
Full-Stack CakePHP Deployment
Velocity 2011 Chef OpenStack Workshop
Chef Jumpstart
Opscode Webinar: Managing Your VMware Infrastructure with Chef
Introduction to Chef: Automate Your Infrastructure by Modeling It In Code
NLUUG print conference May 26 2016
Workflow Engines for Hadoop
Scaling Django Apps using AWS Elastic Beanstalk
Why ruby and rails
Overview of PaaS: Java experience
Overview of PaaS: Java experience
Ad

Recently uploaded (20)

PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Cloud computing and distributed systems.
PDF
KodekX | Application Modernization Development
PDF
Empathic Computing: Creating Shared Understanding
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPT
Teaching material agriculture food technology
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
Big Data Technologies - Introduction.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
MIND Revenue Release Quarter 2 2025 Press Release
Per capita expenditure prediction using model stacking based on satellite ima...
Cloud computing and distributed systems.
KodekX | Application Modernization Development
Empathic Computing: Creating Shared Understanding
Encapsulation_ Review paper, used for researhc scholars
Network Security Unit 5.pdf for BCA BBA.
Unlocking AI with Model Context Protocol (MCP)
Reach Out and Touch Someone: Haptics and Empathic Computing
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Teaching material agriculture food technology
Programs and apps: productivity, graphics, security and other tools
Advanced methodologies resolving dimensionality complications for autism neur...
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Big Data Technologies - Introduction.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
Spectral efficient network and resource selection model in 5G networks
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
MIND Revenue Release Quarter 2 2025 Press Release

Dev-Friendly Ops

  • 1. Dev-Friendly Ops or how OpsWorks has made my life way better
  • 2. A Little Background • Hi, I’m Josh • I’m not an Ops guy • Mostly a Ruby on Rails Dev • .Net in a previous life but OpsWorks doesn’t really support it • I’ve become an Ops guy by necessity
  • 3. “You’re doing everything wrong.” –Every Programmer on Twitter
  • 4. How We Use It • I Work There -> • We have ~8 clients on OpsWorks • This presentation is about how we’ve done things. Not always the “right” way. • Tell me why I’m wrong
  • 5. OpsWorks 101 • Hosted Infrastructure on Amazon Web Services • Free* • Chef Solo / Chef Client (based on chef version) • Evolving really really quickly * (with purchase of everything else)
  • 6. Four Structures 1. Stack 2. Layer 3. App 4. Instance
  • 7. Stack • Stacks are supposed to represent your entire application and all of it’s infrastructure dependencies. • In general each environment will be a different stack • Production / Staging / QA / etc. • This is not how L7 is doing it. I’ll explain why in a bit. • Stacks set default values for future layers and instances
  • 10. • Custom JSON • This is how you define config points for your app. • There’s a bunch of default JSON hooks that tie into opsworks recipes • You can use this in custom recipes • How you configure your database if you’re NOT using RDS
  • 13. Layer • This is a slice of your application • Application Server / Web Server / Database / Task Server / etc. • OpsWorks predefines a bunch (including Rails) • Only 1 of each (except custom) • This is why we don’t use stacks correctly
  • 14. • Layer is where you setup individual chef recipes to run • You can also configure settings for the layer type • Ruby version, passenger vs nginx, bundler, load balancer and other resources • This will change based on the layer type and be pretty lean on custom layers
  • 18. App • Details your specific App Settings • You CAN have multiple apps but they should rely on the same layer settings • aka same ruby version, web server, etc. • Git Settings, Environment Variables, Domains, SSL Certificates, Database Connection all goes here • Questions vary based on layer type
  • 21. Instances • This defines the metal you’ll be running on • Inherits from Stack settings • Size, Name, Availability Zone, SSH Access, OS all configured here • You can also setup autoscaling here • Automatically spin up and down boxes based on load or time
  • 25. Chef • Every Stack can define a Custom Cookbooks Repo • You can also use Berkshelf • If you don’t use Berkshelf I’d make each recipe an individual repo and submodule them in • Also: Make your cookbooks public if you can and keep sensitive info in environment variables • Getting a private repo to work is possible but a total PITA
  • 26. • OpsWorks publishes their default cookbooks here: • https://github.com/aws/opsworks-cookbooks • Check the branch, master is useless the branches map to chef version • We fork this for each project and then edit • Matt Case told me I’m a bad person for doing this
  • 27. Deployment • Goodbye Capistrano, hello mediocre Capistrano clone. • Same folder structure as cap • Terrible command line support. Working on rake tasks for this but who knows when we’ll be able to post them • 0 downtime deploys either need custom code or use the Web UI
  • 28. • Deploy Hooks - /deploy folder in project, use for asset compile • Tasks - Create chef cookbook, execute as command • OpsWorks deploys are slower than other tools (getting better)
  • 30. The Good • DevOps for Dummies (or developers like me) • Free* • Great integration with AWS (obviously) • Comprehensive API • Really detailed documentation
  • 31. • Default server configs are pretty solid. (I’ve used Rails and Node) • Security Updates • Sidenote: Heartbleed and Shellshock • Amazon is actively improving the tool • RDS, Environment Vars both added recently
  • 32. The Bad • Documentation is confusing at times • Reads like a technical manual because, well, it is a technical manual • Quick obsolescence • Chef updates, new features, etc.
  • 33. AWS Integration • Recently added RDS support so no more giant JSON blocks • CloudWatch for monitoring as well as autoscaling • New Relic is still better for monitoring though • IAM Security makes it easier to control access • Servers are EC2, so you get all that stuff too • Can map resources within opsworks (load balancers, EBS volumes, etc.)
  • 34. Questions? • Josh Schramm • @JoshReedSchramm on the twitters • josh.schramm@gmail.com • Slides on slideshare and I’ll try and remember to tweet that.