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

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 

Recently uploaded (20)

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 

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