<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Iheb Sidhom</title>
    <description>The latest articles on DEV Community by Iheb Sidhom (@ihebsd).</description>
    <link>https://dev.to/ihebsd</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F478276%2F8d702c8e-aab4-400f-b21c-9b3def15fb50.png</url>
      <title>DEV Community: Iheb Sidhom</title>
      <link>https://dev.to/ihebsd</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ihebsd"/>
    <language>en</language>
    <item>
      <title>What to consider when choosing CI/CD tools for Devops engineers
</title>
      <dc:creator>Iheb Sidhom</dc:creator>
      <pubDate>Thu, 17 Dec 2020 12:52:57 +0000</pubDate>
      <link>https://dev.to/ihebsd/what-to-consider-when-choosing-ci-cd-tools-for-devops-engineers-14c2</link>
      <guid>https://dev.to/ihebsd/what-to-consider-when-choosing-ci-cd-tools-for-devops-engineers-14c2</guid>
      <description>&lt;p&gt;If you're serious about your software, DevOps is not only useful but it's vital.&lt;br&gt;
Delivering your software fast has become as important as developing it well, You either get your product on the market fast or someone else will.&lt;br&gt;
Having a solid DevOps strategy leads to faster Integration, deployment and a higher quality product.&lt;br&gt;
Despite the difficulty of getting two separate teams that both have their own ways of doing things to join forces,&lt;br&gt;
DevOps is a way of handling the lifecycle of an application, itoffers the greatest value to businesses where speed of delivery provides a significant competitive advantage.&lt;br&gt;
Make your software-building process into an automated pipeline and optimize it for speed of delivery. The software pipeline should ensure security, quality and stability by automating the building and testing &lt;br&gt;
of infrastructure and applications and progressively prove their fitness by providing feedback (via tests), and when ready, deploy it to end-users.&lt;/p&gt;

&lt;p&gt;The CI / CD approach makes it possible to increase the frequency of distribution of applications thanks to the introduction of automation &lt;br&gt;
in the stages of application development. The main concepts related to the CI / CD approach are continuous integration, continuous distribution&lt;br&gt;
 and continuous deployment. The CI / CD approach represents a solution to the problems posed by the integration of new code segments for development &lt;br&gt;
and operations teams (what is called in English "integration hell", or the hell of the integration).&lt;/p&gt;

&lt;p&gt;Specifically, the CI / CD approach ensures continuous automation and monitoring throughout the application lifecycle, &lt;br&gt;
from integration and testing phases through to distribution and deployment. Together, these practices are often referred to as the “CI / CD pipeline” &lt;br&gt;
and are based on agile collaboration between development and operations teams.&lt;/p&gt;

&lt;p&gt;A good CI/CD tool can leverage teams’ current workflow, to best exploit the automation feature and create a solid CI/CD pipeline, and give teams the boost they need to thrive. To be able to use CI/CD, you need to create or find a suitable tool to add to your development toolchain. There are various factors you need to consider when choosing a CI/CD tool :&lt;br&gt;
Open Source or Proprietary , Hosting: Cloud, On-Premise or SaaS, Models and Costs, Usability, Learning Curve and Community Support, Integration with Other Tools, Security, Data Storage and Retention.&lt;br&gt;
To choose the suitable one you must ask yourself few question such as :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What’s the usecase this tool is designed for?&lt;/li&gt;
&lt;li&gt;Does the tool do one thing?&lt;/li&gt;
&lt;li&gt;Has it been in use for a while?&lt;/li&gt;
&lt;li&gt;How's it interface ?&lt;/li&gt;
&lt;li&gt;Can you configure it with code?&lt;/li&gt;
&lt;li&gt;What about complexity?&lt;/li&gt;
&lt;li&gt;What about documentation?...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The most important question : Can these various CI/CD tools affect you negatively at the long term ? Can Getting used to work on one specific tool adversely affect you getting familiar with other tools ? &lt;br&gt;
As we know, project variation and client needs can put you in case to change the tools to respond to customer requests.&lt;/p&gt;

&lt;p&gt;Answer this question with 2 points : &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Continuous Documentation&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;The scripts which control the automated DevOps processes also serve as a form of documentation. &lt;br&gt;
They include information about system, server, and software configuration, and they serve as a detailed generic record of the deployment process. &lt;br&gt;
They become even more valuable as documentation when they are combined with the logs of deployment status updates,&lt;br&gt;
which form timestamped records of individual deployments, and which can serve as a source for historical deployment statistics.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;YAML&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;YAML is currently in favor for all kinds of configuration tasks, as it easy to read and convenient to write. Many people&lt;br&gt;
(who have had to write YAML for a while) would strongly disagree with this sentiment however.&lt;br&gt;
In the end it’s a question of taste, and YAML is one of the lesser evils. Your team will probably prefer YAML over XML, JSON or a DSL&lt;br&gt;
they haven’t used yet when it comes to configs.&lt;br&gt;
In the case of CI tools, it’s a convenient thing to have your pipeline defined as code along your project. &lt;br&gt;
GitLab CI/CD uses gitlabci.yml files. Jenkins, on the other hand, can be configured to use Jenkinsfiles per repo, which need to be written in Groovy.&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>devops</category>
      <category>cicd</category>
      <category>tools</category>
    </item>
  </channel>
</rss>
