January 16, 2021

(Originally published at https://ish-ar.io/jenkins-at-scale/)


This article presents a solution to run a CI/CD Jenkins based platform at scale.
To deploy and manage Jenkins at scale, automation is vital. More important, automation should help you and not make your life harder.
When it comes to Jenkins, automate the whole setup could be painful; often, engineers create hacky solutions or follow manual steps to get it “up & running”.
Obviously, we want to avoid these scenarios as much as possible.


When I thought of creating a CI/CD platform that would be resilient and able to scale, I decided to…

(Originally published at https://ish-ar.io.)

Tutorial introduction and requirements

Today’s article is a tutorial on how set up and use the go-git library to clone and update a repository with an in-memory filesystem.
This procedure is quite useful if you want to push against or clone a repository without touching the OS filesystem and deal with permissions or temporary files.
Albeit, there’s documentation about git-go, I find it not really clear and sometimes misleading due to the different versions and names of the library.
For this reason, I’ve decided to share this tutorial, and hopefully will be helpful to someone.
For the purpose of this…

September 16, 2020

Originally posted here -> https://ish-ar.io/terraform-blog-series-3-tips/

1. A big single state file is not going to help you.

When a new user starts with Terraform, it could seem easier to manage all the infrastructure code under one big repository and one big state file
(To who doesn’t know what a state file is, check out this page -> https://www.terraform.io/docs/state/index.html)

However, this design will soon show its downsides and limits.

Why is a mono state file, not a good idea in terms of performance?

One of the reason is that during the ‘terraform plan’ command there’s an action called “refresh”. This step means that Terraform is about to “reconcile the state…

August 11, 2020
(Originally published at https://ish-ar.io.)

Hello dear readers,

Today’s article is about some experiments I’ve been doing with Tekton CI/CD + Prometheus.

Continuous Integration and Deployment is becoming more and more a hot topic — everyone wants a 100% automated, flawless, fast, code integration, and deployments.

But how can a team or a company achieve that?

Usually is a step-by-step process and not a ready-to-install solution (if there’s one though, please tell me !! ;) ).

For that reason, metrics will help you to keep track of your CI/CD improvements and to understand what needs to be adjusted.

May 28, 2020
(Originally published at https://ish-ar.io/tekton-best-practices/)

(Originally published at https://ish-ar.io)

A couple of months ago, I started looking into a relatively new project called ‘Tekton’.

As soon as I started to implement Tekton, I’ve realized how far (in a positive way) is from the typical industry standards. Being a Kubernetes native CI/CD solution makes it just revolutionary.

However, it comes with common issues that early-stage projects often have. For example:

  • Even though documentation is well written, the lack of case studies, experiences, Q&As on forums, etc. makes it hard for new users.
  • Auditing, authorization, logging, it’s all a bit…

April 30, 2020

(Originally published at https://ish-ar.io/cka-10-tips-tricks/)

Hello, dear reader!
In the last three weeks, I have been busy preparing for the CKA exam (Certified Kubernetes Administrator), and I’m happy to say that I’ve passed it.

Therefore, today’s article is not going to be an “how-to” or some deep-dive material, but just a list of few tips & tricks that helped me to pass the exam, and hopefully will help you too!

If you don’t already know, the exam is 3 hours hands-on and proctored test, and it can be done from your room (Yes, it’s COVID-19-friendly!)

The exam has…

Originally published at https://ish-ar.io/python-ebpf-tracing/


A couple of weeks ago, a friend of mine, who is developing a Python application that performs data transformation, wanted a way to know at what step of the data pipeline, a particular task/process is.

I am aware that this challenge might have different solutions, and it heavily depends on the use case, but I wanted something more than the usual workaround. Some workarounds that immediately pop up in our mind might be:

  1. Update an external endpoint every time the application enters a new function.
  2. Dump logs for each transaction and interprets them.
  3. Make all the…

Originally published at https://ish-ar.io/sre-book-notes-slo-error-budget/

I have finally managed to read the SRE book. It has been in my “book to read” list since forever, and I’m happy that I finally have a little bit of time to read it. It is such a good feeling to see things I’ve been doing day after day for years written and explained in a book with beautiful suggestions and inspirations.

Let’s get to today’s topic: SLOs & Error Budget!

Service Level Objectives.

For who doesn’t know what SLOs are, here’s a short definition from the book:

“An SLO is a service level objective: a target value…

Original post: https://ish-ar.io/observability/

Observability is not a new concept. Indeed, it comes from the world of engineering and control theory. As per definition, observability is a measure of how well internal states of a system can be inferred from knowledge of its external outputs.

So this means that your old monolith application must now expose its internal status, metrics, have tracking details about exceptions or crashes, and a lot more, to define it as “ observable.”

As you can see, observability comes with a lot of different aspects, and it may be unclear at first glance. In this article, I…

Original article https://ish-ar.io/ebpf-my-first-2-days-with-it/

How I ended up studying eBPF!?

In the last two months, I have noticed a lot of posts, tweets, and articles talking about eBPF, I was annoyed by that “hype”, because I didn’t know absolutely anything about it. So, I googled it, and it turned out it was BPF (yes the Berkeley Packet Filter) with an ‘e’ as first letter :(. At the time I decided to not get involved since it was “just a packet filter” and nothing else.

But two days ago, I have read about it in a detailed article. My only thought was…

Isham Araia

Senior SRE @ Just Eat

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