Book Image

Building Serverless Applications with Python

Book Image

Building Serverless Applications with Python

Overview of this book

Serverless architectures allow you to build and run applications and services without having to manage the infrastructure. Many companies have adopted this architecture to save cost and improve scalability. This book will help you design serverless architectures for your applications with AWS and Python. The book is divided into three modules. The first module explains the fundamentals of serverless architecture and how AWS lambda functions work. In the next module, you will learn to build, release, and deploy your application to production. You will also learn to log and test your application. In the third module, we will take you through advanced topics such as building a serverless API for your application. You will also learn to troubleshoot and monitor your app and master AWS lambda programming concepts with API references. Moving on, you will also learn how to scale up serverless applications and handle distributed serverless systems in production. By the end of the book, you will be equipped with the knowledge required to build scalable and cost-efficient Python applications with a serverless framework.
Table of Contents (11 chapters)

Identifying and handling difficulties in scaling

Scaling up distributed serverless systems comes with its own set of engineering roadblocks and problems, and the fact that the concept of serverless systems is still in a very infantile stage, means that most of those problems are still unsolved. But, that shouldn't stop us from trying to solve and work around these roadblocks.

We will try and understand some of these roadblocks, and also learn how to solve or work around them, as discussed here:

  • This is more of an architect's mistake rather than a roadblock. However, it is important to address this as one too many architects/software engineers fell and fall into the overestimation or the underestimation trap. The problem we will try to address is the exact number of instances you have to launch when scaling up. In most self-hosted MapReduce-style systems, it is taken...