This post going to be short and it’s gonna address a specific issue for the Kubernetes development cluster you may also face.
You have a cluster for development so it used by CI/CD chain. During working hours, the cluster will scale up/down depending on the build jobs. I assume you have already enabled auto-scaling for your cluster. In some cases, some pods which run as a runner for CI/CD chain, stay in a running state always. …
Recently, due to my thesis, I had to chance to look closely at Windows Operating System, especially how a process will be created, managed, terminated, and so on. If you are programming on a higher abstraction level, maybe you did not care about how some methods such as exit() work on the OS level.
In the operating system, there is mainly so-called two space which is User and Kernel space. To interact with the kernel you need to use some system call method/well-known syscalls. Let’s see how programming leverage appears: From Top to bottom.
Here is an simple c++ program…
The objective of this post will set up three nodes Kubernetes(K8S) cluster on VirtualBox and launch an application/nginx.
What you will learn
please make sure on your host machine Vagrant and VirtualBox are installed.
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.
Let me share my resources
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
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!
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…
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…
In the last post, we started with Memento now let’s move on with a creational pattern called Singleton.
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.
There are lots of implementation…
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?
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…
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.
Following tools I’ve used:
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…
Computer Science And DevOps things :)