VT2018 OpenShift

=Auteur=
 * Nom : LEVESQUE Théo
 * Mail : theo.levesque.024@gmail.com
 * Sujet : OpenShift

=Résumé= OpenShift est une solution de PaaS (Plateforme-as-a-Service) permettant de construire, déployer et exécuter des applications dans des containers. Cela offre au développeur la possibilité de rapidement déployer leurs applications en production, mais aussi de les tester rapidement dans un environnement iso-production. OpenShift s'appuie sur des technologies open source et réputées tels que la solution de conteneurisation Docker et l'orchestrateur de conteneurs Kubernetes. OpenShift peut être déployé sur différentes architectures, les serveurs de la société éditrice du produit, Red Hat, sur un cloud public ou bien sur une infrastructure privée.

=Abstract= OpenShift is a PaaS (Platform-as-a-Service) solution for building, deploying and running applications in containers. This gives the developer the ability to quickly deploy their applications in production, but also to test them quickly in an iso-production environment. OpenShift is based on open source and reputable technologies such as the Docker containerization solution and the Kubernetes container orchestrator. OpenShift can be deployed on different architectures, the servers of the product's publisher, Red Hat, on a public cloud or on a private infrastructure.

=Synthèse=

Platform as a Service
Le Platform as a Service est un modèle de Cloud Computing comparable au IaaS et au SaaS. Le but premier d'un PaaS est de fournir des outils logiciels aux développeurs leur permettant d'accélérer la production et le déploiement d'applications. Le PaaS ce distingue du IaaS et du SaaS par le niveau de service qu'il fournit. Un IaaS fourni un serveur et vous laisse la configuration du système et l'installation des applications à votre charge. Un SaaS vous fourni un logiciel prêt à utiliser, maintenu et mis à jour par le mainteneur du SaaS. Le PaaS se place entre ces deux modèle et vous fourni un environnement prêt pour déployer votre application. Vous n'avez en charge que le développement et la configuration du logiciel, tout les aspect de configuration système, gestion réseau et stockage sont directement gérer par la PaaS. Cela permet donc aux développeurs de se focalisé sur le développement. Cela permet aussi de réduire grandement le temps de déploiement et de mise en production.

Produits
RedHat commercialise OpenShift sous différentes formes : C'est la solution la plus facile et rapide à utiliser. OpenShift est installé, configuré, mis à jour et maintenu par RedHat sur sa propre infrastructure. C'est un moyen rapide de découvrir et prendre en main OpenShift mais le tarif est assez élevé. Nous ne disposons d'aucun contrôle sur nos données, RedHat est le seul garant de la confidentialité de celle-ci. Cette solution permet comme OpenShift Online de ne pas avoir à installer et mainteneur OpenShift par nous-mêmes, mais d'utiliser le cloud public d'Amazon (AWS) pour déployer OpenShift. Cela permet d'avoir un contrôle plus grand sur l'infrastructure et nos données. C'est la solution obligatoire lorsque l'on veut effectuer la mise en place d'OpenShift soi-même, sur un cloud public ou privé. C'est à nous de gérer les mises à jour ainsi que la maintenance d'OpenShift. C'est la solution open source dont son tiré des autres produits. Celui-ci est disponible gratuitement mais aucun support ne sera fourni par RedHat. Il faut donc prendre plus de risque lors de l'utilisation en production de cette solution.
 * OpenShift Online
 * OpenShift Dedicated
 * OpenShift Container Platform
 * OKD (OpenShift Origin)

OpenShift
OpenShift fournit plusieurs templates pour déployer une application. En effet, pour met notre application dans OpenShift, le système a besoin d'une image Docker. Si vos développements directement avec Docker et que vous disposez déjà d'une image Docker de votre application, il suffit alors de renseigner le nom de l'image Docker et OpenShift va se charger de la récupérer et de crée un conteneur depuis cette dernière. Si vous ne disposez pas d'une image Docker mais simplement du code source de votre application, vous pouvez alors sélectionner un template correspondant au langage de votre application et de renseigner l'URL du dépôt Git de l'application. OpenShift va alors prendre le code de l'application et le mettre dans une image Docker spécialement adapté au langage de programmation de l'application.Il nous est alors possible de gérer notre application de la même manière que l'on pourrait le faire avec un conteneur déployer dans Kubernetes.

=Démonstration= Déploiement de notre application JHipster faite en ECOM. On va utiliser la version gratuite d'OpenShift Online.


 * Création de la base de donnée PostgreSQL


 * Déploiement de l'application depuis l'image Docker sur le registry GitLab