Python microservices development build, test, deploy, and scale microservices in Python

A practical approach to conquering the complexities of Microservices using the Python tooling ecosystem About This Book A very useful guide for Python developers who are shifting to the new microservices-based development A concise, up-to-date guide to building efficient and lightweight microservice...

Descripción completa

Detalles Bibliográficos
Otros Autores: Ziadé, Tarek, author (author)
Formato: Libro electrónico
Idioma:Inglés
Publicado: Birmingham, England ; Mumbai, [India] : Packt Publishing 2017.
Edición:1st edition
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009630498006719
Tabla de Contenidos:
  • 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.
  • Using Session in a Flask app
  • Connection pooling
  • HTTP cache headers
  • Improving data transfer
  • GZIP compression
  • Binary payloads
  • Putting it together
  • Asynchronous calls
  • Task queues
  • Topic queues
  • Publish/subscribe
  • RPC over AMQP
  • Putting it together
  • Testing
  • Mocking synchronous calls
  • Mocking asynchronous calls
  • Mocking Celery
  • Mocking other asynchronous calls
  • Summary
  • Chapter 6: Monitoring Your Services
  • Centralizing logs
  • Setting up Graylog
  • Sending logs to Graylog
  • Adding extra fields
  • Performance metrics
  • System metrics
  • Code metrics
  • Web server metrics
  • Summary
  • Chapter 7: Securing Your Services
  • The OAuth2 protocol
  • Token-based authentication
  • The JWT standard
  • PyJWT
  • X.509 certificate-based authentication
  • The TokenDealer microservice
  • The POST/oauth/token implementation
  • Using TokenDealer
  • Web application firewall
  • OpenResty - Lua and nginx
  • Rate and concurrency limiting
  • Other OpenResty features
  • Securing your code
  • Asserting incoming data
  • Limiting your application scope
  • Using Bandit linter
  • Summary
  • Chapter 8: Bringing It All Together
  • Building a ReactJS dashboard
  • The JSX syntax
  • React components
  • ReactJS and Flask
  • Using Bower, npm, and Babel
  • Cross-origin resource sharing
  • Authentication and authorization
  • Interacting with Data Service
  • Getting the Strava token
  • JavaScript authentication
  • Summary
  • Chapter 9: Packaging and Running Runnerly
  • The packaging toolchain
  • A few definitions
  • Packaging
  • The setup.py file
  • The requirements.txt file
  • The MANIFEST.in file
  • Versioning
  • Releasing
  • Distributing
  • Running all microservices
  • Process management
  • Summary
  • Chapter 10: Containerized Services
  • What is Docker?
  • Docker 101
  • Running Flask in Docker.
  • The full stack - OpenResty, Circus and Flask
  • OpenResty
  • Circus
  • Docker-based deployments
  • Docker Compose
  • Introduction to Clustering and Provisioning
  • Summary
  • Chapter 11: Deploying on AWS
  • AWS overview
  • Routing - Route53, ELB, and AutoScaling
  • Execution - EC2 and Lambda
  • Storage - EBS, S3, RDS, ElasticCache, and CloudFront
  • Messaging - SES, SQS, and SNS
  • Simple Email Service (SES)
  • Simple Queue Service (SQS)
  • Simple Notification Service (SNS)
  • Provisioning and deployment - CloudFormation and ECS
  • Deploying on AWS - the basics
  • Setting up your AWS account
  • Deploying on EC2 with CoreOS
  • Deploying with ECS
  • Route53
  • Summary
  • Chapter 12: What Next?
  • Iterators and generators
  • Coroutines
  • The asyncio library
  • The aiohttp framework
  • Sanic
  • Asynchronous versus synchronous
  • Summary
  • Index.