Affichage des articles dont le libellé est DevOps. Afficher tous les articles
Affichage des articles dont le libellé est DevOps. Afficher tous les articles

mardi 20 octobre 2020

Comment devenir un Ingénieur DevOps ?

Le DevOps est à la mode en ce moment, est ce que cela va durer est ce que cela va être balayé par une autre mode, en tous les cas c'est une bonne pratique pour les éditeurs de logiciels. 

Pourquoi on écrit ainsi DevOps avec un 'O' majuscule et bien parce que le DevOps vient de la réunion ou l'union de deux services dans l'Entreprise d'une part les Devs la R&D et d'autre part les Ops les Opérationnels ceux qui sont en contact avec le client.

Il a été diagnostiqué que le plus grand nombre de problèmes dans le continus delivery client vient du fait de la séparation entre la R&D et les Opérationnels par manque de communication, par une culture différentes, le déploiement chez les clients s'en ressent. D'où l'idée de réunir sinon ces deux services, de créer en tous cas des ressources ayant les deux culture R&D et Déploiement client chargé de faire la liaison.

Cela conduit à l'automatisation, ou le scripting (la mise en scripts) de tout un tas d'opérations qui pouvaient être faites à la main mais qu'il est souhaitable d'automatisées pour des questions de répétabilité et pour les rendre facile à utiliser.

Alors aujourd'hui un Ingénieur DevOps c'est quoi ? Et bien, c'est quelqu'un qui fait le lien entre la R&D et le déploiement chez le client qui rédige ces scripts pour s'assurer que tout se passera correctement  lors du Continus Delivery chez le client. 

Je vous propose de disséquer la fiche de poste de l'ingénieur DevOps :

Compétences techniques requises pour l'Ingénieur DevOps :

Franchement, vous croyez que celui qui a rédigé cette fiche sait de quoi il parle ? La première ligne c'est pour maintenir des Bases de Données. C'est toujours un problème de maintenir des versions de Bases de données et pouvoir faire des livraisons incrémentales et du rétrofite avec les Bases de données.

Les Outils de l'Ingénieur DevOps
Les Outils de l'Ingénieur DevOps

Voici quelques explications succinctes sur ces différents outils de la Stack DevOps. 

Elasticsearch : moteur de recherche et d'analyse permet de faire des recherches rapides dans des bases immense. Kibana pour afficher sous forme graphique probablement des logs récupérés par Logstash

Logstash : moteur de collecte de données open source avec des capacités de pipelining en temps réel. Logstash peut unifier dynamiquement les données de sources disparates et normaliser les données dans les destinations de votre choix.

Nexus ? A priori personne ne sait vraiment ce que ce terme vient faire là mdr

Ansible : est un outil d'automatisation informatique. Il peut configurer des systèmes, déployer des logiciels et orchestrer des tâches informatiques plus avancées telles que des déploiements continus ou des mises à jour progressives sans temps d'arrêt.

Puppet : est un logiciel libre permettant la gestion de la configuration de serveurs esclaves (GNU/Linux, Mac OS X et Windows2). Il est écrit à l'aide du langage de programmation Ruby et est diffusé sous licence Apache

Openstack : est un système d'exploitation "cloud" qui contrôle de grands pools de ressources de calcul, de stockage et de mise en réseau dans un centre de données, tous gérés et provisionnés via des API avec des mécanismes d'authentification communs.


Il faut en convenir, cela fait une sacrée Stack, pas mal d'outils à maîtriser mais on reconnait là des outils pour loguer, contrôler, faire des diagnostiques, scripter, déployer des applications logicielles.

En réalité, il n'est pas nécessaire de maîtriser la totalité de ces outils présents sur cette fiche de poste, beaucoup de fonctionnalités sont redondantes entre les différents outils. Le vrai travail serait de rationaliser ces outils.

Voilà, nous avons maintenant une meilleure connaissance des outils du DevOps, des outils qu'ils va falloir prendre en main pour devenir un véritable Ingénieur DevOps.

Sur ce Blog - Les Articles sur le DevOps


lundi 24 août 2020

C'est quoi Grafana ?

C'est incroyable le nombre d'outils dans le Développement Logiciel et le DevOps ! On parle alors de stack quand les uns s'appuient sur les autres, comme dans un empilement. Ici je découvre la stack Grafana, Jenkins, Kubernets, Cosmos. A quoi sert Grafana et qu'elle est la place de Grafana dans tout ça ?

Grafana Labs - Dashboard anything. Observe everything.

