Codeship Pipelines de déploiement et ParallelCI pour des résultats plus rapides

C’est la deuxième partie d’une série sponsorisée sur Codification, le service sécurisé et d’intégration continue basé sur le cloud. Si vous avez manqué la première partie, vous pouvez revenir en arrière et lis le ici.


 

Qu'est-ce que la codification??

Codeship est un service de livraison continue hébergé qui met l'accent sur la rapidité, la fiabilité et la simplicité. Dans ce didacticiel, je passerai en revue les bases de la codification à partir de la première partie, puis je vous expliquerai comment déployer votre code.. 

Tout d'abord, je montrerai comment utiliser Codeship pour se déployer sur AWS CodeDeploy. Ensuite, nous explorerons la nouvelle ParallelCI, ce qui accélère vos tests et vos constructions en déléguant des tâches en parallèle à différentes machines virtuelles. Je présenterai également l'API Codeship, utile si vous souhaitez un contrôle plus automatisé des services de Codeship..

Commençons par examiner ce que fait Codehip.

Contexte

Avec Codeship, vous configurez le service pour créer, tester et déployer votre application depuis votre gestionnaire de code source vers les plates-formes de transfert et de production de votre choix. Le service offre une variété d'options de configuration puissantes. Actuellement, Codeship est intégré aux gestionnaires de code source populaires GitHub et Bitbucket. Il prend en charge divers langages de programmation (Ruby on Rails, Node.js, PHP, Java, Go, Dart, etc.) et des plateformes de déploiement (Amazon Web Services, Heroku, Google App Engine, etc.).

La pratique de l'intégration continue implique des tests automatisés répétés et une fusion de code avec des notifications pour alerter les développeurs des problèmes liés à leur code en temps réel. La codification combine cette pratique avec la pratique de la distribution continue, qui permet un déploiement régulier du code une fois que les modifications ont passé les tests automatisés..

Essentiellement, lorsque vous transmettez votre code à GitHub, Codeship reconstruit votre application sur ses serveurs sécurisés et exécute vos tests automatisés. Si les tests échouent, il avertit votre équipe de développement par courrier électronique ou par intégration avec des services courants tels que Slack, HipChat, etc. Si vos tests réussissent, Codeship suit votre pipeline défini pour transférer le code sur des serveurs de transfert ou de production, comme spécifié..

Travailler avec un service tel que Codeship peut minimiser les retombées des bogues, accélérer leur détection et rendre votre équipe plus à l'aise et plus compétente pour apporter des améliorations incrémentielles régulières à votre plate-forme, en espérant améliorer votre réactivité à l'égard de vos clients et de votre marché..

La codification en code aide votre équipe à écrire et à déployer son code avec une confiance accrue..

Récemment, Codeship a annoncé une nouvelle fonctionnalité intéressante pour accélérer vos tests. C'est ce qu'on appelle ParallelCI.

Qu'est-ce que ParallelCI??

ParallelCI vous permet de diviser vos commandes de test sur plusieurs machines virtuelles de construction (VM) pour accélérer votre temps de construction. En exécutant vos tests en parallèle, Codeship augmente la productivité de votre équipe avec des constructions plus rapides. Vous pouvez utiliser ParallelCI pour configurer votre projet avec un maximum de dix pipelines parallèles afin de gagner jusqu'à 10 fois plus de vitesse pour votre suite de tests.. 

Vous pouvez lire des études de cas des clients Bannerman et LendingCrowd de Codeship, qui ont réduit les temps de test de 30% et 50% respectivement..

Pour rappel, je participe aux discussions ci-dessous. Si vous avez une question ou une suggestion de sujet, veuillez poster un commentaire ci-dessous. Vous pouvez également me joindre sur Twitter @reifman ou m'envoyer un email directement.

Configuration de votre déploiement

Maintenant, commençons à explorer plus en détail les fonctionnalités de déploiement de Codeship. 

Vous choisissez ce que Codeship fait avec votre code après vos tests. Par exemple, vous pouvez peut-être mettre à jour votre serveur de transfert pour des tests supplémentaires, ou peut-être tout déployer sur vos serveurs de production. La codification vous permet de définir des pipelines sophistiqués pour les tests et le déploiement..

À propos, Codeship propose également cet eBook gratuit et très instructif: Efficacité des flux de travail de développement. Vous voudrez peut-être y jeter un coup d'œil avec le blogue Codeship, qui vous tiendra au courant des nouveaux développements et des meilleures pratiques..

Le journal de construction du projet

Je suppose que vous avez suivi notre premier tutoriel et que vous vous êtes inscrit et avez commencé à utiliser Codeship..

Si vous consultez le journal de génération de votre projet, vous verrez une liste des résultats récents. Cliquez sur le vert Succès bouton.

Cela fera apparaître les détails du résultat de la construction et la Options de construction menu de la barre latérale.

Voici le menu des options de construction. Cliquer sur Vérifier les paramètres de test:

Voici vous verrez le Paramètres du projet menu de la barre latérale à gauche, où se trouvent les options de déploiement dont nous avons besoin.

Voici une vue détaillée du menu Paramètres du projet. Cliquer sur Déploiement:

Configurez vos déploiements

Codeship fournit une intégration de déploiement prête à l'emploi avec de nombreuses solutions d'hébergement populaires, notamment Google AppEngine, CodeDeploy d'Amazon Web Services, Heroku, Engine Yard, Nodejitsu, etc. Codeship est partenaire officiel d'AWS et de CodeDeploy. 

Codeship propose une poignée de didacticiels pour diverses plates-formes et une vaste gamme de documentation sur les options de déploiement continu..

Je vais vous présenter deux exemples. Tout d'abord, je vais déployer ma version précédente de la structure Yii2 Framework basée sur PHP sur AWS avec CodeDeploy. Ensuite, je construirai le projet Discours Ruby en utilisant ParallelCI pour accélérer mes temps de construction..

Utilisation d'Amazon CodeDeploy avec la codification

Dans la première partie, j'ai utilisé Codeship pour exécuter des tests automatisés sur un fork du framework Yii2 basé sur PHP. Maintenant, configurons Codeship pour déployer mon projet sur un serveur AWS à l'aide d'AWS CodeDeploy.

Tout d'abord, parcourons Amazon AWS CodeDeploy:

Je vais vous fournir un aperçu de base d'AWS CodeDeploy, mais mon objectif n'est pas de le détailler ici. Mon objectif est plutôt de vous aider à configurer la connexion Codeship avec AWS CodeDeploy..

Tout d'abord, visitez le AWS CodeDeploy Commencer page et choisissez un Déploiement personnalisé:

ensuite, Créer une nouvelle application. J'ai déjà créé une instance EC2 et l'ai étiquetée CodeDeployDemo.

Choisis un Configuration de déploiement. J'ai déjà mis en place un rôle de service:

Maintenant que votre application AWS CodeDeploy est configurée, vous devez configurer votre groupe de déploiement pour votre instance..

Cela varie en fonction de votre application et de l'emplacement du compartiment S3:

Revenons ensuite à Codeship. Entrez votre projet et cliquez Paramètres du projet en haut à droite. Puis clique Déploiement

Puis cliquez sur le CodeDeploy bouton:

Renseignez les paramètres de la propriété AWS Code Deployment avec vos clés d'accès Amazon, votre clé secrète et le nom de l'application CodeDeploy et le groupe de déploiement. Spécifiez également votre godet S3:

Maintenant, vous voudrez peut-être consulter la documentation de Codeship pour utiliser AWS CodeDeploy et son article de blog associé..


 

La prochaine fois que vous appuierez sur une validation, Codeship construira votre application, la testera et lancera une opération AWS CodeDeploy..

Codeship propose également un certain nombre de guides vidéo sur leur chaîne Vimeo qui pourraient vous intéresser. Par exemple:

  • Déploiement de Ruby on Rails sur Heroku
  • Déploiement d'une application Node.js sur Nodejitsu
  • Déploiement d'une application Django sur Google AppEngine

Les voici en ordre. Nous nous lancerons ensuite dans l’utilisation de ParallelCI pour accélérer nos tests..

Déploiement de Ruby on Rails sur Heroku

Voici un petit guide pour déployer une application Ruby on Rails de GitHub à Heroku. La vidéo est ci-dessous:

 

Déploiement d'une application Node.js sur Nodejitsu

Voici un petit guide sur comment déployer une application Node.js de GitHub vers Nodejitsu, et la vidéo est ci-dessous:


 

Déploiement d'une application Django sur Google AppEngine

Voici un petit guide sur la configuration de l'intégration continue et du déploiement continu pour une application Django de GitHub à App Engine. La vidéo est présentée ci-dessous:


 

Utilisation de ParallelCI avec la codification

Je vais créer une fourchette de la plate-forme populaire de discussion communautaire Discourse for Ruby on Rails. Ensuite, j'ajouterai un projet chez Codeship pour mon exemplaire fourré de Discourse.

Cliquer sur Environnement et configurez les variables d'environnement pour notre projet Rails:

Ensuite, nous utiliserons les commandes de configuration suivantes pour configurer les instructions de construction:

bundle install --without development --deployment --retry = 3 --jobs = 3 bundle exec rake db: migrate

Ensuite, je vais pousser un exemple de modification dans le fichier Lisez-moi pour lancer une compilation de Codeship..

Voici les résultats d'une construction réussie:

Tester avec un seul pipeline

Ajoutons maintenant les tests suivants à un seul pipeline.

bundle exec rake qunit: test bundle exec rake plugin: spec bundle exec rspec --profile 

La prochaine fois que nous nous engageons, Codeship construit le code et exécute le test. Avec un pipeline, cela prend près de dix minutes.

