dimanche , 19 mai 2019
Home » Articles » Opérations et sécurité du cloud : le guide de survie du développeur

Opérations et sécurité du cloud : le guide de survie du développeur

Les développeurs abordent les problèmes différemment que le personnel des opérations. Avec les ingénieurs logiciels, la solution implique souvent le code, mais ils ont une visibilité limitée dans les opérations de cloud. L’avènement de DevOps signifie que vous pouvez passer rapidement à un état à faible latence, là où les développeurs et les opérateurs de cloud sont souvent identiques – ou du moins, ils font partie de la même équipe.

Avec CloudOps, les développeurs doivent réfléchir davantage aux opérations et à la sécurité du cloud, car de nombreuses responsabilités opérationnelles et de sécurité reviennent aux ingénieurs logiciels. Cela signifie que vous devez adopter une approche différente pour coder, tester et déployer des applications.

Cet article va guider les développeurs dans le paysage du cloud et va les aider sur ce qui change avec les opérations et la sécurité dans le cloud dans trois domaines :

  • Le nouveau processus : comment Cloud et DevOps changent les rôles des développeurs ?
  • La technologie : Quelle technologie d’automatisation peut rendre ces liens possibles ?
  • Les changements : Comment pousser le changement dans votre entreprise ?

Le fond du problème du développeur est de comprendre la plate-forme cible sur laquelle les applications seront exécutées. Alors que les ingénieurs logiciels ont déjà eu accès pendant le test des plateformes dans le passé, et maintenant, ils doivent gérer les plates-formes de la mise en place et de la production.

On pourrait penser que cela va augmenter la complication d’un processus déjà compliqué. Mais en réalité, le couplage plus étroit des développeurs avec les plate-formes de production améliore les applications, à la fois en termes d’opérations et de sécurité.

Pourquoi ? Parce que, dans le passé, les développeurs considéraient les opérations et la sécurité comme le problème d’une autre personne, et ils n’ont donc pas fait l’effort de construire un logiciel qui fournissait de bonnes opérations et de la sécurité. Avec l’avènement de concepts tels que DevOps, qui inclut CloudOps, le développeur joue un rôle central et, en tant que tel, est tenu responsable ; non seulement des problèmes avec le logiciel, mais aussi des problèmes liés aux opérations et à la sécurité. Bien que vous ayez déjà des professionnels des opérations dans le mélange, leur rôle consiste davantage à configurer l’automatisation, la surveillance et la mise à disposition d’une plate-forme stable et non seulement à s’assurer que le logiciel fonctionne correctement.

C’est pourquoi les choses doivent changer. Les développeurs doivent devenir plus intelligents en matière d’opérations et de sécurité, et ils doivent prendre des mesures pour comprendre les plate-formes cibles, y compris les comportements opérationnels. Bien qu’il ne soit pas nécessaire de devenir un spécialiste de la sécurité, les ingénieurs logiciels doivent comprendre comment inclure des considérations de sécurité et de systèmes dans la conception et le codage d’une application. Ils doivent également apprendre à tester les applications pour détecter les risques de sécurité, puis les corriger.

Un nouveau processus pour les développeurs

Comment Cloud et DevOps changent-ils le rôle du développeur ? Dans le passé, les développeurs avaient un seul but : coder et créer des logiciels. Bien que le fait de placer les développeurs dans les processus de cascade traditionnels semble logique, cela laissait beaucoup à désirer en termes de rapidité et d’efficacité.

Utiliser DevOps signifie processus continu, y compris l’intégration, le développement, les tests, le déploiement et les opérations. Le but est de supprimer les contraintes des développeurs et de leur permettre de passer des exigences de la solution au déploiement de la solution, en utilisant autant d’automatisation que possible.

DevOps fait tomber les barrières qui existaient entre les développeurs et les opérations, en poussant les groupes et les individus ensemble vers eux-mêmes. Dans certains cas, ils deviennent la même personne.

Certaines organisations peuvent se demander si les développeurs sont prêts pour les opérations. La plus grande question est, comprennent-ils quelque chose au sujet de l’opération proactive de la plate-forme cible ? Et ces jours-ci, le plus souvent, cette plate-forme est un cloud public.

Dans le nouveau processus, un échange récurrent a lieu entre les développeurs et les opérateurs. Les développeurs, avec une nouvelle compréhension des opérations et de la sécurité, prennent des mesures pour s’assurer que les applications sont construites autour des besoins des opérations tout en gardant à l’esprit la sécurité.

Généralement, les choses qui devraient concerner les développeurs incluent maintenant :

  • Comment placer des points de surveillance au sein de l’application ? Ces points vont permettre aux opérations automatisées ainsi qu’aux outils de surveillance de connaître si des problèmes opérationnels existent et doivent être corrigés.
  • Comment placer des crochets de sécurité dans l’application ? Cela permet de tirer parti des systèmes de sécurité basés sur la plate-forme, tels que la gestion des identités et le cryptage.
  • Comment automatiser les processus ? Cela va permettre de promouvoir une application à l’intégration continue, aux tests, à la mise en place, puis au déploiement et aux opérations.
  • Comment prendre la responsabilité des problèmes liés aux opérations et à la sécurité, et accepter le jugement sur leurs connaissances et leurs capacités dans ce domaine ?

La technologie : Utilisation de l’automatisation

Quelle technologie d’automatisation peut rendre ces liens possibles ? Il n’y a pas d’approche unique à ce problème. La meilleure pratique consiste à évaluer votre propre processus DevOps et à examiner les éléments que vous pouvez automatiser.

