The objective of this post will set up three nodes Kubernetes(K8S) cluster on VirtualBox and launch an application/nginx.

What you will learn

  • Using vagrant spin up multiple virtual machines
  • Install Kubernetes and set up Controller(master) and Workers
  • Launch an application scale up/down and expose it.
  • containerd as the container runtime. we will not use Docker
Image for post
Image for post


please make sure on your host machine Vagrant and VirtualBox are installed.

For sure you can play around with Kubernetes via minikube as well, but to be honest it feels the less real world. All resources are accessible on my GitHub repo here. …

In this post, I’d like to share the resources that I often use. Most of them are well know but I thought maybe your favorite resource is not listed below, then ShareIT, I will appreciate IT.

Image for post
Image for post

Let me share my resources

  1. Oreilly Books: Definitely it’s my favorite resource if I tend to learn something new extensively. You can subscribe online and access all resources not only books but also videos!. If you are a student you do not need even to pay simply high-quality resources FREE!
  2. Corresponding Tool Docs: To be honest this is the first place where should take a look if you start to learn/practice a new technology. …

Level: Advanced-intermediate

In this post, I will focus on resource management in docker using cgroups. If you are new in the container world and especially Docker that will use for demos, please read either my linked article about underlying technologies or other corresponded resources out there.

In Docker, the resources are managed by Control Groups (cgroups) which a Linux kernel feature allows you to limit, modify, or allocate resources as needed. Docker allows limiting container resources per flag for each individual container. You can see a bunch of flags here. Let’s see a sample:

docker run -it --cpuset-cpus="1-3" --memory=50MiB ubuntu

We let the docker use CPU cores from 0 to 3 and maximum 50MiB memory. The container will not consume more than the assigned resources. To see this simply hit the docker stats command. …

Currently, the DevOps landscape is growing extremely fast and there are a lot of tools appearing newly. Lastly, Hashicorp comes up with a new tool called Waypoint and I do believe the Waypoint will have a huge effect on the deployment and as well as the development process of many corporations. To be honest, Waypoint is simply awesome!

Image for post
Image for post

Waypoint is definitely easy to start and it has comprehensive documentation to start with immediately. It is working perfectly with cloud providers such as AWS, Azure, GKE, and as well as well integrated with GitLab and GitHub.

Entire CI/CD with one tool/file :) Everything is a file…

Regular expression = regex

A few weeks ago I faced a task that required parse a text and extract certain pieces of information. There is a bunch of ways of handling kinds of tasks in programming. However, realized that using regular expression will be much simpler than writing a parsing function or importing an external library instead. Especially if you implementing C++ and to use third-party libraries for parsing for a small task, it will be an unnecessary dependency. So I have noticed that I was not confident in the regular expression operations. Thus push me to read a bit of documentation and some examples as well. …

2. Part

In the last post, we started with Memento now let’s move on with a creational pattern called Singleton.

Image for post
Image for post

By using Singleton pattern you ensure instantiating your object to be strictly controlled. The Client can access the singleton instance through Singleton’s Instance operation.


  • Controlled access to the sole instance.
  • Reduced namespace
  • Permits refinement of operations and representation.
  • Permits a variable number of instances. The pattern makes it easy to change your mind and allow more than one instance


  • Increase dependencies
  • Testing gets harder because the test cases most probably will have dependencies.

There are lots of implementation style for the Singleton pattern, I will use the so-called lazy implementation in java. …


In this post, I will go over one of the core Design Pattern in Gang of Four. Let’s start with a fundamental definition: Design Patterns. What is a design pattern why we need them?

Image for post
Image for post

GoF defines patterns as:

“Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice” Christopher Alexander

The definition above is from Design Pattern Bible. So those patterns solve problems that occur more than oft in the software development industry. If you have a similar problem you might use your previous solution again. It might require some customization but conceptionally is still quite similar. In quite a long development history programmer used those patterns over and over again then they became certain recipes for its corresponding issue. …

After a long break, I am back again. Let’s move forward with another Jenkins job type so-called multibranch pipeline. In this post, I will focus on parallel execution syntax for the CD chain via Jenkins.

Image for post
Image for post
Following tools I’ve used:
* Jenkins
* Docker
* CMake

You most probably work on a multi-branch project where you not directly developing under the master/main branch. To keep the main/production branch always stable we avoid pushing new code there. In my demo will use a C++ project where build, test, and all QA processes triggered by CMake.

Each parallel stage will run its docker container and we will make always out of source build to keep source code clean. As you might know, you can run all Linux commands in the Jenkins pipeline. This will power us to work as on Linux machine. At some point, there are some differences based on syntax because Jenkinsfile has to be written in the Groovy language. Nonetheless the groovy allows you to use the same syntax as well by…

After you read this post, you might/should have a basic understanding of how containers work.

Containers are one of the hottest and key topics in Cloud Computing. Especially Docker hit the container revolution off in 2013 and since then container technologies rising up continuously. For many people, containers are equal to Docker and Docker does some magical things. It’s not exactly how it works.

So in this post, I’d like to look closely at Docker and how does docker work and see what's going on behind the scene.

Image for post
Image for post

In the picture above you see Atlas in Greek mythology. I took the picture above because is summarizing this post. …

For C++ developers package/library management is not simple as in other many languages. However, there are some tools that make this process less painful. One of those tools is Conan which is a portable package manager, intended for C and C++ developers, but it is able to manage builds from source, dependencies, and precompiled binaries for any language. Conan is free and opensource, works on all mainstream operating systems including Windows, Linux, macOS, FreeBSD, etc.

Image for post
Image for post

Nonetheless in this post, I want to go over the platform “Artifactory” from JFrog where you can deploy your Conan packages. Basically, Artifactory is a universal repository manager supports lots of package type such as docker registry, npm, deb packages, and much more. …


Mehmet Ali Baykara

Computer Science And DevOps things :)

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