Saturday, March 30, 2019

AWS Architecture and Design Principles


Software Design Principles


  • Be clear for what you are designing -
    • What is the production traffic 1x
    • Who is going to access
    • How personas are going access
    • How can we troubleshoot
    • Are you able to trace everything that happened 
  • Make sure to test your production systems at different scales 1x to 10x
  • Test the fail over scenarios
  • Test the failure scenarios - when dependency system / service not available etc.
  • Have alerts in place for failures and anomaly detection
  • Pick the right technology for use case

Wednesday, March 20, 2019

Tricks: AWS SNS retry


If you have a service with async processing and you would like to setup retries - instead of building your own solution please take a look at https://docs.aws.amazon.com/sns/latest/dg/DeliveryPolicies.html

You can control the frequency of the retries in the backoff phase with three parameters.
·       Minimum delay—The minimum delay defines the delay associated with the first retry attempt in the backoff phase.
·       Maximum delay—The maximum delay defines the delay associated with the final retry attempt in the backoff phase.
·       Retry backoff function—The retry backoff function defines the algorithm that Amazon SNS uses to calculate the delays associated with all of the retry attempts between the first and last retries in the backoff phase.
You can choose from four retry backoff functions.
·       Linear
·       Arithmetic
·       Geometric
·       Exponential

Good luck

Monday, March 18, 2019

Tricks: AWS Cloudwatch log subscription


Publish the logs to your choice of destination and avoid dependency of publishing logic in your code https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/SubscriptionFilters.html

We used lambda subscription model and streamed the logs to storage of our choices like ElasticSearch, Splunk etc. without impacting the running the application code.