Gerhard Lazu

Keep it simple. Write tests. Measure.

Read this first

Ansible & Docker - The Path to Continuous Delivery I

If I had a Rails application requiring MySQL and Redis that I wanted to host myself, this is the quickest and most simple approach. There are just 2 dependencies: Ansible & Docker. To make the introductions:

Meet Ansible, a system orchestration tool. It has no dependencies other than python and ssh. It doesn’t require any agents to be set up on the remote hosts and it doesn’t leave any traces after it runs either. What’s more, it comes with an extensive, built-in library of modules for controlling everything from package managers to cloud providers, to databases and everything else in between. If you’ve spent more time writing cookbooks rather than using them, Ansible will be your cure.

Meet Docker, a utility for creating virtualized Linux containers for shipping self-contained applications. As opposed to a traditional VM which runs a full-blown operating system on top of the host

Continue reading →

Embracing constraints

The shell environment is usually regarded as nothing more than a simple prompt for passing our keyboard input to system services that do the heavy-lifting. Peel back some layers and you will discover a functional programming language with the most pure event loop. Every key press is an event waiting to happen, wanting to make your command-line usage more efficient, more helpful.

Simple primitives - building blocks - that you can combine in endless ways using the pipe operator open this environment to endless combinations. Every command has 3 streams: stdin or fd0, stdout or fd1 and stderr fd2. The pipe operator is able to connect these data streams between utilities and give you the power to combine, slice and filter the data that passes through them to your exact taste.

Do you need to upcase a string?

echo "upcase me" | tr [a-z] [A-Z]

How about stopping all redis-server processes?

Continue reading →