1
Introduction
- A look at upgrades in software and organization.
- Pros and cons of monolithic applications.
- Agile methodologies and DevOps practices.
- Continuous integration and continuous deployment processes.
2
Microservices architectures
- Defining a microservices architecture.
- Characteristics of microservices.
- The emergence of microservices architectures.
- The main players.
- Several examples from the web's biggest companies.
3
Communications in a microservices architecture
- Choosing the collaboration style: REST request/reply vs Publish-Subscribe Messaging.
- Basic principles and refreshers on HTTP.
- Implementing REST services with Java.
- The principle of HATEOAS.
- Documenting a REST service with Swagger.
- Testing a REST service.
Hands-on work
Defining a Rest API with Swagger and implementing services with Jersey. Testing a REST service with SoapUI.
4
Developing a microservice in Java
- Overview of "all-in-one" Java frameworks.
- Comparison of SpringBoot and Dropwizard.
- Developing an application with Dropwizard or SpringBoot.
- Packaging a production-ready application.
Hands-on work
Developing an application with Dropwizard or SpringBoot.
5
Executing a micrcoservice using containers
- Overview of Docker.
- How containers work with Docker.
- Designing custom images.
- Configuring and starting containers.
Hands-on work
Creating a custom container with Docker.
6
Deploying a microservices architecture
- Deployment optimization techniques.
- Implementing a multi-container application with Docker Compose.
- Infrastructure solutions for microservices (Kubernetes, Mesos, Swarm).
- Cloud solutions (Cloud Foundry, Heroku).
Hands-on work
Implementing a multi-container architecture with Docker Compose.
7
Administration and monitoring
- Centralizing logs.
- Monitoring microservices.
- Metrics and Health Check.
Hands-on work
Setting up an application's metrics to visualize them.