SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
One   RubyStack
 to Rule them All
 daniel.liszka@BitRock.com
       www.BitNami.org
me

    Daniel Liszka, Polish

    10 years with Linux / OpenSource

    Open Source conference organizer
    (InterInfo_2004) & speaker

    living in Spain / Seville now

    2 years in BitRock, working with Ruby,
    RoR, www.BitNami.org ...
BitNami.org

    Easy to install
    
        In just a few clicks, you can have your favorite open source applications up and running.


    Multiplatform
    
        Bitnami Stacks are available for Linux, Windows, and Mac OS X.


    Integrated
    
        By the time you click 'finish', the software will be integrated, configured and ready to go.


    Independent
    
        Bitnami Stacks won't interfere with any software already installed on your system.


    Run Natively
    
        The stacks install directly on your system ­ no virtual machine required.


    Open Source
    
        All Bitnami Stacks are free to download and use under the terms of the Apache License 2.0
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 (part 2)

    other things
    
        DEMO day is coming !!!
    
        deployment
    
        scale your application ­ > several servers
    
        deployment on many servers 
         
             chroot, Vmware, XEN, Solaris Zones, Amazon EC2
We need ...

    Ruby

    Ruby Gems

    RoR

    database: MySQL, SQLite

    Apache

    Subversion

    and libraries (RMagick, ...)
RubyStack Features
          (We need at least that . . .)

    completely self-contained

    re-locatable

    not interfere with existing software

    works on different operating systems
    (Linux, Windows and Mac OSX)

    easy to install
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

    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
# cap bitrock:rubystack:install
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
/bitrock/rubystack#   ldd subversion/bin/.svn.bin
     linux-gate.so.1 => (0xffffe000)

     libsvn_client-1.so.0 => /bitrock/rubystack/subversion/lib/libsvn_client-1.so.0 (0xb7f88000)

     libsvn_wc-1.so.0 => /bitrock/rubystack/subversion/lib/libsvn_wc-1.so.0 (0xb7f57000)

     libsvn_ra-1.so.0 => /bitrock/rubystack/subversion/lib/libsvn_ra-1.so.0 (0xb7f53000)

     libsvn_diff-1.so.0 => /bitrock/rubystack/subversion/lib/libsvn_diff-1.so.0 (0xb7f4a000)

     libsvn_ra_local-1.so.0 => /bitrock/rubystack/subversion/lib/libsvn_ra_local-1.so.0 (0xb7f44000)

     libsvn_repos-1.so.0 => /bitrock/rubystack/subversion/lib/libsvn_repos-1.so.0 (0xb7f24000)

     libsvn_fs-1.so.0 => /bitrock/rubystack/subversion/lib/libsvn_fs-1.so.0 (0xb7f1e000)

     libsvn_fs_fs-1.so.0 => /bitrock/rubystack/subversion/lib/libsvn_fs_fs-1.so.0 (0xb7f02000)

     libsvn_ra_svn-1.so.0 => /bitrock/rubystack/subversion/lib/libsvn_ra_svn-1.so.0 (0xb7ef0000)

     libsvn_ra_dav-1.so.0 => /bitrock/rubystack/subversion/lib/libsvn_ra_dav-1.so.0 (0xb7ebe000)

     libsvn_delta-1.so.0 => /bitrock/rubystack/subversion/lib/libsvn_delta-1.so.0 (0xb7eb3000)

     libsvn_subr-1.so.0 => /bitrock/rubystack/subversion/lib/libsvn_subr-1.so.0 (0xb7e83000)

     libaprutil-1.so.0 => /bitrock/rubystack/apache2/lib/libaprutil-1.so.0 (0xb7e6b000)

     libexpat.so.0 => /bitrock/rubystack/apache2/lib/libexpat.so.0 (0xb7e46000)

     libapr-1.so.0 => /bitrock/rubystack/apache2/lib/libapr-1.so.0 (0xb7e20000)

     libiconv.so.2 => /bitrock/rubystack/common/lib/libiconv.so.2 (0xb7d42000)

     librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb7d21000)

     libcrypt.so.1 => /lib/tls/i686/cmov/libcrypt.so.1 (0xb7cf3000)

     libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7cdb000)

     libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7cd7000)
