Comparaison CI / CD: Utilisation de fournisseurs gérés vs auto-hébergement

introduction

L’intégration, la livraison et le déploiement continus constituent un ensemble de pratiques conçues pour aider les équipes à produire rapidement des logiciels plus fiables. Bien que CI / CD soit principalement un ensemble de principes et de méthodes, l’outillage joue un rôle majeur dans la mise en pratique des idéaux de la philosophie.

Les systèmes CI / CD aident les équipes à intégrer ou à intégrer de nouvelles modifications dans les logiciels, plus fréquemment en créant ou en empaquetant automatiquement chaque validation dans des référentiels partagés. Ils exécutent des suites de tests pour chaque nouvelle construction et les promeuvent automatiquement dans des environnements plus sélectifs une fois les tests terminés. Les versions de la génération qui traversent l’intégralité du pipeline peuvent être déployées automatiquement sur des systèmes de production en direct ou mises en file d’attente pour un déploiement manuel. En raison de leurs vastes responsabilités, les systèmes CI / CD touchent généralement une grande partie des environnements et des infrastructures internes.

Choisir le bon système de CI / CD peut être difficile, mais généralement Les options appartiennent à l’une des deux catégories suivantes: les services de CI / CD gérés accessibles via un fournisseur et les services auto-hébergés que vous pouvez configurer et gérer vous-même. Dans ce guide, nous expliquerons en quoi ces deux principaux groupes de logiciels diffèrent d’une catégorie à l’autre et mentionnons certaines approches mixtes visant à offrir un bon compromis. Le meilleur logiciel pour le travail dépendra beaucoup des besoins de votre organisation et des capacités et priorités de vos équipes.

Gestion de l’infrastructure

L’une des principales différences entre l’utilisation d’un service CI / CD géré et l’exécution de vos propres services auto-hébergés réside dans la gestion de l’infrastructure. Les systèmes CI / CD nécessitent des ressources pour s’exécuter et, comme pour toute infrastructure, cela signifie que quelqu’un doit maintenir la santé des services et des systèmes hôtes sous-jacents. Le temps, l’argent et les valeurs de votre organisation détermineront généralement la solution la mieux adaptée à vos objectifs dans cette catégorie.

Services de CI / CD gérés

Les services gérés sont entièrement hébergés et supervisés par une organisation externe offrant des fonctionnalités CI / CD. L’organisation externe assume la responsabilité de l’exécution et de la mise à l’échelle de leurs services, du maintien de la santé de leur parc de serveurs et de la fourniture de l’accès aux services de manière sécurisée et facile à utiliser. Il s’agit généralement de la valeur la plus importante fournie par les services gérés CI / CD. En effet, elle peut alléger une grande quantité de travail de votre équipe en encapsulant et en réduisant la complexité.

Les solutions gérées délèguent une partie du travail et permettent à vos équipes de se concentrer sur d’autres préoccupations, mais il existe des domaines dans lesquels externaliser le contrôle de votre infrastructure peut ne pas être une bonne idée. Si la conformité ou vos propres normes organisationnelles exigent un contrôle strict de vos processus, un accès strictement réglementé à votre code ou à vos données, ou bien des exigences particulières que les partenaires externes ne peuvent pas garantir, la gestion de vos propres services peut être votre seule option.

Services CI / CD auto-hébergés

Si vous hébergez vous-même vos systèmes CI / CD, vous devrez prendre des décisions en matière d’infrastructure, assurer la santé des serveurs sous-jacents en réparant le matériel et les logiciels de correction, et en veillant à ce que les services soient disponibles, sécurisés et performants. C’est un large éventail de responsabilités supplémentaires qui peuvent échapper à l’expertise de votre équipe et aller au-delà de ce que vous êtes en mesure de prévoir du temps.

Parce que le système CI / CD dispose d’un large accès sécurisé et qu’il est essentiel de développer la confiance dans les changements que vous apportez à vos projets, il est essentiel que votre équipe le considère comme un composant essentiel, et non supplémentaire. Les temps d’arrêt de vos systèmes continus peuvent affecter la productivité et les capacités de l’ensemble de votre équipe. Bien que le système CI / CD ne soit pas votre projet principal et se veuille être un outil d’aide à votre organisation, la responsabilité de le gérer ne doit pas être prise à la légère.

Sécurité et confiance

Une autre différence majeure entre l’utilisation d’un fournisseur géré et l’auto-hébergement de votre propre service d’intégration continue, de livraison et de déploiement est l’interaction entre sécurité et confiance. Votre système CI / CD aura accès à votre base de code et pourra être déployé dans plusieurs environnements. Cela signifie que vous devez vous concentrer sur la sécurité de vos systèmes CI / CD. Pour les solutions gérées, vous devez également évaluer votre confiance dans le fournisseur externe.

Services de CI / CD gérés

À de nombreux égards, les services CI / CD gérés facilitent la sécurité pour la plupart des organisations. Si vous n’avez aucune exigence réglementaire particulière, la plupart des fournisseurs offrent une sécurité robuste qui permet d’accéder à votre base de code via des canaux cryptés, d’exécuter vos tests dans des environnements isolés, etc. Étant donné que votre fournisseur ne s’occupe que de CI / CD, il disposera généralement de la compétence et de l’expertise nécessaires pour protéger le service de manière adéquate contre les menaces telles que l’accès non autorisé et l’exposition accidentelle d’informations sensibles. Leur empreinte de sécurité est bien définie et relève de leur domaine de compétence.

D’autre part, lorsque vous utilisez une solution gérée, la sécurité de votre entreprise dépendra en grande partie de votre confiance en les capacités et l’intégrité de votre fournisseur de CI / CD. Vous confiez la responsabilité à une partie externe, ce qui allège le fardeau de votre équipe, mais vous permet également de renoncer à un certain niveau de responsabilité et de contrôle. Par exemple, l’inconvénient est l’impossibilité d’implémenter un mécanisme de sécurité que votre fournisseur ne prend pas en charge, le fait de pouvoir compter sur votre fournisseur pour corriger rapidement les vulnérabilités de sécurité présentant un risque élevé, et la nécessité de faire confiance à votre fournisseur en ce qui concerne les incidents et les rapports de sécurité qu’il reçoit. .

Services CI / CD auto-hébergés

Les services CI / CD auto-hébergés présentent un ensemble différent de problèmes de sécurité. La sécurité de l’ensemble du système relève désormais de votre responsabilité. Cela signifie que vos équipes devront configurer des environnements isolés et sécurisés pour vos services et déploiements, réagir rapidement aux divulgations du jour zéro sur toutes les technologies impliquées dans votre CI / CD, mettre en œuvre des mécanismes de contrôle d’accès puissants et comprendre l’étendue complète de l’empreinte de sécurité du système. Cela peut être une tâche incroyablement longue et difficile qui nécessitera probablement une équipe administrative ou de sécurité à plein temps pour administrer correctement. Si vous ne disposez pas déjà d’équipes dédiées à ces tâches pour d’autres parties de votre infrastructure, il pourrait être difficile à gérer à mesure que votre projet avance.

Toutefois, la gestion de votre propre service signifie que vous disposez également d’un degré de flexibilité et de contrôle sur vos processus et outils de sécurité qui ne serait pas possible autrement. Votre équipe peut réagir rapidement aux menaces au lieu d’attendre que les autres résolvent les problèmes. Votre infrastructure de CI / CD peut être déployée en toute sécurité au sein de votre propre infrastructure derrière plusieurs couches de protection. Si vous auto-hébergez vos référentiels de code, vous réduisez davantage la surface que toute menace potentielle peut cibler. En éliminant le besoin de sortir de vos propres réseaux privés et du périmètre sécurisé pour interagir avec un outil aussi critique, vous réduisez les risques de défaillance en matière de sécurité.

Intégrations

Étant donné que les systèmes CI / CD constituent un point de coordination pour différents environnements et de nombreux autres logiciels, il est important de prendre en compte la facilité avec laquelle différentes solutions s’intègrent à d’autres outils ou systèmes que vous utilisez. Chaque système d’intégration continue a un ensemble de projets différent qu’ils prennent en charge de manière native. Certains systèmes sont construits avec des infrastructures de plug-in permettant aux utilisateurs de créer ou d’utiliser des extensions pour améliorer la fonctionnalité ou l’interopérabilité de la plate-forme. Ce sont tous des points à considérer lors du choix d’un système CI / CD.

Services de CI / CD gérés

En général, les solutions CI / CD gérées fournissent généralement un ensemble ciblé de fournisseurs pour lesquels elles garantissent la compatibilité et la prise en charge. Ces systèmes de première classe sont souvent des fournisseurs de référentiels bien connus et bien connus, ainsi que des outils de développement fiables et prévisibles. En raison de la portée relativement limitée des intégrations, les équipes chargées de leur maintenance sont généralement en mesure de développer des intégrations strictes et de réagir rapidement à tout changement de dépendance afin de garantir que la fonctionnalité du système ne souffre pas de changements importants.

Cette intégration fiable et étroite avec des services populaires fonctionne très bien lorsqu’elle répond aux exigences de votre projet. Cela peut faire économiser à votre organisation temps et énergie, des problèmes de compatibilité de débogage, un suivi minutieux des mises à jour de dépendance et une traduction entre des systèmes ne communiquant pas de manière native. Toutefois, si vos dépendances ou vos besoins logiciels ne correspondent pas à l’ensemble pris en charge par un fournisseur géré, vous ne pouvez généralement rien faire pour résoudre ce problème. Vos choix pour d’autres outils peuvent commencer à être limités par les projets que votre fournisseur de CI / CD décide de soutenir.

Services CI / CD auto-hébergés

Les services auto-hébergés ont souvent un paysage de projets beaucoup plus varié avec lequel ils peuvent interagir. Étant donné que la plupart des solutions auto-hébergées sont open source, les utilisateurs et les organisations peuvent souvent influer sur le support ajouté au système. Bien qu’ils ne fassent pas exclusivement partie des services auto-hébergés, un grand nombre de projets ont des systèmes de plug-in dotés de bibliothèques complètes d’intégrations permettant de prendre en charge de nombreux projets et cas d’utilisation différents. Les chances de trouver une intégration sont beaucoup plus grandes lorsque la communauté peut contribuer activement au développement du produit et des composants associés.

L’inconvénient de la participation de la communauté est que la qualité des intégrations peut varier considérablement. L’intégration avec les services populaires sera probablement bien maintenue et en bon état de fonctionnement, mais pour toute intégration en dehors de celle-ci, des tests intensifs peuvent être nécessaires pour vérifier son exactitude et sa convivialité. Ces intégrations moins populaires peuvent devenir stagnantes et se rompre facilement lorsque des modifications sont apportées aux projets dépendants ou si elles ne sont pas régulièrement mises à jour pour suivre les versions actuelles du système CI / CD. En outre, avec les plugins fournis par la communauté, il peut être difficile d’obtenir un soutien au-delà du dépôt d’un rapport sur un outil de suivi des problèmes ou de l’obtention d’une aide informelle entre pairs via des forums communautaires ou des canaux IRC. Pour les intégrations critiques, votre équipe devra peut-être prendre en charge le support et la maintenance des composants en interne.

Frais

Enfin, l’une des plus grandes différences entre les fournisseurs de CI / CD gérés et l’auto-hébergement de votre propre service est le prix. Les services gérés coûteront presque toujours plus cher au départ en raison de la valeur ajoutée offerte, mais cela peut fonctionner de différentes manières en fonction de l’ampleur et des exigences de votre projet et de la solution choisie. Vous devrez analyser vos besoins actuels et futurs pour déterminer quels coûts pourraient devenir insoutenables pour votre projet sur toute la ligne.

Services de CI / CD gérés

Les services gérés de CI / CD ont presque toujours un coût plus élevé que les services autogérés en ce qui concerne les numéros de base. Avec les fournisseurs gérés, vous faites appel à une organisation externe pour s’occuper d’une partie du travail relatif aux CI / CD, de sorte que vous puissiez vous attendre à payer pour le travail que vous déchargez. Le coût cependant peut varier considérablement. Les modèles de tarification diffèrent d’un service à l’autre, les entreprises facturant en fonction de facteurs tels que le nombre d’utilisateurs, le nombre de tâches simultanées, le type et l’échelle des ressources informatiques dédiées, le nombre de projets, le nombre de minutes de construction par mois et le degré de parallélisme, entre autres. .

