An MSP Provider Builds a Cross-IaaS Management Platform with IBM Bluemix
A need for a multi-tenant cloud management solution
Recent Gartner research revealed that 55% percent of CIOs expect their enterprises to deliver more than half of their applications as SaaS—or manage them in a public cloud infrastructure—by 2020. Many other studies confirm that most of enterprises are already having a multi-cloud strategy, combining public, hybrid, and private clouds.
Within this context, Unigma, a US-based managed infrastructure services provider, decided to develop a multi-tenant cloud management platform to unify and simplify infrastructure management. The result was a cost-effective system that accelerated cloud infrastructure management by a 5x factor, while monitoring multiple cloud infrastructures in a unified environment. Unigma was also able to save US$1,000 per month through IBM Bluemix offering a trial year for startups, and the solution provided the company with a new revenue channel.
This article shares their success story using IBM Bluemix to furnish Unigma’s customers with a robust and more cost-effective solution than others on the market.
Struggling with multi-cloud infrastructure
Generally, IT infrastructure administrators face a number of issues related to:
- Viewing and correlating metrics from multiple clouds
- Getting full control over multiple cloud accounts
- Making troubleshooting a breeze
- Adding as many different cloud accounts as necessary
- Optimizing IaaS expenses as required
- Executing operations without logging into different cloud control panels
- Scheduling tasks for any resource
- Saving time by automating using smart tasks
At the same time, many business requirements should also be addressed when developing a cloud infrastructure product:
- Time to market
- Handling spikes in traffic
- Decreasing the cost as much as possible when there are little users in the system
- Relying on managed services to decrease the TCO
- Do not bother about upgrading and patching the runtime environment
- Utilization of 3rd-party “standard” features instead of creating them internally
- High availability of the services, etc.
Unigma’s management team realized that cloud management platforms are emerging quickly as cloud infrastructures proliferate within the modern enterprise. The company decided to develop a multi-tenant cloud management platform to unify and simplify infrastructure management. Unigma is an independent provider of managed infrastructure services, helping its customers to monitor, operate, and support cloud infrastructures.
The company employed Altoros to work with the IBM Bluemix platform
(a Cloud Foundry distribution) to meet the challenges its customers face. Altoros is a global software development company headquartered in Sunnyvale, CA. It integrates software assembly lines into large organizations by deploying solutions offered by the Cloud Foundry ecosystem. Altoros customers are among the first to create and monetize application-driven competitive advantages with various Cloud Foundry distributions, including IBM Bluemix.
In addition to the general issues listed above, a few specific challenges arose as Unigma worked with the Altoros team:
- Optimize requests and connections to cut expenses on bandwidth
- Avoid exceeding the limit of concurrent requests to cloud APIs
- Adapt the system to rapidly changing load
- Guarantee a respectable level of security
So, Altoros conducted research to provide Unigma with several potential approaches. Four platform offerings came to be under consideration, with specific features as follows:
|Considered point||AWS||IBM Bluemix||Heroku||Pivotal Web Services (PWS)|
|Architecture and footprint||Apps in plain virtual machines||Apps in containers or/and virtual machines||Apps in plain virtual machines||Apps in containers|
|Scalability (change # of app instances)||Minutes||Seconds||Minutes||From seconds to minutes|
|12-factor compliance||Some in-app configuration files||Fully compliant bindings||Needs additional apps development||Partially compliant, needs additional settings|
|The app goes live||Hours, days, or weeks||Minutes. One click from the Bluemix Catalog||Hours, days, or weeks||Minutes. One click from the PWS|
|Industry-specific built-in services||Marketplace options only (a limited small number of built-in services)||Integrations, connectors, app templates. Various types of both built-in services and developed by partners||None||A limited number of integrations and connectors|
|API management||None. Build your own||API Connect, a built-in tool||None. Build your own||3rd party tool, 3scale API Gateway|
|Logging||Retrieves logs from each VM||Built-in logging||Retrieves logs from each VM||Built-in logging|
|Support for cloud environments||AWS only||– SoftLayer|
– Private/hybrid cloud (co-location)
– Bare metal servers
– GPU computing
|Heroku only||AWS only|
|Heavy open-source contributor||None. Employees are not allowed to contribute to any open-source community||A founding member of the Cloud Foundry Foundation.|
Regular code contributions to the key infrastructure project.
|None||A founding member of the Cloud Foundry Foundation.|
Regular code contributions to the key infrastructure project
The investigation showed that the optimal solution would need to rely on microservices and the 12-factor app paradigm, which implies implementing each component of the system as an independent, stateless service running on the platform.
IBM Bluemix selected
Pivotal Web Services (PWS) and the IBM Bluemix platform were shortlisted during the evaluation period. Both address a full list of requirements mentioned above, both are fully compliant with the 12-factor paradigm, and both are based on the CLoud Foundry PaaS.
Cloud Foundry, as a platform for building and running cloud-native applications and services, is built according to a set of well-defined principles to remove complexity from the end user. Its appeal also stems from its open approach in three dimensions:
- Cloud Foundry is infrastructure-agnostic
- It has polyglot language support
- It is open-sourced, yet supported by a mature ecosystem and a multi-organization foundation (including IBM, VMware, Pivotal, HPE, SAP, etc.)
In addition to four levels of high availability (HA), zero-downtime application updates, and attachable backing services, Cloud Foundry offers a number of built-in capabilities and integration points for key enterprise concerns:
- Resiliency and fault tolerance through self-healing and redundancy
- User access and authentication management
- Security and auditing
- Application life-cycle management, including aggregated streaming of logs and metrics
- Release engineering, including provisioning VMs, containers, middleware, and databases with BOSH—an open source tool for release engineering, deployment, lifecycle management, and monitoring of distributed systems.
Bluemix got the edge because its marketplace provides a wide range of built-in extra-featured services, which allow the extension of an application’s functionality in a lean manner, with little development resources and expenses involved. It was specifically important for Unigma, as its product roadmap outlines plans to implement functionality to provide an intelligent help and support system that could be implemented using IBM Watson Conversation and event-driven IT process execution (e.g., backup, restore, migrate, run additional service, etc.) that can be enabled by the OpenWhisk service.
IBM Bluemix also enables DevOps / developers to run applications, straight containers, serverless architectures, VMs and bare-metal machines, a capability that is quite valuable for extreme loads and high-speed applications for which containers are not enough.
Cloud Foundry and IBM Bluemix enabled Unigma and Altoros to address the challenges described earlier by implementing the following system architecture.
The solution features six modules:
- Administrative dashboard. Allows for adding users and cloud resources, as well as adjusting billing settings (e.g., a user can change a payment method).
- Cloud workers module. Defines three groups of workers, responsible for:
- Extracting data from a number of resources (VMs, load balancers, cloud datastores, web apps, etc.) and storing it in a centralized database (Cassandra)
- Extracting statistics about the usage of cloud resources
- Extracting billing information and storing it in a MySQL database
Deployed to Bluemix, the application features two manifest versions—for development and production environments. The solution is a web application comprising a number of independent microservices. The key components are:
- Three background workers that upload metrics from the IaaS systems—Google, Azure, and AWS
- A monitoring microservice
- An API Gateway
- A data service
In addition to deploying the Unigma application to IBM Bluemix using a Java buildpack, the following services were also utilized:
- Compose for RabbitMQ
- ClearDB MySQL Database
- Content Delivery (CDN)
- Single Sign On
- Active Deploy
The decision was also made to extract monitoring statistics straight from the APIs, so that cloud workers do not store any outdated statuses/data. For now, the background workers are running for one instance only, but with different memory settings for each of user accounts.
Alongside network / architecture / data security, the team implemented an API Gateway with single sign-on between the microservices. Using Spring Boot / Spring Security, engineers at Altoros created a separate module that contains the web client code and securely proxies all calls to different components. This helped ensure overall app security at the network level and minimize risks of a cross-site scripting (XSS) attack.
To optimize requests and bandwidth usage, developers at Altoros created a pool of connections and combined requests in batches.
The platform enables Unigma’s customers to monitor cloud infrastructures and build reports in a unified dashboard. Integrated with a number of cloud computing platforms (e.g., Microsoft Azure, Amazon AWS, etc.), the solution also facilitates administrative and DevOps work.
Relying on the Bluemix platform, microservices, and support from Altoros, Unigma was able to accelerate product delivery, releasing the system in just 6 months. The developed system provided the customer with an additional revenue channel, enabling to focus on core activities (providing cloud services).
Relying on managed services and re-usable blocks instead of creating them internally also decreased TCO. The event-driven nature of the platforms helps to cut infrastructures costs when there are little users in the system or less services are used. In addition to high availability of the services, Unigma spent very little time on operating the runtime in both development and production environments.
Unigma was also able to save US$1,000 per month through IBM Bluemix offering a trial year for startups.
Additionally, customers of Unigma benefit from monitoring multi-cloud infrastructures in a unified environment, cutting time spent on infrastructure operations by a factor of 5.
Three additional features are now being implemented by Unigma and Altoros to bring more business value to the solution:
- Cost-saving logic to estimate the efficiency of using cloud accounts and deliver recommendations on optimal cloud infrastructures
- A cost calculator that will aid users in finding offers and pricing that fit their needs
- An intelligent support chatbot that utilizes the IBM Watson Conversation service to quickly build, test, and deploy the chatbot or a virtual agent across devices, messaging platforms, or even on a physical robot. The service has a visual dialog builder to enable natural conversations between applications and users. The solution also features built-in cognitive analysis of text and provides user with typical answers
The team at Altoros is also implementing a wizard responsible for executing event-driven processes to monitor system events and drive intelligent decision making (e.g., backup, restore, migrate, run additional service, etc.).
For that purpose, the IBM OpenWhisk service has been employed, providing a distributed compute service to execute application logic in response to events and allowing developers to compose solutions using modern abstraction and chaining, which can be created, accessed, updated, and deleted via a CLI.