Like most people I know, one day I decided to buy a Raspberry Pi and just like [some of] those people, I had no idea what I should do with it. I guess that the desire of a small computer to place to the remote corner of my desk was stronger than the actual need of it.

So, given I don’t like to have useless objects getting dusty in my room, I decided to think of something to do with my Pi, so that I could have a useful, still dusty, object.

I wrote down a list of projects I…


In the last four years, I worked mostly with applications deployed directly on AWS EC2 instances, usually LEMP or LAMP stacks, with some Node.JS flavours in some cases. When it came to auto-scaling it was pretty easy to identify bottlenecks/weaknesses of our services, so I always set up CloudWatch Alarms based on either Memory or CPU metrics.
Now that I’m working with Kubernetes and Docker containers the rules of the game have changed drastically; how can you tell whether your Worker nodes should scale based on their CPU utilisation? And what about Memory? Or both? The worker nodes — in…


Test Terraform with Kitchen

In an ideal world, you write code and then test it, period. Doesn’t matter what kind of code, you just test it, even if it’s Terraform we’re talking about. One might say that Terraform is not a real language and I can’t argue with that but its code, manifest, whatever you want to call it, generates resources that will affect, one way or another, your stack. That’s why I never stopped making researches trying to find the right way to test it. I was told that terraform plan would do the job although I have always claimed this is a…


We all know Slack, right? Have you ever thought about using it to deploy your code by just typing /deploy? I did and this is what I designed and developed for a team that was sick and tired of dealing with the poorly designed AWS Codedeploy UI.

Context

Our stack lived on AWS and we had an Account per Environment, that means that Staging and Production lived on two completely separated and isolated accounts; every user had to login to what we called the Main account and then assume the role of the environment they wanted to interact with. …


Reliability, high availability, and uptime are the most important things for a DevOps Engineer; as soon as new technology is released, though, we tend to put our hands on it before anyone else does. What’s the price to pay for that? Just the risk of screwing up those principles I just mentioned. Hopefully for a short period, though.

For the last year or so, I’ve been working mostly with AWS infrastructures, Terraform and Ansible. They’re all great but, yes, they could be better, sometimes, or we could be quicker and smarter than we are, by time to time, and spot…


Test Kitchen - Let’s shake this role up!

Test Kitchen

Test Kitchen is a test tool used to, indeed, test your own work before going live! It’s quite amazing how easily you can spin up your test environment - using AWS EC2, Vagrant, Rackspace and so on - and deploy your applications. As I did with the the previous two posts, I’m going to show you, step by step, how to build your test environment for our Ansible Role.

Getting started

Dependencies

The guys who developed Kitchen are quite awesome and not just for the tool per se, but also because they wrote a wonderful…


Our first task

Here is where the fun begins! First thing we want to do is to create our file and we’ll call it config.yml.

It’s a YAML file so… be careful with your spaces and tabs!

As every yml, let’s not forget to add `---` at the beginning of the file; then we can write something like this:

---
- name: Install packages
apt:
name: “{{ item }}”
update_cache: yes
state: present
with_items: packages
when: packages is defined

Let’s go through every single element of this task!

Name

This is the very beginning of our task which defines its name and it is…


Source: startups.co.uk/10-steps-to-starting-a-business/

What is Ansible?

When I started my career as a DevOps, the approach to the Configuration Management scared me quite a lot. I was introduced to the magnificent and powerful Chef (and Ruby, of course), which gave me the hell of a headache. I remember that the first thing I noticed, was the complexity of Chef structure and, as far as it’s very intuitive, the concept of ‘cookbooks’ or ‘recipes’ or #whateveryoucallit made me waste a lot of time on reading tons of documentations.

Just for clarity, I don’t hate Chef: I like it and I like its ‘development’ oriented processes! …

Davide Di Mauro

DevOps engineer, musician and serial traveller! Like to tell the stories of the people I meet, describe the places I see and talk about the music I live!

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store