So this is all about getting started with AWS. I’ve been using AWS tangentially for about five years, almost always EC2 instances, so not really pushing the envelope. I’d really like to get my head round serverless and lambdas but I’m having a bit of a conceptual problem trying to work out a use case to do at home.
I have done the Udemy “AWS Certified Cloud Practitioner Practice Exam” which was quite frankly brutal, demanding 90% for three papers. First time through each I got 70-80% which I thought wasn’t too shabby but obviously not good enough for their arbitrary cutoff. The second time through I got >90% which was nice.
The biggest takeaway I have is once you’ve created a root account, create a user account and only give it only the privileges it needs. Security you know!
This is the list of white papers I’ve ingested to far. I hope it proves useful.
AWS Overview
https://d1.awsstatic.com/whitepapers/aws-overview.pdf
This is the motherlode. If you want an overview of all available services on AWS, this is the place to start. For us in the
AWS Well Architected Framework
This takes the overview one step further. Apparently as you partition your app vertically, VPSs are the trick. Security again.
https://d1.awsstatic.com/whitepapers/architecture/AWS_Well-Architected_Framework.pdf
Jenkins on AWS
In a good chunk of the contracts I’ve done, the developers have been good boys and written tests, but there was no way of automatically running them. Jenkins fixes this. Better still using the Perl TAP output formatter we can get a nice graph of the number of tests increasing. If you like, you can run Bamboo or GoCD but I’ve not had happy experiences with either of these.
https://docs.aws.amazon.com/aws-technical-content/latest/jenkins-on-aws/jenkins-on-aws.pdf
Practising Continuous Integration and Continuous Delivery on AWS
Taking Jenkins one step further. In an ideal
Development and Test on Amazon Web Services
More on the subject.
https://d1.awsstatic.com/whitepapers/aws-development-test-environments.pdf
Overview of AWS Cloud Adoption Framework
Similar overview.
https://d1.awsstatic.com/whitepapers/aws_cloud_adoption_framework.pdf
AWS DevOps
Taking a more DevOps approach to AWS.
https://d1.awsstatic.com/whitepapers/AWS_DevOps.pdf
DevOps for startups
More on the subject of DevOps.
https://blog.thesparktree.com/devops-for-startups
Docker
Now we start getting to the docker meat. I’m not sure how applicable this is to a clunky monolithic Perl framework. I
https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-basics.html#docker-basics-create-image
Deploy Docker containers
Now we get to the meat.
https://aws.amazon.com/getting-started/tutorials/deploy-docker-containers/?trk=gs_card
Cost optimisation
A common whinge I’ve heard is that unless you’re careful and out of the free
https://d0.awsstatic.com/whitepapers/Cost_Optimization_with_AWS.pdf
Considerations for the Beginner Serverless Developer
Epsagon have a good trove of blogs too.
https://epsagon.com/blog/considerations-for-the-beginner-serverless-developer/
The Most Popular Deployment Tools For Serverless
https://epsagon.com/blog/the-most-popular-deployment-tools-for-serverless/
5 Ways To Gain Serverless Observability
https://epsagon.com/blog/5-ways-to-gain-serverless-observability/
Yubl’s road to Serverless architecture — Testing and CI/CD
https://theburningmonk.com/2017/02/yubls-road-to-serverless-architecture-part-2/
Serverless observability, what can you use out of the box?
https://theburningmonk.com/2018/04/serverless-observability-what-can-you-use-out-of-the-box/
Our Journey from Heroku to Kubernetes
Kubernetes land is still a mystery to me. Every way I’ve tried to approach it, from linux to Mac I’ve been thwarted. Oh well, one day it’ll be mature enough and actually work for me.
https://www.salsify.com/blog/engineering/our-journey-from-heroku-to-kubernetes
AWS custom runtime for lambda really works: How I developed a lambda in Perl
Now we get to some interesting stuff. It seems hideously convoluted to be but still. It’s a Perl lambda!
An alternative Perl lambda
A different approach.
https://github.com/moznion/aws-lambda-perl5-layer
Using the AWS Serverless Application Model (AWS SAM)
https://docs.aws.amazon.com/lambda/latest/dg/serverless_app.html
What Is the AWS Serverless Application Model (AWS SAM)?
https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html
Considerations for the Beginner Serverless Developer
https://epsagon.com/blog/considerations-for-the-beginner-serverless-developer/
Serverless and startups, the beginning of a beautiful friendship
https://aws.amazon.com/blogs/aws/serverless-and-startups/
So that’s what I have so far. I think most of the time, we’ll go EC2 and then RDS. I’d put Cloudflare on the front unless I particularly needed a Route53 feature. Serverless is still in the land of dragons and Perl isn’t spectacularly well supported. I’d like to see a world where the code pipeline is under Amazon as well as horizontal scaling with the load balancers.