Zappa – Serverless Python Web Services

Twelve-factor apps are becoming prevalent these days. Isolating dependencies, having backing services, disposability and stateless processes are common features of serverless applications. Serverless applications are triggered by external events and they invoke code deployed in the environment. The code is loosely coupled with other functional code and designed to perform a single task at a time. Serverless Frameworks orchestrate the code at the runtime.

AWS Lambda, Google Cloud, iron.io, IBM OpenWhisk, Azure Functions, Serverless Framework and Zappa are the serverless environments used as function as a service platform (FaaS). The serverless application might have functionality such as authentication, authorization, page navigation, searching, parsing json, transactions, scheduling, processing, and messages from stream or queue. The timeouts are configured for the serverless apps. Sometimes, maximum is around 5 minutes before being stopped. These limits are for functions as a service deployed on AWS Lambda, Microsoft Azure and Google Cloud Functions. AWS has a limit of 1000 concurrent executions for the functions. On special requests, AWS can raise the limit to a higher number in the order of thousands.

The architecture of serverless apps needs to have different coordinated FaaS functions. These functions will use API gateway for configuring routes and endpoints. The request handling, routing & response management processes are handled by API Gateway. CloudFront distribution can be configured as a content delivery network for caching responses and delivery attached to API Gateway. The serverless app lifetime is the time taken for request processing and response sent to API Gateway. On AWS Lambda, Zappa Serverless framework named after guitarist is popular for creating serverless applications. The processing time and the cost associated is cheaper than IaaS/PaaS hosts like Ec2, Heroku etc., The apps built can be scaled to billions of events and no additional effort is required. Lambda can handle large projects and Zappa can be set through slim_handler as true.

Zappa has features of packaging, deployments, updates, rollbacks, scheduling, and un-deploying the applications on AWS Lambda. The serverless functions can be executed in response to AWS events synchronously and asynchronously. Direct and remote invocation is feasible with Zappa on AWS. Serving static files and binary uploads through S3 and processing the content is supported by Zappa framework. Keep warm is a setting on the server to keep the lambda live for regularly occurring execution of the applications. Cross-origin resource sharing can be enabled for Zappa by setting CORS to true. Zappa can be deployed on Docker (Zappa docker) and Lambda environment on Docker can be used as a development environment. AWS Lambda’s Dead letter queues, SSL Certificates, IAM Roles and Policies are the key characteristics of security and messaging (SNS/SQS) modules in Zappa on AWS Lambda. Zappa integrated with Lamb CI open source project provides code checking out from GitHub through AWS SNS, running the suite and storage of the build on S3. Zappa supports SQLite database, RDS, and DynamoDB for python and Django applications on AWS and Lambda. AWS X-Ray can be used for monitoring, troubleshooting, discovering root causes and diagnosing the issues of serverless applications. Zappa-Sentry is the open source glue to add sentry to a Zappa app deployed on AWS Lambda. Serverless, Claudia JS, and Terraform are the other FaaS deployment frameworks. Serverless supports python and node.js apps. Claudia JS is used for Node.js app deployment. Terraform is used for deployment to multiple clouds and SaaS systems. All deployment frameworks support provisioning the cloud infrastructure for databases, queues and object storage which are required by the application. They support packaging and monitoring the applications deployed as functions as a service.

The roadmap for Zappa has many new capabilities yet to be released. The ability to schedule lambda events, celery-like event processing module, Let’s SSL Encryption and others are yet to be part of Zappa.

To monitor your Zappa powered application you can use Dashbird. Sign up right now for a free account. It only takes two minutes and you will never have to add a credit card.

Read our blog

ANNOUNCEMENT: new pricing and the end of free tier

Today we are announcing a new, updated pricing model and the end of free tier for Dashbird.

4 Tips for AWS Lambda Performance Optimization

In this article, we’re covering 4 tips for AWS Lambda optimization for production. Covering error handling, memory provisioning, monitoring, performance, and more.

AWS Lambda Free Tier: Where Are The Limits?

In this article we’ll go through the ins and outs of AWS Lambda pricing model, how it works, what additional charges you might be looking at and what’s in the fine print.

Made by developers for developers

Dashbird was born out of our own need for an enhanced serverless debugging and monitoring tool, and we take pride in being developers.

What our customers say

Dashbird gives us a simple and easy to use tool to have peace of mind and know that all of our Serverless functions are running correctly. We are instantly aware now if there’s a problem. We love the fact that we have enough information in the Slack notification itself to take appropriate action immediately and know exactly where the issue occurred.

Thanks to Dashbird the time to discover the occurrence of an issue reduced from 2-4 hours to a matter of seconds or minutes. It also means that hundreds of dollars are saved every month.

Great onboarding: it takes just a couple of minutes to connect an AWS account to an organization in Dashbird. The UI is clean and gives a good overview of what is happening with the Lambdas and API Gateways in the account.

I mean, it is just extremely time-saving. It’s so efficient! I don’t think it’s an exaggeration or dramatic to say that Dashbird has been a lifesaver for us.

Dashbird provides an easier interface to monitor and debug problems with our Lambdas. Relevant logs are simple to find and view. Dashbird’s support has been good, and they take product suggestions with grace.

Great UI. Easy to navigate through CloudWatch logs. Simple setup.

Dashbird helped us refine the size of our Lambdas, resulting in significantly reduced costs. We have Dashbird alert us in seconds via email when any of our functions behaves abnormally. Their app immediately makes the cause and severity of errors obvious.