Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

An overview of some DevOps tools

Par Nirvan Chittresh BAHADOOR Publié le 07/02/2019 à 15:56:34 Noter cet article:
(0 votes)
En attente de relecture par le comité de lecture

Introduction

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.

DevOps Tools

Ansible

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.

Pros of using Ansible
  • YAML is an easy syntax

  • Ansible is written in python, which can be installed on remote host. Therefore, we do not need to setup a client server environment.

  • Secure SSH connection

  • Big community

Cons of using Ansible
  • Ansible is not as fast as container driven development

  • SSH as a requirement by default

  • Not so interactive and featured GUI

Companies using Ansible

Docker

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.

Pros of using 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.

Cons of using Docker
  • Networking can be complicated with containers

  • Performance issues on non-native environments.

  • Can be quite difficult to migrate to Docker.

Companies using Docker

ELK Stack

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.

Pros of using ELK Stack
  • You can receive data from different inputs using Logstash.

  • Using Logstash plugins we can configure email or SMS alerts.

  • Filters helps us add fields, change the data type or drop the message.

Cons of using ELK Stack
  • Log query language can be complex to learn.

  • Can be time consuming to manage and maintain environment as volume of logs increase.

Companies using ELK Stack

Jenkins

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 own configurations.

Pros of using Jenkins
  • Jenkins can be easily installed

  • Jenkins is an open source tool and still has great support.

  • Jenkins is useful in automation regression testing.

  • Jenkins supports different types of repositories from SVN to Git.

Cons of using Jenkins
  • Configuration on Jenkins can be a bit confusing.

  • When build fails, error message sometimes is not very clear.

  • Poor user interface.

Companies using Jenkins

Git

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.

Pros of using Git
  • Version control

  • Merging of source codes

  • Pull Requests are a great way for developers to work on their own forks

Cons of using Git
  • Can be difficult to learn for client/non-programmer people.

Companies using Git

Nagios

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 alerts)

  • Nagios Fusion (monitor multiple networks)

Pros of using Nagios
  • Big community

  • There is a free version available even though it is limited.

  • It is possible to create email or SMS alerts.

Cons of using Nagios
  • You must have a basic knowledge of linux to use Nagios

  • Initial configuration can be a bit difficult

Companies using Nagios

Kubernetes

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.

Pros of using Kubernetes
  • Handles proper rolling updates of microservices

  • Scales extremely well

  • Easy to establish a proper CI/CD pipeline

Cons of using Kubernetes
  • SSL Management

  • UI Dashboard needs some improvements

Companies using Kubernetes

Conclusion

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.

Reference

https://affinitybridge.com/blog/pros-and-cons-docker

https://devops.com/9-open-source-devops-tools-love/

https://blog.rapid7.com/2014/09/05/the-pros-and-cons-of-open-source-logging/

https://blog.newrelic.com/engineering/what-is-kubernetes/

Google Images

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels