Chapter 2. Know Your Dependencies

Knowing your dependencies will ensure that you can select and leverage building blocks to build a system that can meet your objectives. Dependencies can vary wildly in SLOs, failure domains, flexibility, maintenance cost, and appropriate use cases. In this chapter, we introduce common considerations for when you’re selecting and using dependencies like management, regionality, SLOs, and trade-offs for compute, networking, storage, and administration.

IaaS, PaaS, SaaS

Infrastructure as a service (IaaS) enables customers to use raw resources like virtual machines and durable block storage. Platform as a service (PaaS) provides additional functionality like automatic management of virtual machine groups. Software as a service (SaaS) offers an API to customers to provide services without requiring the customer to manage infrastructure. Cloud service providers may use different definitions and may not use them consistently, and a given service may not cleanly fall into one of the classes, but we’ll use the preceding definitions in this section to discuss the general principles.

PaaS can save substantial effort solving common problems. For example, virtual machine groups can automatically add servers and remove servers based on resource utilization, preventing you from needing to manually adjust resources as service traffic changes. SaaS goes further and ensures that there is no infrastructure to manage, just an API to use. You don’t need to ...

Get Building Reliable Services on the Cloud now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.