demand? And as you scale your website, how can
you ensure it remains highly available?
A microservice architecture for the Sock Shop
(Figure 2) achieves scale and resiliency by decou-
pling each subsystem into individual services
packaged in a set of containers distributed across
a cluster of compute instances. Each of the
smaller services performs essential tasks in your
Sock Shop website. For example, your Sock Shop
has a cluster of front-end web servers which
serve up dynamic pages and redirect client
requests to the appropriate back-end services,
such as a microservice for handling logins, cre-
dentials, etc., or a service for handling shopping
carts and ordering. All these can scale to accom-
modate increased demand. Each of these "tiers"
can be "auto-scaled" independently and adapted
to your pre-defined SLAs, meeting the dynamic
demands of the overall system. You can see how
even the simplest website could be decomposed
into tens or hundreds of individual microservices
running in containers. This begs the question,
how do you schedule all these containers and
ensure that the service is resilient.
SPRING 2018 | THE DOPPLER | 61