Microservices and Serverless Computing
"The philosophy of the microservices architecture essentially equates to the Unix philosophy of 'Do one thing and do it well.'" -- Wikipedia
Lesson 1: What Are Microservices?
For organizations with large, monolithic applications, adopting a microservice approach should prove beneficial because:
- They are simpler to understand than a monolithic application.
- They are easier to scale: only the part of the overall application that is the bottleneck needs to be given more resources.
- It is easier to do continuous delivery when it is microservices being updated, rather than an entire monolithic application.
- There will be looser coupling between components of the system when it is built on microservices.
- Bugs are isolated in a microservice and can't bring down all components of a system.
- They enable more freedom of choice among technologies, as each microservice team can choose different languages, libraries, databases, and so on.
- "Microservice proponents tend to avoid this model, preferring instead the notion that a team should own a product over its full lifetime. A common inspiration for this is Amazon's notion of "you build, you run it" where a development team takes full responsibility for the software in production. This brings developers into day-to-day contact with how their software behaves in production and increases contact with their users..." -- Lewis and Fowler, linked below
Please also read:
- Lewis and Fowler on microservices
- Bob Martin on clean microservice architecture .
- What Led Amazon to Its Microservices Architecture
- Learn Microservices (Chris Richardson)
- Python Anywhere's API interface
Lesson 2: Flask Rest Plus
Here is a server running Flask Rest Plus, and Swagger, a component which documents the API, as well as letting users test it.
Here is the documentation for Flask Rest Plus.