In the first part of this series, I introduced some licensing software in public cloud. In this part, I will turn to an old world traditional IT in enterprise to leverage IT technologies for their software licensing.
1. Meet the challenges
Traditionally, Chinese enterprises will buy software licenses together with hardware. The buying behavior will benefit them on asset management and IT process management for a one to one strategy.
If the IT department will build internal cloud for LOB (Line of Business) or subsidiaries, the story will be changed:
- Most subscribers of cloud will use self-service to acquire the software licenses, which may exceed the license agreements of the enterprise.
- They will use the licenses for some time and release them afterwards, which may require the efficiency of reusing the purchased licenses.
- They will provision more virtual machines which may cost a lot for the fixed license management, which will bring operation challenges to the IT department.
- The renew and patch works are now required to be done from the cloud-side, which may require deep cooperation of the application development, IT operation and cloud services.
There are many solutions to solve the challenges. My blog post will just focus on some thinking of principles.
2. Use open source
Open source will surely help to reduce the problem. However, the total cost of ownership may not be as low as expected. For a traditional enterprise, they must turn their programming into open source library which costs them a lot in new programmers and brings a lot of risks in the transformation of the whole IT department.
Thus, Chinese enterprises will only try to use open source in Internet based business such as web publications. Even in Internet banking, they trust the reliable, proven software from software vendors. They also oversee the benefits of scale-out of cloud technologies and Internet Architecture which will bring them more capabilities to fast deploy new business functions and deal with the billions of access from the huge Chinese population. There should be some way to manage the license of software with improved infrastructure.
3. Manage the licenses
Some of my customers are building ‘software pools’ on internal cloud for fast-deployment and automated management. I have discussed the concept of management licenses with them before they are building the solution. The ideas will help the IT department understand:
- How many software licenses are there and how they are managed.
- How to deliver the software to the subscribers.
Most of my enterprise customers are using cloud technology to provide access layer or management layer applications. The benefits are high scalability and quick deployment. The applications’ lifetimes are not very long. So the customer could allocate software in the beginning and collect them back in the end.
I suggest my customer to develop a service of managing the licenses. The component is under the provisioning engine. IT department should record the following information:
- License type, core-based, fixed user based or concurrent user based
- Allocation type, target system cores, register users
- Renew type, end of renew agreement (especially for desktop software)
- Allocation status, allocated, available, expired, need patch
And the provisioning server will follow the rules to install the software on virtual machines. The repository of software license could help IT managers to understand the cost and available resources so far.
Another way is to build ‘hard partition’ of software. For example, in one of my banking customers, I suggest they use ‘database machines’ instead of database and virtual machines. IT department could define some single instance of the database together with right licensing policies. And the instance will be delivered to the subscriber as an ‘all-in-one’ virtual machine. As with Office365, the IT department could turn to usage times to calculate the charge backs.
In the real world, I use both technologies for common software and high-value software deployment.
4. Share the licenses
If we treat the cloud as a traditional data center, the managing of licenses is enough for IT processes. However, cloud is a more flexible environment, which will bring challenges and opportunities. I think one of them is shared licenses.
In the physical world, when you installed a database on a server, you have to stick it to the server because of the fixed environment. In cloud, when you are not using a server, you could shut it down which means you could use the database license in another virtual machine.
In most business cases, the database will support the running of work time. During the night, the database licenses are free. If we could use the no charge license in batch works or overnight Internet business such as web scrawling, we could save a lot of cost in the area.
In another scenario, if the expanding of Internet business requires more licenses, one possible solution is to downsize low utilized server to release software license and allocate them to the new instances in web access layers.
Before we use the flexibility of cloud, we should prepare for the following tasks:
- Hard partitioned software, which means the image of software instances should be fixed and pre-tested before allocation.
- Centralized management of live licenses and monitoring of utilization of instances.
- Automated provisioning tools for license migration.
5. Integrate the licenses
In some cases, the usage of software licenses is a hard core. For example, in one of my software as a service (SaaS) projects, the customer is the operator to provide the licenses to ISV directly. In this case, if the operator could share licenses among the ISVs, the cost would be significantly saved.
IBM China Research Lab (CRL) developed a mechanism for sharing the virtual licenses under physical licenses. The idea is to use a logical database instead of a database instance.
CRL developed a component called MMT to replace the JDBC connection pool in application side. Each JDBC connection would be mapped into a connection to a logical database instead to a physical instance. The ISVs could develop the applications use MMT so that they will share the core-based database licenses.
If there are more ISVs, the license will be more efficiently shared. The total cost will be saved. However, there are still some challenges to this idea:
- Non-functional requirements: if one application caused database deadlock, other ISV will be affected.
- Reprogramming cost: since MMT is just another way to access database, the cost could bring more risks.
- Operation cost: if the operator would provide backup/restore, or disaster recovery services to ISVs, the logical instance will not meet existing operation tools.
The challenges could be solved by developing other components under SaaS architecture. Simplify is always a choice here. I would recommend enterprises to use these technologies on quick win applications or temporary database usage to save the great cost of software.