Welcome!

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

This is a republished guest blog post. The original article is written by Manfred Stienstra. You can find it on the fingertips blog. Developers need to be able to run tests quickly or they will stop running them. Slow test suites are often partially caused by slow startup times. Once you’ve eliminated this problem, you might want to take a look at individual tests. Note that test suites stress your code in a totally different way from the production environment. A slow test suite doesn’t mean your app will be slow in production and the other way around. Never optimize your code for the test suite. Sometimes slow tests are an indication of slow code, always measure to be sure. Measure first Always start by measuring the actual runtime of your test suite or individual tests when trying to speed them up. Always do a few test runs to get a feeling for the variance i... (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)

Building Vagrant Machines with Packer

Sharing a common development environment with everyone on your team is important. It is really hard though to keep the same dependencies, database versions and other systems in sync between different machines. Vagrant is a great tool that helps with this and manage the lifecycle of a virtual machine. As nice as Vagrant is, provisioning machines with it has always been a pain. A couple of months ago Mitchell Hashimoto, the creator of Vagrant, launched Packer. Packer lets you build Virtual Machine Images for different providers from one json file. You can use the same file and com... (more)

Unleash the Puma on Heroku

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 started with Puma as it seemed to be one of the more widely used options. For the last month we have used Puma in production on the ... (more)

Efficiency in Development Workflows: Pull Requests and Code Review

This is a republished blog post. You can find the original source here: http://blog.codeship.io/2013/08/22/the-codeship-workflow-part-2-pull-requests-and-code-review.html Using Pull Requests As I mentioned last week we use GitHub Flow on GitHub. But the whole workflow we describe is also possible when working with BitBucket. We do not have a policy when a pull request should be opened. Some of our developers open them when they start a feature, some wait until the feature is implemented. Then we push regularly to that branch as explained in the last post. Open pull requests are h... (more)