The Doppler Quarterly (FRANÇAIS) Été 2018 | Page 26

Restent donc les deux autres options, à savoir l'orchestration de conteneurs et l'architecture sans serveur, deux plateformes légitimement positionnées pour gérer les contraintes que le cloud natif impose aujourd'hui comme demain aux environne- ments informatiques. Orchestration de conteneurs  : ces plateformes, telles que Kubernetes, Swarm ou Mesos, confèrent aux développeurs un pouvoir inatteignable avec le modèle PaaS ou d'autres plate- formes de développement classiques. Ils peuvent en effet construire et déployer des applications portables et les exécu- ter n’importe où, sans avoir à les reconfigurer ou à les redé- ployer sous des environnements différents. Cette capacité offre aux développeurs une flexibilité et un contrôle sans précédent sur les versions et l'emplacement pré- cis des images à déployer. Il leur est possible de superviser les infrastructures en ayant le dernier mot sur les exécutions, la réutilisation d'images et les déplacements des applications conteneurisées vers le cloud. L’inconvénient de l'orchestration de conteneurs ? C'est qu'elle introduit un niveau de complexité supplémentaire dans le pro- cessus. La construction d’un cluster Kubernetes à haute dispo- nibilité est déjà une tâche ardue. L'ajout de nouveaux orchestra- teurs de conteneurs exige que les développeurs soient plus attentifs à des aspects tels que la découverte de services, l'équilibrage de charge, la gestion de capacité, la surveillance, la journalisation, les mises à niveau et d'autres services com- muns. Dès lors, soit les développeurs voient leur travail se mor- celer, soit ils doivent s'en remettre à des orchestrateurs Kuber- netes gérés de type EKS, Fargate, AKS ou GKE, qui induisent un certain degré d’enfermement propriétaire et de retard entre les versions successives. Architecture sans serveur  : les plateformes sans serveurs impliquent des manipulations beaucoup moins nombreuses que les orchestrations de conteneurs. Certains outils tels qu'AWS Lambda, Azure Functions ou IBM Openwhisk per- mettent aux équipes de développement d’écrire une logique sous forme de petits fragments de code qui répondent à des événements spécifiques. L'architecture sans serveur consiste essentiellement en un service géré. Les développeurs peuvent se concentrer sur les applications qui répondent à des déclen- cheurs, en laissant la plateforme se charger de toutes les tâches subalternes, telles que la mise à l'échelle automatique, l'installation de correctifs, l'équilibrage de charge élastique, etc. Cette démarche convient idéalement aux développeurs qui privilégient un modèle de paiement à l’usage qui calcule uni- quement le temps de fonctionnement effectif du code. Cette structure fonctionne bien pour les charges de travail imprévi- sibles ou dépendantes d'événements, tels que les modèles de 24 | THE DOPPLER | ÉTÉ 2018 messagerie, d'IoT et de Big Data. Les couches intermédiaires peuvent être optimisées pour améliorer les performances des applications dans le temps. De plus, l’architecture sans serveur facilite l'intégration aux API et modules d'extension tiers. Mais elle se solde aussi par quelques inconvénients. L'architec- ture sans serveur est un modèle de calcul moins mature, donc moins bien doté en échantillons stables, outils, meilleures pra- tiques et documentations. C'est un modèle plus difficile à déboguer que les autres plateformes. En raison de la structure à la demande, les « démarrages à froid » du système après une période d'inactivité peuvent être à l'origine d'incidents. L'exé- cution des charges de travail sans serveur étant limitée à cinq minutes, tout allongement de cette durée nécessite une orchestration supplémentaire ou une refactorisation sous forme de plusieurs microservices. Décision en faveur d'une solution de plateforme Au vu de ces contraintes, sur quelle plateforme allez-vous jeter votre dévolu ? Il n’y a pas de réponse unilatérale à cette ques- tion, pas plus qu'il n'existe de solution universelle. Certains types de charges de travail s’intègrent mieux à des conteneurs, tandis que d’autres sont plus adaptées aux environnements sans serveur. Vous pouvez répartir