The Unthodox Ways

DevBox => Production


Vipul A M 

Fab.com 
g+t@vipulnsward
J/Ruby / Rails.



Vivek Dubey

DevOps, Fab.com
 

Prologue.




~The Dev




In the beginning.


  • Development
  • QA
  • Low on tests
  • High reliability on QA



"Super-Agile"







* TM



Not able to completely test things on local



Dependency of staging

The Equation


Less developers => Less stagings

More developers => Still less stagings

Even More developers => Wait what.



Pushing towards complete local ENV

Set of Services to tackle

  • Rails
  • Memcached
  • redis-server
  • Search-Service
  • Solr
  • configs - DB/GeoIP
  • Solr configs/indexings
  • resque, node-js
  • etc



  • Data Population/ Automation
  • Smokes
  • Sandboxing

Learnings


  • Setting up for development can be hell
  • Everyone's taste, Problem is different
  • Most felt when upgrading/getting new developers started
  • Making new developers get off-ground < 1 day vs >1-2 weeks. 

Use ->


1. https://github.com/pivotal-sprout/sprout-wrap
2.https://github.com/thoughtbot/laptop
3.
https://github.com/boxen/boxen


* Make seed-data available.
* Setup task to get all services up and in sync
* Anticipate different environments


~The QA

Most time spent getting things QA’d then development.



“Disposable stagings”



instapusher


~ln snap-ci

Workflow

  1. git branch 
  2. develop 
  3. git commit
  4. instapusher 
  5. QA 
  6. verified
  7. throw away 
  8. Iterate 

~instapusher


  • create new staging
  • setup sample data 
  • setting ENV configs
  • startup services 
  • start server/ post scripts 

~Learnings


  • Do away with repeating setups - wasting 1+ week 
  • Foster better local development 
  • Do away with time for pushing to staging 
  • Developer just wants to get away with development 
  • Have fun with the time saved 




Deployment process   




~The Ops




Deployment to Production Box





First challenge


Deploying to a shared environment




Which tool?




Chef!

• Ruby
• SCM and Deployment
• Attribute override
• Search queries
• Data bags
• Knife as management tool

Attributes


 {
  "app":"web",
  "tar_version":"1234",
  "service_restart":"false"
}



Deployment Process




Deployment Done


What's next?



Next Challenges

  • Reduce deployment time
  • Hot fixes



    Reduce Deployment Time

    • Deploy just what you need
    • Reduce attribute override time




    Patch Deployment



    Deploy what you need 

    • Deploy only changed files
    • Create necessary configs

    Patch Deployment




    Hot Fixes



    Thank you!



    http://slid.es/vipulnsward/devopsdays2013

    devopsdays2013

    By vipulnsward

    devopsdays2013

    • 2,887