Les systèmes d’information des banques, opérateurs télécoms, administrations et start-up ne sont plus des applications isolées : ils sont composés de services interopérables, exposés sous forme d’API et de plus en plus hébergés dans le cloud. Ce cours donne à l’ingénieur génie logiciel les concepts et les savoir-faire pour concevoir, déployer et exploiter de telles architectures. Il traite d’abord l’architecture orientée services (principes, contrats, bus de services, orchestration et chorégraphie), puis les technologies de services web (SOAP/WSDL, REST, OpenAPI, gRPC) et le passage aux microservices. La seconde partie est consacrée au cloud computing selon la définition du NIST (caractéristiques, modèles IaaS/PaaS/SaaS, modèles de déploiement), à la virtualisation, aux conteneurs Docker et à l’orchestration Kubernetes, et enfin à la sécurité (responsabilité partagée), à la disponibilité, à l’évaluation des coûts (TCO, FinOps) et aux stratégies de migration, avec une attention particulière au contexte nigérien : connectivité internationale, souveraineté et protection des données personnelles.
Objectifs d’apprentissage
- Expliquer les principes de la SOA et concevoir un portefeuille de services à partir de processus métier.
- Concevoir, documenter (WSDL, OpenAPI) et sécuriser des services web SOAP et REST ; distinguer SOA et microservices.
- Caractériser les modèles de service et de déploiement du cloud et choisir une offre adaptée.
- Conteneuriser une application avec Docker et la déployer sur Kubernetes avec mise à l’échelle automatique.
- Évaluer la sécurité, la disponibilité et le coût total de possession d’une solution cloud et planifier une migration.
Prérequis
Architecture logicielle, programmation (Java ou Python), réseaux TCP/IP et HTTP, bases de données, notions de Linux en ligne de commande.
Plan du cours
- Leçon 1 — Principes de l’architecture orientée services (SOA)
- Leçon 2 — Services web SOAP et REST, contrats d’API et microservices
- Leçon 3 — Cloud computing : modèles, virtualisation, conteneurs et orchestration
- Leçon 4 — Sécurité, disponibilité, coûts et migration vers le cloud
Modalités d’évaluation
Volume horaire (maquette) : 20 h de CM, 10 h de TD, 20 h de TP et 30 h de TPE, pour 3 crédits. Évaluation : contrôle continu (comptes rendus de TP Docker/Kubernetes, étude de cas d’architecture : 40 %) et examen terminal écrit (60 %).
Bibliographie
- Thomas Erl, Service-Oriented Architecture: Concepts, Technology, and Design, Prentice Hall, 2005.
- Sam Newman, Building Microservices, O’Reilly, 2e éd., 2021.
- Leonard Richardson, Sam Ruby, RESTful Web Services, O’Reilly, 2007.
- NIST, Special Publication 800-145 : The NIST Definition of Cloud Computing, 2011.
- Documentation officielle de Docker (docs.docker.com) et de Kubernetes (kubernetes.io) ; spécification OpenAPI (openapis.org).
