• No results found

Horizontal integration Platform

3.1 High-level Ideas

3.1.1 Horizontal integration Platform

Delivering modern applications is extremely complex and requires the integration of many di↵erent components. System engineers strive to achieve this extremely complex task through

a combination of manual ad-hoc techniques, automation tools and mostly proprietary mid- dleware solutions. Most of these tools, techniques and software achieve vertical integration (across the same or similar type of component) leaving the deployment teams to figure out how to achieve horizontal integration. This gap is often the source of most fault-lines and missed opportunities. It is all the more pressing to address the issues of horizontal integra- tion now, given that SDI enables new infrastructure usage capabilities and next generation applications need to leverage these capabilities to enable new use cases. The benefits of a horizontal integration platform, providing the proper abstractions through a well designed and well implemented API set is indisputable. In AppFabric, we strive to provide such a platform for application delivery. To give a flavor of what horizontal integration AppFabric is trying to achieve, consider the following(refer to Fig. 3.1):

ISP/NSP CSP Network Enterprise Network AppFabric ADN Common Network Transport Abstraction Cloud

Datacenter Micro-Datacenter Network POP Datacenter Private AppFabric ADN Common Resource Pool Abstraction

Storage Servers Application Servers Message-level Middleboxes Packet-level Middleboxes

AppFabric ADN Common Device/Service Abstraction AppFabric Common Application Deployment and Delivery Abstraction Internet-of-

Things

Cyber-Physical

Systems Mobile Apps

Online Games/ Virtual Worlds

Network Infrastructure and Services Layer

Multi-Datacenter Compute and Storage Infrastructure Layer Multi-Device and Service Types

Diversified Application Use-cases

Figure 3.1: Schematic Representation of an Application Delivery Network (ADN)

• Integration of network and compute infrastructures: Application delivery de- pends on the capabilities of both the compute (including storage) as well as the network

infrastructures. However, traditionally these two infrastructure components have been largely kept separate. Current networks, even within the administration of the same Application Service Provider (ASP), for example in enterprise datacenters, are seldom application aware. Applications are sometimes designed to be network aware. For ex- ample most media transmission applications dynamically adapt to changing network conditions by using di↵erent media encoding techniques. However, this seems to be a reversal of roles from an architectural standpoint. Contrary to the original design goal, in this case the compute layer seems to be providing a service to the network layer to cope with its problems of failure or congestion by degrading itself. Such issues of tus- sle between the network and compute layers have existed since the very beginning and there have been many e↵orts to address them as well. In-fact network QoS has been the one of the most prolific areas of research in Computer Science in the past two decades [29], resulting in almost no real-world deployments. We think that the problem is that although we know the techniques of creating a di↵erentiated network infrastructure for di↵erent types of applications, we do not have a good interface through which the application can explicitly (and dynamically) specify its requirements to the network; allowing the network to enable the required service for the application. SDI stands to change this situation. SDI virtualizes both compute and network resources alike and provides access to each of these di↵erent resource types through a service interface. AppFabric is designed to be the horizontal integration platform that sits on top of the SDI layer and translates the applications requirements (both in terms of compute and the network) to the capabilities o↵ered by the SDI components.

• Integration of di↵erent device types: One of the problems with current appli- cation delivery environments is device sprawl enterprise datacenters house a variety of di↵erent types of devices including application servers, storage appliances, network equipment, and packet-level and message level middleboxes; each of them coming from many di↵erent vendors, providing di↵erent functionalities, having di↵erent deployment requirements and each having separate management and control interfaces. AppFabric provides a common data, management and control framework for all these di↵erent types of devices. Each of these di↵erent types of devices can connect to each other over a common AppFabric data plane, and can be monitored, managed and controlled through a common AppFabric control/management plane interface. Thus, AppFabric provides a horizontal integration platform across many di↵erent device types similar

to the way SDN seeks to provide horizontal integration across di↵erent switching-layer devices from many di↵erent vendors.

• Integration of di↵erent transport mechanisms: : In AppFabric, application and network services do not need to worry about how they communicate with each other. The platform intelligently deploys the services and provides a common interface for them to communicate with each other. Underneath this common interface, the plat- form will choose from di↵erent transport mechanisms including network sockets, inter- process communication (IPC), inter-thread communication and IP packet forwarding to provide the most efficient way to enable the communication.

• Integration of multiple resource providers: AppFabric also provides horizontal integration across multiple resource providers, providing di↵erent types of resources and implementing di↵erent SDI management stacks (e.g. OpenStack, CloudSack, Open- DayLight, etc.). Thus, application deployments over AppFabric can span across mul- tiple Cloud Service Providers (CSPs) and Network Service Providers (NSPs), thus providing the perfect platform to deploy massively distributed application use cases.

Thus, one of the primary architectural goal of AppFabric is to cut across the di↵erent vertical components that make the current application delivery process extremely complex, fragile and unwieldy and simplify it as much as possible.