- Matchmaking between a Cloud application and a ranking of platforms to best fit its needs.
- Management of applications deployed in several PaaS providers, as well as independent SLA interaction.
- Monitoring of applications deployed on multiple platforms, using universal metrics.
- Migration of an already-deployed application from a PaaS offering to a competing one.
The matchmaking component allows searching among the existing PaaS offerings for those that best match the developer’s needs. To succeed in this, the matchmaking algorithm heavily capitalizes on the Semantic layer and, especially, on the PaaS and Application models while it distinguishes the user’s needs into application requirements and user preferences. The degree of relation is computed based on the similarity of the semantic descriptions between PaaS offerings and an application profile taking also into account the target user’s preferences. In addition, the matchmaking algorithm is designed to resolve the semantic conflicts between diverse PaaS offerings and to allow matching of concepts between different PaaS providers that may use different naming or even different measurement units. The outcome of the matchmaking algorithm is a list of PaaS offerings that satisfy users’ needs, ranked according to the number of satisfied user preferences.
The management component supports the efficient deployment and governance of applications on a specific PaaS offering chosen by the application developer. The module performs an analysis of the application’s requirements to build a specific application deployment descriptor. This descriptor is created according to the format defined by the PaaS offering that the user has selected. It then checks if a valid SLA contract has been previously agreed between the specific PaaS offering and the application, finally initiating the deployment process using the Cloud4SOA standard API exposed by every Cloud4SOA PaaS platform adapter. Moreover, this component provides a functionality to manage the life-cycle of the application by delegating its lower level functionality to the Governance Layer.
In a multi-Cloud scenario, it is important to continually monitor business-critical applications hosted on a variety of Cloud providers to ensure that their performance consistently meets expectations and that Cloud resources are being effectively used. Cloud providers typically present very diverse architectures providing dissimilar resource-level metrics used to provide fine grain Quality of Service (QoS) guarantees. As a consequence, Cloud users are not able to compare offerings they are adopting. In order to consider the heterogeneity of different Cloud architectures, Cloud4SOA provides a PaaS monitoring functionality based on unified platform-independent metrics, such as latency and application status, to allow application developers to proactively monitor the health and performance of business-critical applications hosted on multiple Clouds environments.
Moving an application between PaaS offerings is a difficult operation, where several issues could arise related to the different modelling and notation of the same features across different providers. The Cloud4SOA framework aims to support a seamless migration to tackle semantic interoperability conflicts. Moving an application between PaaS offerings consists of two main steps: i) moving the application data and ii) moving the application itself. During the first step, all the application data is retrieved from the PaaS offering where the app is running and moved to the new PaaS offering; in order to avoid dirty or inconsistent states, the application is stopped before starting to move the data. After the data structures have been created and initialized, the application code is deployed on the new PaaS provider.