Passons maintenant à ParallelCI. 

Test avec plusieurs pipelines

Avec ParallelCI, chaque projet comporte plusieurs pipelines de test exécutés en parallèle. Chacun de ces pipelines s'exécute sur une machine virtuelle indépendamment de l'autre. Codage va d'abord exécuter vos commandes de configuration, puis toutes les commandes arbitraires. commandes de test vous avez défini pour ce pipeline spécifique via l'interface. Pour faciliter la distinction entre différents pipelines, vous pouvez attribuer un nom convivial à chacun d'eux..

Voici une procédure vidéo avec une base de code différente sur la manière dont nous allons configurer ParallelCI pour accélérer ces tests:

Pour mon premier pipeline de tests, je vais exécuter les tests suivants:

bundle exec rake qunit: test bundle exec rake plugin: spec bundle exec rspec spec / contrôleurs spec / model --profile

Pour mon deuxième pipeline de test, je vais exécuter ce qui suit:

rm -fr spec / spec de contrôleurs / modèles bundle exec rspec --profile

Ensuite, je vais pousser un nouveau commit, et vous pouvez voir ParallelCI en cours d'exécution ci-dessous avec le journal d'état individuel de chaque pipeline:

Après seulement 7 minutes et 26 secondes, la construction de deux pipelines est terminée:

C'est un exemple de gain de temps de près de 30%. C'est un bon exemple de la manière dont ParallelCI de Codeship peut faire gagner du temps à votre équipe lorsque vous exécutez des séquences de développement et de test plus sophistiquées. Sachez également que Codeship autorise jusqu’à 20 pipelines d’essais en parallèle - le gain de vitesse peut ici être exponentiel..

N'oubliez pas que si vous avez un déploiement configuré pour une branche spécifique et que chaque pipeline de test signale une exécution réussie, votre pipeline de déploiement sera exécuté. Vous n'avez pas besoin de changer quoi que ce soit si vous utilisez l'un des déploiements intégrés de Codification, par exemple. Heroku, AWS CodeDeploy, Google App Engine, etc..

Notez également que, lorsque vos commandes de construction et de déploiement sont exécutées sur plusieurs machines virtuelles, les artefacts créés lors des étapes de test ne seront pas disponibles lors du déploiement. Si vous avez besoin d'artefacts des étapes précédentes, veillez à les régénérer lors du déploiement à l'aide d'un déploiement de script ajouté avant le déploiement réel..

Il y a encore une chose à mentionner, l'API Codeship.

L'API de codification

Si vous voulez encore plus de contrôle sur Codeship pour écrire et automatiser vos services de livraison continue, Codeship propose une API:

Vous pouvez configurer les versions de votre projet et les redémarrer au besoin.

En clôture

J'aimerais résumer ce que nous avons appris sur la codification:

  • Codification est un service hébergé de livraison continue qui met l'accent sur la rapidité, la fiabilité et la simplicité..
  • Il teste et déploie automatiquement vos applications.
  • Il est intégré à tous les systèmes de gestion de code source pertinents, par exemple. GitHub et Bitbucket
  • Il prend en charge une variété de langages de programmation, par exemple. Ruby on Rails, Node.js, PHP, Python, Go, Dart, etc..
  • Il est bien intégré à diverses solutions de déploiement populaires, par exemple. Heroku, AWS CodeDeploy, Google App Engine, etc..
  • Il fournit des notifications via email et des services de chat comme Slack, HipChat, etc..
  • Vous recevez 100 constructions / mois et 5 projets privés gratuitement pour commencer facilement et sans risque. Les projets open source peuvent utiliser Codeship gratuitement. Les projets éducatifs bénéficient d'une réduction de 50%.
  • Nouvelle fonctionnalité de Codeship ParallelCI vous permet d'exécuter des versions en parallèle, ce qui accélère considérablement le temps d'exécution de la suite de tests.
  • Si vous souhaitez automatiser Codeship, vous pouvez utiliser son API..

Codification est en mesure de fournir de la valeur aux petites équipes avec leur plan gratuit ou de base, ainsi qu'aux très grandes entreprises, qui nécessitent jusqu'à 20 pipelines de test en parallèle, avec leur plan d'entreprise. Voir la page de la tarification par codification pour plus d'informations. Il existe même un essai gratuit de 14 jours permettant à quiconque de tester sa configuration de test de pipeline en parallèle de 20.

J'espère que vous allez essayer Codehip. Partagez votre expérience dans les commentaires. Comme toujours, n'hésitez pas à poser vos questions également. Vous pouvez également me joindre sur Twitter @reifman ou m'envoyer un courriel directement. Visitez ma page d’instructeur Tuts + pour voir les autres tutoriels que j’ai écrits.. 

Liens connexes

  • Site de codification
  • Le blog de codification
  • Documentation de codification
  • Guides vidéo de codification
  • Efficacité des flux de travail de développement (eBook)
SaveSaveSaveSave