Ship It !
    with Ruby / Rails ecosystem
How ruby ecosystem helps your team
About Me
•              a.k.a “xdite”

    •   http://blog.xdite.net

    •   http://twitter.com/xdite

    •   http://github.com/xdite

• Ruby on Rails Developer since 2007
• T - Lead Developer
    •   http://www.techbang.com.tw
Agenda
• Why Rails ?
• Team Development with Rails ecosystem
•      Ruby
T
• Pc home
    •
•
•
startup
out of minds
broken documents
              in Taiwan
learning curve too high
                   in Taiwan
hard to maintain
               in Taiwan
lack of developers
                 in Taiwan
NOT a problem
Best
Developers are trainable
           http://blog.xdite.net/?p=1754
Framework Convention
Rails Best Practices
 www.slideshare.net/ihower/rails-best-practices
Practical solution by default
Strong Ecosystem
We are trying to build...
Content Factory
Developer Factory
Application Factory
10+ Deploys A Day: Devs & Ops
    Cooperation at Flickr.
                          Velocity 2009
                    http://bit.ly/aqlOp8
Team
  Development
Non-blocking Development
Blocking Development
• developing on production server (!!!)
• manual update from SCM / FTP (!!!)
• one project maintained by one developer
• recording bug by using Google Docs(!!)
Non-blocking Development
• SCM
 • database, release version source code
• Automate
• Notify
• Document
 • Issue Tracking System, Wiki
Tools and Infrastructure
• Develop in a Sandbox
• Manage Assets Using SCM
• Script Your Build
• Build Automatically
• Track Issues / Track Features
Pragmatic Project Techniques

• Work from The List
• Review All Code
• Send Code Change Notifications
Database with SCM
          ( Develop in Sandbox )
rake db:migrate
rake db:seed
Environment with SCM
            ( Develop in Sandbox )
• enviroments/development.rb
• enviroments/testing.rb
• enviroments/production.rb
Bundler
Chef
Continuous Integration
              ( Script Your Build )
Integrityapp
Automated Deployment
            ( Build Automatically )
cap deploy
cap deploy:rollback
capistrano/ext/multistage
Notification System
      ( Send Code Change Notification)
hoptoad
redmine_irccat_notification
Github Hooks
Issue Tracking System
         ( Track Issues / Track Features )
Redmine
Source code Review
           ( Review All Code )
Github
another problem comes out
We can’t afford a SA
SA’s job
• monitor production status
• build production environment
• build job worker
• maintain mail system / dns server ..etc.
ScoutApp
ScoutApp
•   Server Load       •   MySQL Slow Queries

•   Disk Usage        •   MySQL Statistics

•   Memory Profiler    •   Network Throughput

•   Process Usage     •   Delay Job

•   URL Monitoring    •   Memcached Monitor

•   Server Uptime
God
New Relic
Moonshine
Delay Job
Cloud-Crowd
MadMimi
PowerDNS on Rails
there is more...
Conclusion
http://bit.ly/techbang-job
                 We are still hiring....
Thanks for listening!
            xdite@techbang.com.tw

Ship It ! with Ruby/ Rails Ecosystem