Python Microservices Development: Build, test, deploy, and scale microservices in Python
Tarek Ziadé · 2017
Cover -- Copyright -- Credits -- About the Author -- About the Reviewer -- www.PacktPub.com -- Customer Feedback -- Table of Contents -- Preface -- Introduction -- Chapter 1: Understanding Microservices -- Origins of Service-Oriented Architecture -- The monolithic approach -- The microservice approach -- Microservice benefits -- Separation of concerns -- Smaller projects -- Scaling and deployment -- Microservices pitfalls -- Illogical splitting -- More network interactions -- Data storing and sharing -- Compatibility issues -- Testing -- Implementing microservices with Python -- The WSGI standard -- Greenlet and Gevent -- Twisted and Tornado -- asyncio -- Language performances -- Summary -- Chapter 2: Discovering Flask -- Which Python? -- How Flask handles requests -- Routing -- Variables and converters -- The url_for function -- Request -- Response -- Flask built-in features -- The session object -- Globals -- Signals -- Extensions and middlewares -- Templates -- Configuration -- Blueprints -- Error handling and debugging -- Custom error handler -- The debug mode -- A microservice skeleton -- Summary -- Chapter 3: Coding, Testing, and Documenting - the Virtuous Cycle -- Different kinds of tests -- Unit tests -- Functional tests -- Integration tests -- Load tests -- End-to-end tests -- Using WebTest -- Using pytest and Tox -- Developer documentation -- Continuous Integration -- Travis-CI -- ReadTheDocs -- Coveralls -- Summary -- Chapter 4: Designing Runnerly -- The Runnerly application -- User stories -- Monolithic design -- Model -- View and Template -- Background tasks -- Strava token -- Authentication and authorization -- Putting together the monolithic design -- Splitting the monolith -- Data Service -- Using Open API 2.0 -- More splitting -- Summary -- Chapter 5: Interacting with Other Services -- Synchronous calls