1.Modèles de services
1.2.PaaS (Platform as a Service)
58
Platform as a service (PaaS)
59
PaaS propose à l'utilisateur d'avoir accès à un
environnement de développement managé,
hébergé, maintenu par un prestataire, basé sur
une infrastructure externe à son entreprise.
Le fournisseur PaaS livre cette plate-forme sur le
web, et dans la plupart des cas, il est possible de
l’utiliser à partir d’un navigateur, sans avoir
besoin de télécharger un logiciel.
Dans ce type de service, l’OS, le runtime et les
outils d'infrastructure sont sous la responsabilité
du fournisseur.
Platform as a service (PaaS)
60 Développement Classique
Développement Cloud PaaS
La nécessité d’une équipe complète
d’informaticiens pour acheter et installer le
matériel, les systèmes d’exploitation, ou
encore le middleware comme les bases de
données ou les serveurs web.
Acquisition de licenses…
Configuration manuelle de
l’environnement de développement.
Perte du temps et d’énergie considérable
avant la mise en production
Environnement de développement configuré à
la demande , élastique et prêt à l’utilisation.
Mise en production quasi instantanée
Limitation des ressources
Capacités d’expérimentation quasi illimitées
« Single User »
Usage Multi-tenant
Payement des licences et la mise en place de
la plateforme.
Gestion manuelle des pannes et maintenance
continue de la plateforme de développement.
Payement uniquement à l’usage
Rien à faire
Acteurs du PAAS
Publicité
61
Quelques Solutions Commerciales
Windows Azure de Microsoft.
AppEngine de Google.
Bluemix d’IBM.
Chaque PaaS propose des modèles de développement différents.
Exemple: Google App Engine se limite à Java et à Python alors que
Windows Azure travaille avec les langages .Net, Python, PHP, Ruby et
Java.
Acteurs du PAAS
62
Solutions Open Source
OpenShift
CloudFoundry
Platform as a service (PaaS)
63
Remarque:
La situation est analogue à celle de l'hébergement web où
le consommateur loue l'exploitation de serveurs sur lesquels
les outils nécessaires sont préalablement placés et contrôlés
par le fournisseur.
La différence principale étant que les systèmes sont
mutualisés et offrent une grande élasticité - capacité de
s'adapter automatiquement à la demande, alors que dans
une offre classique d'hébergement web l'adaptation se fait
suite à une demande formelle du consommateur.
Exemple de PaaS: Cloud9 d’AWS
64
AWS Cloud9 est un environnement de développement
basé sur le cloud (IDE) qui permet d'écrire, d'exécuter et
de déboguer du code depuis un navigateur.
Comprend un éditeur de code, un débogueur et un
terminal.
Intègre les outils essentiels pour les langages de
programmation les plus courants, dont JavaScript,
Python, PHP et d'autres.
Permet à une équipe de partager un environnement de
développement: codage collaboratif en temps réel.
Exemple de PaaS: IBM BLUEMIX
65
Bluemix repose sur des technologies OpenSource :
Toute la couche "PaaS" en particulier est gérée par
CloudFoundry (là où les concurrents utilisent en général des
Publicité
solutions propriétaires)
Des conteneurs, via Docker : qui permettent de porter les
applications en ligne sans avoir à gérer le système d'exploitation.
Des machines virtuelles, via OpenStack: OpenStack est un
ensemble de logiciels open source permettant de déployer des
infrastructures de cloud computing.
CloudFoundry
68
Les runtimes via CloudFoundry sont des environnements
tous prêts pour faire tourner une application quel que
soit son langage (ou presque) :
CloudFoundry
69
Des personnes de la communauté peuvent ajouter
d'autres langages, étant donné que CloudFoundry est
OpenSource.
Vous pouvez aussi créer votre propre "buildpack", c'est-
à-dire créer votre environnement pour n'importe quel
langage. Il vous faudra un peu de temps pour le mettre
en place mais c’est faisable !
CloudFoundry
70
Concrètement, quand on clique sur "PHP", que se passe-t-il ?
Un « contexte d'exécution PHP » est crée: Un serveur démarre, déjà
préinstallé et préconfiguré pour faire tourner PHP. On y retrouvera par
exemple une machine Linux avec Apache et PHP préinstallés.
L'intérêt est qu'on n'a plus à s'occuper du serveur (on n'accède d'ailleurs
pas à la ligne de commande) ! Il n'est plus nécessaire de faire les
configurations de sécurité, comme le pare-feu, et il n'est pas non plus
nécessaire de penser à faire les mises à jour des logiciels.
Catalogue des services Bluemix
71
Etant donné qu'ils sont nombreux, vous pouvez filtrer les services
par thématique :
Cognitif : tout ce qui touche à l'intelligence artificielle
Mobile : pour vos applications mobiles
DevOps : pour vous aider à gérer et suivre l'état des serveurs
BigData : pour faire des calculs sur des grandes masses de données
etc.
14/10/2019
Catalogue des services Bluemix
72
Etant donné qu'ils sont nombreux, vous pouvez filtrer les services
Publicité
par thématique :
Cognitif : tout ce qui touche à l'intelligence artificielle
Mobile : pour vos applications mobiles
BigData : pour faire des calculs sur des grandes masses de données
DevOps
etc.
DevOps (https://hub.jazz.net/)
73
DevOps Services est un outil d'IBM qui permet :
d'héberger votre code source, versionné avec Git ;
de développer soit depuis votre logiciel favori, soit
directement en ligne dans l'IDE intégré ;
de préparer votre application et l'envoyer en ligne sur
Bluemix ;
de collaborer à plusieurs sur ces projets, en méthodologie
agile SCRUM ;
de partir d'un projet existant pour l'adapter (fork).
DevOps: c’est quoi?
74
Le DevOps est une combinaison de philosophies culturelles, de pratiques
et d'outils.
DevOps repose sur les principes Lean (Just in Time, amélioration continue)
et Agile (livraison continue, personnes et interactions, satisfaction client):
Les responsables métiers avec les services de développement, des
opérations et d’assurance qualité collaborent pour délivrer le logiciel en
continu dans l’objectif de permettre à l’entreprise de saisir plus
rapidement les opportunités du marché et d’accélérer la prise en compte
des retours clients.
La Culture DevOps
75
A l’origine, DevOps est un mouvement culturel ; il concerne
les individus.
Une culture DevOps se caractérise par un haut niveau de
collaboration dans les rôles, par une concentration sur les
objectifs de l’entreprise et non pas sur ceux de
départements, sur la confiance et l’importance que revêt
l’apprentissage par l’expérimentation.
La création d’une culture DevOps ne revient pas à adopter
un processus ou un outil. Elle nécessite une ingénierie sociale
d’équipes d’individus.
La culture agile est un pré-requis à la culture DevOps.
DevOps VS Agility
76
Publicité
Techniques DevOps
77
Intégration continu (Continuous Integration « CI »)
Livraison continu (Continuous Delivery « CD »)
Surveillance et retours continus
Mais aussi: planification continue, amélioration continue
Techniques DevOps
78
Amélioration continue: des processus, de l’équipe, du produit.
Planification des versions: au bon moment, avec les fonctionnalités
adéquates
Intégration continue: permet aux équipes de développeurs, travaillant
sur des composants multi-technologies sur des sites distribués de s’assurer
que le travail de chaque équipe est intégré en continu à celui des autres
équipes puis validé.
Déploiement continu: L’intégration continue débouche naturellement sur le
déploiement automatisé : un processus d'automatisation du déploiement
des logiciels dans les environnements de test, de test système, de pré-
production et de production.
Techniques DevOps
79
Test continus: Les tests continus impliquent de tester au plus
tôt et en continu tout au long du cycle de vie, ce qui permet
de réduire les coûts, de raccourcir les phases de test et de
disposer de retours en continu sur la qualité.
Surveillance et retours continus: La surveillance continue
fournit aux équipes des Opérations, d’Assurance-Qualité, de
Développement, aux responsables de secteur et aux autres
parties prenantes des données et des mesures sur les
applications à différentes étapes du cycle de livraison.
Quelques Outils DevOps
80
Pipeline DevOps
81
Un pipeline de distribution est constitué des étapes par
lesquelles passe une application, du développement à la
production.
A chaque étape, il faudra utiliser et configurer l’outil
adéquat à utiliser.
Exemple: