CICD

Articles in 'CICD'

Manage your project documentation as Code

Manage your project documentation as Code

As an architect, the main product I deliver is a document named “Technical Architecture Document”. This document is basically a high level specification (not because it’s rocket science, it’s just a detailed global perspective) explaining how a software project will be implemented with the rest of the information system. And in most of the case, the template for this document is an Office suite-related document type such as a Microsoft Office document, or anything else.

- 15 minutes read time

What is GitOps ?

What is GitOps ?

In my experience with the software delivery chain, we talk a lot about how the software is produced and delivered, but when it comes to make it live, the topic is less studied. Maybe that’s because the deployment is situated in the “Ops” domain of the DevOps timeline while the software production is on the “Dev” side. And we usually like to focus on Dev and less on Ops I suppose.

- 11 minutes read time

Use a CI/CD workflow to maintain a book content

Use a CI/CD workflow to maintain a book content

This may sound a little incongruous if for you the Continous Integration / Continuous Delivery patterns are for software development, but yes, you can maintain a book with the same principles. Recently, I’ve compiled the Linux Explained articles into an e-book. The idea was germinating in my head while writing the articles and I was wondering if I could maintaining the text using the CI/CD patterns. Actually : yes, it’s possible.

- 9 minutes read time

Terraform your CICD Toolchain : SonarQube

Terraform your CICD Toolchain : SonarQube

So, in the previous article we’ve Terraformed GitHub (that must hurt), so let’s continue with another tool commonly used in a CICD process : SonarQube. For a brief introduction in case you don’t know this tool, SonarQube (or SonarCloud for its SaaS version) is an open-source software published under LGPL v3 made for Static Code Analysis having both free and paid Enterprise plans. Basically, SonarQube will analyse the source code, use a big set of rules associated to the language, and throw issues if it found bugs, regressions, security hotspots, duplicated code lines, code test coverage, or code smells.

- 3 minutes read time

Terraform your CICD Toolchain : GitHub

Terraform your CICD Toolchain : GitHub

When you’re running and managing the CICD Toolchain of a big organization, you may want to establish some conventions and usage rules to avoid having to manage a big inconsistent mess. One possibility to avoid this, after you had established your various naming conventions and usages, is to use Terraform to maintain all of the objects constitutes your application projects. For example, if your application’s sources are hosted on GitHub, using Actions for the build and SonarQube for the code quality analysis, you have to maintain both services : the repositories, the accesses, and the SonarQube project.

- 6 minutes read time

The importance of the methodology over the tools

The importance of the methodology over the tools

Some months ago, I’ve made a series of articles about the misbrands, a collection of brands logos derivations that put a name onto the logo of a competitor product. They were really fun for me and I’ve put some on my work laptop. Curiously, it took some times to have somebody noticing the wrongness of these pictures. Ubuntu with Debian logo - license CC-0 Some purists didn’t like these images, but it was for me a nice opportunity to explain one of my work principles.

- 6 minutes read time

act for testing Github Action locally

act for testing Github Action locally

Following my previous article about GitHub Actions, here is a new one that will explain how to locally test your Actions. Unlike the good old Jenkins on which you can copy/paste your pipeline code in a test job and run it (that’s dirty but it works), GitHub Actions requires to always commit and push your changes and wait for the runner to take it. When you’re like me and using a die and retry development process, it’s a waste of time.

- 7 minutes read time

Github Actions

Github Actions

GitHub Actions is a Continuous Integration, Delivery, and Deployment workflow manager made by the code repository hosting service GitHub. GitHub was a little late in the CI/CD pipeline management compared to its competitor GitLab and the good old Jenkins. After a beta testing period, the service opened in 2018. GitHub Actions is fully integrated with the service, accessible via the “Actions” tab on a repository (if the owner enabled it). The workflows are written in YAML with a declarative language describing the event triggering the pipeline, the runner kind, some environment-related informations, and the jobs definitions.

- 6 minutes read time

Blog avec Hugo et publication automatisée

Blog avec Hugo et publication automatisée

