De nos jours, ne pas savoir se repérer en terme de technologie web est un handicap majeur qui peut pénaliser la réussite d’une idée, la croissance d’une entreprise voire le rayonnement d’une marque…

Les décideurs, les porteurs de projets ne peuvent plus faire l’impasse d’un produit web ou mobile dans leur stratégie développement.

En 2020, le panorama technologique a beaucoup évolué laissant place à une nouvelle réalité technologique.

Cette nouvelle réalité se reflète dans le fait qu’il ne s’agit plus d’une technologie homogène à mettre en place mais de plusieurs éléments et couches technologiques de développement qui s’appuient et interagissent les unes avec les autres.

Ces différentes technologies sont collectivement appelées pile technologie (stack technology en anglais).

De ce fait, Le choix d’une pile technologique pertinente est particulièrement difficile surtout pour les petites entreprises et les startups, car elles ont généralement des budgets limités et ont besoin d'une technologie qui offre le meilleur rapport qualité-prix pour faire démarrer leurs projets.

La bonne pile technologique est, dans une large mesure, la clé du succès de tout projet web ou mobile.

En tant que décideur dans une entreprise, marketer, responsable digital ou porteur de projet... Il devient crucial pour vous de comprendre cet univers qui vous aidera à connaitre les critères de choix d'une pile de développement technologique pour mieux piloter votre projet d'application Web/mobile.

Qu'est-ce qu’une pile technologique?

Techniquement, une pile technologique est une succession de composants tels que des outils, des langages de programmation et des technologies utilisés pour le développement de logiciels. 

Schématiquement, Le développement Web/mobile nécessite un front-end, un back-end et une base de données. Toutes ces couches forment une pile technologique. Cette dernière comprend trois éléments:

  • Le front-End
  • Le Back-End
  • La base de donnée


Le Front-End ou programmation côté client :

Le développement Web côté client (c'est-à-dire front end) implique tout ce que les utilisateurs voient sur leurs écrans. Voici les principaux composants de la pile de technologie front end :

  • Hypertext Markup Language (HTML) et feuilles de style en cascade (CSS). HTML indique à un navigateur comment afficher le contenu des pages Web, tandis que le CSS formate ce contenu (couleur, taille de police.)… Le Bootstrap est un cadre (en colonnes) utile pour gérer HTML et CSS.
  • JavaScript (JS)  rend les pages Web interactives. Il existe de nombreuses bibliothèques JavaScript (telles que jQuery, React.js, Zepto.js…) et des Framework (tels que Angular, Vue, Backbone et Ember) pour un développement Web plus rapide et plus facile..

Actuellement, Angular & React sont les derniers frameworks JavaScript frontaux qui vous permettent de concevoir des interfaces utilisateur extrêmement engageantes.

Le Back-End ou la programmation côté serveur :

Le côté serveur n'est pas visible pour les utilisateurs, mais il alimente le côté client.

Le défi réside principalement dans le choix des technologies côté serveur pour développer votre application web. Le Back-end comprend :

  • Le langage de développement Web
  • La base de données et le cache
  • Le Serveur 
  • L’API (REST & SOAP)

Quant aux langages de programmation côté serveur , ils sont utilisés pour créer la logique des applicatifs Web et mobile. 

Les Framework de ces langages de programmation offrent de nombreux outils pour un codage plus simple et plus rapide. Citons certains des langages de programmation populaires et leurs principaux Framework (entre parenthèses):

  • Ruby (Ruby on Rails)
  • Python (Django, Flacon, Pylônes)
  • PHP (Laravel)
  • Java (Spring)
  • Scala (Play)

Cependant, Node.js est un runtime JavaScript contrairement aux apparences est utilisé pour la programmation Back-end.

Une fois la logique créée, votre application Web a besoin de stocker ses données et c'est là qu’interviennent les bases de données 

Il existe deux types de bases de données: relationnelles et non relationnelles, chacune ayant des avantages et des inconvénients. Ci-après les bases de données les plus populaires pour le développement Web:

  • MySQL (relationnel)
  • PostgreSQL (relationnel)
  • MongoDB (non relationnel, document)

Ensuite, pour assurer la vitesse de chargement, une application Web a besoin d'un système de mise en cache pour réduire la charge sur la base de données et pour gérer de grandes quantités de trafic. Memcached et Redis sont les systèmes de mise en cache les plus répandus.

Enfin, une application Web a besoin d'un serveur pour gérer les demandes des navigateurs web (les requêtes par exemple http ou https). Il existe deux acteurs majeurs dans ce domaine:

  • Apache
  • Nginx

 

technology-stack-diagram

 

Critères de choix d'une pile technologique

Pour bien choisir une pile technologique ces critères sont à prendre en compte dans tout projet web/mobile.

Critère n ° 1 : Type d'application Web/mobile

La première chose à prendre en compte est le type d'application que vous voulez développer. Vous devriez trouver un ensemble d'outils qui offre des avantages et cadre avec les besoins de votre application.

En termes de complexité, tous les projets Web/mobile peuvent être classés en trois types:

  • Simple  : Ces applications Web sont créées à l'aide de solutions prêtes à l'emploi (comme le logiciel CMS ou de boutique en ligne : Wordpress, woocomerce…). Exemples: site web simple, landing page, boutiques en ligne simples…
  • Niveau intermédiaire . Ces applications ont plus de fonctionnalités que les simples applications et sont construites à l'aide de frameworks. Ce sont des applications financières, commerciales, ou marketing (hubspot)… sont normalement développées à l'aide de frameworks tels que Node JS, Angular, etc.
  • Complexe . Ces applications Web ont de nombreuses fonctionnalités et intégrations; elles sont développées à l'aide de différentes technologies de développement Web et peuvent être composées de plusieurs langages de programmation. Exemples: réseaux sociaux, les marketplace, les sites de e-commerce complexes, etc.

Une fois le type de votre application défini, vous devez également prendre en compte ses objectifs commerciaux. 

Ces derniers ont un impact sur le choix des technologies à mettre en place :

  • Traitement de charges lourdes . Si votre projet Web/mobile repose sur le traitement de la charge, vous devez opter pour des langages de programmation et des frameworks qui peuvent le garantir. Par exemple les applications de streaming vidéo/audio et les services de partage de fichiers.
  • Faible latence . Une pile technologique spécifique est requise pour rendre votre application Web très réactive et réduire la latence. Les réseaux sociaux sont probablement le meilleur exemple de sites Web qui nécessitent une faible latence.

Critère n ° 2: Délai de mise sur le marché

Le délai de mise sur le marché (Time To Market) est extrêmement important lors du choix d'une pile technologique surtout pour les startups et les petites entreprises. Plus votre application est développée et déployée rapidement, plus vous prendrez de l’avance sur vos concurrents. En plus, moins le développement nécessite de temps, moins le coût de développement est élevé.

Le Time To Market (TTM) dépend fortement de la pile technologique que vous allez choisir pour votre application et voici une liste d’éléments que vous devez prendre en compte lors du choix d'une pile adéquate :

  • Des solutions prêtes à l'emploi . Vérifiez si une technologie propose des solutions prêtes à l'emploi et proposent les fonctionnalités nécessaires à votre application Web. Par exemple, le framework Ruby on Rails permet aux développeurs d'utiliser de nombreuses bibliothèques open source (appelées gemmes) qui facilitent le processus de développement et réduisent considérablement le TTM.
  • Intégration avec des solutions tierces . Assurez-vous que la pile technologique prend en charge l'intégration avec des solutions tierces. Cette intégration vous aidera à ajouter certaines fonctionnalités dont vous aurez besoin sans réinventer la roue.
  • Disponibilité développeur . Si vous avez arrêté votre choix, il faut vous assurer de trouver des développeurs ayant une expertise dans la pile technologique en question. Et n'oubliez pas que la construction de l’application n'est que le début. Vous aurez également besoin de développeurs pour le maintenir après le lancement.
  • Documentation et communauté de développeurs .Toute équipe de développement peut rencontrer des impasses techniques et mettre un certain temps pour trouver la solution, ce qui signifie un délai supplémentaire dans le time to market. C'est pourquoi vous devez vous assurer que les technologies sélectionnées ont de grandes communautés de développeurs et une documentation riche.
  • Facile à tester . Une application Web contient de nombreuses lignes de code, les bugs sont donc inévitables. Inutile de dire que le débbugage nécessite beaucoup de temps et ralentit le développement. Pour palier à ce problème, il faut choisir des technologies faciles à tester. Certaines technologies sont basées sur une approche de développement dite pilotée par les tests.

Critère n ° 3: Coût de développement d'une application Web

Transformer votre idée en une application Web/mobile n'est ni simple ni gratuit. Cela nécessite un investissement en temps et en argent. Dès lors,  le choix de la pile de développement technologique a un impact direct sur le coût de développement. Il y a deux critères principaux dont vous devez tenir compte:

  • Le taux jour/homme de la technologie : Les développeurs Web sont des professionnels hautement qualifiés et très demandés. Cependant, leurs salaires dépendent des technologies qu’ils maîtrisent. Par conséquent, les coût seront différents selon la pile technologique. A titre d’exemple le PHP reste la technologie la plus abordable tandis que Python et Ruby rail sont un peu plus chères
  • Coût de maintenance de l'application  : Une fois déployée cette application a besoin d’être maintenue. Pour réduire les coûts de maintenance, le mieux est d’opter pour des technologies open source gratuites. 


Critère n ° 4: sécurité

Notre monde est de plus en plus digital et les cyber-attaques sont devenues la plus grande menace pour les entreprises en ligne. Pour sécuriser votre application Web il faut que la pile technologique suive. Chaque expert, a une opinions différente quant au langage de programmation le plus sûr. En vérité aucun langage ne garantit une sécurité à 100%.

La plupart des technologies ont des directives de sécurité où toutes les étapes pour prévenir les menaces et minimiser les vulnérabilités sont clairement définies. Vous devez vous assurer que votre application Web/mobile est créée conformément aux directives de sécurité appropriées.

Critère n ° 5: Scalabilité

Lors du développement de votre projet web, votre souhait sans aucun doute est de le voir grandir et gagner en popularité. Cependant, La scalabilité n'est pas une fonctionnalité à activer lors du développement mais une réalité à anticiper. 

 En général, il existe deux types de scalabilités :

  • Scalabilité horizontale , ce qui signifie la capacité d'une application Web à une montée en charge (prendre en charge plus de demandes). En d'autres termes, elle doit continuer à fonctionner même si le nombre d'utilisateurs augmente considérablement.
  • Scalabilité verticale , ce qui signifie la possibilité d'ajouter de nouveaux composants à une application Web sans nuire à ses performances.

Vous devez penser à la Scalabilité à l'avance et choisir une pile technologique appropriée à vos besoins. 

Comme vous pouvez le voir, choisir la bonne pile technologique est un vrai défi, mais l'idée centrale qui devrait vous guider est la suivante: choisissez les technologies en fonction de votre projet. Vous devez toujours être réaliste et tenir compte de tous les avantages et inconvénients. 

Nouveau call-to-action

Hassan BELOUAH
Hassan BELOUAH

Baroudeur du Web, parmi les premiers pionniers du sujet dans la région, j'assure le rôle de technologue principal dans l'agence dont je suis un co-fondateur. Passionné comme mes compères dans l'agence, plus de 26 an de métier, je continue à mouiller la chemise chaque jour pour maintenir mes connaissances dans ce vaste monde de technologies et de méthodologies qui se renouvellent sans arrêt.