The defining, programmatic attributes of Web 2.0 are interactivity and collaboration. The former is enabled by AJAX, the latter by the ubiquitous nature of HTTP and the emergence of RESTful APIs. Like Web 2.0, Infrastructure 2.0 is about collaboration and interactivity, both enabled via the existence of APIs -- often referred to in the infrastructure realm as a management or control plane.
These APIs are standards-based, primarily SOAP but a few emerging as RESTful as well, and provide the means by which infrastructure components like load balancers and switches can be controlled dynamically. These very granular APIs allow external entities, like a cloud or virtualization management framework, to configure, manage, and monitor infrastructure components. These APIs further provide the means by which the components can be integrated into the automation and orchestration frameworks necessary to enable auto-scaling capabilities.
These APIs might be used to add or remove application instances to a load balancer in a dynamic environment in order to automate scalability of the application. APIs further enable the ability for external systems to retrieve statistics and data regarding the capacity and usage of supported applications to enable better decisions regarding delivery and scalability in the environment.
These are not plug-n-play APIs nor are they service-oriented in the SOA sense of the term. In other words, they are more akin to SOAP wrappers around a complex and granular SDK than they are the business -- or task-related functions generally associated with a robust service-oriented architecture. It may take many API calls to perform a single task because of both the nature of network components and the way in which those components have exposed their control planes.
For example, Virtual Local Area Networks (VLAN) are commonly used to isolate and segment customer traffic within an off-premise cloud computing environment. To create a VLAN on a network device takes several steps:
- The VLAN must be created
- Any required routing must be configured
- Ports must be associated with the VLAN
Most network components require multiple configuration "steps" to complete a single task and these steps must be mirrored when automated through their respective APIs. Cloud management frameworks today, the ones which developers may interact when deploying an application in an off-premise cloud, are highly abstracted already. All the steps necessary to perform a specific task such as "create a new VLAN" are encapsulated in a single, cloud management framework API call.
Consider as an example Amazon's Elastic Load Balancing (ELB) and GoGrid's load balancing services. Both enable customer control of the underlying load balancing infrastructure through abstracted and simplified cloud framework APIs, making integration for the customer much more lightweight than the actual integration occurring under the cover of the cloud. The integration hidden from the customer is much more complex, taking advantage of the verbose APIs offered by load balancing solutions today.
It is this latter integration -- the more difficult of the two -- that becomes the responsibility of the organization when an on-premise cloud computing initiative begins and it is this integration that will require the expertise of developers well-versed in integration and standards-based APIs as well as core networking concepts.
This new role -- infrastructure developer -- is going to require skills with which most developers are likely (unhappily) familiar: integration. It will also require skills with which most developers are likely unfamiliar: infrastructure APIs and behavior.
This will require developers to become familiar with the integration capabilities, i.e. the APIs, offered by network and application delivery network solutions as part of the acquisition process. Infrastructure architects will need to understand the impact on the automation architecture of introducing new solutions and become an integral part of the decision making process for such solutions. Infrastructure architects and developers will need to expand their knowledge base of networking beyond IP and HTTP and become more familiar with some of the key networking concepts related to on-demand architectures to integrate relevant components into an enterprise automation framework.
It is through an enterprise automation framework that agility will be achieved and efficiencies gained from emerging technology such as cloud computing and virtualization. The infrastructure developer/architect will be a key player in the successful implementation and deployment of such frameworks. The role of the developer in the "new network" is key to its implementation and provides a green field of development opportunities for those brave enough to explore the complex, new realm of infrastructure integration.