SlideShare a Scribd company logo
1 of 33
Download to read offline
Rubyizing
the Devs and Ops
 of an Enterprise
     Yashasree Barve
About me




Technologist @ TCS since last 13 years


 An Agile   Ruby developer since 2007
                    &

               I'm lovin' it



                                     RubyConf India 2011
Back in 2007




               Who is this Ruby?


                                   RubyConf India 2011
A Rewarding Journey




          2011

  I Love Ruby




                                    2007

                      Who is this Ruby?



                                     RubyConf India 2011
An Enterprise




Images created using wordle.net   RubyConf India 2011
Agile Enters the Enterprise




                              RubyConf India 2011
RubyConf India 2011
Let us try Ruby and Rails!




                             RubyConf India 2011
But This is An Enterprise…




                      Heterogeneity
      Performance                     Availability


                                         Security
    Complexity



                                          Scalability
  Reliability




                                                        RubyConf India 2011
How to eat an Elephant?

  One bite at a time!




                          RubyConf India 2011
THE RAILS WAY




                RubyConf India 2011
Believe it or not,
most big company security break-ins
      involve your employees!




                                      RubyConf India 2011
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
Microsoft ADS
    Domino LDAP
      IBM ITDS


Support   ALL of those!


                          RubyConf India 2011
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
every Page you See

every Click you Make




                       RubyConf India 2011
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
Plug ins that DRYed us




                         RubyConf India 2011
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
                      http://svn....com/ruby/plugins/my_security/trunk
                     http://svn....com/ruby/plugins/my_security/trunk

   Enterprise
   Subversion
     Server




                                                                   RubyConf India 2011
Rails
                   Up and Running




SOURCE: Source                      RubyConf India 2011
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
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
Vibrant Rubyists Group




       Team up           Share   Excel




                                         RubyConf India 2011
Oops!

But what about the
      Ops



                     RubyConf India 2011
The BIG Task of Deployment



 C:my_apptrunk>capd deploy:migrations
C:my_apptrunk>capd deploy:migrations
     triggering start callbacks for `deploy:migrations'
    triggering start callbacks for `deploy:migrations'
Select Stage:
 Select Stage:
 1. production
1. production
 2. integration
2. integration        >> capd apache:configure
                          capd apache:configure
 3. devutility
3. devutility         >> capd apache:passenger:configure
                          capd apache:passenger:configure
 4. qa
4. 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
Towards One Click deployment




                               Inspired by Heroku




                                                    RubyConf India 2011
Busting those Tickets!



                         Legacy Enterprise Apps
                         Legacy Enterprise Apps

    Apache Passenger
    Apache Passenger




      Admin Rails
         App




                                                  RubyConf India 2011
More Transparency




            Splunk
            Splunk


                    Hoptoad
                    Hoptoad




                              RubyConf India 2011
Chef at work




               Infrastructure as a code
                          and
                The code is Ruby




                                          RubyConf India 2011
Envisioning the Provisioning




• Monitor the App Performance

• Spin a virtual server to scale horizontally




                                                RubyConf India 2011
Dev   Ops




            RubyConf India 2011
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
Thank you all for being patient and hearing me out.

               Hope this helps you!



           Any questions?




                                                      RubyConf India 2011

More Related Content

Similar to Rubyizing the devs and ops of an enterprise 1.0

SF DevOps: Introducing Vagrant
SF DevOps: Introducing VagrantSF DevOps: Introducing Vagrant
SF DevOps: Introducing VagrantMitchell Hashimoto
 
Dev ops for cross platform mobile modeveast 12
Dev ops for cross platform mobile   modeveast 12Dev ops for cross platform mobile   modeveast 12
Dev ops for cross platform mobile modeveast 12Sanjeev Sharma
 
Creating a World-Class RESTful Web Services API
Creating a World-Class RESTful Web Services APICreating a World-Class RESTful Web Services API
Creating a World-Class RESTful Web Services APIDavid Keener
 
How Heroku uses Heroku to build Heroku
How Heroku uses Heroku to build HerokuHow Heroku uses Heroku to build Heroku
How Heroku uses Heroku to build HerokuCraig Kerstiens
 
Rails 5 – most effective features for apps upgradation
Rails 5 – most effective features for apps upgradationRails 5 – most effective features for apps upgradation
Rails 5 – most effective features for apps upgradationAndolasoft Inc
 
