Toutes les Startups démarrent avec une petite solution d’hébergement web car c’est généralement suffisant. Mais pour ceux qui rencontrent rapidement le succès et donc plus de visibilité, il peut être nécessaire d’analyser plus en profondeur quelle solution correspond la mieux. Aussi, il faudra anticiper et se questionner sur comment éviter un plantage du service suite à une belle action de promotion ou au résultat d’un communiqué de presse ayant eu un impact à la radio, à la TV ou sur un influenceur réputé.

 

Par où commencer ?

Comme je le répète fréquemment à de jeunes entrepreneurs, démarrez toujours de la manière la plus économique possible. En d’autres terme, ne vendez pas la peau de l’ours avant de l’avoir tué et ne passez pas de temps à faire de la sur-qualité. Personne ne peut se le permettre aujourd’hui et encore moins une startup.

Paul Graham fondateur de Y combinator dit si bien : « Do things that don’t scale ».

Donc pour commencer, prenez l’offre la plus simple possible et allez chercher des utilisateurs.

 

Solution simple mais qui soit rapide

Vous auriez raison de vouloir un site qui soit rapide au chargement. Et pour cela vous avez de la chance, il y a un outil magique appelé CloudFlare.com.

Je tente de l’expliquer de manière simple : chaque fois que vous chargez votre site internet, vous avez plus de 90% des fichiers qui ne changent jamais et moins de 10% de données personnalisées et créés dynamiquement pour vous. Donc pourquoi ne pas envoyer les 90% à partir d’un autre service ? Un service qui soit justement plus près géographiquement du visiteur… Et bien c’est exactement ce que fait la Technologie CDN. Et les solutions comme Cloudflare apportent justement ce type de service avec un processus de configuration simplifié.

 

Ça accélère…

A peu près toutes les petites configurations devraient être capables de répondre à une requête par seconde. Ce qui fait plus de deux millions de requêtes par mois et à peu près 20 000 visiteurs par mois en comptant 100 requêtes par visite.

Donc si vous n’avez pas ce trafic ou si vous n’êtes pas sur le point de l’atteindre (à savoir 20K visites par mois), concentrez-vous d’abord sur le développement de votre business, non pas sur votre infrastructure serveur.

Néanmoins, posez-vous quand même les questions suivantes :

  • Ai-je des sauvegardes régulières ?
  • Combien de temps cela me prendrait-il de migrer sur un meilleur serveur ou d’en construire un nouveau?
  • Est-ce que je me souviens de tout ce que j’ai fait sur mon serveur ?
  • Si demain mon serveur plante, combien de temps cela me prendra pour restaurer mon service ?

Pourquoi ne pas essayer de monter un serveur de test, juste pour vérifier ? …

 

Être prêt pour une croissance inattendue

Vous avez validé votre concept ? Bravo à vous ! Le plus difficile est en effet bien d’avoir du trafic.

Maintenant, vous êtes sur le point d’envoyer vos communiqués de presse à des influenceurs, la radio ou même à la TV ? Que se passerait-il si une audience d’un million de personnes regardait la dernière émission parlant de votre startup ? Peut-être que vous passerez d’un utilisateur par seconde à 10 000 par minute pendant quelques minutes, ce qui représenterait environ 166 requêtes par seconde. Ceci est largement plus que ce que peut supporter la plupart des configurations non optimisées.

 

Il y a deux choses importantes dans ce cas :

  • Est-ce que la base de données va être capable d’accepter un tel trafic, ce qui très dépendant de la manière dont votre site aura été développé.
  • La capacité de votre ou vos serveur(s) à admettre ce type de trafic.

 

Et pour renforcer votre infrastructure, vous avez 3 options :

  • Repartir sur une configuration plus robuste qui sera chère mais qui vous permettra de répondre rapidement à une situation urgente.
  • Optimiser votre application et activer un certain nombre de fonctions de mémoire cache et simplification.
  • Déployer une infrastructure auto-adaptable qui sera capable de grossir et se réduire en fonction du trafic.

 

Les deux dernières sont évidemment les plus efficaces, mais peuvent demander un travail plus conséquent, surtout si l’on doit configurer la répartition de charge sur plusieurs serveurs. Ce principe appelé communément « Load-Balancing », peut demander des changements structurels de l’application afin de bien gérer les fichiers téléchargés ou les sessions des utilisateurs.

 

 

Passons à l’action

Concrètement parlant, la pratique vaut mieux que des mots et pour bien définir une action, il faut mesurer la situation actuelle. Donc stressons notre application ! Bon pas exactement … stressons l’environnement de test qui est construit sur la même architecture que l’application réelle.

Si vous n’avez pas d’environnement de test, vous devriez certainement considérer d’en construire un ou éventuellement créer un script de déploiement automatique qui vous permettra de démarrer rapidement et automatiquement un nouvel environnement.

Si vraiment vous êtes dans l’urgence et que vous n’avez pas le temps de le faire, rien ne vous empêche d’effectuer vos tests sur votre site de production à 4h du matin afin de savoir jusqu’où peut aller votre architecture actuelle sans impacter vos clients.

Commence stresser votre application ?

Il y a une multitude d’outils permettant de faire des tests de charge d’un site Internet. N’étant certainement pas un spécialiste dans ce domaine, vous pouvez simplement utiliser un outil en ligne ; voici les deux que j’ai pu rapidement tester :

http://loader.io : relativement facile à configurer mais si vous voulez connaître les limites de votre architecture, vous devrez lancer de multiples tests de manière progressive.

https://loadimpact.com : cet outil est, de mon point de vue, le meilleur moyen pour un amateur d’effectuer un premier test pour savoir jusqu’à combien d’utilisateurs un site peut résister.

 

Techniquement parlant, il y a de biens meilleurs outils, plus précis mais ces derniers vous donneront déjà une première indication de votre situation.

 

 

Remarque importante : lorsque vous stressez une application avec un outil de base comme ceux-ci, cela ne génère généralement que très peu de requêtes sur la base de données. Pour faire une véritable simulation, il est nécessaire de définir des paramètres plus précis afin de simuler le parcours de véritables utilisateurs. Donc divisez par dix le point de rupture pour avoir une idée de la capacité réelle de votre site internet.

Qu’est ce qu’il faut retenir de cet article

Vous savez maintenant si votre projet a suffisamment de trafic pour vous préoccuper de votre infrastructure.

Vous savez également que vous pouvez améliorer de manière significative la capacité de votre hébergement actuel en passant par une solution du type http://CloudFlare.com .

Vous savez qu’il y trois manières d’améliorer les capacités d’un service web : opter pour un serveur de plus forte capacité, optimiser le code de votre application et adapter votre application pour une architecture à dimensionnement automatique.

Vous savez également comment démarrer un premier test de charge pour avoir une idée des limites de votre site actuel.

 

Des questions ?

Comme d’habitude, cet article est une introduction pour vous permettre de comprendre le fonctionnement technique et d’avoir quelques astuces. Néanmoins, à partir du moment où vous avez un enjeu commercial et des pertes réelles en cas de potentiels arrêts de service, vous devriez demander conseil à quelqu’un de qualifié.

 

Dans tous les cas, n’hésitez pas à commenter, poser vos questions ou partager si cet article vous a été utile.