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: When Things Go Wrong
Everything Fails All the Time: Fault Tolerance and Recovery – Operating Serverless
Everything Fails All the Time: Fault Tolerance and Recovery As you design your serverless architecture and build your functions, workflows, and microservices, you should always code for failure. Coding for failure requires you keep in mind the mechanisms and strategies available to you for recovering from failures. This ranges from a try/catch in a Lambda […]
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 enough testing – Testing Serverless Applications
Just enough testing Adopting a test strategy of “test everything all the time” simply does not scale. As your application’s codebase grows and becomes increasingly fragmented across microservices and infrastructure stacks, this all-encompassing test strategy will require you to continually add more tests, spreading those tests across more service boundaries. No matter how much you […]
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 […]
Environments – Testing Serverless Applications
Environments The traditional approach to software testing involves the use of multiple pre-production, or staging, environments. A snapshot of the application is deployed to the first environment in the chain and then promoted to the next environment as soon as all the tests pass, until this version of the application finally reaches production. The common […]
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 […]
Hands-on Serverless Testing – Testing Serverless Applications
Hands-on Serverless Testing From the previous sections of this chapter, you should have started to form a mental model of how to approach testing a serverless application. Now it’s time to look at applying this model to an example architecture. Before testing any application, it is important to understand exactly what you are testing. As […]
Metrics, Alarms, and Alerts – Operating Serverless
Metrics, Alarms, and Alerts Metrics are the data that provides insights into the performance and health of your system. The metrics emitted by managed services give you a window into your utilization of the provided resources. You can also emit custom metrics from your Lambda functions (see Chapter 6 for information on using the open […]
Static analysis – Testing Serverless Applications
Static analysis If you are using a language and runtime that support static typing, you can leverage static analysis as a method to verify the requests sent to a third party and your handling of their responses. Static analysis is the process of verifying software without execut‐ ing it. Third parties will often provide official […]