Cloud Foundry Bootcamp
Cloud Foundry BootcampCloud Foundry Bootcamp
Cloud Foundry BootcampAndy Piper
 
IBM Pulse 2013 session - DevOps for Mobile Apps
IBM Pulse 2013 session - DevOps for Mobile AppsIBM Pulse 2013 session - DevOps for Mobile Apps
IBM Pulse 2013 session - DevOps for Mobile AppsSanjeev Sharma
 
DevOps for Mobile - DevOpsDays, NY, 2013
DevOps for Mobile - DevOpsDays, NY, 2013DevOps for Mobile - DevOpsDays, NY, 2013
DevOps for Mobile - DevOpsDays, NY, 2013Sanjeev Sharma
 
Hibernate complete notes_by_sekhar_sir_javabynatara_j
Hibernate complete notes_by_sekhar_sir_javabynatara_jHibernate complete notes_by_sekhar_sir_javabynatara_j
Hibernate complete notes_by_sekhar_sir_javabynatara_jSatya Johnny
 
Hibernate complete notes_by_sekhar_sir_javabynatara_j
Hibernate complete notes_by_sekhar_sir_javabynatara_jHibernate complete notes_by_sekhar_sir_javabynatara_j
Hibernate complete notes_by_sekhar_sir_javabynatara_jSatya Johnny
 
Services inception in Ruby
Services inception in RubyServices inception in Ruby
Services inception in RubyDave McCrory
 
Social Enterprise Java Apps on Heroku Webinar
Social Enterprise Java Apps on Heroku WebinarSocial Enterprise Java Apps on Heroku Webinar
Social Enterprise Java Apps on Heroku WebinarSalesforce Developers
 
PeopleSoft: HACK THE Planet^W university
PeopleSoft: HACK THE  Planet^W universityPeopleSoft: HACK THE  Planet^W university
PeopleSoft: HACK THE Planet^W universityDmitry Iudin
 
OSGi Service Platform 4.2
OSGi Service Platform 4.2OSGi Service Platform 4.2
OSGi Service Platform 4.2Ilya Katsov
 
Social ent. with java on heroku
Social ent. with java on herokuSocial ent. with java on heroku
Social ent. with java on herokuAnand B Narasimhan
 
Continuous delivery on the cloud
Continuous delivery on the cloudContinuous delivery on the cloud
Continuous delivery on the cloudAnand B Narasimhan
 
TLS303 How to Deploy Python Applications on AWS Elastic Beanstalk - AWS re:In...
TLS303 How to Deploy Python Applications on AWS Elastic Beanstalk - AWS re:In...TLS303 How to Deploy Python Applications on AWS Elastic Beanstalk - AWS re:In...
TLS303 How to Deploy Python Applications on AWS Elastic Beanstalk - AWS re:In...Amazon Web Services
 
Connecting with the enterprise - The how and why of connecting to Enterprise ...
Connecting with the enterprise - The how and why of connecting to Enterprise ...Connecting with the enterprise - The how and why of connecting to Enterprise ...
Connecting with the enterprise - The how and why of connecting to Enterprise ...Kevin Poorman
 

Similar to Rubyizing the devs and ops of an enterprise 1.0 (20)

SF DevOps: Introducing Vagrant
SF DevOps: Introducing VagrantSF DevOps: Introducing Vagrant
SF DevOps: Introducing Vagrant
 
Dev ops for cross platform mobile modeveast 12
Dev ops for cross platform mobile   modeveast 12Dev ops for cross platform mobile   modeveast 12
Dev ops for cross platform mobile modeveast 12
 
Creating a World-Class RESTful Web Services API
Creating a World-Class RESTful Web Services APICreating a World-Class RESTful Web Services API
Creating a World-Class RESTful Web Services API
 
TorqueBox
TorqueBoxTorqueBox
TorqueBox
 
How Heroku uses Heroku to build Heroku
How Heroku uses Heroku to build HerokuHow Heroku uses Heroku to build Heroku
How Heroku uses Heroku to build Heroku
 
Rails 5 – most effective features for apps upgradation
Rails 5 – most effective features for apps upgradationRails 5 – most effective features for apps upgradation
Rails 5 – most effective features for apps upgradation
 
Cloud Foundry Bootcamp
Cloud Foundry BootcampCloud Foundry Bootcamp
Cloud Foundry Bootcamp
 
