Identifying the Critical Paths A critical path is typically a user experience that is critical to the operation of your business. Examples of user requests that follow critical paths include ordering a taco, making a payment for your child’s Christmas present, donating to a charitable cause,or tracking a parcel. If these requests go wrong or […]
Category: Identifying the Critical Paths
AWS X-Ray – Operating Serverless
AWS X-Ray X-Ray is the native AWS solution for distributed tracing. It is a key component in the AWS observability stack and is fully integrated with the Amazon CloudWatch console. X-Ray provides tools to configure your application to collect trace data across owned and managed services. You can use the X-Ray console to analyze your […]
Debugging with the Core Analysis Loop – Operating Serverless
Debugging with the Core Analysis Loop When you receive a notification, either from an alert or directly from a user, that something in your application is not working correctly, you know that something is wrong but you do not know why. Following the core analysis loop, as introduced in the book Observability Engineering, allows you […]
Avoiding Single Points of Failure – Operating Serverless
Avoiding Single Points of Failure Single points of failure can occur at integration points in your system, such as your public API and authorization layer, workflows that depend on a third-party API, or centralized resources like event buses and databases. While certain single points of failure are very difficult to avoid, your aim should always […]
Multi-Account, Multi-Region: Is It Worth It? – Operating Serverless
Multi-Account, Multi-Region: Is It Worth It? The effort involved in designing, developing, and operating a cloud native application across multiple AWS accounts or Regions is substantial. You will need an in-depth understanding of all the implementation details. This means the answer to the ques‐ tion of whether it’s worth adopting a multi-account, multi-Region strategy to […]
Just-in-time testing – Testing Serverless Applications
Just-in-time testing To efficiently test and deliver your serverless applications, it is not enough to limit your test coverage; you must also limit the number of times those tests are run. Serverless and infrastructure as code make it possible and inexpensive to replicate your production environment. However, if a test passes in one non-production envi‐ […]
Upholding Standards with a Definition of Done – Testing Serverless Applications
Upholding Standards with a Definition of Done You may have encountered different forms of a “definition of done” or seen various implementations of such a document. The Scrum.org Scrum Glossary defines this as: A formal description of the state of the Increment when it meets the quality measures required for the product. The moment a […]
Integration points testing checklist – Testing Serverless Applications
Integration points testing checklist For each integration point you should capture the failure modes for the categories listed in Table 7-1 and decide whether to cover them with tests. Table 7-1. Integration points testing checklist Remember not to couple decoupled components in your tests. Whenever possible, test the source and target of an integration point […]
Mocking – Testing Serverless Applications
Mocking Unit tests should be predictable. In other words, a unit test should produce the same result every time it is executed with the same input. Take the addNumbers method shown here: export const addNumbers = (numbers) => { return numbers.reduce((a, b) => { return a + b; }); }; export const handler = async […]
Identifying the Units of Scale – Operating Serverless
Identifying the Units of Scale Most of the serverless managed services you will use in your architecture will provide automatic scaling and pay-per-use billing. This means you will be able to scale your application to respond to any level of demand while only paying for the resources you use, when you use them. For example, […]