📜 ⬆️ ⬇️

How we integrated Backup-as-a-Service with Parallels Automation using the APS 2.0 standard

On Habré, they have already written a lot about the development and business models for SaaS. For example, here in this article the question of selling the service through partners is raised. If the "piece goods" and the service is quite expensive, then the partner can still register customers and configure the service manually. But it is obvious that this approach does not work for mass services. And then it becomes necessary to integrate SaaS with the OSS / BSS platform of the cloud provider to automate the process of providing the service, billing, etc.



In this article, I will talk about what is required for integration with OSS / BSS platforms, and how we integrated our Backup-as-a-Service with the Parallels Automation platform using the open standard APS 2.0. In general, these tips will be useful to the developer of any cloud service, if you have plans to sell it not only from your site, but also allow any service provider to do it.

Who is who?


I’ll start by describing what our Backup-as-a-Service is, the Parallels Automation platform and the Application Packaging Standard (APS).
')
Backup-as-a-Service - about BaaS already written on Habré earlier . In short, this is one of the types of SaaS-service. Both cloud and backup are combined in it: all data is copied over the Network and stored in the data center of the provider, and the client’s client software has a backup program. This allows you to transfer to the side of the service provider the entire infrastructure part from storage systems to system software (the need for which disappears) and all its maintenance.

Application Packaging Standard is an open technology standard developed by Parallels in 2007. Allows independent developers (ISV) to sell their cloud applications through any service provider, and service providers themselves to quickly deploy and launch new cloud services. Now in the world there are already more than 500 applications in the APS standard.

APS 2 is a new version of the standard released in 2013. Compared to the previous one, it has greater flexibility, performance, and also a service bus, which allows different services to interact with each other (mutual integration for data exchange and the possibility of simultaneous use). It can be both new and long-existing cloud applications. And service consumers can add them to their corporate subscription, manage all their subscriptions from a single control panel and get a single authentication to access all their services.

Parallels Automation - OSS / BSS platform, which is installed at a service provider or a telecommunications company and allows them to launch and sell any cloud services packaged in APS, and conduct all necessary operations on them - from service provisioning to billing, integration into a single account customer and resale functions.

At the same time, cloud services can be of any type - SaaS, IaaS, and others: within the framework of the Parallels Automation ecosystem, the “plug-socket” principle works as perfectly as possible (connecting a packaged service can be done in just a few minutes). So if a developer wants to sell his service in the Parallels network of partners (and this is more than 9 thousand of his possible sellers), then he comes to the logical option - integration via APS.

Just for example, the top 10 best-selling cloud applications through Parallels Automation: Microsoft Office 365 (currently more than 800 thousand subscriptions are sold this way), Microsoft Hosted Exchange (more than 700 thousand subscriptions), Open-Xchange, SpamExperts Integration, Hostopia, Mail2World, Microsoft Lync 2010, MozyPro, IDSync, BackupAgent (as you can see, BaaS is in the top ten).

Subscription to the service through the cloud provider platform


Consider briefly the main scenarios of how the client receives the service, and understand where we need integration between the platform and the service.

The following is true for most SaaS services and cloud platforms.

Main steps:
image
  1. The first step is to set up a plan for selling the service to a cloud provider:
    1. To begin with, a set of resources is created that can be sold.
      In our case, this may be, for example, the amount of disk space available for storing backup copies or the number of protected virtual machines.
    2. Then these resources are grouped into a plan , in which the provider adjusts the limits for resources, prices, payment types and methods, and much more.
    3. After that, the finished plan is published in the online store and becomes available to customers.

    Obviously, the plan may include several services. And their value (in the literal, monetary sense) increases significantly if the services are integrated with each other.

    For example, E-mail hosting + Anti-spam + Antivirus + Archiving is a very popular package of services, and it can be sold much more expensive than just E-mail hosting.

    Setup is done from the admin panel .

    Setting up the resources included in the plan:

    Setting up the resources included in the plan

    Setting the period and price for a subscription:

    image

  2. The second step is ordering the service by the client .
    After the plan appears in the online store , the customer can:
    1. Select the desired services, advanced options.
    2. Register and place an order
    3. Pay it

    Shop online:

    Shop online

    User registration and order placement:



  3. Step three - providing service to the client .
    After the client has placed and paid for the order, the system:
    1. Creates a subscription for it
    2. Sets up a service for him
    3. Gives the client access to this service from the client panel

  4. Step four - managing the service by the client:
    After providing the service, the client gets access to the client panel, from where he can manage this service. For example, set up backups for your virtual machines.

    Client panel. List of users allowed to use the service


    User panel. List of protected machines

    User panel. List of protected machines

    When you click on the “Manage Backups” button in the user panel, it is redirected to the BaaS panel.

    BaaS panel

  5. Step five, subscription renewal:
    The client is billed periodically and withdraws money for renewing a subscription. There may also be a fee for the resources used, if the client pays upon the consumption of resources (by pay-as-you-go).
  6. Step six, final - service removal:
    In case the client cancels the subscription, i.e. refuses the service, the system first denies access to the service, and then, after a specified time, deletes the client data.