Après avoir mis en place mon nouveau blog avec le générateur Hugo, il m’avait fallu voir comment automatiser la publication. En effet, Hugo génère dans un dossier public/ les pages web statiques et celles-ci doivent être déposées sur un serveur web pour les présenter. Voici donc ce que j’ai construit rapidement pour qu’une publication soit aussi simple qu’un git commit; git push. Les outils Voici les outils utilisés, j’avais d’ores et déjà ceux-ci à disposition.

- 8 minutes read time

Ansible : Utiliser ses API avec Python

Ansible : Utiliser ses API avec Python

Ansible : Utiliser ses API avec Python Depuis quelques temps j’ai enfin trouvé des idées de petits outils à développer avec Python pour pouvoir apprendre à manipuler ce langage. Utilisant beaucoup Ansible de manière professionnelle (je vous invite à lire la serie de billets écrite à ce sujet si ce n’est déjà fait), et celui-ci étant développé en Python, je m’appuie dans notre contexte sur nos inventaires pour fournir diverses informations à d’autres systèmes ou encore à des utilisateurs.

- 3 minutes read time

Ansible - Quelques bonnes pratiques

Ansible - Quelques bonnes pratiques

Et voici le dernier article de cette série consacrée à l’outil de déploiement Ansible. Vous y trouverez essentiellement des ressources utiles, bonnes pratiques acquises avec l’expérience, etc. Bonnes pratiques et ressources Quelques bonnes pratiques La documentation officielle Ansible en propose une très bonne liste. Nous allons en reprendre quelques unes ici. J’ajouterai également celles apprises avec l’expérience. Organisation de l’arborescence Ansible recommande deux versions, personnellement j’applique celle-ci : ./ inventories/ production/ hosts # le fichier d'inventaire group_vars/ group1.

- 5 minutes read time

Ansible - Les rôles

Ansible - Les rôles

Pour cette quatrième partie, nous nous intéressons aux rôles Ansible. Les rôles Ansible Les rôles partagent de nombreux points communs avec les playbooks. En effet, ils utilisent les mêmes instructions et le même code déclaratif. La principale différence est qu’il s’agit d’un ensemble structuré de fichiers et de dossiers qui contiendront chacun une liste d’action précise. Un rôle Ansible est constitué d’une hiérarchie de sous dossiers dans laquelle Ansible sait qu’il va trouver ce qu’il doit faire.

- 8 minutes read time

Ansible - Un premier playbook

Ansible - Un premier playbook

Troisième partie consacrée à l’outil Ansible, nous allons attaquer l’écriture et l’exécution de playbooks. Un premier playbook Nous avons pas mal parlé des exécutions ad hoc d’Ansible permettant de lancer unitairement un module et obtenir le résultat. Les Playbooks ont pour intérêt d’écrire un scénario complet d’exécution de plusieurs modules avec des conditions et des critères de succès/échec et des actions selon l’évènement déclenché. Les playbooks sont écrits en YAML et utilisent un langage déclaratif simple propre à Ansible.

- 5 minutes read time

Ansible - L'Inventaire

Ansible - L'Inventaire

Deuxième partie de la série consacrée à Ansible. Cette fois nous parlerons plus en détail de l’inventaire, à quoi ça sert, comment l’organiser, comment l’exploiter, etc. L’inventaire Ansible L’inventaire est la liste de hosts qu’Ansible est capable de gérer. Il peut se définir de deux façons : sous forme INI ou bien en YAML. L’inventaire par défaut est celui situé dans /etc/ansible/hosts, mais celui-ci peut être un fichier appelé à la volée.

- 6 minutes read time

Ansible

Ansible

Changeons de sujet par rapport à mes précédents articles. Travaillant dans le domaine de l’intégration et déploiement continu (CICD), j’ai eu envie de faire découvrir des outils que j’utilise au quotidien. Le premier est Ansible, un outil de déploiement que j’affectionne particulièrement. Ce premier article sur Ansible vous présentera son histoire, ses concepts, ses principes, et les commandes. Introduction Ansible est un outil d’automatisation et de déploiement créé en février 2012 par Michael DeHaan.

- 13 minutes read time