Monday, January 21, 2008

Infrastructure services -- for developers, not users

We have discussed many Internet services intended for applications like editing documents or developing simple applications like blogs or online databases. These are generally intended for users -- people who use the Internet in their work or play, not professional developers.

We can contrast these user services with infrastructure services, which are intended for professional developers building user services or custom applications. Amazon has been a leader in this field. They learned to operate vast, efficient, reliable server "farms" in support of their shopping site, and decided to allow others to use the same infrastructure. Amazon Web services include virtual servers, storage space for large amounts of data, and storage and retrieval of data from flat files.

3Tera's Applogic offers a graphical user interface for designing a virtual server farm and deploying applications. In this example, the drag and drop interface was used to create a site with four firewalls (gray), a load balancer (yellow), two Web servers (blue), a MySQL server (red) and servers storing configuration files and logs (orange).

Each of these is an independent virtual server running Linux. Developers can configure these machines and load software on them as if they were in sitting on their desks. They create "dashboards" to monitor them, and can increase or decrease capacity in seconds. (Check out this Applogic video demonstration).

These services allow one to develop applications without hardware or datacenter cost. They bill for resources used -- CPU time, storage, bandwidth. That means there is essentially no cost while an application is being developed and debugged since there is no traffic. When the application goes live, the capacity, and hence cost, grow and shrink dynamically depending upon utilization.

Storage and computation are not the only infrastructure services. For example, Amazon offers a service for handling monetary payments from computers or users to other computers or users and offers telephony services. For example, a developer can give the user the ability to initiate a call between their telephone and a company. Lypp servers establish the call, interface with the switched telephone network, and bill for minutes used. Again, there is no traffic, so no cost, until the application is put in use.

Infrastructure services are the latest step in server evolution. Would infrastructure services appeal more to large or to small and medium sized organizations? Why? We offer courses today on programming for vendor-specific platforms like ASP.NET. Will we one day offer a course in programming for Amazon Web Services? Would you like to take such a course?