On 08-May 2019, Amazon Web Services hosted the AWS Summit in London and boy oh boy, it was a massive event! This is my attempt of creating a summary of the talks that I attended (with pictures and links) and my overall thoughts to share with my fellow developers.
The Kick off
The summit started off with the key-note where they shared very impressive numbers of the number of attendees and other key metrics that they were proud of.
The overall day was split in multiple topics as explained on their website — which explained below:
But before going on to the multiple break-out talks about these topics, let’s talk a bit more about the key note. The key note had two great case-studies by Sainsbury and Ministry of Justice. Both case studies shared how they went from a monolithic application running on prem to a more devops based, cloud infrastructure. To know more about them, check out:
- The Sainsbury engineering blog: https://medium.com/sainsburys-engineering
- UK Ministry of Justice Case Study: https://aws.amazon.com/solutions/case-studies/uk-moj/
Given that AWS remains the market leader and top innovator in the space (source: https://www.datamation.com/cloud-computing/cloud-computing-companies.html), they decided to share some of their impressive customer list in UK & Ireland:
Wrapping up the Key Note
Following the case-studies and customer list, AWS touched upon a lot of key services as part of the key note. Let’s see touch on some of them here:
- 150+ services: AWS has an impressive list of services they offer. Here is a slide that aggregates them in different categories.
2. A massive catalogue of databases: Based on your requirements, AWS have multiple databases to choose from — spanning from relational to purpose built and also having services to help migrate to them.
3. Hybrid options: For companies that cannot move completely to the cloud, there were some hybrid options that were shared as well.
I attended a total of 6 sessions (listed below)throughout the day by some great speakers and presenters. I will cover highlights from them in their dedicated sections below.
- Running Containers on AWS
- Building modern APIs with GraphQL
- Modern application architectures
- A few milliseconds in the life of an HTTP request
- Java on AWS
- Serverless functions deep dive
Bonus: I also ended up walking into the hands-on workshop that was being conducted so I will make sure I share those details too.
1. Running Containers on AWS
(Speaker: Massimo Re Ferre)
The main theme was “What are the compute options to run my code?” and this was the setup:
Drilling into it further, this is what it means in the AWS world:
Let’s see the snapshot of all these options:
a. EC2 option
b. EKS option
c. ECS option
d. Serverless option (in practice)
Massimo shared details about ekstender which extends the capabilities of an EKS cluster. Details here: https://github.com/mreferre/ekstender. He also answered an important question in this slide:
2. Building modern APIs with GraphQL
(Speaker: Robert Zhu)
The main focus of this talk was to tackle the modern API design challenges with GraphQL, an open-source API query language. He used a demo to help drive home the point which can be accessed here: https://demo.robzhu.dev/
The first half of the talk was to compare REST and GraphQL while solving the ‘business problem’ of fetch the names of all Star Wars characters that appeared in movies with Luke Skywalker. The underlying API used to get the data was https://swapi.co/
Here is the screenshot of the source for the REST option:
Note that using this approach, the webpage made about 63 HTTP requests and took around 3.5 seconds to complete.
In contrast, here is the screenshot of the source for the GraphQL option:
Note that using this approach, the webpage made about only 1 HTTP requests and took few milliseconds to complete. Clearly, based on this, there seems a good appetite to explore and learn more about GraphQL.
In the second half, he covered more details about GraphQL. Some of the key details are shared below.
Robert shared his thoughts about what GraphQL is not:
An example GraphQL query structure looks like this:
Most importantly, he had a comparison table between REST and GraphQL (which I felt was very helpful):
He also shared how a typical service architecture should look like with GraphQL (along with AuthN and AuthZ):
There are few more links worth exploring for to get a good grip of GraphQL:
a. AWS AppSync: https://aws.amazon.com/appsync/
b. Apollo GraphQL: https://www.apollographql.com/
c. Prisma: https://www.prisma.io/
d. Hasura: https://hasura.io/
3. Modern application architectures
(Speaker: Ian Massingham)
Honest disclaimer — I attended this talk only for the first few minutes and so, have a very short summary of this.
The main focus of this talk was to learn from experiences in building AWS services and working with customers on their cloud-native apps.
Ian started off saying “every company has a legacy app unless it’s a start-up starting with no code-base”. And so, with that as a base assumption, what are the ways companies can transform legacy apps to use the modern application architectures? This picture gave a summary:
Basaed on the appetite (and the capacity), here are the four options explained more:
4. A few milliseconds in the life of an HTTP request
(Speaker: Chanka Perera)
The main focus of this talk was how RyanAir used CloudFront, Lambdas and S3 to make their website hyper-optimised.
Here are the starting points they used to create a serverless services:
Using that, they got the initial end-to-end working prototype working. The underlying request flow was as follows:
However, extending a single page application was becoming more and more difficult for RyanAir. And so, they decided to explore the micro-page concept. In summary, this is what micropage helped them achive:
The underlying request flow on incorporating the micropage concept looks like this:
Next, they wanted to enhance their infrastructure to be able to do canary rollouts. And so, they tweaked the request flow as follows:
Next, they wanted to ensure all the correct response headers were set. And so, request flow was changed to add a serverless function as part of the response object. A sneak-peak of the code for this is as follows:
Finally, in case a user went directly to RyanAir.com, they wanted to redirect the user to the correct landing page and so, the request flow was enhanced as follows:
And so, in summary, RyanAir optimised their platform using CloudFront, Lambdas and S3.
Java on AWS
(Speaker: Lee Packham)
The main focus was for Java developers to learn all about the broad support AWS provides to develop, build, and deploy Java applications and infrastructure on AWS. As an experienced Java developer, this talk was close to my heart.
Here were the four things that were covered:
Let’s start with the overall JVM ecosystem. Here is a high-level diagram with some inline comments which describes it the most:
The next topic was about Amazon Corretto — which is the Amazon’s version of OpenJDK. More details here:
The next topic discussed is a big productive boost offered by AWS. It is an IntelliJ plugin to be able to run, debug, deploy serverless code directly from IntelliJ:
Details about the v2 version of the SDK are here:
And finally, AWS’s cloud development kit (CDK) is in developer preview. The picture explanation of CDK is as follows:
Serverless functions deep dive
(Speaker: Danilo Poccia)
The main focus of the last talk of the day that I attended was a dive deep into AWS Lambda, and learn how to build high-availability serverless applications with complementary services, such as Amazon API Gateway, AWS Step Functions, Amazon Simple Queue Service (Amazon SQS), Amazon Simple Notification Service (Amazon SNS), and AWS CodePipeline.
The talk started with giving a quick refresher of how serverless works i.e.
Next, the anatomy of a lambda function was discussed:
Lambdas are built using layers and so, there was a focus on going into the details of how lambda layers work:
AWS has built SAM i.e. Serverless Application Model which is an open-source framework for building serverless applications. Details can be found here: https://aws.amazon.com/serverless/sam/. An example usage of SAM can be found here:
SAM also has a CLI and using the CLI, users can package and deploy SAM templates. An example of that is here:
And finally, he spoke about the permissions model — for executing as well as function policies.
AWS were also hosting a hands-on workshop to help get people up to speed to use the well-architecture framework that they launched in Nov 2018. Details of the framwork here: https://aws.amazon.com/architecture/well-architected/
The corresponding hands on labs and code to help you learn, measure, and build using architectural best practices are found here: https://github.com/awslabs/aws-well-architected-labs
The 5 pillars of this framework are:
- Cost Optimization
- Operational Excellence
- Performance Efficiency
- Well-Architected Tool
The only prerequisite to do these hands-on lab is to have a AWS account so if you do, definitely recommend giving it a go!
And with that, it’s a wrap! There was plenty of things to learn during the summit and I left the summit with a sense of keenness to try lots of things out. I believe that is the state of mind that you want most of the attendees to feel when they leave the conference. So, well done AWS… mission accomplished!
I am creating this story mainly so that I don’t lose all this content amongst all the other digital noise that surrounds us. My summaries most definitely don’t do justice to all the hard work that all the speakers have put in. They will probably be full of flaws and might be missing key information. And so, it is not a substitute of listening to their YouTube videos / following them on social media / attending their training sessions, etc. Also, the photos that I have shared on here are purely for educational purposes. Please do reach out to the speakers in case you plan to use any of this content. Finally, any views / opinions / thoughts that I have shared solely mine. Hope they are taken with a pinch of salt :)