Lets take a look inside

   Building & testing system
   Integration
   logic inside XML files
   Wrappers
        LD_LIBRARY_PATH
        what about the shebang line
   rubyconsole & ctl.sh
Applications

    bitnami.org/stack/   JRubyStack
       includes ready-to-run versions of
        JRuby, Rails, Java, Tomcat, GlassFish
        gem, MySQL and Subversion.

    bitnami.org/stack/Tracks

    bitnami.org/stack/   Redmine
Future / Plans

           Rubinius
             JRuby
         Ruby 1.8 / 1.9
          ... together ...


             ... and ...
custom RubyStacks: merb, nginx, ...
Conclusions
 why it matters ?
Thanks to
Manuel Morales Castro
          &
Beltran Rueda Borrego
Questions ???
www.BitNami.org/
 /stack/rubystack
Thank you !
   Daniel Liszka
danoo@BitRock.com

Más contenido relacionado

La actualidad más candente

Node.js for Rubists
Node.js for RubistsNode.js for Rubists
Node.js for RubistsSagiv Ofek
 
Intro to Node.js (v1)
Intro to Node.js (v1)Intro to Node.js (v1)
Intro to Node.js (v1)Chris Cowan
 
Vagrant are you still develop in a non-virtual environment-
Vagrant  are you still develop in a non-virtual environment-Vagrant  are you still develop in a non-virtual environment-
Vagrant are you still develop in a non-virtual environment-Anatoly Bubenkov
 
[DockerCon 2019] Hardening Docker daemon with Rootless mode
[DockerCon 2019] Hardening Docker daemon with Rootless mode[DockerCon 2019] Hardening Docker daemon with Rootless mode
[DockerCon 2019] Hardening Docker daemon with Rootless modeAkihiro Suda
 
Rootless Containers & Unresolved issues
Rootless Containers & Unresolved issuesRootless Containers & Unresolved issues
Rootless Containers & Unresolved issuesAkihiro Suda
 
[DockerCon 2020] Hardening Docker daemon with Rootless Mode
[DockerCon 2020] Hardening Docker daemon with Rootless Mode[DockerCon 2020] Hardening Docker daemon with Rootless Mode
[DockerCon 2020] Hardening Docker daemon with Rootless ModeAkihiro Suda
 
EuroBSDCon 2021 - (auto)Installing BSD Systems
EuroBSDCon 2021 - (auto)Installing BSD SystemsEuroBSDCon 2021 - (auto)Installing BSD Systems
EuroBSDCon 2021 - (auto)Installing BSD SystemsVinícius Zavam
 
Sinatraでわかる!webアプリの仕組み
Sinatraでわかる!webアプリの仕組みSinatraでわかる!webアプリの仕組み
Sinatraでわかる!webアプリの仕組みSatoshi Ebisawa
 
Node js presentation
Node js presentationNode js presentation
Node js presentationshereefsakr
 
Lightweight and reproducible environments with vagrant and Puppet
Lightweight and reproducible environments with vagrant and PuppetLightweight and reproducible environments with vagrant and Puppet
Lightweight and reproducible environments with vagrant and PuppetHendrik Ebbers
 
How can OpenNebula fit your needs - OpenNebulaConf 2013
How can OpenNebula fit your needs - OpenNebulaConf 2013 How can OpenNebula fit your needs - OpenNebulaConf 2013
How can OpenNebula fit your needs - OpenNebulaConf 2013 Maxence Dunnewind
 
Getting Started with PureScript
Getting Started with PureScriptGetting Started with PureScript
Getting Started with PureScriptJohn De Goes
 
BSD for Linux Users
BSD for Linux UsersBSD for Linux Users
BSD for Linux UsersDru Lavigne
 
Lightweight Virtualization: LXC containers & AUFS
Lightweight Virtualization: LXC containers & AUFSLightweight Virtualization: LXC containers & AUFS
Lightweight Virtualization: LXC containers & AUFSJérôme Petazzoni
 
Introduction to Docker and deployment and Azure
Introduction to Docker and deployment and AzureIntroduction to Docker and deployment and Azure
Introduction to Docker and deployment and AzureJérôme Petazzoni
 
Minicurso de Vagrant
Minicurso de VagrantMinicurso de Vagrant
Minicurso de VagrantLeandro Nunes
 
Rootless Kubernetes
Rootless KubernetesRootless Kubernetes
Rootless KubernetesAkihiro Suda
 
Let's Containerize New York with Docker!
Let's Containerize New York with Docker!Let's Containerize New York with Docker!
Let's Containerize New York with Docker!Jérôme Petazzoni
 

La actualidad más candente (20)

Node.js for Rubists
Node.js for RubistsNode.js for Rubists
Node.js for Rubists
 
Intro to Node.js (v1)
Intro to Node.js (v1)Intro to Node.js (v1)
Intro to Node.js (v1)
 
Vagrant are you still develop in a non-virtual environment-
Vagrant  are you still develop in a non-virtual environment-Vagrant  are you still develop in a non-virtual environment-
Vagrant are you still develop in a non-virtual environment-
 
[DockerCon 2019] Hardening Docker daemon with Rootless mode
[DockerCon 2019] Hardening Docker daemon with Rootless mode[DockerCon 2019] Hardening Docker daemon with Rootless mode
[DockerCon 2019] Hardening Docker daemon with Rootless mode
 
Rootless Containers & Unresolved issues
Rootless Containers & Unresolved issuesRootless Containers & Unresolved issues
Rootless Containers & Unresolved issues
 
FreeBSD hosting
FreeBSD hostingFreeBSD hosting
FreeBSD hosting
 
[DockerCon 2020] Hardening Docker daemon with Rootless Mode
[DockerCon 2020] Hardening Docker daemon with Rootless Mode[DockerCon 2020] Hardening Docker daemon with Rootless Mode
[DockerCon 2020] Hardening Docker daemon with Rootless Mode
 
EuroBSDCon 2021 - (auto)Installing BSD Systems
EuroBSDCon 2021 - (auto)Installing BSD SystemsEuroBSDCon 2021 - (auto)Installing BSD Systems
EuroBSDCon 2021 - (auto)Installing BSD Systems
 
Sinatraでわかる!webアプリの仕組み
Sinatraでわかる!webアプリの仕組みSinatraでわかる!webアプリの仕組み
Sinatraでわかる!webアプリの仕組み
 
Node js presentation
Node js presentationNode js presentation
Node js presentation
 
Lightweight and reproducible environments with vagrant and Puppet
Lightweight and reproducible environments with vagrant and PuppetLightweight and reproducible environments with vagrant and Puppet
Lightweight and reproducible environments with vagrant and Puppet
 
How can OpenNebula fit your needs - OpenNebulaConf 2013
How can OpenNebula fit your needs - OpenNebulaConf 2013 How can OpenNebula fit your needs - OpenNebulaConf 2013
How can OpenNebula fit your needs - OpenNebulaConf 2013
 
Getting Started with PureScript
Getting Started with PureScriptGetting Started with PureScript
Getting Started with PureScript
 
BSD for Linux Users
BSD for Linux UsersBSD for Linux Users
BSD for Linux Users
 
Lightweight Virtualization: LXC containers & AUFS
Lightweight Virtualization: LXC containers & AUFSLightweight Virtualization: LXC containers & AUFS
Lightweight Virtualization: LXC containers & AUFS
 
Introduction to Docker and deployment and Azure
Introduction to Docker and deployment and AzureIntroduction to Docker and deployment and Azure
Introduction to Docker and deployment and Azure
 
Minicurso de Vagrant
Minicurso de VagrantMinicurso de Vagrant
Minicurso de Vagrant
 
Rootless Kubernetes
Rootless KubernetesRootless Kubernetes
Rootless Kubernetes
 
Let's Containerize New York with Docker!
Let's Containerize New York with Docker!Let's Containerize New York with Docker!
Let's Containerize New York with Docker!
 
Sweden11
Sweden11Sweden11
Sweden11
 

Destacado

PostgreSQL Replication Solutions
PostgreSQL Replication SolutionsPostgreSQL Replication Solutions
PostgreSQL Replication Solutionselliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de containerelliando dias
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScriptelliando dias
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structureselliando dias
 
Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slideselliando dias
 