En termes d’opérations et de sécurité, la gestion de la configuration, les tests et le déploiement sont les premiers à être automatisés.

La gestion de la configuration concerne l’infrastructure automatisée, l’infrastructure en tant que code et l’infrastructure programmable. C’est ici que vous déterminez comment l’application définira la plate-forme de déploiement, ou comment l’infrastructure s’adaptera aux opérations et aux exigences de sécurité de l’application en utilisant des automatisations prédéfinies.

Les outils de déploiement des applications, qui permettent l’automatisation des mises en production, sont au cœur de la livraison continue, l’un des principes fondamentaux de DevOps. Ces outils permettent aux développeurs de définir la manière dont l’application doit se comporter dans les services des opérations et de sécurité. Vous pouvez également les scripter de manière sophistiquée pour automatiser l’évaluation des fonctionnalités dont vous avez besoin dans l’application pour prendre en charge les opérations et la sécurité. Cela inclut la manière dont l’application est testée, mise en place et déployée.

En ce qui concerne les opérations et la sécurité, les meilleures pratiques en matière d’automatisation concernent principalement la surveillance. DevOps nécessite deux types de surveillance. Les outils de surveillance des performances des applications permettent une analyse au niveau du code et des problèmes de performances corrects. Au niveau de l’infrastructure, la surveillance du serveur offre une visibilité sur la capacité, la mémoire et la consommation de l’unité centrale de sorte que les développeurs peuvent résoudre les problèmes dès qu’ils apparaissent. Le but est de s’assurer que les développeurs peuvent voir les données afin qu’ils puissent faire de meilleurs appels au cours du processus de développement.

Enfin, vous avez besoin du contrôle de version ; non seulement pour votre code d’application, mais aussi pour votre infrastructure, vos configurations et vos bases de données. Le gain est une source unique de vérité à la fois pour votre code d’application et votre plate-forme que vous pouvez utiliser pour identifier rapidement les problèmes, puis revenir automatiquement à un état connu.

Rouler avec les changements

Comment imposez-vous le changement dans votre organisation ? Il s’agit d’un problème de personnes, et non d’un problème technique. La meilleure façon de changer est de fournir la formation et le mentorat en matière de sécurité et d’opérations dont vos développeurs ont besoin. Dans certains cas extrêmes, cela pourrait également signifier changer complètement les développeurs, déplaçant ceux qui ne sont pas bien équipés pour accepter les rôles changeants, et passer à des processus mieux alignés avec DevOps et le cloud.

Le meilleur moyen est de travailler avec de petits projets puis de grands projets. Commencez avec un petit prototype et une petite organisation ad hoc. Utilisez ce temps pour comprendre les nouvelles compétences et approches qui seront nécessaires, ainsi que la nouvelle technologie.

Assurez-vous de considérer le nouveau rôle de la plateforme, qui dans la plupart des cas sera livré dans le cloud. À mesure que les plateformes deviennent centralisées et virtuelles, assurez-vous de profiter de ce modèle. Cela signifie utiliser le développement et les opérations distribués, et tous ceux-ci doivent atteindre la même plate-forme en utilisant un ensemble commun d’outils.

Enfin, assurez-vous de regarder les changements de processus en premier. Les choses vont être un peu chaotiques et trop interactives au début, donc vous devez trouver un équilibre entre les processus et l’organisation DevOps innovants et rapides. DevOps doit en fin de compte avoir assez de rigueur pour s’assurer que les systèmes résultant à la fois du développement et des opérations peuvent fournir la valeur dont l’entreprise a besoin.

Tout tourne autour de la plate-forme

S’adapter au cloud, c’est vraiment changer les plates-formes. Vous passez des systèmes sur le site au cloud, et les développeurs doivent comprendre la nouvelle plate-forme. En tant que développeur, vous devez gérer deux dimensions : dans quelle mesure les applications fonctionnent-elles sur la plate-forme cible ? Et dans quelle mesure sont-elles sécurisées ?

Ceux dans les opérations informatiques traditionnelles pourraient trouver risibles l’idée que les développeurs devraient être chargés d’opérations et de sécurité, tandis que d’autres peuvent se demander pourquoi nous ne l’avons pas fait auparavant. Dans le passé, les développeurs étaient à peu près en charge de tout. Au fil des années, les tâches se sont séparées, conduisant à des ateliers de développement et de déploiement extrêmement improductifs.

Alors que les organisations DevOps ne cherchent pas encore à confier les clés de la sécurité et les opérations aux développeurs, elles s’attendent à en savoir plus sur la manière dont les opérations et la sécurité interviennent dans la conception, le développement et le déploiement des applications critiques. La responsabilité et l’obligation doivent être holistiques, et il devrait y avoir peu de séparation des tâches dans le monde émergent des DevOps.

Comme pour tout ce qui est nouveau, vous devez vous concentrer sur ce qui fonctionne et ce qui ne marche pas. Cela signifie constamment évaluer et corriger les nouveaux processus et les outils automatisés. Dans certains cas, l’informatique de l’entreprise peut aller plus loin et plus rapidement avec DevOps. Cependant, dans la plupart des cas, l’informatique de l’entreprise ne va pas assez loin ou trop vite.

À lire aussi

Quels sont les microservices ? Le développement de logiciel léger

Utilisez l’architecture de microservices pour diviser les applications volumineuses en applications légères pouvant être mises …