20100616 Deployit For N How
20100616 Deployit For N How20100616 Deployit For N How
20100616 Deployit For N How
 
IBM Pulse 2013 session - DevOps for Mobile Apps
IBM Pulse 2013 session - DevOps for Mobile AppsIBM Pulse 2013 session - DevOps for Mobile Apps
IBM Pulse 2013 session - DevOps for Mobile Apps
 
DevOps for Mobile - DevOpsDays, NY, 2013
DevOps for Mobile - DevOpsDays, NY, 2013DevOps for Mobile - DevOpsDays, NY, 2013
DevOps for Mobile - DevOpsDays, NY, 2013
 
Hibernate complete notes_by_sekhar_sir_javabynatara_j
Hibernate complete notes_by_sekhar_sir_javabynatara_jHibernate complete notes_by_sekhar_sir_javabynatara_j
Hibernate complete notes_by_sekhar_sir_javabynatara_j
 
Hibernate complete notes_by_sekhar_sir_javabynatara_j
Hibernate complete notes_by_sekhar_sir_javabynatara_jHibernate complete notes_by_sekhar_sir_javabynatara_j
Hibernate complete notes_by_sekhar_sir_javabynatara_j
 
Services inception in Ruby
Services inception in RubyServices inception in Ruby
Services inception in Ruby
 
Social Enterprise Java Apps on Heroku Webinar
Social Enterprise Java Apps on Heroku WebinarSocial Enterprise Java Apps on Heroku Webinar
Social Enterprise Java Apps on Heroku Webinar
 
PeopleSoft: HACK THE Planet^W university
PeopleSoft: HACK THE  Planet^W universityPeopleSoft: HACK THE  Planet^W university
PeopleSoft: HACK THE Planet^W university
 
OSGi Service Platform 4.2
OSGi Service Platform 4.2OSGi Service Platform 4.2
OSGi Service Platform 4.2
 
Social ent. with java on heroku
Social ent. with java on herokuSocial ent. with java on heroku
Social ent. with java on heroku
 
Continuous delivery on the cloud
Continuous delivery on the cloudContinuous delivery on the cloud
Continuous delivery on the cloud
 
TLS303 How to Deploy Python Applications on AWS Elastic Beanstalk - AWS re:In...
TLS303 How to Deploy Python Applications on AWS Elastic Beanstalk - AWS re:In...TLS303 How to Deploy Python Applications on AWS Elastic Beanstalk - AWS re:In...
TLS303 How to Deploy Python Applications on AWS Elastic Beanstalk - AWS re:In...
 
Connecting with the enterprise - The how and why of connecting to Enterprise ...
Connecting with the enterprise - The how and why of connecting to Enterprise ...Connecting with the enterprise - The how and why of connecting to Enterprise ...
Connecting with the enterprise - The how and why of connecting to Enterprise ...
 

More from yashasree

What and What Not, Portfolio Lead Retrospects (In Enterprise Agile context)
What and What Not, Portfolio Lead Retrospects (In Enterprise Agile context)What and What Not, Portfolio Lead Retrospects (In Enterprise Agile context)
What and What Not, Portfolio Lead Retrospects (In Enterprise Agile context)yashasree
 
NFR in Scrum
NFR in ScrumNFR in Scrum
NFR in Scrumyashasree
 
Panch tantras of agile dev teams - yashasree-tcs
Panch tantras of agile dev teams - yashasree-tcsPanch tantras of agile dev teams - yashasree-tcs
Panch tantras of agile dev teams - yashasree-tcsyashasree
 
Yashasree barve as an architect - ai2012 - 1.0 - share
Yashasree barve   as an architect - ai2012 - 1.0 - shareYashasree barve   as an architect - ai2012 - 1.0 - share
Yashasree barve as an architect - ai2012 - 1.0 - shareyashasree
 
Yashasree barve power of dev ops - ai 2012 - 1.0-share
Yashasree barve   power of dev ops - ai 2012 - 1.0-shareYashasree barve   power of dev ops - ai 2012 - 1.0-share
Yashasree barve power of dev ops - ai 2012 - 1.0-shareyashasree
 
Yashasree barve as an architect - at2011
Yashasree barve   as an architect - at2011Yashasree barve   as an architect - at2011
Yashasree barve as an architect - at2011yashasree
 

More from yashasree (6)

What and What Not, Portfolio Lead Retrospects (In Enterprise Agile context)
What and What Not, Portfolio Lead Retrospects (In Enterprise Agile context)What and What Not, Portfolio Lead Retrospects (In Enterprise Agile context)
What and What Not, Portfolio Lead Retrospects (In Enterprise Agile context)
 
NFR in Scrum
NFR in ScrumNFR in Scrum
NFR in Scrum
 
Panch tantras of agile dev teams - yashasree-tcs
Panch tantras of agile dev teams - yashasree-tcsPanch tantras of agile dev teams - yashasree-tcs
Panch tantras of agile dev teams - yashasree-tcs
 
Yashasree barve as an architect - ai2012 - 1.0 - share
Yashasree barve   as an architect - ai2012 - 1.0 - shareYashasree barve   as an architect - ai2012 - 1.0 - share
Yashasree barve as an architect - ai2012 - 1.0 - share
 
Yashasree barve power of dev ops - ai 2012 - 1.0-share
Yashasree barve   power of dev ops - ai 2012 - 1.0-shareYashasree barve   power of dev ops - ai 2012 - 1.0-share
Yashasree barve power of dev ops - ai 2012 - 1.0-share
 
Yashasree barve as an architect - at2011
Yashasree barve   as an architect - at2011Yashasree barve   as an architect - at2011
Yashasree barve as an architect - at2011
 

Recently uploaded

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Recently uploaded (20)

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

Rubyizing the devs and ops of an enterprise 1.0

  • 1. Rubyizing the Devs and Ops of an Enterprise Yashasree Barve
  • 2. About me Technologist @ TCS since last 13 years An Agile Ruby developer since 2007 & I'm lovin' it RubyConf India 2011
  • 3. Back in 2007 Who is this Ruby? RubyConf India 2011
  • 4. A Rewarding Journey 2011 I Love Ruby 2007 Who is this Ruby? RubyConf India 2011
  • 5. An Enterprise Images created using wordle.net RubyConf India 2011
  • 6. Agile Enters the Enterprise RubyConf India 2011
  • 8. Let us try Ruby and Rails! RubyConf India 2011
  • 9. But This is An Enterprise… Heterogeneity Performance Availability Security Complexity Scalability Reliability RubyConf India 2011
  • 10. How to eat an Elephant? One bite at a time! RubyConf India 2011
  • 11. THE RAILS WAY RubyConf India 2011
  • 12. Believe it or not, most big company security break-ins involve your employees! RubyConf India 2011
  • 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. Microsoft ADS Domino LDAP IBM ITDS Support ALL of those! RubyConf India 2011
  • 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. every Page you See every Click you Make RubyConf India 2011
  • 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. Plug ins that DRYed us RubyConf India 2011
  • 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 http://svn....com/ruby/plugins/my_security/trunk http://svn....com/ruby/plugins/my_security/trunk Enterprise Subversion Server RubyConf India 2011
  • 20. Rails Up and Running SOURCE: Source RubyConf India 2011
  • 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. 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. Vibrant Rubyists Group Team up Share Excel RubyConf India 2011
  • 24. Oops! But what about the Ops RubyConf India 2011
  • 25. The BIG Task of Deployment C:my_apptrunk>capd deploy:migrations C:my_apptrunk>capd deploy:migrations triggering start callbacks for `deploy:migrations' triggering start callbacks for `deploy:migrations' Select Stage: Select Stage: 1. production 1. production 2. integration 2. integration >> capd apache:configure capd apache:configure 3. devutility 3. devutility >> capd apache:passenger:configure capd apache:passenger:configure 4. qa 4. 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. Towards One Click deployment Inspired by Heroku RubyConf India 2011
  • 27. Busting those Tickets! Legacy Enterprise Apps Legacy Enterprise Apps Apache Passenger Apache Passenger Admin Rails App RubyConf India 2011
  • 28. More Transparency Splunk Splunk Hoptoad Hoptoad RubyConf India 2011
  • 29. Chef at work Infrastructure as a code and The code is Ruby RubyConf India 2011
  • 30. Envisioning the Provisioning • Monitor the App Performance • Spin a virtual server to scale horizontally RubyConf India 2011
  • 31. Dev Ops RubyConf India 2011
  • 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. Thank you all for being patient and hearing me out. Hope this helps you! Any questions? RubyConf India 2011