App

Développer des applications mobiles scalables et résilientes

Par le
Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedInPin on Pinterest

data_center

Créer des applications mobiles qui sont à la fois résilientes et évolutives (scalables) est un objectif essentiel de toute architecture. Une application mobile bien conçue doit pouvoir évoluer de manière transparente au fur et à mesure que la demande augmente et diminue, et être suffisamment robuste pour résister à la perte d’un ou plusieurs éléments d’infrastructure. Le cloud remet en avant des approches relativement anciennes de la construction d’architectures Internet hautement scalables. Il propose aussi de nouvelles approches qui modifient considérablement la façon de construire et de déployer des applications.

Ainsi, le cloud modifie substantiellement de multiples processus, patterns, pratiques, et approches tenus pour acquis. Il remet aussi en avant certains principes connus des architectures orientées service, principes qui deviennent plus fondamentaux encore qu’auparavant.

[Le cloud est porteur de nouvelles idées qu’il est nécessaire de s’approprier. Ce livre blanc permet de comprendre concrètement et simplement la mise en oeuvre d’architectures résilientes des applications sur la plateforme de Google Cloud ]

Scalabilité : ajustement de la capacité pour répondre à la demande
Une application Web dite scalable est une application en capacité de fonctionner de manière optimale avec 1 ou 1 000 000 utilisateur(s). La scalabilité d’un service désigne la capacité de l’application et de l’infrastructure à s’adapter automatiquement pour traiter un niveau de sollicitation variable. La scalabilité de l’infrastructure s’obtient par ajout et suppression de capacité de traitement ( VM, mémoire, cpu, stockage).

Une application évolutive répond aux augmentations et aux diminutions de la demande.La capacité s’ajuste dynamiquement pour tenir compte des variations de la demande. Cette caractéristique, parfois appelée élasticité est l’une des caractéristiques fondamentales du cloud. L’élasticité est la capacité d’ajuster les ressources à la hausse ou à la baisse automatique- ment. Il est important de remarquer que c’est bien de l’élasticité que résulte à terme l’essentiel des apports du cloud


Concevoir une architecture scalable et résiliente implique généralement :

– L’utilisation d’équilibreurs de charge (Load Balancer) pour surveiller les serveurs et répartir le trafic vers des serveurs qui peuvent mieux gérer les demandes.
– De distribuer les serveurs d’hébergement (ou VM) dans plusieurs Datacenters. De disposer d’une solution de stockage robuste et répliquée.
– De concevoir des applications sans état (dites « stateless ») ou de gérer les états/sessions avec des mécanismes distribués (ex : ferme de serveurs de sessions).

Ci-dessous un data center de Google