7
votes

Devops vs Docker

Je me demande comment Docker correspond exactement à CI / CD. Je comprends qu'avec l'aide de conteneurs, vous pouvez vous concentrer sur le code plutôt que sur les dépendances / l'environnement. Mais une fois que vous avez enregistré votre code, vous attendez des outils tels que TeamCity, Jenkins ou Bamboo pour s'occuper de la construction d'intégration, des tests d'intégration / des tests d'unités et du déploiement des serveurs cibles (après les approbations) où vous vous attendez à ce que l'image de conteneur Docker aura lieu. le code construit. Cependant, dans tout ce qui précède, Docker est nulle part dans le cycle CI / CD, bien qu'il entre en jeu lorsque l'exécution se produise au serveur. Alors, pourquoi je vois des articles l'énumérant comme une des choses pour Devops. Je ne pouvais pas me tromper, comme je ne suis pas un gourou Devops, s'il vous plaît éclairer!


0 commentaires

8 Réponses :


7
votes

Docker facilite la notion de "configuration en tant que code". Je peux écrire un dockerfile qui spécifie une image de base particulière contenant tous les cadres dont j'ai besoin, ainsi que les fichiers de configuration personnalisés qui sont vérifiés dans mon référentiel. Je peux ensuite construire cette image à l'aide du dockerfile, appuyez sur à mon registre Docker, puis dites à mon hôte cible de tirer la dernière image, puis exécutez l'image. Je peux faire tout cela automatiquement, à l'aide d'hôtes cibles qui n'ont que Linux installés sur eux.

Ceci est un scénario simple qui illustre comment Docker peut contribuer à CI / CD.


0 commentaires

1
votes

Docker est également utile pour construire vos applications. Si vous disposez de plusieurs applications avec différentes dépendances, vous pouvez éviter d'avoir beaucoup de dépendances et de conflits sur votre machine CI en tout construisant dans les conteneurs Docker qui ont les dépendances nécessaires. Si vous avez besoin d'évoluer à l'avenir, tout ce dont vous avez besoin est une autre machine qui exécute votre outil CI (comme Jenkins Slave) et une installation de Docker.

Lorsque vous utilisez des microservices, c'est très important. Une applicatio peut dépendre d'une ancienne version d'un framework, tandis qu'un autre a besoin de la nouvelle version. Avec des conteneurs qui ne posent pas de problème.


0 commentaires

11
votes

Docker n'est qu'un autre outil disponible pour Devops ingénieurs, des praticiens Devops ou tout ce que vous voulez les appeler. Ce que Docker est-ce qu'il encapsule le code et les dépendances de code dans une seule unité (un conteneur) pouvant être exécuté n'importe où où le moteur Docker est installé. Pourquoi est-ce utile? Pour plusieurs raisons; Mais en termes de CI / CD, cela peut aider les ingénieurs séparez la configuration du code, diminuer le temps passé à faire la gestion de la dépendance, etc., peut l'utiliser à l'échelle (à l'aide d'autres outils bien sûr). La liste continue.

Par exemple: Si j'avais un référentiel de code unique, je pouvais tirer dans des dépendances spécifiques à l'environnement pour créer un conteneur qui se comporte fonctionnellement de la même manière dans chaque environnement, car je consomme du même référentiel source, mais Il peut contenir un ensemble d'environnements de certificats et de fichiers de configuration spécifiques, etc.

Un autre exemple: Si vous avez plusieurs serveurs de construction, vous pouvez créer un tas de conteneurs de docker utilitaires pouvant être utilisés dans votre pipeline CI / CD pour effectuer une certaine opération en tirant sur un conteneur pour faire quelque chose pendant une étape. La seule dépendance sur votre serveur de construction devient désormais du moteur Docker. Et vous pouvez modifier, ajouter, modifier, ces conteneurs utilitaires indépendants de toute autre opération effectuée par un autre conteneur utilitaire.

Après avoir dit tout cela, il y a vraiment une bonne affaire que vous puissiez faire pour utiliser Docker dans vos pipelines CI / CD. Je pense qu'une compréhension de ce que Docker est et ce que Docker peut faire est plus important qu'un «comment utiliser Docker dans votre guide CI / CD». Bien qu'il y ait des modèles courants, tout cela revient au problème que vous essayez de résoudre et que certains modèles peuvent ne pas s'appliquer à un certain cas d'utilisation.


0 commentaires

0
votes

Docker supprime ce que nous connaissons tous la matrice du problème de l'enfer, ce qui rend les environnements indépendants de sa technologie de conteneur. Un projet Open Source Docker a changé le jeu en simplifiant les flux de travail du conteneur, ce qui a entraîné une grande excitation à l'aide de conteneurs dans toutes les étapes du cycle de vie du logiciel, du développement à la production.

