SlideShare a Scribd company logo
RubyStack: the easiest way to 
    deploy Ruby on Rails

               

           




                   
Who is danoo ... ?
• Daniel Liszka, Polish
• started with Linux: 10 years ago
• Linux security labs, Linux Security final project in high 
  school
• studied at Silesian University of Technology, Gliwice
• organized conference Open Source in Organization – 
  Interinfo_2004, Gliwice



                                 
   
I met www.BitRock.com
    And  everything really started ...




                      
 
Meet BitRock          
 •   Founded in 2003, privately held with offices in Seville, Spain and 
     San Francisco, USA

 •   Develops packaging, installation and update tools to provide a 
     complete Open Source Application Deployment solution 

 •   Clients span the globe, and include Fortune 100 corporations, 
     governments, educational institutions, and the leading open 
     source companies 




 •   Recent honors include Red Herring 100 Winner and Red Herring 
     Open Source 20 Winner
                                               OPEN SOURCE 20


                                         
      
www.   BitRock.com
• BitRock makes open source software easier to use by 
  providing a complete automated solution for Open 
  Source Application Deployment.
• Makes it fun
• brings it to people 




                            
   
Ruby
• “Ruby is a dynamic, object­oriented programming 
  language. It combines syntax inspired by Perl with 
  Smalltalk­like object­oriented features, and also shares 
  some features with Python, Lisp, Dylan, and CLU. Its 
  official implementation is free software written in C.”
• Beautiful
• FUN !!!




                               
   
Ruby
# In an object instance variable (denoted with '@'), 
  remember a block.
def remember(&a_block)
        @block = a_block
end
 
# Invoke the above method, giving it a block that takes a 
  name.
remember {|name| puts "Hello, #{name}!"}
 
# When the time is right (for the object) ­­ call the 
  closure!
@block.call("Jon")
# => "Hello, Jon!"


                              
     
Ruby on Rails
• “web application framework that aims to increase the 
  speed and ease with which database­driven web sites 
      can be created and offers skeleton code frameworks 
      (scaffolding) from the outset. Often shortened to Rails, 
      or RoR, Ruby on Rails is an open source project 
      written in the Ruby programming language and 
      applications using the Rails framework are developed 
      using the Model­View­Controller design pattern”
• Beautifull
• FUN !!!
                                   
   
It is my story
• We decided to start with RoR
• Lovely !
• me as a developer, I need development environment
• My team needs development environment – it would 
      be cool if both are the same 
• My graphics designer needs it as well 
• They have different operating systems, different 
  requirements (GUI,text mode,...) and skills 
• I want to use several environments on one machine 
                                   
   
It is my story
• DEMO day is coming !!!
• deployment
• scale your application ­ > several servers
• deployment on many servers 
      – chroot
      – Vmware, XEN
      – Solaris Zones
      – Amazon EC2



                              
   
We need
• Ruby and Ruby Gems
• RoR
• MySQL, SQLite
• Apache
• Subversion
• libraries




                        
   
We need at least that . . . (RubyStack Features)

• completely self­contained
• re­locatable
• not interfere with existing software
• works on different operating systems 
• easy to install




                                
   
TOOLS




       
 
RubyStack Installer
• created using BitRock InstallBuilder
• easy to use
• multiplatform 
• native look and feel
• GUI, text and unattended modes
• Platforms: Linux, Mac OS X, Windows, Solaris, ...
• No External Dependencies



                              
   
Apart from that ....
• Desktop Integration
• RPM and DEB generation (beta)
• Optimized : BitRock installers are optimized in size and 
  speed
• Ease of Development
• Support for Qt® GUI Frontend
• Uninstall Functionality
• LZIP
• Multiple Language Support
                               
   
InstallBuilder (RubyStack Installer)




                     
  
InstallBuilder (RubyStack Installer)




                     
  
InstallBuilder (RubyStack Installer)




                     
  
InstallBuilder (RubyStack Installer)




                     
  
Unattended mode
Many different options:
# rubystack­1.0­linux­installer.bin ­­mode unattended ­­
   prefix /secure/tmp/ruby_unatended ­­rubystack_version 
   production ­­apache_server_port 4568 ­­mysql_port 4321 
   ­­mysql_db_name blabla




                               
   
Take a look at Capistrano tool (capify.org)
  desc "Install RubyStack"
  task :install do
    run "! test ­d #{rubystack_path}"
    install_string = "./#{rubystack_binary}
         ­­mode unattended
         ­­prefix #{rubystack_path}
         ­­rubystack_version production
         ­­apache_server_port #{rubystack_apache_port}
         ­­mysql_port #{rubystack_mysql_port}
         ­­mysql_db_name #{application}
         ­­mysql_db_username #{application}­user"
  if rubystack_apache_port < 1024
      sudo install_string
    else
      run install_string
    end
    run "echo ". #{rubystack_path}/scripts/setenv.sh" >> ~/.bashrc"
  end
                                         
   
Take a look at Capistrano tool (capify.org)
• “Great for automating tasks via SSH on remote servers, 
  like software installation, application deployment, 
  configuration management, ad hoc server monitoring, 
  and more.
