Nov 21, 2016

Five essential elements of scalable enterprise applications

Scalability has traditionally been about shifting resources or capacity up or down depending on demand. In the industrial era, it applied to factories and supply chains. Today, it increasingly means the ability to dynamically deliver the right amount of IT to support whatever your business needs, wherever it needs it. Waiting for new software or hardware to be set up or provisioned can be a death knell in a climate of massive business and digital disruption. If you can't move fast enough, your competitors probably can and will.

The ability to rapidly adjust capacity is one of the prime benefits of cloud-based enterprise software. It enables users to immediately adapt to changes in size and/or usage needs. In a cloud environment, applications are responsive to users in a way that traditional software can't be.

Since scalability is a fundamental requirement for supporting a growing organization, it needs to be an essential ingredient in how its enterprise application vendors build their products. That said, there are fundamental differences between different types of applications, and their scalability capabilities need to reflect that. Business critical enterprise applications like financials and HCM must be able to keep pace with overall enterprise growth and change, but in some cases they have vastly different types of requirements.

In HR, for example, there are seasonal needs such as open enrollment, annual reviews, tax requirements, and other cyclical events that change the required computing bandwidth of the system throughout a given calendar year.

Financial data, on the other hand, tends to grow rapidly, and has high transaction throughput requirements and heavy data analysis needs. Critical data around quarterly and year-end reporting is almost always growing — more data points, more connectedness among financials categories, and increased insight into what the numbers mean. CFOs increasingly rely on their financials applications as their daily dashboard for the business. Therefore, expectations are high, and businesses need to be able to deliver those systems on demand.

The challenge for cloud application vendors is to address these differences without having to restructure their architectures. The cloud applications that are scalable for today's needs were developed by vendors that have built their offerings on innovative architectural styles and technologies that allow their apps to be small and distributed, rather than monolithic and complicated. Here are five key attributes of truly agile cloud architectures:

Microservices: A microservices approach is the best way for a cloud vendor to build a foundation for scale. Shrinking and splitting apart large services to create new ones means that an application can better source and handle higher volumes of transactions. The services needed are the ones used for any given application need. As demand increases, the additional required processing activity can be distributed over these different services.

Open standards APIs: Look for vendors that support open standards-based APIs to allow complete programmatic access to business operations and processes, all in the form of services. It is optimal if they use an integration format (SOAP or REST) that enables microservices to be interoperable with leading client-side languages and integration middleware platforms.

Grid computing: Grid computing enables parallel distributed processing for jobs like payroll, financial close processing, report runs, and other types of transactions. A cloud architecture with in-memory computing gives the ability to process and analyze large sets of queries, aggregations, and other activities over very large data sets.

Enterprise Service Bus (ESB): Core enterprise applications don't exist as an island, so they need to integrate with other applications and services. To power and coordinate a scalable, services-based architecture, applications should be able to rely on an ESB that enables integrations to scale and interconnect, and that supports industry standards, protocols, and formats. The ESB should provide universal connectivity for all types of business applications, information, and processes.

Availability: There is a certain irony that the greater the need for an application, the more important it is for the application to be available. In order to scale, it's important for a cloud environment to operate in an architecture where potential points of failure are distributed. The cloud provides an optimal delivery and management environment in which to deploy modularized services, and that helps add new services and adapt existing ones as scale is needed.

We may never see the limits of how far-reaching enterprise applications can be, but there is no doubt that there will continue to be a hunger for more — more data, more availability, more usage, and more functionality. Organizations will need to make use of innovative technologies and optimized software architectures to remain scalable, and therefore, valuable to their customers.