Devops has become very popular in recent years. However, many developers still don’t know what Devops tools are available to them. Some of the best tools are listed below.
Kubernetes
Kubernetes (K8s) is an open source platform, which was created by Google, although it was later donated to the CNCF (Cloud Native Computing Foundation). The platform was highly influenced by Borg technology (also created by Google) and is used for the management, deployment, scalability and monitoring of containers.
It should also be noted that although much of what you have heard of this platform has to do with its Docker applications, Kubernetes also supports several other technologies, such as (rkt, cri-o and frakti).
Kubernetes is a highly specialized interface and was created to work with Docker containers. To have a clearer idea of what the technology is about, you should learn more about its main features.
Important features:
- Intelligent distribution of containers
- Workload management (provides load balancing)
- Easy management of services and applications
- High availability
- Great flexibility and allows for modular work
- Container Monitoring
Many developers have found these benefits to be very compelling. This has driven the surge in support for Kubernetes in recent years.
Docker
The purpose of Docker is to create containers that are both lightweight and portable. It has a number of features that streamline development, such as a container registry.
Docker is commonly used for software applications that can run on any machine with a Docker installed, regardless of the operating system underneath, thus facilitating deployments as well. A Docker is a tool that can organize an application like a package and place its dependencies within a virtual container that is able to be executed on any server, this allows us to take those containers from one server to another.
With the recent boom of scripting languages (languages that don’t generate binary files) this concept is breaking down a bit and the DevOps of the world have become imaginative and in the absence of a binary file they decide to “dockerize” the applications, so now instead of a binary file we have a docker image that when running serves our application.
Kanblan
The secret devops of many top sysadmins, to achieve hyperproductivity without working extra hours, is Kanban.
The key to all this is the “work in progress” limit, which allows you to focus your attention and resources on a limited number of tasks/problems, so you know for sure that they are sufficient to be able to complete/solve them in the planned time.
It is commonly used by developers that are overloaded with work. They otherwise feel that it is impossible to “limit tasks”. It is not impossible but the time needs to be managed wisely. It may seem difficult to deal with 20 tasks on a to-do list, especially with deadlines/resources to finish 10, the reality is that 10 tasks are not going to be completed until after the deadlines. You have to choose which ones, and if the overload leads to a lack of satisfaction in the clients (internal/external), you have to solve how to avoid that overload, or continue to fail in the deadlines of tasks and clients.
Graylog
Graylog2 is an Open Source system (GPLv3) that allows us to centralize the logs of related systems to facilitate real-time analysis of our systems.
It is composed of a Java server that receives and stores the logs, and a web interface built on the Ruby On Rails framework.
In the existing hithub wiki guides, Passenger is used to expose the web application either through Apache or using Nginx. I preferred to use the Apache I already had running on localhost.
Once the system is up and running, we have to redirect the logs of the critical systems of all our servers to the graylog2-server, which stores them in a database (MonogoDB NoSQL). On the other hand, the web application connects directly to the database, and shows the logs one by one, as if it were a single log. It also provides us with enough tools to make very flexible searches (elasticsearch).
Another thing that should be highlighted is the “streams”, or saved searches, from which we can receive alerts, syndicate, and give access to others.
For example, we could create a stream “Errores_Apache” that will look for the string “Error” in all the messages coming from the Apache server, whose facility is “locsal1”, assuming that this is the one we have configured. Then we could create a user with access only to the query of that “stream”.