Pour bénéficier de plus de souplesse, les applications Cloud native s’appuient sur une architecture orientée microservices : des services indépendants les uns des autres et qui communiquent entre eux. Ainsi, on a la possibilité de faire monter certains services en ressources et d’autres non, en fonction du besoin et de la capacité. L’application s’adapte à l’usage. Par exemple, certaines applications vont nécessiter un grand nombre d’utilisateurs. Il y aura peut-être de la redondance des services qui sont purement des accès web alors que dans d’autres applications, la problématique sera ailleurs. L’intérêt du microservice est d’être capable d’adapter la charge au besoin.
La solution Cloud Native propose des API de communications et notamment des API REST qui vont permettre les échanges avec le reste du monde particulièrement dans le cas des échanges entre microservices ou couches front.
Dans une application Cloud Native, les flux vont transiter par des réseaux externes. Il faut minimiser leur volume pour optimiser les temps de réponse et réduire les coûts. L’application doit être conçue pour minimiser ces coûts. Par exemple, sur un client riche, on récupère souvent un très gros volume de données, alors que le client n’a besoin que de quelques lignes. Une application destinée à un Cloud va essayer d’optimiser le nombre d’éléments transférés en travaillant sous forme de grille virtuelle.
L’application doit être conçue pour être automatiquement testée et déployée via une chaîne d’intégration continue. Les interventions manuelles sont limitées et les déploiements peuvent se faire en multi-noeuds de manière automatisée. C’est l’approche CI/DC. Cette approche se base sur des langages modernes et dynamiques qui répondent aux exigences du Cloud. Au-delà de l’application elle-même, il faut que le coeur des outils sache aussi adresser du Cloud.
Pour finir, l’application Cloud Native doit gérer la fonction multi-tenant. L’application étant déployée pour plusieurs clients qui vont partager son usage, il est indispensable d’avoir une ségrégation physique des données de chacun des clients. Il est inconcevable de mélanger les données de plusieurs clients. Dans beaucoup d’applications, la séparation des données est purement logique ; une simple clé permet de séparer les données. En cas d’intrusion, la personne qui va arriver à s’introduire va avoir accès à l’ensemble des données de tous les clients. Une bonne application Cloud va isoler les domaines de données de chacun des clients. Tout est scindé et séparé physiquement.