Maitriser son Architecture.

Le cercle très fermé des collaborateurs DevOps FMJConsulting passent par un petit test CI/DC: Continous Integration/Deployment in Cloud. Le but est d'aller le plus loin possible dans l'exercice de mise en place d'un service typique de production adressant les Devs et les Ops. Pour ce faire nous leur fournissont du materiel et un accès internet fiber et tout l'espace disque nécessaire pour s'essayer à l'exercice.

Pour collaborer avec FMJConsulting il est idéalement nécessaire d'être en mesure de monter un cloud de A à Z. Cela signifie entre autres, être en mesure de définir et d'acheter du materiel spécialisé comme des serveurs, des disques, des onduleurs, des armoires 42u, des switches, des cables etc. Mais aussi être en mesure d'installer le materiel reçu, d'installer les systèmes d'exploitation sur tous les neuds, de définir et de configurer le plan d'adressage routant les sous-réseaux, la stratégie de stockage, de définir et de tester son niveau de sécurité, de définir et de configurer le monitoring des espaces disques, des services systèmes, des flux reseaux, ses quotas, l'ordonnancement des arrêts relances des services systèmes, la gestion des utilisateurs et leurs droits. Il faut également savoir brancher les alimentations de secours et configurer les services arret/relance en cas de coupure secteur. Il faut également savoir proposer la mise en place un plan de reprise après sinistre, un plan de sauvegarde des données, un plan de gestion et de controle des redondances associés à la répartition de charge materiel et logiciel. Mais ce n'est pas tout ... Lorsque tout est mis sous tension et accessible via une console il convient d'y installer des applications et leurs licences. Et avant d'y installer ces applications il convient d'y installer les logicielles qui permettent aux developpeurs de construire ces applications. Cela sous-entend la capacité d'installer tout une série d'outils et la capacité de les configurer en concordance avec les attentes d'intégration continues des développeurs et de déploiement continue des exploitants. Depuis l'avenement du Cloud nous introduisons trois étapes supplémentaires :

Une fois les containers accessibles à la demande, il est possible de passer à la phase applicative. Par exemple installer un outil comme JIRA, mais également la jvm ad-hoc, ainsi que les certificats qui lui permettront de communiquer avec les autres serveurs via un ou plusieurs serveurs mandataires. Suivre la procédure d'installation officielle et l'adapter aux besoins de l'infra qui vient d'être montée. Sans oublier d'ouvrir les flux de mise à jour vers les serveurs de dépôts locaux ou distants. Ni oublier ensuite de créer les projets (SCRUM ou autres), d'y installer les plugins, les droits par projets, les schémas associés aux worflows, aux écrans, aux écrans de transitions, aux champs de chaque écrans. Et même d'écrire un plugin java permettant le déclenchement d'actions entre le changement d'état de deux User Story. Idem avec les outils de gestion de versions et les weebhooks associés aux pulls request et les hooks de controle des commits. La stratégie de branche et les bonnes pratiques: commentaires formatés, signature des commits, pas de commit forcé. Même chose avec les outils d'intégration en pipeline, les outils de consomation/distribution des paquets en dépôt, les outils des tests et de qualimétrie. Les applications permettant de développer les applications dite de "production", ne résident pas sur les mêmes machines et mêmes portions réseaux. Elles ne sont donc pas soumises aux mêmes contraintes dites d'exploitation que les autres. Cela suppose la mise en place en amont d'une architecture réseaux permettant la communication entre ces différentes machines. Enfin nous n'oublions pas la capacité de produire un exemple de code tirant parti de toutes les briques applicatives mise en place, dans plusieurs technologies standards : java, C#, javascript, go, python Ni de faire la démonstration de resistance de stress à la montée en charge de l'infrastructure de production.

Avouons que c'est un peu compliqué mais nous trouvons l'exercice très formateur. Lorsque toutes les étapes sont franchies, le/la nouvel(le) arrivant(e) obtient le badge de la salle machine et peut tester sa propre solution clusterisée auprès de nos clients et/ou prospects.

Nos domaines d'intervention: