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 de versions du code source. Maîtriser les systèmes de gestion de versions est crucial parce que A) lorsque vous développez les scripts et outils nécessaires pour créer ce bouton, vous devez avoir un endroit pour les stocker et gérer les versions B) vos collègues des équipes de développement ou des groupes DevOps les utilisent également. Le point de départ le plus évident reste Git/Github – même si de nombreux autres systèmes existent, certains pouvant mieux correspondre à votre organisation. Git, cependant, est omniprésent et représente une compétence facilement transférable.

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 aperçu rapide de quelques technologies clés d'automatisation auxquelles vous devriez consacrer du temps. En fait, je dirais plutôt que plusieurs mois d’étude vous attendent, surtout si vous avez un emploi à temps plein.  Je vous conseille de commencer par la dernière de la liste : Python, puis de remonter progressivement. Comprendre comment les outils interagissent avec vos composants de manière programmée facilitera grandement votre approche des subtilités à mesure que vous monterez dans la chaîne, et vous profiterez pleinement des avantages du contrôle du code source en chemin.