Download - Aws opsworks for developers and designers
AWS Opsworksfor developers (and designers :) )
Wojciech Ziniewicz @fribulusxax
Capistrano UI + users
● Capistrano● Nice UI● Event based
deployment● Chef● EC2 support● Scaling
● chef +11.4● +vpc● +ruby 2.0● +resources (EIPs + EBS api)●
Historia
AWS Opsworks
● Identity and Access Management (IAM)● EC2● Chef● Layer templates● Custom stuff● UI
Secret wisdom
Basic Ruby + JSON
● IaC● auto-provisioning● deploy ruby with ruby● fun!
Stack : region, linux distro
Layer: java, rails, nodejs, lb … etcInstance: medium, large etc..
Apps: repo + url
JSON+ + =
{"deploy": { "myapp_staging": { "database": { "adapter": "postgresql", "username": "myapp_staging", "database": "myapp_staging", "password": "supersecret" }, "symlink_before_migrate":{ "config/application.yml" : "config/application.yml" } } }}
Instances lifecycle events
● Setup● Configure● Deploy● Undeploy● Shutdown
Built-in (~20 cookbooks)
Każdy lifecycle event ma “podpięte”recepty chefa
Custom recipes (1k+ cookbooks?)
Custom example{ "deploy": { "my_fancy_app": {
"hipchat_token" : "69d2627efe8f564c1cc0b6341e3291",
"hipchat_room_id": "206231",
"hipchat_run_on" : "rails-app1",
[...]
}
}
}
Custom example
Opsworks agent
● Agent runs on instances● Listens for lifecycle events● Lifecycle events trigger chef-solo run
Let’s sum up
1. User sets stack environment json (aws)2. User produces lifecycle events (e.g. deploy)3. Agent consumes events (ec2 instance)4. Agent runs cookbooks against previously set
json
Autoscaling
Idempotent recipes +
Lack of persistent storage=
Auto provisioning && Autoscaling
Addons
- resources- permissions- monitoring
Dziekuję za uwagę - pytania?
Köszönöm a figyelmet - kérdése?