Il ne s'agit pas uniquement de conteneurs, il implique de construire des images Docker, de gérer vos images et des dépendances sur n'importe quel registre Docker, déployant sur une plate-forme d'orchestration, etc. et tout est livré sous traitement CI / CD.


0 commentaires

1
votes

Docker est un Enabler Devops, non Devops lui-même: Utilisation de Docker, les développeurs peuvent faciliter facilement les tâches de développement de développement, d'amélioration et de production. Les conteneurs Docker définissent les versions exactes du logiciel utilisé, cela signifie que nous pouvons découpler l'environnement d'un développeur à partir de l'application qui doit être entretenue ou améliorée. Sans l'automatisation omniprésente, Docker ne fera pas grand chose pour vous: vous ne pouvez pas réaliser Devops avec un mauvais code. Vous devez d'abord vous assurer que le code étant donné est de la plus haute qualité en automatisant toutes les tâches de livraison de code de développeur, telles que les tests d'unités, les tests d'intégration, les tests d'acceptation automatisés (AAT), l'analyse de code statique, l'analyse de code Signes et le workflow de la requête de pull, et analyse de la sécurité. Leapfrogging à Docker sans savoir-faire de la virtualisation ne fonctionnera pas: Leapfrogging en tant que stratégie informatique fonctionne rarement. Plus souvent que les nouvelles technologies apportent des abstractions sur les technologies existantes. Il est vrai que de telles abstractions augmentent la productivité, mais elles ne sont pas une excuse pour sauter la partie où nous devons comprendre comment fonctionne une technologie. Docker est un citoyen de première classe sur toutes les plateformes informatiques: c'est le bon moment pour passer à la bande passante de Docker. Pour la première fois que jamais Docker est pris en charge sur toutes les principales plates-formes informatiques du monde. Il existe deux types de serveurs: serveurs Linux et serveurs Windows. La prise en charge de Docker natif pour Linux existait à partir du jour 1, puisqu'un support Linux a été optimisé au point d'avoir accès à la pinte. Agile est un must pour réaliser Devops: Devops est un must à atteindre agile. Le point d'agile ajoute et démontre une valeur itérative à toutes les parties prenantes sans Divops, vous ne pourrez probablement pas démontrer la valeur que vous ajoutez aux parties prenantes de manière en temps utile. Alors, pourquoi Agile est-il aussi un must pour atteindre Devops? Il faut beaucoup de discipline pour créer un flux d'amélioration continue et un cadre agile tel que Scrum définit des qualités fondamentales qu'une équipe doit posséder pour commencer à livrer itérativement.


0 commentaires

1
votes

Docker économise le gaspillage de votre capital et des ressources de votre organisation en contenant notre application. Les conteneurs sur un hôte singulaire sont isolés les uns des autres et que vous utilise les mêmes ressources du système d'exploitation. Cela libère la RAM, la CPU et le stockage, etc. Docker facilite l'emballage de notre application avec toutes les dépendances requises dans une image. Pour la majeure partie de l'application, nous avons facilement disponible des images de base. On peut également créer une image de base personnalisée. Nous construisons notre propre image personnalisée en écrivant un dockerfile simple. Nous pouvons avoir cette image expédiée au registre central d'où nous pouvons la tirer pour déployer dans divers environnements tels que QA, étape et prod. Ces activités peuvent être automatisées par des outils CI comme Jenkins. Dans un pipeline CI / CD, vous pouvez vous attendre à ce que le docker apparaisse à l'image lorsque la construction est prête. Initialement, CI Server (Jenkins) vérifiera le code de SCM dans un espace de travail temporaire où l'application est construite. Une fois que vous avez l'artefact de construction, vous pouvez l'emballer comme une image avec les dépendances. Jenkins cela en exécutant des commandes de construction de Docker simples.


0 commentaires

0
votes

Devops est une culture ou une méthodologie ou une procédure pour livrer notre développement est très rapide. Docker est l'un des outils de notre culture Devops à déployer une application en tant que technologie de conteneur (utilisez moins de ressources pour déployer notre application).


0 commentaires

0
votes

Docker Just Forfait DevLoper Environnement à exécuter sur un autre système de sorte que le développeur n'a pas besoin de s'inquiéter de l'existence d'un code de travail dans son système et de ne pas fonctionner en production en raison de différences d'environnement et d'exploitation. Il suffit de rendre le code portable avec d'autres environnements.


0 commentaires