Articles - Étudiants SUPINFO
The collaboration between Development team and Operation team brings
a new way of software development. Therefore, I am going to present you
some DevOps tools in this article. Some DevOps tools mentioned below are
open source, which can be a big advantage as those tools were built with
the collaboration of the community.
Ansible is a configuration management tool, like Puppet and Chef,
and is owned by Red Hat. Puppet and Chef probably have more features,
but Ansible is simpler. Ansible is designed for collaboration and can be
used to automate various common tasks such as configuration management,
application deployment, and cloud provisioning. It follows the same
Infrastructure As Code (IAC) approach as Puppet, but ansible makes use
of YAML syntax which is easier to work with. Tasks can be defined using
YAML, while in Puppet it has its own declarative language. Ansible is a
secure and lightweight solution for configuration management automation
as no agent runs in the background.
Ansible is not as fast as container driven
SSH as a requirement by default
Not so interactive and featured GUI
Docker is a lightweight tool which uses container to package up an
application with all the requirements and dependencies before shipping
the complete container as one package, hence, users can quickly assemble
applications from components and work collaboratively. The dependencies
that are package up with the application are the libraries, runtime,
system tools, etc. The concept of Docker is that it isolates application
into different containers, so they become portable and more secure.
Docker Engine is a tool responsible for creating and running Docker
containers. In the past years, nearly all cloud providers, for example
Google Cloud and Amazon Web Services, added support for Docker.
Containers are small compared to Virtual Machines
It takes few seconds to boot a container.
A separate environment where you can test your code.
Networking can be complicated with containers
Performance issues on non-native environments.
Can be quite difficult to migrate to Docker.
The ELK Stack is one of the most common log analytics solution in
the IT world. It collects logs from all applications, servers, networks,
tools, services, and more in an environment into a single centralized
location for analysis. These logs can be used to troubleshoot errors,
monitor services of applications, or for auditing. For example, if we
have a security issue, it is easy to check the logs for any unauthorized
activities from the ELK Stack.
You can receive data from different inputs using
Using Logstash plugins we can configure email or SMS
Filters helps us add fields, change the data type or drop
Companies using ELK Stack
Jenkins is a DevOps tool for monitoring executions of repeated
jobs and is the leading open-source automation server. It is an open
source Continuous Integration/Continuous Delivery server that allows to
automate the different stages of the delivery pipeline. Jenkins is
popular for its large ecosystem of plugins, even though it is not the
fastest Jenkins is very easy to use. Currently there is more than 1000
plugins available. Jenkins is cross-platform and it runs out of the box
on Linux, Mac OS, Windows. For beginners, Jenkins can be installed using
the default plugins or if you are more comfortable you can create your
Jenkins can be easily installed
Jenkins is an open source tool and still has great
Jenkins is useful in automation regression testing.
Jenkins supports different types of repositories from SVN to
Configuration on Jenkins can be a bit confusing.
When build fails, error message sometimes is not very clear.
Poor user interface.
Git is one of the most popular DevOps tools. It was created 10
years ago following the need for a Source Control Management tool that
could support distributed systems. Git allows us to track the progress
of our development work and also there is the possibility to save
different version of our source code. If a developer wants to try a code
but do not want to bug the whole application, he can create a new branch
and do all the testing. Once the new feature is good to go, he can merge
back to the main branch. Git has plugins that help to integrate with
Jenkins to ease the deployment and integration.
Nagios is one of the most popular open source monitoring tool that
is really effective because of the large community of contributors. It
allows the monitoring of your infrastructure so that you can find and
fix problems. We can keep records of failures, events and outages with
Nagios. It provides visual representation of trends that we can keep an
eye on, to detect and prevent future errors or security issues.
Nagios offers four open source monitoring solutions:
Nagios Core (command line tool)
Nagios XI (a web-based GUI)
Nagios Log Server (search for log data and set up
Nagios Fusion (monitor multiple networks)
Kubernetes is a container orchestration platform that can group
your containers into logical units. Kubernetes is still very recent, it
was released in 2015, and was founded by Google Engineers who was trying
to find a solution to manage containers at scale. It can be used to
automate the process of managing large number of containers. Kubernetes
allows you to deliver a Platform-as-a-Service (PaaS) that creates a
hardware layer abstraction for development teams. Kubernetes is also
portable, it can be run on Amazon Web Services (AWS), Google Platform,
Microsoft Azure, and on premises.
Companies using Kubernetes
There is an amazing amount of DevOps tools available on the market.
The tools I have mentioned above are some popular one that can help with
the gap between the development team and the operation team. Finding the
best DevOps tool that will suit your company’s need will take time and
some experimenting. Luckily most of the DevOps tools available come with a
free trial that will allow you to evaluate the application.