Integration of SaaS-service with OSS / BSS platform


So, we looked at the subscription life cycle: from creation to deletion. Now let's see what part of the tasks the platform assumes and what changes need to be made when connecting a new service.

  1. For a new service, you need to define a set of resources available for sale. The platform sets up and publishes the plan.
  2. Ordering the service by the client and payment usually lies entirely on the platform.
  3. It is necessary to automate the provision and initial configuration of the service.
    In our case, for this you need to implement calls to the API methods for:
    • Creating an organization on the BaaS side
    • Setting limits for the organization

  4. It is necessary to give the client the opportunity to independently manage the service.
    There are 3 main options for the integration of web interfaces for the client panel :
    • You can embed the interface of your service in the client panel of the provider.
      From my point of view, this is the most preferable option, since it is more convenient for the user to manage all services from one panel.
    • You can redirect the client from the client panel to a separate service panel. In this case, it is recommended to implement single sign-on technology, so that the client does not have to memorize, store and once again enter a bunch of different logins and passwords.
    • The third option is a combination of the first two. When the most frequently used scripts are available from the client panel, and the client is redirected to the service panel to perform the remaining tasks.

    For our service, we went the third way.
  5. The service extension usually lies on the platform side, but if the client pays for the resources used, then it is necessary to collect statistics on their use.
    In our case, we periodically call the API method to collect information on resources.
  6. It is necessary to automate the suspension, removal of the service.
    In our case, this is a call to the API methods for:
    • Activation / deactivation of the organization
    • Deletion of the organization


As we can see, for a simple version of connecting a new service to the platform, not so many changes are required. Of course, there are also complex options, especially in the case when several services interact with each other.

The above is typical for any platform that supports the provision and sale of cloud services (as you know, in the world, many telecoms and providers may have OSS / BSS platforms from different vendors, or even self-written ones). But we need integration with Parallels Automation: a number of our partners use it, in addition, it already stands in half of the largest European telecoms. And for this we need to create an APS package for our service.

Writing an APS package for Backup-as-a-Service


To start developing an APS package, you need:

We developed in eclipse, as there is a special APS ECLIPSE IDE plugin for it.

Eclipse with the APS plug-in installed.

Eclipse with the APS plug-in installed.

After setting up eclipse, you can create a new APS project.
Consider the structure of the APS package. The finished package is a .zip archive, which contains:


So we:


Tip: For developers who will write their APS package, I would recommend contacting the APS team at the stage when the resource model is described, mock-ups are ready and prior to the development to get feedback. My practice shows that it can save a lot of time.

I did not give here the pieces of code from our package. Article and so it turned out great. Anyone who wants to look at the finished APS package can download examples from the site .

A few weeks later the package was ready, and we gave it up for certification.

APS Certification


Tip: We recommend that after creating the package pass its certification. This procedure will identify and eliminate errors in the package.

During the certification process, the APS team on the part of Parallels helps to ensure that the application works correctly and to ensure that it will work on the platform as a whole or with a specific partner. If necessary, recommendations are made. Certification is completely free.

Certification process:
  1. Before you give the package for certification, you must make sure that it meets the specifications and requirements .
  2. After that, you need to upload the package to the APS development portal to automatically test the package. After that, the system automatically creates a ticket through which the developers of both sides communicate.
  3. In case of successful passing of tests, you need to request a manual check. According to the results of the verification, the APS team will send recommendations for improving the package. This process of certification, in fact, ends.
  4. After the package has been successfully certified, it is published in the APS catalog .

Certification of our package took only a few days, and on average it takes from 3 days to 2 weeks, depending on what needs to be adjusted in the package.

Results


After certification of the package, we gave it to the first partner using Parallels Automation. It took less than an hour to connect the BaaS service, set up a plan and create the first test subscription. Now our APS package is being actively tested by providers around the world.

Any other XaaS service, whether SaaS, PaaS or IaaS, can also be easily integrated into Parallels Automation using the APS 2 standard, which will allow you to sell it through hundreds of providers around the world, including Russia, and integrate with other applications. And this is not only a good sales channel, but also an extra penny if your application is sold in a package with someone else.

Source: https://habr.com/ru/post/231131/


All Articles