• Ideal for system administrators, whether professional or 
  incidental.
• Easy to customize.
• Easy to extend. Capistrano is written in the Ruby”


                             
 
Conclusions 
(for the RubyStack Installer)
       ­ let's start demo


          

      




               
It is not the end 
­ do you remember the components we need ?
         ­ and very specific features ?
          (completely self­contained,re­locatable
           not interfere with existing software)




                     

                 




                              
RubyStack Components
 zlib version: 1.2.3          ncurses version: 5.6
 libiconv version: 1.9.2      readline version: 5.2
 openssl version: 0.9.7l      ruby version: 1.8.6
 sqlite version: 3.3.6        rubygems version: 0.9.4
 httpd version: 2.2.4         rake version: 0.7.3
 mysql version: 5.0.45        rails version: 1.2.3
 libpng version: 1.2.10       fastthread version: 1.0
 jpegsrc version: v6b         mongrel version: 1.0.1
 freetype version: 2.3.4      rmagick version: 1.15.6
 libwmf version: 0.2.8.4      mongrel_cluster version: 1.0.2
 ghostscript version: 8.56    gruff version: 0.2.8
 ImageMagick version: 6.3.4   capistrano version: 2.0.0
 expat version: 2.0.0
 neon version: 0.25.5
 subversion version: 1.4.4


                                
    
Lets take a look inside
• Building & testing system
• Integration
• logic inside XML files
• Wrappers ?!?




                            
  
Lets take a look inside
• Examples: svn and ruby binaries and wrappers
• Lets try to run them
• LD_LIBRARY_PATH ­> wrappers
• what about the shebang line
• rubyconsole & rubystackctl.sh




                          
  
Conclusions
 ­ RubyStack is great platform
         ­ not finished yet
­ but already tested in production


              

          




                  
Questions ???


       

   




           
Thank you !
   Daniel Liszka
danoo@BitRock.com


       

   




           

More Related Content

What's hot (19)

PDF
Docker Introduction + what is new in 0.9
Jérôme Petazzoni
 
PDF
Introduction to Docker (as presented at December 2013 Global Hackathon)
Jérôme Petazzoni
 
PDF
[KubeCon EU 2021] Introduction and Deep Dive Into Containerd
Akihiro Suda
 
PDF
From CoreOS to Kubernetes and Concourse CI
Denis Izmaylov
 
ODP
RSYSLOG v8 improvements and how to write plugins in any language.
Rainer Gerhards
 
PDF
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
dotCloud
 
PDF
OpenZFS - BSDcan 2014
Matthew Ahrens
 
PPTX
Rust 101 (2017 edition)
Robert 'Bob' Reyes
 
PDF
Social Connections 14 - ICS Integration with Node-RED and Open Source
Paul Withers
 
PDF
Docker for developers
Chris Tankersley
 
PDF
Introduction to docker
Justyna Ilczuk
 
PDF
.Net standard 2.0
Scott Golightly
 
PDF
Docker Intro at the Google Developer Group and Google Cloud Platform Meet Up
Jérôme Petazzoni
 
PDF
Node.js, toy or power tool?
Ovidiu Dimulescu
 
PDF
Rootless Containers
Akihiro Suda
 
PPTX
Mini-Training: Node.js
Betclic Everest Group Tech Team
 
PDF
[DockerCon 2020] Hardening Docker daemon with Rootless Mode
Akihiro Suda
 
PDF
Docker in development (Story)
Quan Nguyen
 
PDF
Introduction to Containers and Docker for PHP developers
Robert McFrazier
 
Docker Introduction + what is new in 0.9
Jérôme Petazzoni
 
Introduction to Docker (as presented at December 2013 Global Hackathon)
Jérôme Petazzoni
 
[KubeCon EU 2021] Introduction and Deep Dive Into Containerd
Akihiro Suda
 
From CoreOS to Kubernetes and Concourse CI
Denis Izmaylov
 
RSYSLOG v8 improvements and how to write plugins in any language.
Rainer Gerhards
 
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
dotCloud
 
OpenZFS - BSDcan 2014
Matthew Ahrens
 
Rust 101 (2017 edition)
Robert 'Bob' Reyes
 
Social Connections 14 - ICS Integration with Node-RED and Open Source
Paul Withers
 
Docker for developers
Chris Tankersley
 
Introduction to docker
Justyna Ilczuk
 
.Net standard 2.0
Scott Golightly
 
Docker Intro at the Google Developer Group and Google Cloud Platform Meet Up
Jérôme Petazzoni
 
Node.js, toy or power tool?
Ovidiu Dimulescu
 
Rootless Containers
Akihiro Suda
 
Mini-Training: Node.js
Betclic Everest Group Tech Team
 
[DockerCon 2020] Hardening Docker daemon with Rootless Mode
Akihiro Suda
 
Docker in development (Story)
Quan Nguyen
 
Introduction to Containers and Docker for PHP developers
Robert McFrazier
 

Similar to RubyStack: the easiest way to deploy Ruby on Rails (20)

PDF
One RubyStack to Rule them All
elliando dias
 
ODP
How to be productive with Rails... even on Windows
Luis Lavena
 
PDF
How to distribute Ruby to the world
Hiroshi SHIBATA
 
PDF
Dynamic Languages & Web Frameworks in GlassFish
IndicThreads
 
PDF
An introduction to the ruby ecosystem
Geison Goes
 
PPT
Ruby Setup
Alan Hecht
 
PPTX
Ruby and Security
Carl Sampson, CSSLP
 
PDF
How to distribute Ruby to the world
Hiroshi SHIBATA
 
PDF
Katello on TorqueBox
lzap
 
PDF
Develop With Pleasure Deploy With Fun Glass Fish And Net Beans For A Better...
railsconf
 
PDF
Ruby Presentation
platico_dev
 
PDF
RVM and Ruby Interpreters @ RSC Roma 03/2011
Marcello Barnaba
 
PDF
Ruby projects of interest for DevOps
Ricardo Sanchez
 
PDF
Ricardo Sanchez - Ruby projects of interest for devops
SVDevOps
 
KEY
Ruby On Rails Ecosystem
Andrew Chalkley
 
PDF
JRuby - Enterprise 2.0
Jan Sifra
 
ODP
Dynamic Languages Web Frameworks Indicthreads 2009
Arun Gupta
 
KEY
Ruby v cpp_preso
jessicard
 
KEY
Crate - ruby based standalone executables
Jeremy Hinegardner
 
One RubyStack to Rule them All
elliando dias
 
How to be productive with Rails... even on Windows
Luis Lavena
 
How to distribute Ruby to the world
Hiroshi SHIBATA
 
Dynamic Languages & Web Frameworks in GlassFish
IndicThreads
 
An introduction to the ruby ecosystem
Geison Goes
 
Ruby Setup
Alan Hecht
 
Ruby and Security
Carl Sampson, CSSLP
 
How to distribute Ruby to the world
Hiroshi SHIBATA
 
Katello on TorqueBox
lzap
 
Develop With Pleasure Deploy With Fun Glass Fish And Net Beans For A Better...
railsconf
 
Ruby Presentation
platico_dev
 
RVM and Ruby Interpreters @ RSC Roma 03/2011
Marcello Barnaba
 
Ruby projects of interest for DevOps
Ricardo Sanchez
 
Ricardo Sanchez - Ruby projects of interest for devops
SVDevOps
 
Ruby On Rails Ecosystem
Andrew Chalkley
 
JRuby - Enterprise 2.0
Jan Sifra
 
Dynamic Languages Web Frameworks Indicthreads 2009
Arun Gupta
 
Ruby v cpp_preso
jessicard
 
Crate - ruby based standalone executables
Jeremy Hinegardner
 
Ad

More from elliando dias (20)

PDF
Clojurescript slides
elliando dias
 
PDF
Why you should be excited about ClojureScript
elliando dias
 
PDF
Functional Programming with Immutable Data Structures
elliando dias
 
PPT
Nomenclatura e peças de container
elliando dias
 
PDF
Geometria Projetiva
elliando dias
 
PDF
Polyglot and Poly-paradigm Programming for Better Agility
elliando dias
 
PDF
Javascript Libraries
elliando dias
 
PDF
How to Make an Eight Bit Computer and Save the World!
elliando dias
 
PDF
Ragel talk
elliando dias
 
PDF
A Practical Guide to Connecting Hardware to the Web
elliando dias
 
PDF
Introdução ao Arduino
elliando dias
 
PDF
Minicurso arduino
elliando dias
 
PDF
Incanter Data Sorcery
elliando dias
 
PDF
Rango
elliando dias
 
PDF
Fab.in.a.box - Fab Academy: Machine Design
elliando dias
 
PDF
The Digital Revolution: Machines that makes
elliando dias
 
PDF
Hadoop + Clojure
elliando dias
 
PDF
Hadoop - Simple. Scalable.
elliando dias
 
PDF
Hadoop and Hive Development at Facebook
elliando dias
 
PDF
Multi-core Parallelization in Clojure - a Case Study
elliando dias
 
Clojurescript slides
elliando dias
 
Why you should be excited about ClojureScript
elliando dias
 
Functional Programming with Immutable Data Structures
elliando dias
 
Nomenclatura e peças de container
elliando dias
 
Geometria Projetiva
elliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
elliando dias
 
Javascript Libraries
elliando dias
 
How to Make an Eight Bit Computer and Save the World!
elliando dias
 
Ragel talk
elliando dias
 
A Practical Guide to Connecting Hardware to the Web
elliando dias
 
Introdução ao Arduino
elliando dias
 
Minicurso arduino
elliando dias
 
Incanter Data Sorcery
elliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
elliando dias
 
The Digital Revolution: Machines that makes
elliando dias
 
Hadoop + Clojure
elliando dias
 
Hadoop - Simple. Scalable.
elliando dias
 
Hadoop and Hive Development at Facebook
elliando dias
 
Multi-core Parallelization in Clojure - a Case Study
elliando dias
 
Ad

Recently uploaded (20)

PDF
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PPTX
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 

RubyStack: the easiest way to deploy Ruby on Rails