After reading Chad Fowlers excellent blogpost about immutable deployments at
6Wunderkinder, we wanted to share our views on immutability in
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
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)
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)
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)
Set up Continuous Deployment to dotCloud for your Python applications with
We are proud to announce a new member in our Codeship deployments family:
A lot of our customers have asked for better Python deployment support on our
dotCloud is a cloud hosting platform for your web applications. They support
Python, Java, PHP and many other platforms. Getting started is easy: Just
create an account and you’re all set within a few minutes.
Deploying to dotCloud with the Codeship
You can deploy your GitHub and BitBucket projects with the Codeship. All you
Developers need to be able to run tests quickly or they will stop running
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)