Where Continuous Integration and Deployment has its home.

Manuel Weiss

Subscribe to Manuel Weiss: eMailAlertsEmail Alerts
Get Manuel Weiss via: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn

Top Stories by Manuel Weiss

After reading Chad Fowlers excellent blogpost about immutable deployments at 6Wunderkinder, we wanted to share our views on immutability in infrastructure. Our definition of Immutable Infrastructure: Automate the setup and deployment for every part and every layer of your infrastructure. Never change any part of your system once it is deployed. If you need to change it, deploy a new system. For example, instead of deploying into an existing EC2 instance, start a new server, deploy there and point your load balancer to the new server. Then remove the old server. Replacing a system at the lowest level you can forces you to automate every deployment step. Immutable infrastructure and Continuous deployment work great together. Completely replacing, instead of updating, an existing part of your infrastructure makes your deployments less complex. Test driven development,... (more)

Faster Test Suite Boot Times with Ruby on Rails

Developers need to be able to run tests quickly or they will stop running them. The biggest bane of test driven development, or whatever variant you practice, is long boot times. Even when you just run one test a slow boot will make it a tedious job. There are a number of ways to reduce startup times in a Ruby on Rails project. Load less dependencies to get a faster test suite boot time Project dependencies need to be loaded every time you start your test suite, less dependencies means faster startup. Keeping project dependencies to a minimum is always a good idea, not just beca... (more)

Continuous Integration, Continuous Deployment and Continuous Feedback

Context At Usersnap we spend a lot of time thinking about optimizing the developer workflow. With great tech startups helping us with our tests, and Continuous Integration, we want to add Continuous Feedback to the dev checklist. Fortunately we don't need to stress the importance of receiving feedback from clients, co-workers and users before, during and after your development process. Let's move on to the how. The Build-Measure-Learn-Workflow We have all read Eric Ries' The Lean Startup - or at least we say we did - and its call for agile product development and validated learnin... (more)

Slow Tests Are the Symptom, Not the Cause

If you have a slow test suite and you are asking yourself "how can I make my tests faster?" then you are asking the wrong question. Most chances are that you have bigger problems than just slow tests. The test slowness is merely the symptom; what you should really address is the cause. Once the real cause is addressed you will find that it's easy to write new fast tests and straightforward to refactor existing tests. It's surprising how quickly a rails app's test suite can become slow. It's important to understand the reason for this slowness early on and address the real cause ... (more)

Unleash the Puma on Heroku

UPDATE: We’ve added performance comparisons done by Jonathan Rochkind to the additional links. He had Puma come out on top as well. 18 months ago I wrote a blog post about how to use Unicorn to optimize our Heroku performance. Since then we’ve been using Unicorn on Heroku. Over the last couple of months our business grew a lot and Unicorn seemed to take more resources than necessary. We switched to 2X instances and still needed quite a lot of workers. Although larger Heroku bills were part of our decision to optimize, we mostly felt the quality of our service was diminishing. We... (more)