6.2 Motivation to Come Up with Cloud Compatibility Measure
6.3 Definition of ‘Cloud Compatibility’
6.4 SaaS (Solutions) Maturity Model
6.5 SaaS Maturity Continuum Scale
6.6 Cloud Compatibility Measure
6.6.1 Procedure to Set Up the ‘Cloud Compatibility Measuring Scale’
6.6.2 Ideal Values for Characteristics
6.6.3 Case Study – Measures for Two Products of Similar Functionalities
6.7 Combined Discussion about All the Three ‘Cloud Compatibility Measures’
For architecting a software solution, we need a lot of solution building blocks (SBBs) that make up the solution. Each of the SBBs may be mapped onto one or many software products. Chapter 18 in Ref. [21] indicates how to architect solutions using off-the-shelf components or software products. For cloud Software as a Service (SaaS) solutions, it is preferred that each of this software products also be a cloud compatible SaaS product. (This chapter gives the answer to the question ‘Why is it preferred?’.)
Expected ideal characteristics of a SaaS software – be it a product or solution – is discussed in detail in Chapter 5. In reality, many of the software products do not meet this long list of ideally expected characteristics of SaaS.
This chapter proposes and discusses an empirical method to measure how much of these characteristics are met by any given product. Such a measure is here referred to as cloud compatibility measure.
This measure is a kind of yardstick that is used to measure against and compare products to know how much they are cloud compatible.
Such a comparison will help in selecting better suitable products to meet SBBs for building cloud SaaS software solution. While other factors such as functionalities or performance, etc., being equal in meeting the requirements, the one having better cloud compatible index will be selected.
In addition, this book discusses that SaaS solutions are possible with three kinds of cloud compatible indexed products: (qualitatively speaking) (1) fully cloud compatible (100%) products, (2) fully non-compatible (0%) products and (3) semi-cloud compatible (anywhere in between 0 and 100%) products.
Making a software product fully cloud compatible requires re-architecting and building it ground up[23] as discussed in Chapter 9. Such an effort is huge and justifying with a business case or providing a convincing ROI may even elude. Therefore, the market will continue to have semi- or non-cloud compatible products that architects have; no other choice but, to use them to build cloud SaaS solutions.
Also business requirements or business models may dictate whether it is essential to go for absolutely cloud compatible SBBs to build cloud SaaS solution. The use case given in Chapter 7 demands low-cost solution (security is not a major issue), and hence there is no need to use (may be costly) SBBs that are perfectly cloud compatible to build a cloud SaaS solution.
Hence, architects may have to use less (or non-) cloud compatible SaaS products as SBBs to build cloud SaaS solutions.
Thus, there exists a necessity to have techniques to architect solutions with products having any degree of cloud compatibility; that has resulted in such techniques described in this book – Chapters 7 and 8. This chapter provides a preliminary step for those techniques: measuring ‘cloud compatibility’.
By following techniques described in this chapter, if product vendors also mark on their product brochure as to what extent their products are cloud compatible, that information will reduce a lot of effort for solution architects.
Just like specifying ‘minimum hardware required’ or suitable ‘operating system’ on the pack of software products, vendors can specify ‘cloud compatibility index’ also.
Cloud compatibility measure as applied to any existing products has other uses such as to improve them to make them absolutely cloud compatible, if that is an objective.
While that gives enough motivation to come up with a common yardstick for cloud compatibility measure, let us see how a scale can be set up as well as how the scale can be used.
How to define ‘cloud compatibility’? A software is said to have complete cloud compatibility if it has all the necessary characteristics (mentioned in Chapter 5) to the desired level. If it does not have even a single characteristic, then it is said to have absolutely no cloud compatibility. This is more of operational explanation rather than a theoretical definition.
Cloud compatibility is referred with respect to its ability to satisfy all characteristics necessary to become very efficient cloud SaaS software.
Literature Refs. [5, 24, 37] cloud compatibility in various different ways – one of them[24] is whether a cloud SaaS software service is compatible to in-house software. We do not enter into any such meanings.
There were similar thinking to measure cloud compatibility, and a need was felt by many in the past; here, we will review one prominent and the most comprehensively discussed in literature[5] before embarking into the main idea of cloud compatibility that this book prefers to explain and use in the remaining chapters.
Reference [5] uses a terminology ‘SaaS maturity model’ as a way of measuring cloud compatibility. A fully matured SaaS product is the ultimate cloud compatible product. Thus cloud compatibility measure is also a way to measure SaaS maturity of the software.
The term ‘maturity’ also indicates that softwares need to progress (mature) in this direction of having absolute cloud compatibility.
Although Ref. [5] identifies four levels of maturity, it has acknowledged that SaaS maturity is on a continuous scale. That means cloud SaaS maturity is in a continuous scale of 0 per cent through 100 per cent as this book points out the cloud compatibility measure.
As per Ref. [5], the basis for SaaS maturity is based on three characteristics of a SaaS software: scalability, multi-tenant efficiency and configurability.
Based on the three characteristics, the Ref. [5] defines four distinct levels of maturity:
Refer to Figure 6.1 below[5]:
Level 1: Ad hoc/custom
Figure 6.1 Four levels of cloud SaaS maturity model[5]
Level 3: Configurable, multi-tenant efficient
Advantages:
Disadvantages:
Level 4: Scalable, configurable, multi-tenant efficient
Thus level 4 provides all the advantages.
The same Ref. [5] also brings in an interesting observation that SaaS maturity (Figure 6.2) is not ‘all or nothing’ proposition.
It is better to visualize SaaS maturity as a continuum between isolated data and code on the one end and shared data and code on the other end[5].
Per-tenant SLA, code and data isolation are at the one end, and economy of scale and simpler management are at the other ‘sharing’ end.
On declaring a software – be it product or solution – being fully matured (as SaaS for cloud), the code of the software’s single instance is sharable across multiple companies for simultaneous use, whereas the data are preferably isolated from one enterprise to another. That is at the highest end of fully matured desirable SaaS solutions or products.
Contrast this to lowest level where the data and code are isolated from other enterprises.
The continuum only supports a reality between these two extreme ends where there are numerous possibilities.
The numerous possibilities are due to variation in the levels of each of the characteristics of SaaS software.
This principle of ‘maturity continuum’ is applicable to cloud compatibility also. ‘Cloud compatibility’ is also not ‘all-or-nothing’. Its value ranges from 0 to 100 per cent, and there can be many intermediate values. (Even at 0% still one can possibly build a cloud SaaS solution using the same, but the cost of it may be higher.)
Figure 6.2 SaaS maturity as a continuum scale[5]
This section describes how to measure cloud compatibility of a product. This is an empirical method. This section also shows an example of how to put in use to select products that are more cloud compatible while architecting cloud SaaS solutions.
There are three sub-sections within this section:
This section describes a procedure to arrive at cloud compatibility measure for products in an architecting project. The procedure consists of setting up or defining a scale and then use it to measure ‘cloud compatibility’ for each components or products that need to be evaluated for providing cloud-based SaaS solution.
In this method, architects use an ideal ‘value’ for each characteristic of fully matured SaaS software – Solutions or products. Ideal values are described in Section 6.2 for most of the characteristics and are listed in Table 6.1.
For example, against a characteristic of ‘business rules’, an ideal value suggested in the table is ‘alteration of business rules can be allowed to alter workflows/business processes’. The value indicates the solution that allows customers to define or modify default business rules that come along with the software; and at the same time when such an alteration is done, the system automatically points out all the other areas that also need to be modified. For example, sometimes a change in a particular business rule, such as approval amount being increased from a default of 5000–10,000 rupees, may prompt for altering workflow, such as to get additional approval from the senior manager of the bank; otherwise, the manager him/herself can approve.
Complete absence of the ideal state, for any characteristic, is assigned a value 0. In the above example of business rules, the pre-defined business rules cannot be altered by any subscriber to cloud SaaS.
A software product or component is said to be cloud compatible fully if it meets the ideal state for all the characteristics.
Complete absence of the ideal state for all the characteristics is assigned 0 per cent compatibility.
Between these two extreme values, architects are encouraged to use or define either 5 or 10 levels. (See Table 6.2 along with the case study discussed in Section 6.3 for an illustration of this point.) Weighted average method is used for commercial off-the-shelf (COTS) product described in the case study in Section 6.3 and Table 6.2 will show the values.
Table 6.1 Cloud-compatibility calculation
Table 6.2 Cloud-compatibility measure for two products
For example, for the characteristic cloud SaaS architecture, there are about nine possible values that are indicated in Table 6.1. In addition, Table 6.1 gives a lot of possibilities for value for each characteristic (whether those characteristics do matter or not and hence what are the values that need to be chosen can be project specific).
Solution architects should have the flexibility to define each level and criteria to determine and assign a value to each level.
Criteria for determining levels may be unique for each characteristic (attribute); it can vary from solution to solution as the solution architect decides.
The variation from solution to solution may be due to project requirements or criticality of that parameter for that product. Defining intermediary values also depends on the business requirements and the criticality of the characteristics of SaaS to the project.
This will look like a laborious process for the first time, but its continuous use will accumulate the values and criteria defined for each project. The accumulation will serve as a project asset for subsequent projects too.
Constant use of this method will provide a ready reckoner for many software products being used in various project situations.
Evaluating and accumulating such values for infrastructure software products – such as operating systems, app servers, portals, e-commerce products and content management systems – will be used repeatedly for most of the subsequent projects.
This work is less for solution architects, if the product vendors provide more generic and absolute measure of cloud compatibility value for each of their product.
Also use of weightage for the characteristics is sometimes appropriate and recommended.
Such pre-determination to assign weightages clearly brings out the priority of the characteristic that the architect is looking for in that solution.
Sometimes, it is not possible to find 5 or 10 different intermediary levels for some of the characteristics. In that case, architects can settle for only three distinct intermediary levels too. Assigning lower weightages to those characteristics is normal practice.
Instead of finding 5 or 10 distinct levels, it will be advisable to use a grading system. In this case, a score between 0 and 10 is assigned, based on architects’ judgement about the characteristic for a given product, for each characteristic of the product. And collective grade is determined based on total score obtained.
If weightage is used for each characteristic, weighted average score is calculated for each competing product and the results are compared.
Alternative to find 3 or 5 or 10 different intermediary levels, a simple ‘yes’ (100% compatible) or ‘no’ (0% compatible) scheme will also suffice.
Chapter 5 discusses highly desirable characteristics of SaaS solutions and products.
This section summarizes the essentials, from there, required for the purpose of cloud compatibility measure.
Refer to Table 6.1 and the explanation for the table is as follows:
The following discussion is based on Table 6.2 where the above discussed two products cloud.
The above discussions and the comparison chart (Table 6.2) clearly indicate what can be the product of choice for the solution. Obviously, the cloud compatibility of the ‘opensource product’ is more than the COTS. Here, an absolute measure on the maturity or ideal perfect cloud compatibility measure is not attempted. Relative comparison is adequate for selecting products as SBBs suitable for cloud SaaS solutions.
This chapter discussed the following three models of cloud compatibility measure:
Some observations about these (cloud compatibility measuring) methods are as follows:
In conclusion, the ‘cloud compatibility measure’ introduced in this chapter can be used both for selecting most suitable product as SBBs while architecting solutions and for re-architecting a given product and draw a road map for making it completely cloud compatible.
3.129.243.23