Share on facebook
Share on twitter
Share on linkedin

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 :

  • Supporter des montées en charges progressives ou ponctuelles
  • Déployer rapidement les releases
  • (re)Monter un environnement en moins d’une heure
  • Trouver des technos pour lesquelles il ne sera pas trop dur de trouver des spécialistes sur le marché

Puis nos contraintes :

  • L’application web et l’API Mobile utilisant du PHP/Mysql/Apache/PHP-Phalcon
  • Communication et authentifications sécurisées
  • Stockage des données en Suisse
  • Impact sur l’environnement minimum (green datacenter)

Voilà le schéma de notre architecture à ce moment-là :

Capture_d_e%CC%81cran_2019-02-25_a%CC%80_07.57.32

Nous n’avions pas de spécialiste du domaine et pas non plus les moyens d’en embaucher un. J’ai commencé à faire des recherches afin de savoir ce qui se faisait dans ce domaine. C’est là que je suis tombé sur Docker.

Docker

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 :

  • Une image pour le loadbalancer : qui servira dans le cas d’un environnement à plusieurs nœuds
  • Une image avec le serveur Apache et PHP (Phalcon inclus)
  • Une image avec le serveur MySQL
  • Une image de stockage de données (file system)

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..!

Jelastic

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 :

  • Supporter des montés en charge progressives ou ponctuelles :
    ✓ Jelastic est fait pour cela si notre architecture logicielle est bien faite
  • Déployer rapidement les releases
    ✓ Avec le déploiement par GIT on a une branche par release et on déploie la branche que l’on veut. Rollback facile à faire (sauf DB, je vous en parlerai quand j’aurai une bonne solution dans un prochain article)
  • (re)Monter un environnement en moins d’une heure
    ✓ 30 minutes pour monter mon environnement de test, il peut y avoir des problèmes de DNS mais l’ancienne IP peut certainement être utilisé moyennant un appel avec Hidora.
  • Trouver des technos pour lesquelles il ne sera pas trop dur de trouver des spécialistes sur le marché
    ✓ J’ai envie de dire que ceux qui comprenne les principes de déploiement et un peu d’archi sont capables d’utiliser cette interface très simple.

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

L'article vous a plu, partagez-le

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn