Category: Ruby on Rails
Ruby programming language was created by Yukihiro Matsumoto (Matz) and firstly published in 1995. It’s a very modern, interpreted programming language available on many platforms. It’s pure, object-oriented language which adopted many of its properties from the Smalltalk language. Ruby on Rails is advanced environment (framework) which allows us to create modren and advanced services / web applications (websites) in a quick, non-stressful way.
During the intensive, two days course participants will understand pros and cons of different methods regarding configuration and maintaining production, staging and development environments of Ruby on Rails. We will discuss methods of fast implementing new applications version, optimizing environment for better performance, diagnosing errors and avoiding failures. We will also discuss some aspects of security of Ruby on Rails application (and web applications in general).
The course is intended for systems administrators, who want to get familiar with managing Ruby on Rails applications, as well as programmers, who plan to manage and maintain their applications in production environment.
Duration
2 days
Agenda
- Basic definitions
- The most important performance requirements in Ruby on Rails
- Review of HTTP basics
- Ruby language in a nutshell
- Main concepts and technologies related to web applications
- Characteristics of Ruby on Rails environment
- Environment of application in Ruby language
- Basic methods of installing the language
- Virtual environments of installing language (rvm, rbenv, ruby-install, chruby)
- Gems and Bundlers
- Ruby gems binary dependencies
- Configuring time zone and language settings (locale)
- Implementing Ruby on Rails application
- Version Control Systems (git)
- Migrations in ActiveRecord
- Various application environments (test, development, staging, production)
- Updating and implementation automation: capistrano, chef
- Updating Ruby language version and gems (tests and regression)
- Web servers in production environment
- Different web servers (apache, nginx)
- Application server variants
- Recommended: phusion passenger (raptor), unicorn
- Alternative: puma, mongrel, thin
- Jruby (tomcat)
- Performance, scaling
- Cache: Memcache, Redis
- Reverse proxy (Varnish)
- Load balancing
- Application monitoring
- Restarting components automatically (monit, god, bluepill)
- Logging messages from Rails application; associated systems tools (logrotate)
- Tracking exceptions (Errbit)
- Inner tools (NewRelic RPM)
Audience and prerequisites
We assume that participant has at least basic knowledge of working and managing system environment based on POSIX standard (Linux/BSD). The participant should also understand specifics and work of HTTP protocol on at least basic level and be able to configure WWW server. The experience in managing any web applications in other popular technologies (PHP, Python, Java) will be valuable.
Below you will find the summary of requirements/recommendations for the initial knowledge and skills of training participants:
- basic knowledge of Linux/BSD systems administration topics
- no problems with working in terminal environment (bashes) of Linux/BSD/OSX system
- understanding of HTTP protocol and related topics (sessions, SSL, stateless protocol, methods, redirections)
- administration of database systems and SQL basics
- knowing Ruby language will be an advantage but it’s not necessary
Certificates
Course participants receive completion certificates signed by ALX. Upon completing the course, participants will have the following skills/ knowledge:
- configuring product environment for application in Ruby on Rails
- monitoring application in real time
- ability of quick failure diagnosis
- diagnosing performance problems and planning infrastructure development
- planning system resources usage basing on expected movement
- understanding advantages and disadvantages of different methods of application run in Ruby on Rails
- configuring the environment paying attention to data and application safety