Analysis and incorporation of third party offerings
We are currently going through one of the biggest movements ever seen in IT, the movement to the cloud. There are many SaaS companies existing already and many more to see the light of day in the near future. Each of them is offering one or more cloud services. There are many thousands of public API’s and the count keeps on rising. In order to harness all that power, the incorporation of these services needs to be facilitated so that the main focus can go to the core task of migrating the application to the cloud or modernizing the application for it. Still, the integration of these external or 3rd party services is a major challenge.
One of the objectives of WP7 inside the ARTIST project is to exploit the current advances in Cloud and Platform offerings which can ease the migration/modernization process (the overall ARTIST methodology). In a previous deliverable (D7.2), the major cloud providers, both on an infrastructure and on a platform level, have been analysed. The main intention here is to analyse service providers, both the major cloud providers as well as 3rd party service providers, in terms of their offered services.
The document firstly describes the concept of a Cloud Compliant Application. Here the different characteristics of cloud applications are addressed from a formal definition perspective. Then, in the main part, a wide range of cloud services that could possibly be integrated into the applications to be migrate and/or modernize within the ARTIST project will be analysed. This discussion is done from a use-case perspective. The services described are:
- Identity/Multi-tenancy: services allowing managing the users of the application the application and services supporting creating multi-tenant applications.
- Security: services allowing to externalize user authentication/authorization on the application.
- Monitoring/Logging: services allowing managing of complexity by accurately monitoring and logging application activity.
- Metering/Billing: services allowing to meter the resource usage of particular users in order to allow billing them correctly.
- Caching: services supporting the usage of cache inside the application to build highly scalable applications.
- Messaging (Queuing): services supporting efficient messaging between decoupled components of the application in order to facilitate scalability.
Finally, a number of tools that allow to integrate different cloud offerings into an existing application are also discussed. A number of cloud abstraction libraries are presented offering a higher level of abstraction over few currently available services offered by the major cloud providers. Next, the concept of iPaaS is presented as a mechanism to easily integrate services both on premise as in the cloud.