Serverless Application & Infrastructure Lifecycle Management using Terraform and friends!
It has started as an organic response to the accidental complexity of many existing tools used by serverless developers.
This is not an official AWS or HashiCorp product, and not to be confused with the Serverless Framework.
Most of the existing solutions require you to become a Serverless Superhero to get things done!
Developers and DevOps/Cloud engineers have to deal with several types of tools:
Use Terraform (with or without Terragrunt) for comprehensive infrastructure management and serverless application deployments.
Developers and DevOps/Cloud engineers manage different infrastructure services differently (for various reasons).
For example, serverless resources (API Gateways, AWS Lambda functions) managed as part of the application framework, and traditional resources (VPC, IAM roles, S3 buckets) - using infrastructure management tools.
Use a single tool that was created to manage infrastructure as code – Terraform – for all of your infrastructure resources.
Developers like to have control of their environment as code. They also prefer running integration tests often before lengthy deployment cycles kick-off.
Have all infrastructure resources described as configuration files. This allows developers to spin-up and tear-down complete environments required for their work easily.
Having interaction with real services is often slower than running everything locally (eg, using localstack) but interaction with real services gives the most accurate feedback regarding how AWS services work.
Some of the existing solutions support plugins that extend the functionality of the framework and to simplify the usage of infrastructure services.
In reality, often, developers still have to dive into those to learn internals and archive what they need. Adding functionality to those plugins usually requires writing Javascript code.
By relying on open-source Terraform AWS modules that have been developed over the course of several years by Betajob in partnership with our huge community, you get to build your serverless project on top of verified, reusable components.
Please, contact Betajob if you want to sponsor the development of missing modules or features.
See AWS Serverless official homepage for more information about each service, and Terraform AWS Modules for other compatible solutions.
AWS Lambda lets you run code without provisioning or managing servers.
Lambda@Edge allows you to run Lambda functions at AWS Edge locations in response to Amazon CloudFront events.
AWS AppSync simplifies application development by letting you create a flexible GraphQL API to securely access, manipulate, and combine data from one or more data sources.
AWS Step Functions is a serverless function orchestrator that makes it easy to sequence AWS Lambda functions and multiple AWS services into business-critical applications.
Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds, all within a developer-friendly environment.
Amazon API Gateway is a fully managed service that makes it easy for developers to create, publish, maintain, monitor, and secure APIs at any scale.
Amazon DynamoDB is a fast and flexible NoSQL database service for all applications that need consistent, single-digit millisecond latency at any scale.
Amazon Aurora Serverless is an on-demand, auto-scaling configuration for Amazon Aurora (MySQL-compatible edition), where the database will automatically start up, shut down, and scale capacity up or down based on your application's needs.
Amazon Simple Storage Service (Amazon S3) provides developers and IT teams with secure, durable, highly-scalable object storage.
Amazon SNS is a fully managed pub/sub messaging service that makes it easy to decouple and scale microservices, distributed systems, and serverless applications.
Amazon CloudWatch is a monitoring service for AWS cloud resources and the applications you run on AWS.
Amazon SQS is a fully managed message queuing service that makes it easy to decouple and scale microservices, distributed systems, and serverless applications.
AWS CodeDeploy is a service that automates application deployments to a variety of compute services including Amazon EC2, AWS Lambda, and instances running on-premises.
Got any questions? Or want to sponsor development? Don't hesitate to reach out.