AWS MAD DevDay
15 October 2020
Despite graduating from the course and passing my AWS certification, I have still barely scratched the surface of the tech world and, even if I hadn’t, this world progresses so quickly that even when you do reach a high level you need to keep moving to not be left behind. Luckily, especially in the midsts of Covid-19, there are many virtual events to help you progress and stay up to date. This post is about the one today: Modern Application Development by Amazon Web Services!
I have been to a few other virtual days like today since graduating the course (including an introduction to SCRUM from Generation and the NetZero Skills Summit sponsored by the National Grid) but this was by far the fastest paced out of the and also included the most new technology out of them! There were 3 streams of talks to choose from and other than a CI/CD session on the Enterprise Architect stream, all of my selections were for the Building Applications stream.
The day jumped straight in with the many benefits of MAD in the opening Keynotes and then I tuned in for the deep dive on developer tools. This started by going over the innovation flywheel of making an iteration, experimenting with it, listening to the feedback and repeat (is there any another way to write code that works?), and then plunged right down into the Tracer from Lambda Powertools: a way to find bugs and inefficiencies in Python code by working with AWS X-Ray to provide visibility into function calls, interactions with other services and external requests. The programs I’ve written so far are all pretty short and even they can be hard to go through and find bugs manually so I can definitely see the use of tools like this and Code Guru, which was also briefly covered, when you’re dealing with applications that can span MANY more lines of code or you have several micro-services to look through because all you know is that there’s an error somewhere… The key takeaway from this session was that being a developer is fun but looking for errors isn’t, so make the most of the tools available to do more of what you enjoy and less of what you don’t!!!
Next was the CI/CD session that was the only session I selected outside of the Building Applications stream. I chose this instead of the Infrastructure as Code Powered by AWS CDK session as, although IaC is immensely powerful and I will no doubt be using it before long in my career, CI/CD is something that will help me with everything (even version control on this blog which was handy when I was transforming it from completely self-hosted to working with GHPages) and it’s not as large scale as IaC which means I’ll have a lot more chance to put when I learnt into practice and get comfortable with it before I get a job somewhere that I’ll have to use it. The first AWS service covered in this 30 minute session (yes, each of these sessions spanned just 30 minutes and covered this much) was CodePipeline: a fully managed Continuous Delivery service that enables you to speed up releases and updates by automating the build, test and deploy phases EVERY time you change some of the code, and even integrates with 3rd party tools as well as AWS services. The second was AWS SAM, the Serverless Application Model the provides shorthand syntax that’s transformed into CloudFormation (IaC) syntax on deployment; SAM even allows you to include information at the top of your file that will be used as the default values throughout the project and if you need a different value for an aspect, you just give that aspect a value and that will be used instead to really allow for rapid and scalable serverless application production that’s still highly customisable. This session also covered AWS CodeBuild, another fully managed service by AWS (they handle everything under the hood so you don’t even have to think about it) that compiles source code, runs tests and produces deployment ready software packages, with continuous horizontal scaling so it can process multiple builds at the same time. This is ideal for testing code and developers can just commit changes and this service handles the rest. For testing on a live server, you can also use Lambda functions to incrementally add more load to the server you’re testing at regular time periods as long as there are no issues, as well as automatically revert the whole load back to the initial server if it does hit a wall, making testing that much safer and less likely to negatively effect your customers.
The final session before the Office Hours FAQ at the end was on Identity Federation in Web and Mobile Apps. Quite the mouthful. Similarly to in the first session with “being a developer is fun, finding bugs isn’t”, a key takeaway from this session is that developers want to develop features and cool things to improve your application, not redesign the wheel over and over by making new ID management systems. Just incase the ease of this ID federation that he was about to show us and the previous statement wasn’t enough, the second key point was to never build your own ID systems or store user credentials. Other people already do that and you can just use those existing systems that already work and (most importantly) are managed and updated by someone else using AWS Amplify - a service with many features for scalable app development but we only covered the authentication aspect today. Amplify allows you to create CloudFormation templates, include libraries which include the user interface for authentication and even allows you to preview what it’s going to look like for your customers. Amplify works with AWS Cognito to provide ID federation and allow customers to sign in via things like Facebook and Google without you having to add more than a few short lines of code to your application, much easier and a hell of a lot quicker than making your own system to identify users and store all these records in a secure way. Once again Lambda functions can be used to provide even further functionality and allow users to sign in from more places.
Well that was a big one! The sessions went so fast it didn’t seem like we’d covered all that much but clearly that impression wasn’t entirely accurate. If only they could have made school seem really quick while we covered a lot and left the days that feel like forever for the things you could happily spend forever learning about and developing your skills in but only have one day for…
Now my blog is officially published and isn’t just a self hosted thing anymore I expect the next post will be about how easy it is to learn web development via trial and error, I’ll see you there,
¡JaBlog!