- Découplage : Les services au sein d'un système sont largement découplés. Ainsi, l'application dans son ensemble peut être facilement construite et modifiée.
- Composante : Les micro-services sont traités comme des composants indépendants faciles à remplacer et à mettre à niveau.
- Capacités commerciales : Les micro-services sont très simples et se concentrent sur une seule capacité.
- Autonomie : Les développeurs et les équipes peuvent travailler indépendamment les uns des autres, augmentant ainsi la vitesse.
- Livraison continue : Permet les mises à jour fréquentes du logiciel, grâce à l'automatisation systématique de la création, du test et de l'approbation du logiciel.
- Responsabilité : Les micro-services ne se concentrent pas sur les applications en tant que projets. Au lieu de cela, ils traitent les applications comme des produits dont ils sont responsables.
- Gouvernance décentralisée : L'accent est mis sur l'utilisation du bon outil pour le bon travail. Cela signifie qu'il n'y a pas de modèle standardisé ni de modèle technologique. Les développeurs ont la liberté de choisir les meilleurs outils utiles pour résoudre leurs problèmes.
- Agilité : Les micro-services prennent en charge le développement agile. Toute nouvelle fonctionnalité peut être rapidement développée et supprimée.
- Développement indépendant : Tous les micro-services peuvent être facilement développés en fonction de leurs fonctionnalités individuelles.
- Déploiement indépendant : En fonction de leurs services, ils peuvent être déployés individuellement dans n'importe quelle application.
- Isolation de la faute : Même si un service de l'application ne fonctionne pas, le système continue à fonctionner.
- Pile de technologie mixte : Différents langages et technologies peuvent être utilisés pour créer différents services de la même application.
- Mise à l'échelle granulaire : Les composants individuels peuvent être mis à l'échelle selon les besoins, il n'est pas nécessaire de mettre tous les composants à l'échelle.