I recently watched an interesting interview from one of the best minds in computer science, Donald Knuth, author of the six-volume series “The Art of Computer Programming” and it got me thinking a lot. In this post, I will try to share my personal take on some of his quotes, as well as open up the discussion to get more opinions :) If you have not already watched it, I really recommend watching the whole thing.
Recently I have been trying to wrap my head around what has been happening in the kubernetes runtime space, doing so made me realize that alot has happened and I was too busy to catch up, as a result, I decided to write this blog post which summarizes my thoughts after reading up a bit. Have a look at this post’s outline and feel free to jump to sections of choice if you already feel confident about the topic.
Docktorino is a real-time continious testing tool for your docker builds, helping you containerize with confidence! When building Docker images it is sometimes tricky to assert the image behavior, for example, whether the contents of the image you built is correct, or that commands can execute correctly inside your container ( maybe you forgot to set your binary’s PATH). Docktrino makes these types of assertions easy to define when building your Docker images.
DOCKument is a tool that helps you auto-generate documentation for your Dockerfiles and Docker images the way you would an API. Matthias Lübken gave an example on how to use “API” like labels to describe important information in the Dockerfile (e.g., resources used, exposed ports, dependencies, etc) here. This project makes use of similar label patterns to fetch important data in Dockerfiles / Docker images and create Dockumentation for it automagically.
Kubernetes has been taking over the container orchesteration stage for sometime now, it has a large community and a great set of tooling and contributers backing it. Along those lines, picking up kubernetes skills can be a little daunting at first, but fear not, as documentation is rich and concepts are well elaborated in not one but many places. In this post, I won’t attempt to re-explain kubernetes concepts (pods, deployments, services, replicasets, …etc) since as I said, a lot of great people did that job already, and did it very well (if you still have doubts about some of the concepts, I would be glad to help clear smoke up).
I am walking across the office corridor right after the weekend, I push my mouth wide open to both of its ends, nod my head and give a friendly smile, what do I get in return? Nothing! Some people do not understand the value of a simple friendly smile, or the effect of it on someone else. I think of it as a sign of respect and appreciation in the work place, a gesture of kindness.
In this post we will be covering eBPF concepts, as well as challenges faced when applying network policies for microservices and how these challenges can be tackled. Finally, we will have a look at Cilium to see how it makes eBPF simple and easy to utilize. Introduction - What is eBPF - The bpf() system call - Important use-cases for eBPF - How to create an eBPF program? Microservices - What are Microservices and how do they work?
Alright, so recently I decided to use sensor for different applications. Sensors are a great way to hear, see, and even feel things that we as humans can’t see or hear. This post is the first in a long series to come about making, circuits, and the discovery of the world of things around use. Components How does an ultrasonic sensor work? My latest project was to use an ultrasonic sensor to detect distance.
OCI, Containerd, runC, Moby, linuxkit are all relatively new components that work together for building containers. In this post we will explain each component and how these components relate to one another. Lets Start with the Basics (OCI, runC, Containerd) So what is the Open Container Initiative (OCI)? What are runC and Containerd? Demistyfing Moby & The LinuxKit Linuxkit Test-Drive Important References Lets Start with the Basics (OCI, runC, Containerd) Before jumping in and talking about Moby and Linuxkit, it is important to establish some basic knowledge first, this will make understanding Linuxkit much easier.
As you might know already Docker is now the defacto standard for containers. It is being used as the run-time for many clustering frameworks. Therefore, I thought about summarizing some of the important commands that you might need in your day-to-day docker life. I hope this post will be useful for you. General Docker Commands ## Tagging an image docker tage <image_id> name_of_the_image #real time logs docker logs --tail 1 --follow cbceaaea0ef5 # Forcing a rebuild docker build --no-cache # publish a port even if it was not expose in the dockerfile docker run -p <port> # publish all ports that were explosed in the docker file docker run -P # Setting up environment variables docker run -e WEBAPP_PORT=8000 -e WEBAPP_HOST=www.