Résumé : Découverte de Jelastic et de ces fonctionnalités vu de l’oeil d’un responsable IT d’une jeune startup.

Introduction

Beaucoup de startup démarre leurs activités avec un MVP. Nombreux sont les entrepreneurs qui lancent une application web ou mobile sans connaissance du développement informatique. Ce fût le cas chez Linkeys, ma première startup, d’où  mon engagement.

Le développement avait été fait à l’externe le moins cher possible et donc avec des ressources à l’étranger. Un modèle intéressant car il oblige de synthétiser ses idées et son besoin et de priorisé les fonctionnalités afin de ne pas faire de dépense inutile jusqu’au lancement. Mon engagement devait dans un premier temps permettre de déporter les problématique IT sur une personne compétente et de préparer le future des ambitions de l’entreprise.

Ma première tâche à mon arrivée chez Linkeys, fût de faire une analyse des technos et l’architecture utilisés afin de voir où il y avait des risques par rapport aux objectifs de croissance.

Allez HOP… Je commence par définir mes objectifs :

  • Supporter des montés de charge progressif ou ponctuelle
  • Déployer rapidement les releases
  • (re)Monter un environnement en moins d’une heure
  • Trouver des technos dont il ne sera pas trop dure de trouver des spécialistes dans la région (Suisse, Fribourg)

Et voici les contraintes :

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

J’ai donc schématisé l’architecture actuel :

N’étant pas spécialiste du domaine et n’ayant pas les moyen d’embaucher un spécialiste interne ou externe. J’ai commencé à faire des recherches afin de savoir ce qui ce faisait dans ce domaine et 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 les images sur DockerHub pour ensuite tenter de créer mes propres images. Vous trouverez toute la documentation sur le site officiel de Docker et pleins d’articles intéressants sur Medium.

Mon constat : Docker me permet d’avoir un environnement configurer, « réplicable » et contenant directement mon code (compilé si nécessaire) afin de m’assurer que je ne devrais pas refaire la configuration de mon serveur dédié à chaque création de nouvel environnement.

Afin d’assurer une disponibilité maximum, mon environnement contiendra un loadbalancer en entré et potentiellement plusieurs instances de mon image docker applicatif, le tout avec une image contenant mon serveur MySQL et un file system pour le stockage d’image privé (avatar)

Nous aurons donc un environnement avec 4 images :

  • Une image pour le loadbalancer : qui servira dans le cas d’un environnement à plusieurs noeuds
  • Une image avec le serveur apache et php (phalcon inclus)
  • Une image avec le serveur mysql
  • Une image de stockage de donnée (file system)

Toutes ces images peuvent être trouver dans Docker-Hub.

Afin de tester cette infrastructure localement, nous avons utilisé docker-compose (fournit avec le package docker desktop) qui permet de configurer simplement un environnement constitué de plusieurs images en assurant que chacune des images puissent communiquer avec celle dont il a le besoin et pas plus. Il permet aussi de configurer. Vous trouverez la documentation ici et plein de vidéo sur youtube.

Youpiii… Mon environnement tourne en local.

Jelastic

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 la que Jelastic entre en scène. En recherchant, hosting docker sur google, je suis tomber sur ce PaaS. Qui est un sytème permettant de gérer l’hébergement de mes images et l’ensemble des informations réseaux concernant l’environnement : firewall, ip public, lien en chaque image, etc. Il est aussi capable de gérer les système de logs, d’avoir un accès ssh pour chaque serveur et gére aussi les certificats SSL (addon disponible pour Let’s Encrypt).

Mes recherches pour avoir un hébergeur Jelastic en Suisse m’ont permis d’arriver sur Hidora.

Hidora fournit un hébergement pour Jelastic