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...
Otros Autores: | |
---|---|
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.