Destacado (6)

PostgreSQL Replication Solutions
PostgreSQL Replication SolutionsPostgreSQL Replication Solutions
PostgreSQL Replication Solutions
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 

Similar a One RubyStack to Rule them All

RubyStack: the easiest way to deploy Ruby on Rails
RubyStack: the easiest way to deploy Ruby on RailsRubyStack: the easiest way to deploy Ruby on Rails
RubyStack: the easiest way to deploy Ruby on Railselliando dias
 
Docker intro
Docker introDocker intro
Docker introspiddy
 
A Tour of Open Source on the Mainframe
A Tour of Open Source on the MainframeA Tour of Open Source on the Mainframe
A Tour of Open Source on the MainframeAll Things Open
 
WJAX 2013: Die PaaS-Parade - Teil 2 - Cloud Foundry
WJAX 2013: Die PaaS-Parade - Teil 2 - Cloud FoundryWJAX 2013: Die PaaS-Parade - Teil 2 - Cloud Foundry
WJAX 2013: Die PaaS-Parade - Teil 2 - Cloud Foundrymartinlippert
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker IntroductionHao Fan
 
LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1Hajime Tazaki
 
Docker module 1
Docker module 1Docker module 1
Docker module 1Liang Bo
 
Os Grossupdated
Os GrossupdatedOs Grossupdated
Os Grossupdatedoscon2007
 
The story of language development
The story of language developmentThe story of language development
The story of language developmentHiroshi SHIBATA
 
How to distribute Ruby to the world
How to distribute Ruby to the worldHow to distribute Ruby to the world
How to distribute Ruby to the worldHiroshi SHIBATA
 
POCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and OverviewPOCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and OverviewGünter Obiltschnig
 
Bare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and ChefBare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and ChefMatt Ray
 
Large-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 MinutesLarge-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 MinutesHiroshi SHIBATA
 
20160201_resume_Vladimir_Chesnokov
20160201_resume_Vladimir_Chesnokov20160201_resume_Vladimir_Chesnokov
20160201_resume_Vladimir_ChesnokovVladimir Chesnokov
 
Настройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'aНастройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'acorehard_by
 
F19 slidedeck (OpenStack^H^H^H^Hhift, what the)
F19 slidedeck (OpenStack^H^H^H^Hhift, what the)F19 slidedeck (OpenStack^H^H^H^Hhift, what the)
F19 slidedeck (OpenStack^H^H^H^Hhift, what the)Gerard Braad
 
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...Yusuf Hadiwinata Sutandar
 

Similar a One RubyStack to Rule them All (20)

RubyStack: the easiest way to deploy Ruby on Rails
RubyStack: the easiest way to deploy Ruby on RailsRubyStack: the easiest way to deploy Ruby on Rails
RubyStack: the easiest way to deploy Ruby on Rails
 
Docker intro
Docker introDocker intro
Docker intro
 
A Tour of Open Source on the Mainframe
A Tour of Open Source on the MainframeA Tour of Open Source on the Mainframe
A Tour of Open Source on the Mainframe
 
WJAX 2013: Die PaaS-Parade - Teil 2 - Cloud Foundry
WJAX 2013: Die PaaS-Parade - Teil 2 - Cloud FoundryWJAX 2013: Die PaaS-Parade - Teil 2 - Cloud Foundry
WJAX 2013: Die PaaS-Parade - Teil 2 - Cloud Foundry
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1
 
Docker module 1
Docker module 1Docker module 1
Docker module 1
 
OpenStack Summit
OpenStack SummitOpenStack Summit
OpenStack Summit
 
Os Grossupdated
Os GrossupdatedOs Grossupdated
Os Grossupdated
 
The story of language development
The story of language developmentThe story of language development
The story of language development
 
How to distribute Ruby to the world
How to distribute Ruby to the worldHow to distribute Ruby to the world
How to distribute Ruby to the world
 
POCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and OverviewPOCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and Overview
 
olibc: Another C Library optimized for Embedded Linux
olibc: Another C Library optimized for Embedded Linuxolibc: Another C Library optimized for Embedded Linux
olibc: Another C Library optimized for Embedded Linux
 
