Highlights from AWS re:Invent 2022 Dr. Werner keynote
Tags: aws, reinvent
Published: 2022-12-26 14:31:52


[re:Invent] (https://reinvent.awsevents.com/), the most exciting AWS event in a year has just ended in this December.

I was very impressed with the keynote speech of Dr. Werner Vogels. Let's summarize it and think about what the software architecture should look like.

## Imagine a world that is ordered, synchronized, one by one

In a synchronized world you have to order one food at a time. when you want to eat a burger and fries, you say "Burger", and you have to wait for the waiter's "OK". You can't order like "Burger and Fries". The cook fries one potato stick at a time for fries.


<figure>
  <img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8k9qdefwryz76n7m05p9.png">
  <figcaption>[AWS re:Invent 2022 - Keynote with Dr. Werner Vogels](https://www.youtube.com/watch?v=RfvL_423a-I)</figcaption>
</figure>

## The world is asynchronous

In a real world, you can order multiple foods at a time like "Burger and Fries". Of course the cook can fry multiple potato sticks at once. The world is also event-driven. In a restaurant, there are many events such as order, food is ready, finish eating, and waiters and cooks act triggered by these events.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2usvwb3i23itlb9bpykg.png)

## Software Architecture

In **synchronous** systems, components are tightly coupled. One component fail leads a fail of overall system. Therefore, it's difficult to add a new component and evolve systems.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t41klkfdqk4nodlbnt2j.png)

On the other hand, **asynchronous** systems make it easy to add new components. Everything is loosely coupled and you cann add a new component without changing other components. This makes it easy for the entire system to evolve.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6ycnx1vkhzv0dpoqvr1h.png)

## How do we build asynchronous systems with AWS?

This ia an example of asynchronous, AWS serverless architecture.　Each component is simple but can look complex when combined. You also need AWS knowledge to take advantage AWS.

<figure>
  <img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3ufx66il53a5yujv2xf2.png">
  <figcaption>[Learn more about Serverlesspresso](https://serverlessland.com/reinvent2021/serverlesspresso)</figcaption>
</figure>

How do we start a serverless architecture? A new service, **[AWS Application Composer (Preview)](https://aws.amazon.com/jp/application-composer/)**, will help with this. By drawing an architecture diagram visually, Application Composer generate infrastructure as code (IaC). The code follows best practices such as S3 Bucket encryption. Code and architecture are synchronized, making them easy to manage and share among members.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ygxfnxhfgg23uy6wsyzr.png)

## Many things to do when you build

When you build on AWS, you have to manage lot more than just building. For example, managing issues, building pipelines, setting up IDE, creating git repository etc. [Amazon CodeCatalyst (Preview)](https://aws.amazon.com/codecatalyst/) launch new project and sample codes, CI/CD pipeline, issue management tool, member management tool, etc. You can manage all of these things from CodeCatalyst console.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/094sv852mq6lkmfn42do.png)



## The power of composing

In UNIX, pipes(|) make it easy to compose small components with a standard interface and format. you can build bigger application with composing many small components.

- example of pipes

```sh
cat access.log | grep "/gateway/allapi" | grep "\" 500" | rev | cut -d " " -f4 | rev | sort | uniq
```

Can we do this with AWS Services? Yes, we can do this with [Amazon EventBridge Pipes](https://aws.amazon.com/eventbridge/pipes/). It makes it easy to build event-driven applications. Before this service was available, you need to integrate code to connect AWS services. Now you can connect services without integration code.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6eirrj4fe5t3vh224n4r.png)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qbhh9kt8j9a9z7co7yi9.png)

## Listen, learn, improve

AWS always develops services based on customer feedback. Some customers would like to do Map Reduce with Step Functions, not Kafka and EMR. AWS built [AWS Step Functions Distributed Map](https://aws.amazon.com/jp/blogs/aws/step-functions-distributed-map-a-serverless-solution-for-large-scale-parallel-data-processing/) This allow you to process very large amount of data and support a maximum concurrency of up to 10,000 executions in parallel.

<figure>
  <img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i9d9vanakczghxqc5pg6.png">
  <figcaption>[AWS re:Invent 2022 - Keynote with Dr. Werner Vogels](https://www.youtube.com/watch?v=RfvL_423a-I)</figcaption>
</figure>

## Simulate everything

Simulations makes the impossible possible in a digital system. you can experiment safely and at low cost because simulations don't impact the real world. [AWS SimSpace Weaver](https://aws.amazon.com/simspaceweaver/) were announced in Keynote with Adam Selipsky. It make you easy to simulate spaces without managing infrastructure. Using simulation improve your system.

The world is asynchronous. The world and the universe are fragile and fault-tolerant, resilient, robust. We can learn a lot from the real world and apply the principles of nature to the system.

## Summary

- The world is asynchronous and the system should be asynchronous too
- New services are announced
  - AWS Application Composer
  - Amazon CodeCatalyst
  - Amazon EventBridge Pipes
  - AWS Step Functions Distributed Map

When we build on AWS especially when using serverless services, we need to prepare a lot and there is a learning curve. Many new services will reduce our management and learning cost.