Kubernetes is an orchestration tool for running, automating, and managing the lifecycle of containerized applications. All resources managed by Kubernetes need to be defined in YAML or JSON format and processed by the Kubernetes API server.
Deploying applications with Kubernetes usually requires defining multiple resources (this highly depends on the application itself), such as the config maps, secret deployments, and service resources. Each of these resources needs to be created using the Kubernetes API server. Moreover, some resources need to be created in a specific order or need to wait for the success of the creation of other resources.
Manage public access to services behind Nginx ingress controller per endpoint
Securing access to development and testing environments is a vital issue that needs to be considered during the creations of these environments especially when working with cloud-native tools and providers (it is very common and easy to end up with a public infrastructure 😆).
On the other hand, it is needed sometimes to expose specific endpoints and make them publicly accessible even for the development and testing environments. …
The term Legacy Migration
is used widely in the technical world to describe the process of migrating the software stack, infrastructure, or software architecture from one state to another one. Some of the common use cases that can be described by the term Legacy Migration are listed below:
In this post, I will highlight a couple of points that need to be considered while migrating software services from one infrastructure to another. For instance, when migrating service from Docker Swarm to Kubernetes. …
Security is becoming more important than ever and needs to be integrated with any technical solution — even for testing environments. One of the most popular techniques is to use HTTPS protocol with SSL certificates instead of using the plain HTTP protocol. This technique provides us with two main benefits:
Ordering and using valid SSL certificates cost both money and time (some certificate authorities take three days to issue the needed certificates)…
“Fluentd is a cross-platform open-source data collection software project originally developed at Treasure Data. It is written primarily in the Ruby programming language.”
In my previous blog posts, I explained how to use FluentD to parse and ship logs to a centralized logging server (EFK stack), Parse multi-line logs for Rails applications, and provided an overview of some of the most used plugins for parsing logs with FluentD. You can check the mentioned blog posts using the links below:
In this post, I will focus on another issue that can be solved with Fluentd. It will result in…
Stability and governance are among the hottest topics that should be handled in any software development process. Both topics need to be addressed from the development stage to the deployment and running stages in the production environment.
One of the processes or techniques that can help in mastering software development, deployment, and running of the services is the production readiness process. This process is a bunch of tasks and verification of items that need to be checked during the software development process to ensure that the services:
There are plenty of continuous integration and delivery tools that can be used to run CI/CD pipelines, such as Jenkins, Travis CI, and CircleCI. When it comes to projects hosted on GitHub, there is another native option available, which is GitHub workflows.
GitHub workflows can be used to achieve several goals, such as building Docker images, running unit tests, and even deploying to a remote server. The workflows can be triggered by GitHub events as well as external events. For instance, it is possible to create a workflow that will be executed once you create a new release on the…
“Fluentd is a cross-platform open-source data collection software project originally developed at Treasure Data. It is written primarily in the Ruby programming language.”
In my previous blog posts, I explained how to use FluentD to parse and ship logs to a centralized logging server (EFK stack), Parse multi-line logs for Rails applications, and provided an overview of some of the most used plugins for parsing logs with FluentD. You can check the mentioned blog posts using the links below:
In this post, I will focus on another issue that can be solved with Fluentd. It will result in…
Start running Docker containers with Docker Swarm is a simple task especially if you have the knowledge and experience of using docker-compose files. Creating a Docker Swarm cluster can be easily done by executing a single command line. Moreover, extending the cluster with more servers can be done using a single command line.
On the other hand, Running Docker services on Swarm clusters for production environments could be a challenging task, due to the fact that production environments should be stable and sustain a certain level of quality. …
There are many options for building and hosting personal blogs. It is possible to use one of the well-known blogging platforms such as WordPress, Blogger, and Tumblr to host your blog. With this option, you don't need to worry about maintaining the blog’s infrastructure and the blogging platform.
On the other hand, you can host your own blog on one of the cloud providers. Below is a well-documented article that describes how to achieve this task using Ghost and DigitalOcean:
All the options mentioned above have some drawbacks:
Team Lead & Product Owner