The Doppler Quarterly Spring 2018 | Page 63

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