Souvent, les fournisseurs gérés démarrent à un prix relativement bas, mais peuvent devenir plus coûteux rapidement à mesure que votre organisation se développe. Au fur et à mesure que vos projets mûrissent, vous risquez soudainement de devoir utiliser des niveaux de service supplémentaires qui ne correspondent pas facilement à votre budget. Lors de l’examen des fournisseurs, il est important de prendre en compte les coûts maintenant et d’anticiper ce qu’ils pourraient être à l’avenir, selon différents scénarios. Notez également la stabilité de la tarification du fournisseur afin de minimiser les risques de modification de la tarification qui perturbera vos projets. Lorsqu’elles sont analysées de manière approfondie, la compréhension de la structure de tarification du service que vous utilisez et la budgétisation proportionnelle peuvent vous aider à anticiper les coûts d’exploitation totaux beaucoup plus facilement que vous ne pourriez le faire avec des services auto-hébergés.

Services CI / CD auto-hébergés

Les systèmes CI / CD auto-hébergés sont généralement l’option la moins chère à première vue, mais ils peuvent comporter des coûts cachés qui doivent être évalués. Les options auto-hébergées nécessitent des ressources informatiques. Ainsi, au départ, le coût le plus important consiste à acquérir l’infrastructure qui exécutera vos systèmes continus. Cela est devenu une option rentable à mesure que la popularité des plates-formes informatiques en nuage «infrastructure en tant que service» a augmenté. Les CI / CD auto-hébergés ont tendance à réduire les coûts de manière plus linéaire que les services gérés, une infrastructure supplémentaire pouvant être configurée et configurée pour un coût prévisible en fonction de l’évolution des besoins.

Cependant, le prix de l’infrastructure n’est qu’un élément du coût opérationnel de l’exploitation de vos propres services de CI / CD. En choisissant de gérer vos propres systèmes, votre équipe assume un travail supplémentaire considérable et des responsabilités supplémentaires. Au fur et à mesure que vous évoluez, l’équipe interne responsable de la gestion de vos tests et de votre déploiement peut devoir évoluer et développer des processus plus complexes. Cela entraîne à la fois des coûts directs en termes d’embauche et de formation du personnel interne et des coûts d’opportunité indirects liés au fait que ces personnes se concentrent sur la gestion de vos systèmes CI / CD au lieu de travailler sur les fonctionnalités du produit ou sur d’autres travaux. Dans l’ensemble, les services auto-hébergés sont généralement beaucoup plus simples à raisonner en termes d’infrastructure, mais plus difficiles en termes de coûts opérationnels totaux.

Y a-t-il un juste milieu?

Nous avons mentionné certaines des différences entre les services CI / CD gérés et auto-hébergés, mais il existe également des approches hybrides qui pourraient mieux convenir à certaines organisations. Certains fournisseurs gérés proposent des versions sur site de leur service comme alternative à leurs offres de logiciel en tant que service basées sur le Web. Cela peut aider à combler le fossé entre l’auto-hébergement et la gestion externe si votre organisation a des exigences qui rendent difficile l’interface avec un fournisseur externe.

Par exemple, si vos exigences en matière de sécurité exigent que votre code ne quitte pas votre réseau interne, vous pouvez envisager le déploiement sur site de solutions CI / CD payantes ou d’entreprise. Cela peut permettre de contrôler votre réseau et l’infrastructure utilisée pour les systèmes sans sacrifier le support et la responsabilité qu’un contrat externe peut garantir. Les CI / CD payés sur site peuvent aider à résoudre certains des problèmes potentiels liés à l’utilisation d’un service géré, mais ce n’est pas une solution parfaite. Bien que cela puisse aider à résoudre certains problèmes de conformité, de sécurité et de confiance, cela peut être très coûteux et nécessitera probablement que votre propre personnel assume certaines des responsabilités de gestion. Une solution hybride prend en compte certains des avantages et des inconvénients des deux autres catégories.

Conclusion

Les fournisseurs de CI / CD gérés et les solutions auto-hébergées peuvent vous aider à améliorer vos pratiques de développement et de publication afin de fournir des produits plus fiables avec plus de confiance. Nous avons couvert les différences les plus importantes entre ces deux options principales, certains des facteurs susceptibles d’affecter votre décision et les difficultés potentielles que vous devrez surmonter avec chaque choix. Nous avons également parlé brièvement des offres qui tentent de chevaucher la frontière entre solutions d’auto-hébergement et solutions gérées. En fin de compte, les besoins uniques, le budget et la bande passante d’administration de votre organisation vous aideront à choisir l’option qui offre les bons compromis.

Related