Cloud AWS
Cloud AWS
Démarrage avec AWS

Le DevOps est une combinaison de philosophies culturelles, de pratiques et d'outils qui améliore la capacité d'une entreprise à livrer des applications et des services à un rythme élevé, pour des produits qui évoluent et s'améliorent plus rapidement que ceux des entreprises utilisant des processus traditionnels de développement de logiciel et de gestion d'infrastructure. Cette vitesse permet aux entreprises de mieux servir leurs clients et de gagner en compétitivité.

Qu'est-ce que le DevOps ?

Dans un modèle axé sur le DevOps, les équipes de développement et d'exploitation ne sont plus isolées. Il arrive qu'elles soient fusionnées en une seule et même équipe. Les ingénieurs qui la composent travaillent alors sur tout le cycle de vie d'une application, de sa conception et son test jusqu'au déploiement et son exploitation, et développent toute une gamme de compétences liées à différentes fonctions. Les équipes d'assurance qualité et de sécurité peuvent également s'intégrer davantage au développement, à l'exploitation et au reste du cycle de vie d'une application.

Ces équipes utilisent des pratiques pour automatiser des processus qui étaient autrefois manuels et lents. Elles exploitent un stack technologique et des outils qui les aident à opérer et à faire évoluer des applications de façon rapide et fiable. Ces outils aident également les ingénieurs à accomplir de façon autonome des tâches (par exemple, le déploiement de code ou la mise en service d'infrastructure) qui nécessiteraient normalement l'aide d'autres équipes, ce qui augmente encore davantage leur productivité.

Rapidité

Avancer plus rapidement, accélérer le rythme des innovations pour vos clients, améliorer votre capacité d'adaptation au marché et gagner en efficacité. Avec le modèle DevOps, ces objectifs sont à la portée de vos équipes de développement et d'exploitation. Par exemple, les microservices et la livraison continue permettent aux équipes de s'approprier les services et de les mettre à jour plus rapidement.

Livraison rapide

Augmentez le rythme et la fréquence des publications de façon à améliorer et à innover plus rapidement. Plus vite vous publiez de nouvelles fonctionnalités et corrigez des bogues, plus vite vous pouvez répondre aux besoins de vos clients et gagner en compétitivité. L'intégration continue et la livraison continue sont des pratiques qui automatisent le processus de publication de logiciel, de la conception jusqu'au déploiement.

DevOps-What-is_reliability

Assurez la qualité des mises à jour d'application et des changements d'infrastructure, afin de livrer un produit fiable à un rythme accéléré tout en continuant de proposer une expérience positive aux utilisateurs finaux. Utilisez des pratiques comme l'intégration continue et la livraison continue pour vous assurer que chaque changement est fonctionnel et sûr. Des pratiques de supervision et de journalisation vous aident à rester informé sur les performances en temps réel.

DevOps-What-is_scale

Opérez et gérez vos processus d'infrastructure et de développement à grande échelle. L'automatisation et la consistance vous aident à gérer des systèmes complexes ou changeants de manière efficace et moins risquée. Par exemple, l'infrastructure en tant que code vous aide à gérer vos environnements de développement, de test et de production de façon constante et plus efficace.

DevOps-What-is_collaboration

Créez des équipes plus efficaces avec un modèle culturel axé sur le DevOps, qui insiste sur des principes comme la prise de responsabilité. Les équipes de développement et d'exploitation collaborent en étroite collaboration, partagent de nombreuses responsabilités et combinent leurs workflows. Cela leur permet de limiter les pertes d'efficacité et de gagner du temps (par exemple en réduisant les délais de transfert entre les équipes de développement et d'exploitation et en écrivant du code prenant en compte l'environnement dans lequel il est exécuté).

DevOps-What-is_security

Avancez rapidement tout en gardant le contrôle et en préservant la conformité. Vous pouvez adopter un modèle de DevOps sans sacrifier la sécurité, en utilisant des politiques de conformité automatisées, des contrôles à granularité élevée et des techniques de gestion de configuration. Par exemple, avec l'infrastructure en tant que code et la politique en tant que code, vous pouvez définir et suivre la conformité à n'importe quelle échelle.

Les logiciels et Internet ont transformé le monde et ses secteurs d'activité, du commerce au divertissement en passant par les banques. Les logiciels ne se contentent plus de soutenir les entreprises : ils sont aujourd'hui un composant essentiel de leurs activités. Les entreprises interagissent avec leurs clients à travers des logiciels livrés en tant que services en ligne ou en tant qu'applications et sur toutes sortes d'appareils. Elles peuvent également utiliser les logiciels pour gagner en efficacité opérationnelle en transformant chaque aspect de la chaîne de valeurs, comme la logistique, les communications et les opérations. De la même manière que les entreprises travaillant avec des biens physiques ont transformé leurs méthodes de conception, de création et de livraison de produits à l'aide de l'automatisation industrielle tout au long du 20e siècle, les sociétés d'aujourd'hui doivent adapter leur façon de créer et de livrer des logiciels.

La transition vers le DevOps implique un changement de culture et d'état d'esprit. Pour simplifier, le DevOps consiste à éliminer les obstacles entre deux équipes traditionnellement isolées l'une de l'autre : l'équipe de développement et l'équipe d'exploitation. Certaines entreprises vont même jusqu'à ne pas avoir d'équipes de développement et d'exploitation séparées, mais des ingénieurs assurant les deux rôles à la fois. Avec le DevOps, les deux équipes travaillent en collaboration pour optimiser la productivité des développeurs et la fiabilité des opérations. Elles cherchent à communiquer fréquemment, à gagner en efficacité et à améliorer la qualité des services offerts aux clients. Elles assument l'entière responsabilité de leurs services, et vont généralement au-delà des rôles ou postes traditionnellement définis en pensant aux besoins de l'utilisateur final et à comment les satisfaire. Les équipes d'assurance qualité et de sécurité peuvent également s'intégrer davantage à ces équipes. Les organisations adoptant un modèle axé sur le DevOps, quelle que soit leur structure organisationnelle, rassemblent des équipes qui considèrent tout le cycle de développement et d'infrastructure comme faisant partie de leurs responsabilités.

Il existe quelques pratiques clés pouvant aider les organisations à innover plus rapidement, par le biais de l'automatisation et de la simplification des processus de développement de logiciel et de gestion d'infrastructure. La plupart de ces pratiques sont rendues possibles par l'utilisation des outils appropriés.

Une pratique fondamentale consiste à réaliser des mises à jour très fréquentes, mais de petite taille. Ainsi, les entreprises innovent plus rapidement pour leurs clients. Ces mises à jour sont généralement de nature plus incrémentielle que les mises à jour occasionnelles associées aux pratiques de publication traditionnelles. Le recours à des mises à jour petites, mais fréquentes, limite les risques associés à chaque déploiement. Les équipes ont plus de facilité à détecter les bogues, car il est possible d'identifier le dernier déploiement ayant provoqué l'erreur. Bien que la cadence et la taille des mises à jour soient variables, les entreprises utilisant un modèle de DevOps déploient des mises à jour beaucoup plus fréquemment que les entreprises utilisant des pratiques de développement de logiciel traditionnelles.

Les organisations peuvent également utiliser une architecture de microservices pour rendre leurs applications plus flexibles et favoriser des innovations plus rapides. L'architecture de microservices réduit de grands systèmes complexes pour obtenir des projets simples et indépendants. Les applications sont divisées en plusieurs composants (services) individuels, chaque service étant associé à une mission ou fonction spécifique et exploité indépendamment des autres services et de l'application dans son ensemble. Cette architecture réduit les coûts de coordination liés aux mises à jour d'applications, et quand chaque service est tenu par de petites équipes agiles, les entreprises avancent plus rapidement.

Cependant, l'alliance des microservices et d'une fréquence de publication plus élevée entraîne une augmentation considérable du nombre de déploiements, ce qui peut poser des problèmes opérationnels. Les pratiques de DevOps comme l'intégration continue et la livraison continue résolvent donc ces problèmes et permettent aux entreprises de livrer rapidement de manière fiable et sûre. Les pratiques d'automatisation de l'infrastructure, comme l'infrastructure en tant que code et la gestion de configuration, aident à préserver la souplesse et la réactivité des ressources informatiques face aux modifications fréquentes. En outre, le recours à la supervision et à la journalisation aide les ingénieurs à suivre les performances des applications et de l'infrastructure de manière à réagir rapidement en cas de problème.

Ensemble, ces pratiques aident les entreprises à livrer rapidement des mises à jour plus fiables à leurs clients. Voici une vue d'ensemble des pratiques de DevOps les plus importantes.


Intégration continue

L'intégration continue est une méthode de développement de logiciel avec laquelle les développeurs intègrent régulièrement leurs modifications de code à un référentiel centralisé, suite à quoi des opérations de création et de test sont automatiquement menées. Les principaux objectifs de l'intégration continue sont de trouver et de corriger plus rapidement les bogues, d'améliorer la qualité des logiciels et de réduire le temps nécessaire pour valider et publier de nouvelles mises à jour de logiciels.

En savoir plus sur l'intégration continue »


Livraison continue

La livraison continue est une méthode de développement de logiciels avec laquelle les changements de code sont automatiquement générés, testés et préparés pour une publication dans un environnement de production. Cette pratique étend le principe de l'intégration continue en déployant tous les changements de code dans un environnement de test et/ou un environnement de production après l'étape de création. Une bonne livraison continue permet aux développeurs de toujours disposer d'un artéfact prêt au déploiement après avoir suivi un processus de test normalisé.

En savoir plus sur la livraison continue et AWS CodePipeline »


Microservices

L'architecture de microservices est une approche de conception qui consiste à diviser une application en un ensemble de petits services. Chaque service est exécuté par son propre processus et communique avec les autres services par le biais d'une interface bien définie et à l'aide d'un mécanisme léger, typiquement une interface de programmation d'application (API) HTTP. Les microservices sont conçus autour de capacités métier. Chaque service est dédié à une seule fonction. Vous pouvez utiliser différents frameworks ou langages de programmation pour écrire des microservices et les déployer indépendamment, en tant que service unique ou en tant que groupe de services.

En savoir plus sur Amazon EC2 Container Service »

En savoir plus sur AWS Lambda »


Infrastructure en tant que code

L'infrastructure en tant que code est une pratique qui implique la mise en service et la gestion de l'infrastructure à l'aide de code et de techniques de développement de logiciel, notamment le contrôle des versions et l'intégration continue. Le modèle axé sur les API du cloud permet aux développeurs et aux administrateurs système d'interagir avec l'infrastructure de manière programmatique et à n'importe quelle échelle, au lieu de devoir installer et configurer manuellement chaque ressource. Ainsi, les ingénieurs peuvent créer une interface avec l'infrastructure à l'aide d'outils de code et traiter l'infrastructure de la même manière qu'un code d'application. Puisqu'ils sont définis par du code, l'infrastructure et les serveurs peuvent être rapidement déployés à l'aide de modèles standardisés, mis à jour avec les derniers patchs et les dernières versions, ou dupliqués de manière répétable.

Apprenez à gérer votre infrastructure en tant que code avec AWS CloudFormation »

Les développeurs et les administrateurs système utilisent du code pour automatiser la configuration du système d'exploitation et de l'hôte, les tâches opérationnelles et bien plus encore. Le recours au code permet de rendre les changements de configuration répétables et standardisés. Les développeurs et les administrateurs système ne sont plus tenus de configurer manuellement les systèmes d'exploitation, les applications système ou les logiciels de serveur.

Découvrez comment configurer et gérer des systèmes Amazon EC2 et sur site avec Amazon EC2 Systems Manager »

Apprenez à utiliser la gestion de configuration avec AWS OpsWorks »

Une fois l'infrastructure et sa configuration codifiées avec le cloud, les entreprises peuvent surveiller et exécuter la conformité de manière dynamique et à n'importe quelle échelle. L'infrastructure décrite par du code peut ainsi être suivie, validée et reconfigurée automatiquement. Les entreprises peuvent gérer plus facilement les changements de ressources et s'assurer que les mesures de sécurité sont correctement appliquées de façon distribuée (par exemple, la sécurité des informations ou la conformité aux normes PCI-DSS ou HIPAA). Cela permet aux équipes au sein d'une organisation d'avancer plus rapidement, car les ressources non conformes peuvent être automatiquement signalées pour être examinées plus en profondeur, voire même ramenées automatiquement à un état de conformité.

Apprenez à utiliser AWS Config et les règles de configuration pour surveiller et exécuter la conformité au sein de votre infrastructure » 


Consignation et supervision

Les entreprises suivent les métriques et les journaux pour découvrir l'impact des performances de l'application et de l'infrastructure sur l'expérience de l'utilisateur final du produit. En capturant, catégorisant et analysant les données et les journaux générés par les applications et l'infrastructure, les organisations comprennent l'effet des modifications ou des mises à jour sur les utilisateurs, afin d'identifier les véritables causes de problèmes ou de changements imprévus. La supervision active est de plus en plus importante, car les services doivent aujourd'hui être disponibles 24 heures sur 24 et la fréquence des mises à jour d'infrastructure augmente sans cesse. La création d'alerte et l'analyse en temps réel de ces données aident également les entreprises à suivre leurs services de manière plus proactive.

Découvrez comment utiliser Amazon CloudWatch pour surveiller les métriques et journaux de votre infrastructure »

Apprenez comment utiliser AWS CloudTrail pour enregistrer et journaliser les appels d'API AWS »


Communication et collaboration

L'instauration d'une meilleure collaboration et communication au sein de l'entreprise est un des principaux aspects culturels du DevOps. Le recours aux outils de DevOps et l'automatisation du processus de livraison de logiciel établit la collaboration en rapprochant physiquement les workflows et les responsabilités des équipes de développement et d'exploitation. Partant de cela, ces équipes instaurent des normes culturelles importantes autour du partager des informations et de la facilitation des communications par le biais d'applications de messagerie, de systèmes de suivi des problèmes ou des projets et de wikis. Cela permet d'accélérer les communications entre les équipes de développement et d'exploitation et même d'autres services comme le marketing et les ventes, afin d'aligner chaque composant de l'entreprise sur des objectifs et des projets communs.

Le modèle DevOps repose sur des outils efficaces pour aider les équipes à déployer et innover rapidement et efficacement pour leurs clients. Ces outils automatisent les tâches manuelles, aident les équipes à gérer des environnements complexes à différentes échelles et permettent aux ingénieurs de garder le contrôle sur la grande vitesse que le DevOps permet d'atteindre. AWS fournit des services conçus pour le DevOps et d'abord pensés pour être utilisés avec le cloud AWS. Ils vous aident à appliquer les pratiques de DevOps décrites ci-dessus.

En savoir plus sur les services AWS DevOps »

En savoir plus sur les solutions des partenaires AWS »