tandards bodies start to appear and attempt to help to create "interoperable" APIs. As APIs have evolved, new techniques have appeared to help in this regard, from "versioned" APIs, to introspec- tion where a developer can rely on a single API to read the definition of an exposed API, and to interfaces that expect change and are ready to adjust accordingly within reason. 17.9 FROM THE BIRTH OF THE "CLOUD" TO CONTAINERS AND MICROSERVICES Between the invention of the World Wide Web in 1991 and the introduction of the commercial browser in 1995, the need for third parties to "host" a customer website (instead of doing it on a server on premise) emerged. Soon many bulletin board services emerged and the Internet service providers started adding "web hosting" as an option where they would run the customer's website in the service provider's facilities. In 1998, USinternetworking (USi) became the first application service provider (ASP) by offer- ing to help set up an enterprise application (Customer relationship management [CRM], Enterprise resource planning [ERP]) hosted in its facility with connectivity to it provided over the Internet (or a private connection.) USi also started to offer service level agreements (SLAs) for availability, security, and process guarantees. These SLAs helped enterprises get over the fear of moving their services offsite. Over time, the ASPs realized that they were holding on to underutilized comput- ing assets, which could be shared between multiple tenants. This became a reality with VMware's server virtualization technology. Salesforce.com took the idea of ASPs one step further and created a fully managed CRM offering that ran solely as a multitenant website. This is recognized as the first true SaaS offering and essentially the first modern "Cloud" service. The idea of Cloud really took off when Amazon started offering web services (AWS) by expos- ing APIs. In 2006, after a few years of only exposing Amazon.com data, AWS added additional services. When AWS exposed the S3 interface fo