SlideShare a Scribd company logo
SeeClickF

Deploying Rails
When you’re deploying multiple
times a day, it needs to be reliable
and trusted

SeeClickF

…remove the human from the
process.
SeeClickF

Existing Solutions
SeeClickF

Never roll your own solution

Until you’ve felt the Pain
Capistrano’s Deploy Model
•

•
•
•
•
•

Requires developer
ssh access
Requires reliable
connection between
developer and servers
sudo is probably
involved in some way
ssh key forwarding is
also probably involved
Slow deploys hold up
developers
Deploys are
conducted by humans
Doesn’t scale

SeeClickF

•
SeeClickF

Something’s wrong when the
solution is more complicated
than the problem it’s trying to
solve
Deploys at SeeClickFix

•
•
•
•
•

ssh or network access not
required
dev’s console is not held up
deploying
Scales well
No complicated setup or
configuration. We can all git push
Deploys via the “merge” button
master branch is always
production

SeeClickF

•
App Servers Display Build Info
/builds/info - Shows current
state

SeeClickF

/builds/log - Shows deploy log
Chef Builds the App Server
{

1. Add a server to chef
2. It builds itself
3. It pulls from github
and deploys itself

SeeClickF

"exceptional_api_key": "",
"rails_env": "production",
"db": "scf_productio",
"port": "3000",
"service_roles": {
"deploy_notifier": "app1.seeclickfix.com",
"integration_syncr": "app1.seeclickfix.com",
"migrator": "app1.seeclickfix.com",
"cron_runner": "app1.seeclickfix.com",
"queue_hosts": "app1.seeclickfix.com"
},
"install_location": "/var/www/seeclickfix_prod",
"repo": "ssh://git@github.com/SeeClickFix/scf.git",
"branch": "master",
"unicorn": {
"nprocs": "4"
}
How code gets to Prod

SeeClickF

1. devs merge to develop
2. develop deploys to
test.seeclickfix.com
3. Travis CI tests develop
4. If CI passes, Travis
merges tested sha to
master
5. master deploys to
seeclickfix.com
CI really deploys to Prod

CI’s job queue acts like
the deploy queue.
• Deploys can be skipped
using the [ci skip] tag.

SeeClickF

•
SeeClickF

SeeClickFix is
Hiring!

More Related Content

PDF
Using Habitat to Unify Dev to CI to Production - Configmgmt Camp Feb/2018 Gent
PDF
Bay Area Chef Meetup February
PPTX
Continuous integration
PPTX
Network Automation at Shapeways
PPTX
What's New in Puppet Enterprise 2016.5
PDF
Seminar continuous delivery 19092013
PPTX
Continuous Delivery with TFS msbuild msdeploy
PPTX
What's New in Puppet Enterprise 2016.4
Using Habitat to Unify Dev to CI to Production - Configmgmt Camp Feb/2018 Gent
Bay Area Chef Meetup February
Continuous integration
Network Automation at Shapeways
What's New in Puppet Enterprise 2016.5
Seminar continuous delivery 19092013
Continuous Delivery with TFS msbuild msdeploy
What's New in Puppet Enterprise 2016.4

What's hot (20)

PPTX
Introduction to Puppet Enterprise 2016.4
PPTX
What's New in Puppet Enterprise 2016.4
PPTX
Jenkins Introduction
PPTX
Jenkins - From Continuous Integration to Continuous Delivery
PPTX
Effective Testing with Ansible and InSpec
PDF
Práticas, Técnicas e Ferramentas para Continuous Delivery com ALM
PPTX
Controlled Evolution with Puppet and AWS
PPTX
Introduction to Test Kitchen and InSpec
PDF
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
PPTX
Continuous delivery applied (RJUG)
PPTX
Effective Testing with Ansible and InSpec
PPTX
Introduction to Puppet Enterprise
PPTX
Transforming Organizations with CI/CD
PDF
Continuous Integration
PDF
Continuous Deployment To The Cloud @DevoxxPL 2017
PPTX
Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
PDF
Analyze This! CloudBees Jenkins Cluster Operations and Analytics
PPTX
DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...
PDF
Scaling Jenkins Enterprise Wide
PDF
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
Introduction to Puppet Enterprise 2016.4
What's New in Puppet Enterprise 2016.4
Jenkins Introduction
Jenkins - From Continuous Integration to Continuous Delivery
Effective Testing with Ansible and InSpec
Práticas, Técnicas e Ferramentas para Continuous Delivery com ALM
Controlled Evolution with Puppet and AWS
Introduction to Test Kitchen and InSpec
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
Continuous delivery applied (RJUG)
Effective Testing with Ansible and InSpec
Introduction to Puppet Enterprise
Transforming Organizations with CI/CD
Continuous Integration
Continuous Deployment To The Cloud @DevoxxPL 2017
Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
Analyze This! CloudBees Jenkins Cluster Operations and Analytics
DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...
Scaling Jenkins Enterprise Wide
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
Ad

Viewers also liked (16)

PDF
DSE Final Presentation 2
PPTX
PDF
吳佳儒 2014 Java Developer Day 心得分享
PDF
DSE Student Presentation 3
PPTX
Presentation on scientists
PPTX
Presentation on scientists
PPTX
캔들플라워
PDF
DSE Final Presentation
PPTX
Plastic parts of car m.mehmeti
PDF
Zhivar Glass Doors
PPTX
이시각 어플
PDF
Design Impact and Embedded Design
PPTX
발표Ppt 수정본
PPT
Standard costing setting standards and analysis of variance
DSE Final Presentation 2
吳佳儒 2014 Java Developer Day 心得分享
DSE Student Presentation 3
Presentation on scientists
Presentation on scientists
캔들플라워
DSE Final Presentation
Plastic parts of car m.mehmeti
Zhivar Glass Doors
이시각 어플
Design Impact and Embedded Design
발표Ppt 수정본
Standard costing setting standards and analysis of variance
Ad

Similar to Deploying Rails at SeeClickFix (20)

PDF
Kuby, ActiveDeployment for Rails Apps
PDF
Hosting Ruby Web Apps
PDF
Capistrano
PDF
Railsconf 2014 - Deploying Rails is Easier Thank It Looks
PDF
Capistrano for non-rubyist
PDF
Zero to hero - Geoff Webb
PDF
OSMC 2017 | Groovy There is a Docker in my Dashing Pipeline by Kris Buytaert
PDF
Groovy there's a docker in my application pipeline
PPTX
Capistrano 3 Deployment
PDF
Large-scaled Deploy Over 100 Servers in 3 Minutes
PDF
Deploy node.js app with capistrano
PDF
Rock Solid Deployment of Web Applications
PDF
Running CentOS on the Facebook fleet
PDF
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
PDF
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
PDF
Advanced technic for OS upgrading in 3 minutes
PDF
2013 10-25 dev-opsdays
PDF
Deploying Rails Applications with Capistrano
KEY
Full-Stack CakePHP Deployment
PPT
Django Hosting
Kuby, ActiveDeployment for Rails Apps
Hosting Ruby Web Apps
Capistrano
Railsconf 2014 - Deploying Rails is Easier Thank It Looks
Capistrano for non-rubyist
Zero to hero - Geoff Webb
OSMC 2017 | Groovy There is a Docker in my Dashing Pipeline by Kris Buytaert
Groovy there's a docker in my application pipeline
Capistrano 3 Deployment
Large-scaled Deploy Over 100 Servers in 3 Minutes
Deploy node.js app with capistrano
Rock Solid Deployment of Web Applications
Running CentOS on the Facebook fleet
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
Advanced technic for OS upgrading in 3 minutes
2013 10-25 dev-opsdays
Deploying Rails Applications with Capistrano
Full-Stack CakePHP Deployment
Django Hosting

Recently uploaded (20)

PPTX
Spectroscopy.pptx food analysis technology
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Encapsulation theory and applications.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Big Data Technologies - Introduction.pptx
PDF
cuic standard and advanced reporting.pdf
Spectroscopy.pptx food analysis technology
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Understanding_Digital_Forensics_Presentation.pptx
“AI and Expert System Decision Support & Business Intelligence Systems”
Reach Out and Touch Someone: Haptics and Empathic Computing
Network Security Unit 5.pdf for BCA BBA.
MIND Revenue Release Quarter 2 2025 Press Release
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Empathic Computing: Creating Shared Understanding
Spectral efficient network and resource selection model in 5G networks
Per capita expenditure prediction using model stacking based on satellite ima...
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Unlocking AI with Model Context Protocol (MCP)
Encapsulation theory and applications.pdf
MYSQL Presentation for SQL database connectivity
Diabetes mellitus diagnosis method based random forest with bat algorithm
Dropbox Q2 2025 Financial Results & Investor Presentation
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Big Data Technologies - Introduction.pptx
cuic standard and advanced reporting.pdf

Deploying Rails at SeeClickFix

  • 2. When you’re deploying multiple times a day, it needs to be reliable and trusted SeeClickF …remove the human from the process.
  • 4. SeeClickF Never roll your own solution Until you’ve felt the Pain
  • 5. Capistrano’s Deploy Model • • • • • • Requires developer ssh access Requires reliable connection between developer and servers sudo is probably involved in some way ssh key forwarding is also probably involved Slow deploys hold up developers Deploys are conducted by humans Doesn’t scale SeeClickF •
  • 6. SeeClickF Something’s wrong when the solution is more complicated than the problem it’s trying to solve
  • 7. Deploys at SeeClickFix • • • • • ssh or network access not required dev’s console is not held up deploying Scales well No complicated setup or configuration. We can all git push Deploys via the “merge” button master branch is always production SeeClickF •
  • 8. App Servers Display Build Info /builds/info - Shows current state SeeClickF /builds/log - Shows deploy log
  • 9. Chef Builds the App Server { 1. Add a server to chef 2. It builds itself 3. It pulls from github and deploys itself SeeClickF "exceptional_api_key": "", "rails_env": "production", "db": "scf_productio", "port": "3000", "service_roles": { "deploy_notifier": "app1.seeclickfix.com", "integration_syncr": "app1.seeclickfix.com", "migrator": "app1.seeclickfix.com", "cron_runner": "app1.seeclickfix.com", "queue_hosts": "app1.seeclickfix.com" }, "install_location": "/var/www/seeclickfix_prod", "repo": "ssh://git@github.com/SeeClickFix/scf.git", "branch": "master", "unicorn": { "nprocs": "4" }
  • 10. How code gets to Prod SeeClickF 1. devs merge to develop 2. develop deploys to test.seeclickfix.com 3. Travis CI tests develop 4. If CI passes, Travis merges tested sha to master 5. master deploys to seeclickfix.com
  • 11. CI really deploys to Prod CI’s job queue acts like the deploy queue. • Deploys can be skipped using the [ci skip] tag. SeeClickF •