App container rkt
App container rktApp container rkt
App container rkt
 
Bare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and ChefBare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and Chef
 
Large-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 MinutesLarge-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 Minutes
 
20160201_resume_Vladimir_Chesnokov
20160201_resume_Vladimir_Chesnokov20160201_resume_Vladimir_Chesnokov
20160201_resume_Vladimir_Chesnokov
 
Настройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'aНастройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'a
 
F19 slidedeck (OpenStack^H^H^H^Hhift, what the)
F19 slidedeck (OpenStack^H^H^H^Hhift, what the)F19 slidedeck (OpenStack^H^H^H^Hhift, what the)
F19 slidedeck (OpenStack^H^H^H^Hhift, what the)
 
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
PHPIDOL#80: Kubernetes 101 for PHP Developer. Yusuf Hadiwinata - VP Operation...
 

Más de elliando dias

Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agilityelliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Librarieselliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Webelliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorceryelliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Designelliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makeselliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebookelliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Studyelliando dias
 
From Lisp to Clojure/Incanter and RAn Introduction
From Lisp to Clojure/Incanter and RAn IntroductionFrom Lisp to Clojure/Incanter and RAn Introduction
From Lisp to Clojure/Incanter and RAn Introductionelliando dias
 
FleetDB A Schema-Free Database in Clojure
FleetDB A Schema-Free Database in ClojureFleetDB A Schema-Free Database in Clojure
FleetDB A Schema-Free Database in Clojureelliando dias
 
Clojure and The Robot Apocalypse
Clojure and The Robot ApocalypseClojure and The Robot Apocalypse
Clojure and The Robot Apocalypseelliando dias
 
Clojure - A new Lisp
Clojure - A new LispClojure - A new Lisp
Clojure - A new Lispelliando dias
 
Clojure - An Introduction for Lisp Programmers
Clojure - An Introduction for Lisp ProgrammersClojure - An Introduction for Lisp Programmers
Clojure - An Introduction for Lisp Programmerselliando dias
 

Más de elliando dias (20)

Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 
From Lisp to Clojure/Incanter and RAn Introduction
From Lisp to Clojure/Incanter and RAn IntroductionFrom Lisp to Clojure/Incanter and RAn Introduction
From Lisp to Clojure/Incanter and RAn Introduction
 
FleetDB A Schema-Free Database in Clojure
FleetDB A Schema-Free Database in ClojureFleetDB A Schema-Free Database in Clojure
FleetDB A Schema-Free Database in Clojure
 
Clojure and The Robot Apocalypse
Clojure and The Robot ApocalypseClojure and The Robot Apocalypse
Clojure and The Robot Apocalypse
 
Clojure - A new Lisp
Clojure - A new LispClojure - A new Lisp
Clojure - A new Lisp
 
Clojure - An Introduction for Lisp Programmers
Clojure - An Introduction for Lisp ProgrammersClojure - An Introduction for Lisp Programmers
Clojure - An Introduction for Lisp Programmers
 

Último

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
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
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
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
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
 

Último (20)

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
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
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)
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
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
 

