• 10 hours
  • Medium

Free online content available in this course.

course.header.alt.is_video

course.header.alt.is_certifying

Got it!

Last updated on 7/5/24

Discover the History of AWS

In this first chapter, we’re going to take a look at the history of AWS. Let’s take a trip back in time to see how Amazon’s organization has changed over the years since its inception.

Back to the Days of the Monolith

Amazon was created in 1994, and until 2001, its IT services were one huge monolith. They were designed as one module, containing all the different features necessary for Amazon’s online sales activity at the time.

As the company grew, its monolithic structure started to slow it down, inhibiting its ability to innovate continually. It needed to provide more flexibility for its IT teams while still meeting business demands, which meant that it needed to develop an alternative to its monolithic architecture.

Discover the Microservices Approach

The basic idea was to break Amazon’s monolithic sales website down into dozens of mini-applications, such as:

  • Delivery

  • Order management

  • Billing

  • Search

  • Product display

This is known as service-oriented architecture.

Even today, each of the different parts you can see on Amazon’s online sales website is a microservice. Here are a few examples:

  • The “Order” button

  • Product images

  • Product descriptions

  • Comments

Service-oriented approach
Service-oriented approach 

However, to implement this ever-expanding spectrum of microservices, the organization of Amazon’s teams needed an overhaul.

Micro-teams: Redesigning the Organizational Structure

In the 2000s, how Amazon’s teams were organized wasn’t suitable for a company running hundreds of applications and needed to be changed to ensure more seamless communication.

This is where the concept of the product team came from. Previously, Amazon organized their teams in a fairly standard way:

  • Specialized teams

  • Developers

  • Testers

  • Support 

However, they implemented a product approach in the new structure, which involved different members of each of these teams working together. 

Product teams take a horizontal approach to projects:

Example of product teams
Example of product teams 

Each team is composed of a small number of people—Amazon refers to this as a two-pizza team, i.e., a team that can be fed with two pizzas (two large pizzas, of course!).

Two-pizza team
Two-pizza team 

Small, multidisciplinary teams considerably reduce the time between identifying a need and its subsequent production launch, known as the time to market. Communication also becomes easier.

In this type of organization, teams act as service providers for other teams, from website development, to management of the infrastructure used by developers, and everything else.

The Metamorphosis to Amazon Web Services

Little by little, the idea of selling their internal infrastructure concept as a service for public use emerged. In 2006, this became a reality with the launch of the first version of Amazon Web Services (also known as AWS), providing basic services such as:

  • Unlimited on-demand storage with Amazon S3 (Simple Storage Service).

  • Message queues with Amazon SQS (Simple Queue Service).

  • On-demand computing capacity with Amazon EC2 (Elastic Compute Cloud).

Since its inception, AWS has constantly been improving these services and launching new ones. The most notable are:

  • On-demand databases with Amazon RDS (Relational Database Service).

  • Virtual network with Amazon VPC (Virtual Private Cloud).

  • Load balancing with Amazon ELB (Elastic Load Balancer), Amazon ALB (Application Load Balancer), and Amazon NLB (Network Load Balancer).

  • Infrastructure monitoring with CloudWatch.

  • Management of access to infrastructure and services with Amazon IAM (Identity and Access Management).

Discover the AWS Services, Inspired by Amazon’s Internal Organization

As you gain more experience with AWS, you’ll see that the components are often significantly different from each other. This is normal—as you’ve just seen, Amazon’s teams work in small groups, and each group makes different choices.

Therefore, each component at AWS is fully autonomous, and is managed by its own specific team with its own roadmap and objectives. These components act as “services” that other AWS components or the public can use.

Does that mean the services don’t work together at all?

Thankfully, no! Almost all AWS services can be connected, as they all use what’s known as an application programming interface, or API for short. Each service provides features other services can use to communicate with it. So when a team wants to use the features of a different service, all they have to do is read the related API documentation and make API calls to the other service.

Configure AWS Services: The Possibilities Are Endless (Well, Almost!)

There are now so many AWS services available that you can create your own custom infrastructure, choosing the different components you need. By design, all AWS services can be managed via APIs, and this means you can use a powerful tool: programming

You can use your programming superpowers to manage your different services completely automatically. You’ll see how to do this in the next chapter, and learn about the other benefits your programming skills can bring to your infrastructure.

Let’s Recap!

  • Flexibility is the name of the game for quicker and more efficient teams, using methodology such as microservices, “two-pizza teams,” and on-demand infrastructure. 

  • Amazon Web Services are sometimes very different from each other, as each team is independent. 

  • The different services communicate using APIs.

  • You can use Amazon Web Services’ APIs to automate your infrastructure.

Now that you know a bit more about the Amazon Web Services concept and how its architecture works, let’s go to the next chapter for a closer look at APIs and the benefits of this type of automation.

Example of certificate of achievement
Example of certificate of achievement