BLOG

Automatisation, Cloud et livraison continue : Apprendre ce qu’il faut apprendre

Vignette de Robert Haynes
Robert Haynes
Publié le 24 octobre 2017

Dans le buffet à volonté des compétences en matière de cloud et d’automatisation, comment décidez-vous ce que vous voulez apprendre ? Dans les articles précédents, nous avons discuté des changements opérationnels apportés par les clouds privés et du nouveau type de travail qu’une équipe d’exploitation devra effectuer à l’ère du cloud.

Pour la plupart d’entre nous, cela signifiera apprendre de nouveaux concepts généraux et certaines compétences techniques spécifiques. Si vous avez de la chance (ou pas, selon les détails), la suite d’outils d’automatisation et d’orchestration pour vos environnements est établie, soit par diktat, soit par adoption commune. Dans ce cas, il s’agit généralement simplement de trouver la manière dont vous aimez apprendre, d’obtenir une sorte de laboratoire ou d’environnement de test (et c’est souvent là qu’interviennent les fournisseurs de cloud public et leurs crédits « le premier coup est gratuit ») et de s’y mettre.

Mais que se passe-t-il si vous partez de zéro, soit en créant votre ensemble d’outils d’automatisation, soit simplement en apprenant parce que vous pouvez le voir arriver dans un avenir pas trop lointain ? C’est bien d’avoir le choix, mais dans le domaine de l’automatisation, il y a vraiment beaucoup de choix. Le décomposer en grands domaines est une façon de vous concentrer sur ce que vous devez apprendre.

Systèmes de gestion des versions du code source. Maîtriser les systèmes de gestion des versions est essentiel : a) en créant les scripts et outils pour être celui qui déclenche l’action, vous devez pouvoir les stocker et gérer leur version, b) vos collègues des équipes de développement ou DevOps s'appuient sur ces outils. Le point de départ évident est Git/Github, même si d’autres systèmes existent, certains pouvant mieux correspondre à votre organisation. Git reste cependant incontournable et vous donne des compétences universelles.

Outils d'intégration continue/livraison continue (CI/CD) . Dans de nombreux cas, les changements et les déploiements seront gérés par un outil comme Jenkins, qui est un bon exemple d’ application CI/CD. Jenkins crée des pipelines de déploiement où le code application peut être compilé, testé et déployé dans un flux de travail ordonné et automatisé. La plupart des applications CI/CD sont extensibles grâce à l’utilisation de plugins qui peuvent être utilisés pour gérer une variété d’activités, notamment le déploiement de nouvelles instances de serveur ou la configuration de composants d’infrastructure.

Les outils qu'un workflow CI/CD pourrait exploiter et qui nous intéressent sont principalement destinés à automatiser l'infrastructure , et il existe un choix assez large d'outils, tous avec des forces et des faiblesses. Étant donné que F5 est un bon partenaire avec de nombreux fournisseurs, je ne vais pas en recommander un en particulier, mais il existe de nombreux articles intéressants détaillant les différences. Mon conseil est de commencer par celui qui, après avoir lu un peu à ce sujet, vous semble le plus simple. Cela peut sembler être un conseil très subjectif et peu spécifique, mais le cerveau de chacun est différent, et en l'absence de bonnes raisons de le faire, il vaut la peine de trouver un utilitaire avec lequel vous pourrez vous familiariser rapidement. Des outils tels qu’Ansible, Puppet, Chef, Salt ou Terraform sont tous bien documentés et bénéficient d’un nombre important d’utilisateurs. 

Enfin – ou tout d’abord si vous choisissez de croire le dernier paragraphe de ce blog, vous souhaitez probablement vous familiariser avec un langage de script de base . Le grand gagnant en matière d'automatisation du réseau est Python, car il dispose de SDK de nombreux fournisseurs clés ou projets logiciels disponibles, notamment F5 .

Voici un résumé rapide de quelques technologies d'automatisation essentielles auxquelles vous devriez consacrer du temps. En fait, bien plus qu’un peu : comptez plusieurs mois d’étude si vous travaillez à temps plein.  Je vous conseille de commencer par la dernière de la liste : Python, puis de remonter vers le haut. Comprendre comment les outils interagissent programmatiquement avec vos composants vous facilitera grandement la maîtrise des détails en progressant dans la chaîne, et vous apprécierez encore davantage les avantages du contrôle de code source à ce stade.