Monitoring platform for keeping systems up and running at all times.
Full stack visibility across the entire stack.
Detect and resolve any incident in record time.
Conform to industry best practices.
Dashbird continuously monitors and analyses your serverless applications to ensure reliability, cost and performance optimisation and alignment with the Well Architected Framework.
What defines a serverless system, main characteristics and how it operates
What are the types of serverless systems for computing, storage, queue processing, etc.
What are the challenges of serverless infrastructures and how to overcome them?
How systems can be reliable and the importance to cloud applications
What is a scalable system and how to handle increasing loads
Making systems easy to operate, manage and evolve
Learn the three basic concepts to build scalable and maintainable applications on serverless backends
The pros and cons of each architecture and insights to choose the best option for your projects
Battle-tested serverless patterns to make sure your cloud architecture is ready to production use
Strategies to compose functions into flexible, scalable and maintainable systems
Achieving loosely-coupled architectures with the asynchronous messaging pattern
Using message queues to manage task processing asynchronously
Asynchronous message and task processing with Pub/Sub
A software pattern to control workflows and state transitions on complex processes
The strategy and practical considerations about AWS physical infrastructure
How cloud resources are identified across the AWS stack
What makes up a Lambda function?
What is AWS Lambda and how it works
Suitable use cases and advantages of using AWS Lambda
How much AWS Lambda costs, pricing model structure and how to save money on Lambda workloads
Learn the main pros/cons of AWS Lambda, and how to solve the FaaS development challenges
Main aspects of the Lambda architecture that impact application development
Quick guide for Lambda applications in Nodejs, Python, Ruby, Java, Go, C# / .NET
Different ways of invoking a Lambda function and integrating to other services
Building fault-tolerant serverless functions with AWS Lambda
Understand how Lambda scales and deals with concurrency
How to use Provisioned Concurrency to reduce function latency and improve overall performance
What are Lambda Layers and how to use them
What are cold starts, why they happen and what to do about them
Understand the Lambda retry mechanism and how functions should be designed
Managing AWS Lambda versions and aliases
How to best allocate resources and improve Lambda performance
What is DynamoDB, how it works and the main concepts of its data model
How much DynamoDB costs and its different pricing models
Query and Scan operations and how to access data on DynamoDB
Alternative indexing methods for flexible data access patterns
How to organize information and leverage DynamoDB features for advanced ways of accessing data
Different models for throughput capacity allocation and optimization in DynamoDB
Comparing NoSQL databases: DynamoDB and Mongo
Comparing managed database services: DynamoDB vs. Mongo Atlas
How does an API gateway work and what are some of the most common usecases
Learn what are the benefits or drawbacks of using APIGateway
Picking the correct one API Gateway service provider can be difficult
Types of possible errors in an AWS Lambda function and how to handle them
Best practices for what to log in an AWS Lambda function
How to log objects and classes from the Lambda application code
Program a proactive alerting system to stay on top of the serverless stack
Abstracting away the need to provision and manage clusters of servers and load-balancers greatly simplifies the management of cloud resources. Development teams can focus on building valuable backend applications, instead of managing infrastructure that is invisible to end users.
Lambda has a very simplified development and deployment model. Mature tooling solutions available nowadays are combined to improve the productivity of developers.
The FaaS model also empowers development teams to adopt modern and scalable architectures. Microservices, asynchronous processing, event-driven development are all well suited for AWS Lambda.
Lambda makes it easy to scale an application backend up and down very rapidly. As mentioned in the Use Cases page, it’s also a good platform for parallelizing CPU-bound workloads that would be harder to handle in multi-core machines.
Lambda improves the financials of running compute workloads in the cloud in many ways:
As a platform fully managed by AWS DevOps teams, the chances of downtime or performance degradation are certainly much lower than an in-house cluster of servers. An application built on top of a stable and robust infrastructure like that can build higher customer satisfaction and earn trust from its users.
Abstracting the underlying infrastructure has its benefits, but also creates challenges. When it comes to logging and monitoring applications in Lambda, it’s not possible to rely on background daemons to monitor a web server, for example.
Since the code runs on ephemeral containers, application logs also can’t be persisted locally for later inspection or sync’ing with external platforms.
The solutions to these issues are:
Debugging Lambda functions can be hard for many reasons.
Logs from multiple different invocations are mixed together in AWS CloudWatch Logs. It is also hard to navigate logs from all executions in a time-ordered way.
Although microservices and event-driven architectures bring many benefits, they also make debugging harder, since the execution of a given business-rule or job is scattered through multiple functions and message buffer systems.
Logs will be equally dispersed. When it comes to debugging application issues, just finding the root cause can drain a huge amount of time.
Professional debugging platforms – such as Dashbird – especially designed for serverless environments can solve these problems very easily for developers.
A Lambda function invocation can last up to 15 minutes. For most use cases, this will be more than enough, but some long-running processes may require longer periores of time. In these cases, the only way around is breaking down tasks in chunks that can be processed withing the Lambda timeout period.
The maximum RAM memory allocated to a Lambda function is 3 Gb. If your application requires more, there is no easy way around it. The only alternative is breaking down the compute processing task into chunks that can fit in the memory limit. If that’s not possible, then Lambda is not suitable to the workload in question.
The deployment package can only have up to 250 Mb when uncompressed. This limit can become inconvenient and maybe infeasible for some use cases. In Artificial Intelligence systems, for instance, some libraries and frameworks will be much larger.
A possible solution could be retrieving additional code from an external source (e.g. an S3 bucket) and loading in memory during runtime execution. Beware that this solution will increase execution time and may not be a scalable alternative.
This is one of the Lambda limits that is difficult to get around in an elegant and performant way.
No results found