Slide 1

Slide 1 text

Deploy and Manage EC2 instances with Rubber Sergey Efremov ResumUP kittens included Friday, October 5, 12

Slide 2

Slide 2 text

Deploy Early Deploy Often Friday, October 5, 12

Slide 3

Slide 3 text

Deploy Early Deploy Often Friday, October 5, 12

Slide 4

Slide 4 text

Deploy Early Deploy Often Friday, October 5, 12

Slide 5

Slide 5 text

Problems? n + 1 servers servers are different you need this new server 10 minutes ago Friday, October 5, 12

Slide 6

Slide 6 text

New server launch How it looks like Friday, October 5, 12

Slide 7

Slide 7 text

Rubber https://github.com/wr0ngway/rubber gem ‘rubber’ bundle install Friday, October 5, 12

Slide 8

Slide 8 text

Vulcanize rubber vulcanize complete_unicorn_nginx_postresql Complete Friday, October 5, 12

Slide 9

Slide 9 text

Vulcanize rubber vulcanize unicorn nginx monit munin postgresql Friday, October 5, 12

Slide 10

Slide 10 text

Rubber config #{Rails.root}/config/rubber - all configs rubber.yml - config of rubber #{Rails.root}/config/rubber/roles/(unicorn|monit) configs of tools Friday, October 5, 12

Slide 11

Slide 11 text

Rubber.yml cloud_providers.aws image_type region Friday, October 5, 12

Slide 12

Slide 12 text

Tune configs it makes me cry Friday, October 5, 12

Slide 13

Slide 13 text

Roles role_dependencies: web: [nginx] app: [unicorn, munin, monit] web_tools: [nginx] db: [postresql_master, monit] db_slave: [postresql_slave, monit] Friday, October 5, 12

Slide 14

Slide 14 text

Ready? Go! ALIAS=web01 ROLES=web cap rubber:create Friday, October 5, 12

Slide 15

Slide 15 text

Ready? Go! ALIAS=web01 ROLES=web cap rubber:create ALIAS=db01 ROLES=db cap rubber:create Friday, October 5, 12

Slide 16

Slide 16 text

Ready? Go! ALIAS=web01 ROLES=web cap rubber:create ALIAS=db01 ROLES=db cap rubber:create ALIAS=app01 ROLES=app cap rubber:create Friday, October 5, 12

Slide 17

Slide 17 text

Ready? Go! ALIAS=web01 ROLES=web cap rubber:create ALIAS=db01 ROLES=db cap rubber:create ALIAS=app01 ROLES=app cap rubber:create ALIAS=tools ROLES=web_tools cap rubber:create Friday, October 5, 12

Slide 18

Slide 18 text

Bootstrap & Deploy cap rubber:bootstrap cap rubber:deploy Friday, October 5, 12

Slide 19

Slide 19 text

Moarrr servers Friday, October 5, 12

Slide 20

Slide 20 text

App Server ALIAS=app02 ROLE=app cap rubber:create FILTER=app02 cap rubber:bootstrap cap rubber:deploy Friday, October 5, 12

Slide 21

Slide 21 text

DB Server ALIAS=db02 ROLE=db_slave cap rubber:create FILTER=db02 cap rubber:bootstrap cap rubber:deploy Friday, October 5, 12

Slide 22

Slide 22 text

Kill them all FILTER=app02 cap rubber:destroy Friday, October 5, 12

Slide 23

Slide 23 text

Your own templates cap tasks (start, stop, install) role config (packages, ports, etc.) server config (nginx.conf, etc.) It’s easy Friday, October 5, 12

Slide 24

Slide 24 text

Pull Request or GTFO more templates elastic balancer / autoscaling other cloud providers Friday, October 5, 12

Slide 25

Slide 25 text

One more thing Friday, October 5, 12

Slide 26

Slide 26 text

One more thing gem ‘capistrano-nc’ Friday, October 5, 12

Slide 27

Slide 27 text

One more thing gem ‘capistrano-nc’ Friday, October 5, 12

Slide 28

Slide 28 text

Thanks Sergey Efremov @evilfaeton ResumUP Friday, October 5, 12