Grafana est une communauté de développeurs énorme, aujourd'hui il y a 1 213 contributeurs.

Grafana on Github
Grafana on Github

J'installe rapidement sur mon Windows l'exécutable serveur et je lance mon browser à l'adresse localhost:3000 ça marche tout seul.

Gafana - Install on Windows

Mais Grafana n'est pas tout seul c'est un éco-système qui intègre par exemple Graphite :

Utilisation de "Graphite" dans Grafana

Voici comme Grafana s'intègre dans l'Azure de Microsoft pour la création de Pipeline :

Microsoft - Pipeline CI/CD pour les charges de travail basées sur les conteneurs

Place de Grafana dans la Stack d'outils DevOps
Place de Grafana dans la Stack d'outils DevOps

Dans le cadre de cette Architecture DevOps, Grafana permet de visualiser les alertes et de mieux comprendre les mesures.

On y voit à l'oeuvre la stack : Visual Studio Code, GitHub, Jenkins, Kubernetes, Azure, Azure Monitor, Grafana. Moi je pourrais dire à peu prêt à quoi servent toutes ses briques mais vous avouerez que ça fait une belle pile !


Je poursuis ma découverte par les fundamentals de Grafana. L'angle de l'architecture devops que j'ai choisi pour la découverte de Grafana n'est pas le plus facile mais on a là la meilleure utilisation de Grafana intégré dans une stack DevOps :

Grafana fundatmentals

Pour les prérequis, il me faut Docker, Docker Compose et Git, rien de moins ...
Pour Docker, il faut Hyper-V.

Install de Hyper-V pour Windows

En cliquant sur "Add features".

The processor does not have required virtualization capabilities

Bref, pour moi ça va s'arrêter là ! Bon je trouve une VM avec Hyper-V capabilities, je lance l'installe de Docker ...


Stack Grafana - C'est pas gagné !

Bon, bas pour moi, malheureusement ça s'arrête là ... Grafana !

Autres outils du même genre ... c'est incroyable de voir l'émergence de tant d'outils. Si je trouve un article sur Grafana on va me parler de :

Prometheus

Kibana

Grafana Open Source

Si c'est OpenSource, alors il doit y avoir des sources sans doute sous github, voici donc :

GitHub - Grafana Labs

Là on est dans l'antre de la communauté Grafana ...

Grafana Create Free Cloud Account

Et on peut aller créer ses propres tableaux de bord en créant un compte au sein de Grafana Cloud :

Création d'un Tableau de Bord avec Grafana
Création d'un Tableau de Bord avec Grafana

C'est magnifique cette application écrite en langage Go et Angular.

Un mot de l'équipe Grafana, toujours sur GitHub :

Grafana - Team Members

Le créateur c'est Torkel Ödegaard qui à démarré Grafana en 2014 en partant de Kibana et en faisant un "fork" (une branche depuis le code source).

Mais bon ça ressemble à notre solution qui est toute fois beaucoup plus simple ... et la notre est en C# .NET avec ASP.NET Core Framework, c'est un peu mieux que du Go !

GitHub - DataMonitoring - Universal Dashboard

CQFD !

jeudi 29 novembre 2018

C'est quoi l'outil de Gestion de Configuration Puppet ?

C'est l'objectif de ce blog que de décrire ces outils pour s'y retrouver un peu et tenter de trouver les outils qui conviennent le mieux pour vos développements, alors cette fois on me parle de Puppet.

L'outil puppet c'est quoi ?

Wikipédia - Puppet
Gestion de la configuration de serveurs esclaves ... Puppet est écrit à l'aide du langage Ruby. Déploiement de systèmes applicatif sur des machine virtuelles Amazon EC2. Version commerciale qui gère en plus les machines Virtuelles VMware. Automatisation et orchestration des déploiements.

Puppet est utilisé dans la suite Satellite de Red Hat. Il existe une version pour Windows !?

https://puppet.com/download-puppet-discovery
https://puppet.com/download-puppet-discovery

Le site : https://puppet.com/

Puppet - Products
Puppet - Products

Quelques images pour se donner une idée de l'interface graphique et de sa complexité :

Puppet - Cluster
Puppet - Cluster

Et le Puppet Projects :

Puppet - Projects

Puppet - Pipline for containers :

Fournir des applications natives vers le Cloud de Kubernetes.

Puppet - Pipline for containers
Puppet - Pipline for containers

Quelques définitions des fonctionnalités trouvées sur le site de Puppet :

