Elastic Cloud for Billing

Elastic Cloud for Billing - What Does it Mean for You?

Subscription billing platforms such as LogiSense are inherently exposed to highly variable workloads which are a challenge to manage efficiently. Two of the system's primary functions, rating event records and creating invoices, are generally short-lived, compute intensive, high throughput processes that occur at unpredictable times and intervals across a customer base.

Given that the infrastructure must be able to handle these load spikes whenever they occur, how do you ensure that your computing resources are utilized efficiently during normal load periods?  Imagine a business processing a billion user generated events each month across 100,000 accounts; what if an error is discovered during invoicing that needs to be fixed quickly across that large base?  This is a scenario only handled well in an elastic compute environment.

Successfully sizing systems in the days of bare metal servers often involved an in-depth capacity planning exercise. Architects, System Engineers and DBAs would create a model that allowed them to predict how the underlying infrastructure would respond under various load levels. These models could range from basic to very complex depending on the level of accuracy required. With the model complete it was simply a matter of entering peak load parameters, and then provisioning sufficient infrastructure to satisfy the calculated resource requirements.

There are three obvious issues with this approach. First, it assumes that peak load levels are predictable, which they often aren't. To solve this issue some level of over-provisioning is necessary, the extent of which often depends on service level allowances. Second, it doesn't account for growth. Given that there is often lag time associated with physical hardware acquisition, additional over-provisioning is often required to ensure that sufficient capacity is available when growth does occur. And finally, given that the infrastructure is over-sized even for peak load scenarios, it will likely be highly under-utilized much of the time. The cost implications of running a large system in this state can be significant, and your level of success is always dependent on accurate load prediction.

Fortunately, today's cloud computing platforms go a long way to addressing these issues. Assuming that a software system is designed using appropriate architectural patterns, elastic services such as Amazon EC2 and S3 and serverless services such as Amazon Aurora and Lambda literally flip the old provisioning model on its head.

Imagine a world where compute, storage, and network can be configured to dynamically increase and decrease computing capacity in real time via scaling policies that respond to system events or resource threshold settings, such as memory consumption or CPU utilization. As increased load scenarios arise, additional capacity is automatically provisioned and brought online in a matter of minutes or even seconds. As load on the system decreases the elastic resources are automatically deprovisioned, effectively returning the system to its steady state configuration.

Serverless services take this dynamic model a step further and allocate resources only as required to satisfy incoming requests. There is no explicit provisioning or deprovisioning of resources by the client system. The cloud service handles all of this behind the scenes resulting in the ultimate in computing efficiency, a pure usage based model.  Pay for what you use, and only what you use.  

With these cloud services at our disposal we now need only provision the minimum necessary infrastructure up front required to run the system at minimal load. Additional capacity is provisioned only when required for high load periods, or simply used on-demand.  As a result, you now have access to a hands off, elegant mechanism to ensure your system has access to infinite capacity, at the optimum price point based on the real time load placed on the system.

About the author
Tom Gross

Tom Gross

As VP of Engineering for LogiSense, Tom ensures that the company's development team is focused and well equipped to deliver the world’s most agile real-time usage rating and billing solution to the UCaaS, M2M/IoT, and Enterprise service provider marketplace.