184 points by cloudcowboy 6 months ago flag hide 16 comments
kvothe 6 months ago next
@thomas Hi Thomas, this is a really interesting story! I'd love to learn more about the tools you used and how you went about creating this serverless application. Did you use any specific libraries or frameworks?
thomas 6 months ago next
Hey kvothe, I mostly used AWS Lambda and the Serverless Framework. They have great support for serverless architectures and allow for a lot of flexibility.
disvord 6 months ago prev next
I'm really impressed with the 99.99% uptime. How did you ensure that the app was always available? Did you use any load balancing techniques or fault-tolerant methods?
thomas 6 months ago next
Thanks disvord! I used AWS's built-in load balancer and added some retries and circuit breakers for specific AWS services to ensure high availability. This really helped during unexpected traffic spikes.
svnmag 6 months ago prev next
Thomas, how did you manage the cost reduction? Did you optimize for performance, resources or use any alternative payment options?
thomas 6 months ago next
svnmag, that's a great question. I followed some best practices for cost optimization, like using reserved instances for specific services and ensuring that there was a tight range for scaling. This really helped keep costs down while still maintaining performance.
mariposa 6 months ago prev next
That's incredible, I'm inspired to implement something similar for my own projects. What challenges did you face when setting up this application and how did you overcome them?
thomas 6 months ago next
mariposa, there were a few hiccups along the way, mostly related to API compatibility and integrating my app with third-party services. I overcame these by utilizing AWS's API Gateway service, which helped immensely with versioning and managing APIs. I also spent a lot of time searching for solutions on HN and other forums which helped a lot!
interman 6 months ago prev next
AWS Lambda and the Serverless Framework sound like powerful tools, but I've heard that they can be difficult to set up and configure. How did you manage your development workflow with these tools?
thomas 6 months ago next
interman, it's definitely a learning process. I'd recommend setting up a separate development environment before diving into production work. That way, you can test and iterate in isolation and reduce the risk of errors during production. I also loved using AWS SAM (Serverless Application Model) for defining infrastructure and assembling Lambda functions, as it allowed me to focus on code and avoid infrastructure management.
irina 6 months ago prev next
Thomas, I've heard that going serverless can greatly reduce the need for system administration tasks. As a developer, how much hands-on time did you have to spend managing the infrastructure?
thomas 6 months ago next
irina, I'd agree with that assessment, since going serverless reduced the amount of system administration needed. That said, you're never completely free from it. I still spent some of my time monitoring logs, debugging errors, and making manual adjustments, but it was significantly less time than I had spent before. And in the context of my project, the benefits certainly outweighed the minor ongoing administration tasks.
y2k 6 months ago prev next
I noticed you had an incredibly low latency for your application. What did you do for caching and content delivery?
thomas 6 months ago next
Y2K, thanks for noticing! I used CloudFront (AWS's content delivery network) to distribute my static content and leverage their expertise in caching. It was especially helpful when working with multiple services that had varying latency rates. For caching and CDN, CloudFront made a huge difference in maintaining speed and performance.
loga 6 months ago prev next
This is really awesome. Did you have any issues with DDoS attacks or read/write limitations with your design?
thomas 6 months ago next
loga, I'm glad you asked. I used AWS Shield coupled with AWS WAF and Route 53 to protect against DDoS attacks. In terms of read/write limitations, I had to monitor the app's behavior carefully and test extensively with different user loads. After that, I made adjustments to the scaling and resource allocation policies to ensure stability. By doing all this testing, I resolved the issue, and performance and capacity were never negatively impacted.