Deploying versions with zero downtime ( 2 months later )

October 7, 2014

Again, two months, almost to the day since we last hit problems with deployment, we are here again. Up till the day before, deployments worked fine if a little slow, but now they fail with a timeout. The site is running okay but remains at that version: The process is now faultless: “Deploying Versions with Zero Downtime”. Here is what we did: STEP 1) Take a DB snapshot. STEP 2) Duplicate the environment in AWS management console, using the DB snapshot just created. ... Read more

Speeding up Ruby on Rails

August 19, 2014

…with less sql queriesA Rails application will make a large number of sql queries per page unless steps are taken to mitigate this. This is bad because it degrades the performance of your app, affects your ability to scale, and will cost you money. Install the New Relic gem to see the sql queries made when loading a page in your app. Here is what we changed to reduce the number of sql queries per page: ... Read more

Eager loading and pg_search: good bye to polymorphic association.

August 11, 2014

When we first designed the database schema for our Rails project, we employed the ‘Single Table Inheritance’ and ‘Polymorphic Associations’ strategies to two different and deserving cases. For the latter case, we needed to model different types of a class having common properties as well as unique. So for this, Polymorphic Association was chosen over Single Table Inheritance to achieve a cleaner data structure ( with less holes ). Since then, the project has evolved and undergone several performance enhancement iterations, and today we decided it was time to lose the polymorphic association at the center of an n + 1 performance problem. ... Read more

Deploying versions with zero downtime

July 24, 2014

Two months, almost to the day since we last hit problems with deployment, it looks like we are here again. Up till the day before, deployments worked fine if a little slow, but now they fail with a timeout. The site is running okay but remains at that version: It is not possible to retrieve the logs - also due to an execution timeout. It is possible to SSH to the EC2 server but looking around the logs it appears everything is rolled back. ... Read more

Bootstrap-sass upgrade for Rails on AWS

June 5, 2014

We recently spent a little time replacing blueprint with twitter bootstrap - precompiled with sass. It looks great. When it came to deploying to Elastic Beanstalk, we hit a few unexpected issues. Here is what we did to get it working. We are running on the 64bit Amazon Linux 2014.03 AMI. The up to then prerequisite nokogiri v 1.6.1 gem was already installed and working fine. The problem came with bundle install requiring nokogiri v 1. ... Read more

Adventures in creating a new AWS EB environment

May 21, 2014

We added queue classic to our Rails 4.1 + PostgreSQL application running on the AWS EB free tier. Then we hit problems. Later deployments failed (10 min time-out) yet the website continued to work okay. The cause could have been the QC worker rake task, additional gems or maybe a combination of the two. So we tried restarting the app server => failed (10 min time-out). Then we tried rebuilding the whole EB environment => failed to remove a security group due to dependencies. ... Read more

Rails 4.1 upgrade from 4.0

April 16, 2014

We have just upgraded a rails 4.0 application to Rails 4.1. It has a PostgreSQL DB; is developed on Windows; and is run in production on Linux in AWS. All rspec tests were passing and on rails 4.0 prior to the upgrade. On setting the rails version to 4.1, we had some test failures. Here are the fixes made: Timezone error: C:/Ruby193/lib/ruby/gems/1.9.1/gems/tzinfo-1.1.0/lib/tzinfo/data_source.rb:199:i n `rescue in create_default_data_source': No timezone data source could be found. ... Read more

20 days in Colombia

December 27, 2013

20 days in ColombiaOn November 23rd we flew into central Colombia and visited Bogota, the beautiful villages of Villa de Leyvaand Barichara, and the adrenalin center that is San Gil. Heading north to the tropical Caribbean coast, we stayed in Santa Marta, hiked in Tayrona National Parkand visited the old town of Cartegena. Finally we went south via Medellin to a coffee farm in Salentobefore returning to Bogota.


December 27, 2013

Salento is in the heart of the Zona Cafetera, between Medellin and Bogota. To get there we flew from Cartenga to stop over night in Medellin, then took a 5 hour coach and bus via Armenia. The hostel in Salento is attached to a coffee farm and run by an eccentric ex-Australian and his teenage family. Fresh coffee was on tap, and we took the excellent coffee farm tour, in English. ... Read more


December 27, 2013

Another 5.5 hour coach ride from Sante Marta, Cartegena is a the tourist capital of Northern Colombia. Even street traders speak English in Cartegena.The old town is extremely photogenic. Colourful spanisheque architecture is everywhere within its walled confines. Filling the coachCartegena is not that far from Sante Marta, but it seems the coach drivers trawl the streets as they leave a town, touting for additional passengers. It can take up to an hour to get on the open road. ... Read more

© 2020 Keith P | Follow on Twitter | Git