Nombreux sont les entrepreneurs qui lancent une application web ou mobile sans connaissance en informatique. C’était le cas chez Linkeys, d’où mon engagement en tant que Head of Digital (Intitulé de mon poste à l’époque et renommé depuis : « Digital Innovation Prophet », DIP pour les intimes). Avant cela, le développement était fait par un partenaire externe et le serveur de production chez un fournisseur en Suisse. Cet engagement devait, dans un premier temps, permettre de déporter les problématiques IT sur une personne compétente (oui moi en effet !) puis de préparer le système informatique aux futurs challenges de l’entreprise. Avant de vous expliquer ce qu’est Jelastic, je vais vous parler de mon cheminement ce qui permettra de mieux comprendre mon choix. L’une de mes premières tâches à mon arrivée chez Linkeys a été de challenger la solution d’un serveur dédié pour nos ambitions de croissance. Allez HOP… On commence par définir nos objectifs :
Puis nos contraintes :
Voilà le schéma de notre architecture à ce moment-là :
Docker semble être un incontournable à l’heure actuelle dans le déploiement. N’ayant que de basiques connaissances théoriques, je me suis mis à déployer des images sur mon Mac grâce à Docker Desktop et aux images sur DockerHub pour ensuite tenter de créer mes propres images. Vous trouverez toute la documentation sur le site officiel de Docker et plein d’articles intéressants sur Medium. Mon constat : Docker permet d’avoir un environnement configuré, réplicable et contenant directement du code (compilé si nécessaire). Cela évite de devoir refaire la configuration de son serveur dédié à chaque création de nouvel environnement. Afin d’assurer une disponibilité maximum, notre environnement contiendra un loadbalancer en entrée et potentiellement plusieurs instances de notre image applicative, le tout avec une image contenant notre serveur MySQL et un file system pour le stockage de données privées (avatar, logo d’entreprise, etc.). Nous aurons donc un environnement avec 4 images :
Toutes ces images peuvent être trouvées dans Docker-Hub. Afin de tester cette infrastructure localement, j’ai utilisé docker-compose (fournit avec le package docker desktop) qui permet de configurer simplement un environnement constitué de plusieurs images. Cela assure que chacune des images puisse communiquer avec celle dont elle a besoin et pas plus. Vous trouverez la documentation ici et plein de vidéo sur Youtube. Youpiii… Mon environnement tourne en local..!
Enfin on y est… C’est bien beau de faire tourner son environnement en local, mais faudrait peut-être penser à mettre toute cette histoire en production, non ? C’est là que Jelastic entre en scène. En recherchant, hosting docker sur Google, je suis tombé sur ce PaaS. C’est est un système qui permet de gérer l’hébergement des images et l’ensemble des informations réseau concernant l’environnement : firewall, IP public, lien entre chaque image, etc. Il est aussi capable d’avoir un accès SSH pour chaque serveur, de gérer les systèmes de logs et les certificats SSL (add-on disponible pour Let’s Encrypt). Ce sont là les fonctionnalités que nous utilisons, mais Jelastic possède bien plus de fonctionnalités. La grande magie de Jelastic est qu’on ne paye que pour ce qu’on utilise. Nous pouvons réserver un certain nombre de cloudlet (mémoire + processeur) et mettre une marge appelée limite de scalabilité. Si le serveur a besoin de plus de processeurs alors il prendra ce dont il a besoin dans la limite de scalabilité définie dans l’interface. C’est magique et on ne paie que la réservation sans limite de scalabilité. Mes recherches pour avoir un hébergeur Jelastic en Suisse m’ont permis de découvrir Hidora. Hidora est une petite boîte genevoise avec laquelle j’ai sympathisé à la longue. Support réactif et compétent, philosophie d’aide et d’autonomisation des clients, etc. sont pour moi essentiels dans un partenariat fort comme celui dont j’étais à la recherche. Je me crée donc un compte gratuit sur la plateforme et commence à m’amuser. Et très vite, j’ai un environnement Apache/PHP, MYSQL, NGINX comme LoadBalancer et un file system. Mmmmhhhh… fort bien. Maintenant, il faut déployer notre programme Phalcon. Petit couac pour l’installer sur PHP, mais heureusement le support d’Hidora est là et Jean-Luc a résolu mon problème en deux temps trois mouvements. Pour le déploiement, j’étais parti sur une image Docker, mais il s’est avéré que Jelastic met en place un déploiement par repository GIT bien plus simple et cela nous convient parfaitement pour le moment. Il faut être pragmatique dans une startup, sinon on risque de perdre beaucoup de temps. Nos environnements sont maintenant complets et fonctionnels. Après quelques paramétrages et une duplication de l’environnement en moins de 5 minutes notre environnement de test est prêt. Voici quelque visuel de Jelastic pour vous faire envie.
J’ai quand même l’habitude de reprendre mes objectifs et de les valider après un tel exercice :
Tous les objectifs sont atteints. Bravo ! (Faut bien se lancer des fleurs de temps en temps).
Voilà maintenant 1 an que j’ai pris la décision de partir sur Jelastic avec Hidora et je ne l’ai pas regretté une seule seconde. Le SLA est quasi à 99.99%, ce qui est parfaitement raisonnable vu le tarif que l’on paie (entre 60.- et 110.- CHF par mois pour 2 environnements – PROD et TEST).
J’ai eu l’occasion de manger avec Matthieu et Aldo, CEO et Sales Manager chez Hidora, qui sont vraiment sympas. J’ai même été invité à « L’Événement Connecté » à Genève où on a pu savourer une bière à leur stand.
Si vous souhaitez être autonome sur votre infrastructure et économiser de l’argent, tout cela dans une bonne relation avec un partenaire en Suisse alors Jelastic et Hidora sont faits pour vous.
Si vous avez des questions que vous souhaiteriez que j’approfondisse ou des propositions d’articles qui vous viennent à l’esprit sur cette thématique, n’hésitez pas à me contacter.
A bientôt
Vous avez aimé cet article ? Partagez-le avec vos collègues ou amis :
Toutes les actualités sur la cooptation et le secteur du recrutement à portée de mail
Cookie | Durée | Description |
---|---|---|
__cfruid | session | Cloudflare définit ce cookie pour identifier le trafic Web de confiance. |
cookielawinfo-checkbox-analytics | 1 an | Ce cookie est défini par le plugin GDPR Cookie Consent. Le cookie est utilisé pour stocker le consentement de l'utilisateur pour les cookies de la catégorie «Analytiques». |
cookielawinfo-checkbox-necessary | 1 an | Ce cookie est défini par le plugin GDPR Cookie Consent. Les cookies sont utilisés pour stocker le consentement de l'utilisateur pour les cookies de la catégorie «Nécessaire». |
CookieLawInfoConsent | 1 an | Enregistre l'état du bouton par défaut de la catégorie correspondante & le statut du CCPA. Il fonctionne uniquement en coordination avec le cookie principal. |
elementor | 1 jour | Ce cookie est utilisé par le thème WordPress du site Web. Il permet au propriétaire du site Web de mettre en œuvre ou de modifier le contenu du site Web en temps réel. |
OptanonConsent | 1 an | OneTrust définit ce cookie pour stocker des détails sur la catégorie de cookies du site et vérifier si les visiteurs ont donné ou retiré leur consentement à l'utilisation de chaque catégorie. |
Cookie | Durée | Description |
---|---|---|
_ga | 2 ans | Ce cookie est installé par Google Analytics. Le cookie est utilisé pour calculer les données de visiteur, de session, de campagne et pour suivre l'utilisation du site pour le rapport d'analyse du site. Les cookies stockent des informations de manière anonyme et attribuent un numéro généré de manière aléatoire pour identifier les visiteurs uniques. |
_gat_gtag_UA_120914058_2 | 1 minute | Ce cookie est installé par Google Analytics. Le cookie est utilisé pour calculer les données de visiteur, de session, de campagne et pour suivre l'utilisation du site pour le rapport d'analyse du site. Les cookies stockent des informations de manière anonyme et attribuent un numéro généré de manière aléatoire pour identifier les visiteurs uniques. |
_gid | 1 jour | Ce cookie est installé par Google Analytics. Le cookie est utilisé pour stocker des informations sur la façon dont les visiteurs utilisent un site Web et aide à créer un rapport d'analyse sur la façon dont le site Web fonctionne. Les données collectées, y compris le nombre de visiteurs, la source d'où ils viennent et les pages visitées sous une forme anonyme. |
Consentement | 2 ans | Ce cookie est défini par le plugin GDPR Cookie Consent. Il nous permet d'enregistrer le choix que vous effectuez sur la sélection des cookies. |
Cookie | Durée | Description |
---|---|---|
_calendly_session | 21 jours | Calendly, un planificateur de réunion, définit ce cookie pour permettre au planificateur de réunion de fonctionner au sein du site Web et d'ajouter des événements dans le calendrier du visiteur. |
Cookie | Durée | Description |
---|---|---|
m | 2 ans | Pas de description disponible. |
Cookie | Durée | Description |
---|---|---|
VISITOR_INFO1_LIVE | 5 mois 27 jours | Ce cookie est défini par Youtube. Utilisé pour suivre les informations des vidéos YouTube intégrées sur un site Web. |
YSC | session | Ces cookies sont définis par Youtube et sont utilisés pour suivre les vues des vidéos intégrées. |
yt-remote-connected-devices | 1 jour | Aucune description disponible |
yt-remote-device-id | 1 jour | Aucune description disponible |