DevOps is the contraction of the words "Developers" and "Operational". This culture is around collaboration. The DevOps aims to automate processes between development teams and operational departments. Thus, it will facilitate software development, testing, and delivery.
In a previous article about DevOps culture, we saw that traditionally these two teams have rather opposite interests. Developers are supposed to create features to make the product/service ever more innovative while operational teams aim to maintain infrastructure stability.
DevOps culture advantages are many. DevOps collaboration enables faster and better quality production releases. DevOps teams deliver new features more often while maintaining the quality and stability of the software infrastructure. A good DevOps strategy is based on extensive collaboration between Ops and Developers, through better communication to have better team performance.
DevOps teams use various tools daily for various tasks and missions. Here is a (non-exhaustive) list of these tools.
The first step of a DevOps collaboration is to align development and operational teams on the same source code management tool. In concrete terms, it helps to know the different modifications of the code and the authors of these code modifications. It is a versioning tool: any code modification results in the creation of a new version. Historically, Ops do not use this kind of tool because there is almost no automation, everything is manual and there is no code. Once code is written, it is good practice to share it and have it reviewed by peers. This is where code management tools come in.
There are two types of code management:
Continuous integration (CI) is an essential component in an agile development environment and in DevOps culture.
Continuous integration and continuous deployment tools, or CI/CD, automate the testing of source code after every modification. In concrete terms, continuous integration and continuous deployment/delivery tools allow the modernization of the software by reducing the time required to create new features.
There are many continuous integration and continuous delivery tools available.
There are also paid solutions such as:
Some cloud providers also offer tools for continuous integration and deployment, such as:
Containers allow an application to be isolated with all the elements it needs to operate. The use of containers allows being as "ISO" as possible from the developer code to the production avoiding any bad surprises.
When using containers, the need for an orchestrator is very quickly felt. The containers' orchestration simplifies their deployment and management.
but there are others such as:
Cloud providers offer remote storage solutions to companies and individuals. Cloud Computing and DevOps are independent and yet hardly work separately, since the Cloud is boosting DevOps.Today, three major players share the cloud service market:
When we talk about cloud providers, we are thinking of load balancing services. The goal of load balancing services is to spread loads over different devices, allowing an improvement in response time.
Automation eliminates the repetitive tasks of DevOps teams.
Several types of automation in DevOps exist:
Several tools exist depending on the existing infrastructure and the needs of the company:
Monitoring and alerting tools provide an overview of your infrastructure, solve problems that arise and improve performance.
To successfully develop software, you have to rely on a common project management tool within the DevOps team.
With the need for ever more efficient security, new secret management tools are emerging such as:
An alternative to Vault is:
There is no perfect stack in DevOps. It is especially important to know the tools adapted to your needs, which requires time and many tests. We recommend that you test tools using free trials offered by most services. It allows you to evaluate those tools without allocating financial resources.
A quick reminder: the deployment of these various tools is useless if they are not guided by a real desire for collaboration between development teams and ops.
At Padok, our techno stack is:
Feel free to contact us if you have any questions about these tools or why we chose them.