One RubyStack to Rule them All

  • 1. One RubyStack to Rule them All daniel.liszka@BitRock.com www.BitNami.org
  • 2. me  Daniel Liszka, Polish  10 years with Linux / OpenSource  Open Source conference organizer (InterInfo_2004) & speaker  living in Spain / Seville now  2 years in BitRock, working with Ruby, RoR, www.BitNami.org ...
  • 3. BitNami.org  Easy to install  In just a few clicks, you can have your favorite open source applications up and running.  Multiplatform  Bitnami Stacks are available for Linux, Windows, and Mac OS X.  Integrated  By the time you click 'finish', the software will be integrated, configured and ready to go.  Independent  Bitnami Stacks won't interfere with any software already installed on your system.  Run Natively  The stacks install directly on your system ­ no virtual machine required.  Open Source  All Bitnami Stacks are free to download and use under the terms of the Apache License 2.0
  • 4. 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
  • 5. It is my story (part 2)  other things  DEMO day is coming !!!  deployment  scale your application ­ > several servers  deployment on many servers   chroot, Vmware, XEN, Solaris Zones, Amazon EC2
  • 6. We need ...  Ruby  Ruby Gems  RoR  database: MySQL, SQLite  Apache  Subversion  and libraries (RMagick, ...)
  • 7. RubyStack Features (We need at least that . . .)  completely self-contained  re-locatable  not interfere with existing software  works on different operating systems (Linux, Windows and Mac OSX)  easy to install
  • 8. 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  Uninstall Functionality, LZIP, Multiple Language Support
  • 9. InstallBuilder (RubyStack Installer)
  • 10. InstallBuilder (RubyStack Installer)
  • 11. InstallBuilder (RubyStack Installer)
  • 12. InstallBuilder (RubyStack Installer)
  • 13. 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
  • 15. 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
  • 16. /bitrock/rubystack# ldd subversion/bin/.svn.bin linux-gate.so.1 => (0xffffe000) libsvn_client-1.so.0 => /bitrock/rubystack/subversion/lib/libsvn_client-1.so.0 (0xb7f88000) libsvn_wc-1.so.0 => /bitrock/rubystack/subversion/lib/libsvn_wc-1.so.0 (0xb7f57000) libsvn_ra-1.so.0 => /bitrock/rubystack/subversion/lib/libsvn_ra-1.so.0 (0xb7f53000) libsvn_diff-1.so.0 => /bitrock/rubystack/subversion/lib/libsvn_diff-1.so.0 (0xb7f4a000) libsvn_ra_local-1.so.0 => /bitrock/rubystack/subversion/lib/libsvn_ra_local-1.so.0 (0xb7f44000) libsvn_repos-1.so.0 => /bitrock/rubystack/subversion/lib/libsvn_repos-1.so.0 (0xb7f24000) libsvn_fs-1.so.0 => /bitrock/rubystack/subversion/lib/libsvn_fs-1.so.0 (0xb7f1e000) libsvn_fs_fs-1.so.0 => /bitrock/rubystack/subversion/lib/libsvn_fs_fs-1.so.0 (0xb7f02000) libsvn_ra_svn-1.so.0 => /bitrock/rubystack/subversion/lib/libsvn_ra_svn-1.so.0 (0xb7ef0000) libsvn_ra_dav-1.so.0 => /bitrock/rubystack/subversion/lib/libsvn_ra_dav-1.so.0 (0xb7ebe000) libsvn_delta-1.so.0 => /bitrock/rubystack/subversion/lib/libsvn_delta-1.so.0 (0xb7eb3000) libsvn_subr-1.so.0 => /bitrock/rubystack/subversion/lib/libsvn_subr-1.so.0 (0xb7e83000) libaprutil-1.so.0 => /bitrock/rubystack/apache2/lib/libaprutil-1.so.0 (0xb7e6b000) libexpat.so.0 => /bitrock/rubystack/apache2/lib/libexpat.so.0 (0xb7e46000) libapr-1.so.0 => /bitrock/rubystack/apache2/lib/libapr-1.so.0 (0xb7e20000) libiconv.so.2 => /bitrock/rubystack/common/lib/libiconv.so.2 (0xb7d42000) librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb7d21000) libcrypt.so.1 => /lib/tls/i686/cmov/libcrypt.so.1 (0xb7cf3000) libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7cdb000) libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7cd7000)
  • 17. Lets take a look inside  Building & testing system  Integration  logic inside XML files  Wrappers  LD_LIBRARY_PATH  what about the shebang line  rubyconsole & ctl.sh
  • 18. Applications  bitnami.org/stack/ JRubyStack  includes ready-to-run versions of JRuby, Rails, Java, Tomcat, GlassFish gem, MySQL and Subversion.  bitnami.org/stack/Tracks  bitnami.org/stack/ Redmine
  • 19.
  • 20.
  • 21.
  • 22.
  • 23. Future / Plans Rubinius JRuby Ruby 1.8 / 1.9 ... together ... ... and ... custom RubyStacks: merb, nginx, ...
  • 24. Conclusions why it matters ?
  • 25. Thanks to Manuel Morales Castro & Beltran Rueda Borrego
  • 27. Thank you ! Daniel Liszka danoo@BitRock.com