Rubyizing the devs and ops of an enterprise 1.0


Published on

My Presentation during RubyConf India 2011, presented on 28th / 29th May 2011 in Bangalore India

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Rubyizing the devs and ops of an enterprise 1.0

  1. 1. Rubyizingthe Devs and Ops of an Enterprise Yashasree Barve
  2. 2. About meTechnologist @ TCS since last 13 years An Agile Ruby developer since 2007 & Im lovin it RubyConf India 2011
  3. 3. Back in 2007 Who is this Ruby? RubyConf India 2011
  4. 4. A Rewarding Journey 2011 I Love Ruby 2007 Who is this Ruby? RubyConf India 2011
  5. 5. An EnterpriseImages created using RubyConf India 2011
  6. 6. Agile Enters the Enterprise RubyConf India 2011
  7. 7. RubyConf India 2011
  8. 8. Let us try Ruby and Rails! RubyConf India 2011
  9. 9. But This is An Enterprise… Heterogeneity Performance Availability Security Complexity Scalability Reliability RubyConf India 2011
  10. 10. How to eat an Elephant? One bite at a time! RubyConf India 2011
  11. 11. THE RAILS WAY RubyConf India 2011
  12. 12. Believe it or not,most big company security break-ins involve your employees! RubyConf India 2011
  13. 13. Security Plug in Apache Passenger Apache Passenger Authenticate Rails Security Plug in App Login Single Sign On Server Authorize Enterprise Directory Server Enterprise Directory Server RubyConf India 2011
  14. 14. Microsoft ADS Domino LDAP IBM ITDSSupport ALL of those! RubyConf India 2011
  15. 15. Directory Server Plug in Apache Passenger Apache Passenger LDAP Rails Plug in App Enterprise Directory Server Enterprise Directory Server >> person = MyLdap::Person.find_name John Doe person = MyLdap::Person.find_name John Doe >> person.first_name #=> John person.first_name #=> John >> person.last_name #=> Doe person.last_name #=> Doe >> person.is_contractor? #=> true person.is_contractor? #=> true >> person.is_in_group?(some_admins) #=> true person.is_in_group?(some_admins) #=> true >> person.groups #=> [some_admins, that_user] person.groups #=> [some_admins, that_user] >> group = MyLdap::Group.find_by_name some_admins group = MyLdap::Group.find_by_name some_admins >> group.contains? person> #=> true group.contains? person> #=> true >> Other ways to find a person: Other ways to find a person: >> MyLdap::Person.find_by_distinguished_name MyLdap::Person.find_by_distinguished_name >> MyLdap::Person.find_by_sso_name MyLdap::Person.find_by_sso_name RubyConf India 2011
  16. 16. every Page you Seeevery Click you Make RubyConf India 2011
  17. 17. Usage Tracking Apache Passenger Apache Passenger Tracking Rails Plug in App HTTP Enterprise Usage Tracking Enterprise Usage Tracking External Server External Server enable_page_tracking to track who visited which page enable_page_tracking to track who visited which page link_to to send info about clicked link link_to to send info about clicked link Set defaults inin environment.rb Set defaults environment.rb Define app specific parameters inin environment config Define app specific parameters environment config Rake task to include relevant files inin the application Rake task to include relevant files the application RubyConf India 2011
  18. 18. Plug ins that DRYed us RubyConf India 2011
  19. 19. Hosting Internally C:my_apptrunk>gem install –source C:my_apptrunk>gem install –source http://mygemserver:8808/ distribute http://mygemserver:8808/ distribute Gem Server C:my_apptrunk>ruby script/plugin C:my_apptrunk>ruby script/plugin install my_security –source install my_security –source Enterprise Subversion Server RubyConf India 2011
  20. 20. Rails Up and RunningSOURCE: Source RubyConf India 2011
  21. 21. Create a Brand New Rails app that • gets committed in SCM • configured on CI • branding, security, ldap, and so on installed • ready to be deployed with configured Capfile • defaults to rspec, mocha, cucumber RubyConf India 2011
  22. 22. Way We Work Keep it Keep it Simple. Simple. Automated Automated Tests, Tests, A part of life. A part of life. Continuously Continuously Integrate, Integrate, Release Release Often. Often. RubyConf India 2011
  23. 23. Vibrant Rubyists Group Team up Share Excel RubyConf India 2011
  24. 24. Oops!But what about the Ops RubyConf India 2011
  25. 25. The BIG Task of Deployment C:my_apptrunk>capd deploy:migrationsC:my_apptrunk>capd deploy:migrations triggering start callbacks for `deploy:migrations triggering start callbacks for `deploy:migrationsSelect Stage: Select Stage: 1. production1. production 2. integration2. integration >> capd apache:configure capd apache:configure 3. devutility3. devutility >> capd apache:passenger:configure capd apache:passenger:configure 4. qa4. qa >> capd apache:restart capd apache:restart Please select:Please select: >> capd install capd install >> capd uninstall capd uninstall >> capd deploy:bundle_gems capd deploy:bundle_gems >> capd deploy:minify_and_upload_assets capd deploy:minify_and_upload_assets >> capd deploy:minify_erbs capd deploy:minify_erbs >> capd google:configure capd google:configure >> capd ldap:configure capd ldap:configure >> capd database:configure capd database:configure >> capd hoptoad:notify capd hoptoad:notify Powered by Capistrano and Passenger RubyConf India 2011
  26. 26. Towards One Click deployment Inspired by Heroku RubyConf India 2011
  27. 27. Busting those Tickets! Legacy Enterprise Apps Legacy Enterprise Apps Apache Passenger Apache Passenger Admin Rails App RubyConf India 2011
  28. 28. More Transparency Splunk Splunk Hoptoad Hoptoad RubyConf India 2011
  29. 29. Chef at work Infrastructure as a code and The code is Ruby RubyConf India 2011
  30. 30. Envisioning the Provisioning• Monitor the App Performance• Spin a virtual server to scale horizontally RubyConf India 2011
  31. 31. Dev Ops RubyConf India 2011
  32. 32. This presentation would not have been possible without My fellow Rubyists Amit Kumar Thomas Newton Patrick Shaughnessy & My creative designer buddy Mayura Sawant Thanks mates! RubyConf India 2011
  33. 33. Thank you all for being patient and hearing me out. Hope this helps you! Any questions? RubyConf India 2011