4. CHALLENGE
Need to create constant feedback loop for
designers
Gain up-to-the-minute understanding of
gamer satisfaction to guarantee gamers
are engaged, thus resulting in the most
popular game played in the world
Fortnite | 125+ million players
Let’s start with microservices, and how Amazon.com has experience transforming our organization to use microservices. Moving from monoliths to microservices is an organizational change, not just a development and software change.
Brien Blandford is a Partner Solutions Architect for AWS. His role is to provide our partners with the necessary resources to deliver results to our mutual customers. Brien started with AWS in 2016 with the infrastructure team (yes, he has been in many AWS data centers!) in Seattle, but returned to the New York City region in 2018.
We are going to cover the basics of serverless compute, how it changes your paradigm for software delivery, maintenance, and use
Then we will discuss Data Lakes and the natural affinity for serverless architectures
Let’s start with microservices, and how Amazon.com has experience transforming our organization to use microservices. Moving from monoliths to microservices is an organizational change, not just a development and software change.
This kind of approach is a natural fit for building modern applications, which are serverless microservices, delivered with automated release pipelines. So lets look at what changes need to be made and how AWS has helped many of these customers with those changes
This is just Amazon’s story but hundreds of thousands of customers have embarked on this journey as well
We’ll start by using Amazon as an example of building modern applications.
At Amazon the way we build software is really driven by maximizing innovation. And specifically, the kind of innovation that lets you do lots and lots of experiments. And while that’s always been part of our DNA, back in 2001 our application itself looked a whole lot different. At that time, Amazon had one giant monolith and one giant database. It wasn’t very agile. IF you wanted to add a new product, you had to do that by editing stuff that was designed for our first product – the book store. This wasn’t conducive to innovation at all.
So in 2001 we changed the way we built applications and decomposed to microservices and 2 pizza teams. And yes, the move to microservices was a technical decision but it was also supported by organizational design patterns and a culture that granted teams more ownership over a smaller piece of code - a microservice.
Assuming one provisions for a little more (10%) of peak anticipation
72 possible squares
44 Used
120 possible squares
61 Used
120 possible squares
24 Reserved
30 on demand
So what is serverless?
When we say serverless, we mean it’s the removal of the undifferentiated heavy lifting that is server operations. This is an important distinction for customers because it allows customers to focus on the building of the application rather than the management and scaling of the infrastructure to support the application.
This means not thinking about infrastructure or scaling. It means you only pay for what you value, and it means availability and security are built in.
---
These are the tenets that define serverless as an operational model (unless you know better ones):
No infrastructure to provision or manage (no servers to provision, operate, patch, etc.)
Automatically scales by unit of consumption (scales by unit of work/consumption rather than by server unit)
Pay for value billing model (if you value consistent throughput or execution duration you only pay for that unit rather than by server unit)
Built-in availability and fault tolerance (no need to architect for availability because it is built into the service)
You have heard us talk about shared responsibility in the past. Simply stated, a shared responsibility model implies there are parts of the system that AWS is responsible for and there are parts of the systems that you as a customer must take responsibility for. In many cases we provide tools and there is a rich ecosystem of open source and commercial products that makes it easier for all of you to own your side of the responsibility box.
There is no one hard line on where this line is drawn between the two parts of shared responisbility. One one side of the spectrum you can leverage the power and flexibility of EC2 to run your own database. You can use something like RDS to simplify the management of the database or use RDS Aurora to completely offload the database storage infrastructure to an AWS managed backend. Alternatively you can move to a fully managed database like DynamoDB where you create tables, put data in those tables, and query the data. There is no infrastructure to manage. QoS is part of the the database service with sufficient knobs and dials to give you the right level of control.
The question we keep asking ourselves is: how can we draw this line in a way that allows our customers to innovate on business problems, but makes the underlying infrastructure less visible. Any time you spend coraling infrastructure is undifferentiated heavy lifting. Over the last 12 years as more and more people start in the cloud or move major applications to the cloud, this definition of "undifferentiated havy lifting has evolved"
You have heard us talk about shared responsibility in the past. Simply stated, a shared responsibility model implies there are parts of the system that AWS is responsible for and there are parts of the systems that you as a customer must take responsibility for. In many cases we provide tools and there is a rich ecosystem of open source and commercial products that makes it easier for all of you to own your side of the responsibility box.
There is no one hard line on where this line is drawn between the two parts of shared responsibility. One one side of the spectrum you can leverage the power and flexibility of EC2 to run your own database. You can use something like RDS to simplify the management of the database or use RDS Aurora to completely offload the database storage infrastructure to an AWS managed backend. Alternatively you can move to a fully managed database like DynamoDB where you create tables, put data in those tables, and query the data. There is no infrastructure to manage. QoS is part of the the database service with sufficient knobs and dials to give you the right level of control.
The question we keep asking ourselves is: how can we draw this line in a way that allows our customers to innovate on business problems, but makes the underlying infrastructure less visible. Any time you spend corralling infrastructure is undifferentiated heavy lifting. Over the last 12 years as more and more people start in the cloud or move major applications to the cloud, this definition of "undifferentiated heavy lifting has evolved"
This is essentially a recap of what we discussed earlier with databases. There is a spectrum of shared responsibility you have over your options for compute. With EC2, you can build and run things, but you manage integrations, scaling, security config, provisioning, patching etc. in addition to your code.
Compare that to Lambda, where all you mange is your application code.
So changes to the architectural pattern are really defined by this quote. If you can loosely couple things, and do lots and lots of experienemts, you’re going to be able to learn faster, and produce more innovation.