Les Pipelines de Puppet simplifient la diffusion continue et offrent à vos développeurs une automatisation simple, en libre-service, leur permettant ainsi de livrer des applications sans délai, sans attendre quelqu'un d'autre.

Puppet automatise la création et le déploiement de vos applications, qu’il s’agisse d’applications traditionnelles empaquetées ou natives sur le cloud, exécutées sous Kubernetes, et vous offre une visibilité approfondie et des traces de vérification pour chaque action entreprise.

Tout ceci à l'air extrêmement complexe et complet espérons le. Je trouve des versions d'essai et toute la documentation nécessaire.

Voilà maintenant j'ai une idée un tout petit peu plus de clair de ce qu'est Puppet ...

Puppet 5 Beginners's Guide

Et sinon il y a des scéances de cours :

Getting Strated With Puppet

On est quand même sur du $2,400 USD pour trois jours de cours Puppet ...

De toutes les façons, sur leur site, où que vous essayez d'aller, vous allez vous trouvez face au fameux formulaire :

"Enregistrez-vous pour démarrer maintenant" :

Puppet - Sign Up
Puppet - Sign Up

Je n'aime pas beaucoup cette pratique, pas de cas d'utilisation pas de comparaison par rapport à d'autres solutions, vous êtes jeté dans le grand bain et à vous de vous démerder pour apprendre à nager. 

C'est votre temps que vous devez investir. Il faudra trouver une autre solution pour évaluer cet outil de façon plus approfondie...

Have fun!

vendredi 23 novembre 2018

C'est quoi Ansible ? IT automation tool ?

On est dans le vif du sujet, la prolifération des outils de développement logiciel est faramineuse et leurs noms n'évoquant absolument rien il est bien difficile mémotechniquement de retenir tout ça. Alors Ansible c'est quoi ?

Je cherche un peu, je tombe bien directement sur la documentation : Doc Ansible
 
Documentation Ansible
Documentation Ansible

Et si on en croit la documentation c'est un outils d'automatisation des tâches de l'intégration continue avec un temps nul de retour en arrière. Autrement dit si un erreur est détectée durant le déploiement d'une nouvelle release on peut retrouver rapidement l'état précédent de fonctionnement correcte.

Et dans la doc :

Control Machine Requirements
Currently Ansible can be run from any machine with Python 2 (version 2.7) or Python 3 (versions 3.5 and higher) installed. Windows isn’t supported for the control machine.
This includes Red Hat, Debian, CentOS, macOS, any of the BSDs, and so on.

Dommage !


Une belle vidéo :
With Ansible - Solve IT, Automate IT, Share IT

On dirai que c'est un peu lié à la distribution Linux Red-Hat :

Ansible & RED HAT

Ansible is a Tower.

Oui mais ce n'est pas pour Windows. Encore que : Ansible Windows Guide

A creuser !


Connaissez-vous Kubernetes ? Outil du DevOps

Parmi les outils du DevOps voici Kubernetes, un outil qui a le vent en poupe. Intéressons nous aux fonctionnalités qu'il procure. Cet outil permet de gérer les applications mises en containers.

Les outils du DevOps Kubernetes
Les outils du DevOps Kubernetes

Définition : Kubernetes est un système open source permettant de gérer des applications contenairisées sur des hôtes multiples. Il fournit des mécanismes de base pour le déploiement, la maintenance et la mise à l'échelle (scale up) d'applications.

Ce projet open source est hébergé par le Cloud Native Computing Foundation (CNCF).

J'ai trouvé à travers la documentation quelque graphiques simples pour présenter cet outil :

Learn Kubernetes Basics

Qu'est-ce que Kubernetes peut faire pour nous ?

Avec les services Web modernes, les utilisateurs s'attendent à ce que les applications soient disponibles 24 heures sur 24, 7 jours sur 7, et les développeurs s'attendent à déployer de nouvelles versions de ces applications plusieurs fois par jour. 

La containeurisation aide les progiciels à atteindre ces objectifs, permettant ainsi aux applications d'être publiées et mises à jour de manière simple et rapide, sans temps d'arrêt.

Kubernetes vous aide à vous assurer que ces applications containeurisées s'exécutent où et quand vous le souhaitez et les aide à trouver les ressources et les outils dont elles ont besoin pour fonctionner.

Kubernetes est une plate-forme open source prête pour la production, conçue avec l'expérience accumulée de Google dans l'orchestration de conteneurs, associée aux meilleures idées de la communauté.

Kubernetes Basics Modules - Basic workflow

  1. Créer un cluster Kubernetes
  2. Deployer une application
  3. Explorer votre application
  4. Exposer votre application publiquement
  5. Scale up votre application
  6. Mettre à jour votre application

Voilà c'est tout pour l'instant, je garde en tête le nom de cet outil et s'il permet de faire facilement tout cela. Dans le cadre du DevOps, il est indispensable d'automatiser toutes les tâches possibles pas seulement pour gagner du temps mais pour supprimer les erreurs humaines également.

J'ai passé du temps à recueillir ces informations et pourtant ce n'est pas exhaustif, je ne sais même pas sur quelle plateforme cet outil s'installe !

Mise à jour, de plus en plus de client cherchent des compétences sur Kubernetes

Je me suis retrouvé dans un Bootcamp :

kubernetes bootcamp 1
kubernetes bootcamp 1

La seule commande que j'ai su taper c'est :

>exit

En fait, il faut cliquer sur les commandes dans la fenêtre de gauche sous "Cluster up and running" et vous verrez les commandes :

>minikube version

>minikube start ...

Vous avez alors les commandes qui s'exécutent et affichent leur déroulement dans la console.

Kubernetes dans le Cloud Azure de Microsoft

Je trouve toute une littérature sur le sujet, sur le site de Microsoft je trouve :

Kubernetes dans le Cloud Azure
Kubernetes dans le Cloud Azure

Microsoft - Azure Kubernetes Service (AKS)

AKS réduit la complexité et les coûts opérationnels liés à la gestion de Kubernetes en déléguant une grande partie de cette responsabilité à Azure.

Beaucoup de blabla, pas de cas pratique, beaucoup de liens vers d'autres technos. C'est normal, la complexité de Kubernetes ne s'appréhende pas en une demi-journée.

J'ouvre mon portail Azure et je cherche Kubernetes, je trouve "Kubernetes - Azure Arc", alors Azure Arc c'est quoi ? ... Ils appellent cela : Hybride et multicloud

Il me faut creuser encore ...

mercredi 14 mars 2018

C'est quoi le Release Management

C'est quoi ou What is, le Release Management ? Ok c'est une étape vers l'acquisition de la culture DevOps mais encore ? C'est qu'elle étape au sein du processus Agile.

                        DEV                               |                                 OPS
Define Sprint Deliver Product Backlog | Monitor Release Pipeline Curtomers Operate

Le release management c'est automatiser l'étape entre le delivery Dev et le Release Pipeline Ops.

PowerShell/CLI

Scripts permettant d'automatiser toutes les étapes
Security
Active directory
Team foundation Server Groups

Database Changes

SSDT

Have rollback strategy

Triggering Releases

Command Line
REST API

Bon alors évidemment là c'est pour vendre du Azure mais le principe serait le même sur d'autres infras si tant est que l'on puisse mettre en place les outils équivalents.

Azure

Azure Power Shell
IaaS
PaaS
SaaS



Key Features
Configuration as Code

mercredi 13 décembre 2017

L'objectif DevOps - Les outils du DevOps

Vous cherchez les outils à configurer, à utiliser pour aller vers l'objectif DevOps, on va essayer de faire une liste des étapes et des outils correspondants, afin de savoir où chercher pour faire du DevOps.

Atteindre l'objectif DevOps c'est mettre en place, partout où c'est possible, les bonnes pratiques qui vont permettre de maîtriser au plus prêt le développement de logiciels.

DevOps c'est avant tout une culture ...

DevOps se base sur l'open source ...

Termes associés au DevOps

Tera Form
Value Stream Mapping
Windows Container
Prometheus Monitoring
 

La Démarche DevOps c'est quoi ?
Ce schéma est pas mal pour rendre compte de l'implication que doivent avoir les Devs et les Ops pour faire du DevOps pour réaliser l'objectif DevOps.

La démarche du DevOps

Mesurer l'existant dans toute la chaine de production, pour chacune des opérations, mesurer le temps par exemple afin d'automatiser des parties assez longue qui pourrait être par exemple scriptées rendre plus efficace.

Les pratiques du DevOps

Infrastucture as Code (IaC)
  l'infra est décrite dans le code afin de pouvoir rétablir une infra rapidement, facilement
  correspondante à une version du code identifiée
Continuous Integration
Automated Testing
Conitnuous Deployement
Release Management
App Performance Montoring
Load Testing & Auto-Scale

Julien Stroheker

DevOps Hands On Labs

https://microsoft.github.io/PartsUnlimitedMRP/
Manufacturing Resource Planning

To Be Continued!