Scaling applications for COVID-19 spikes
|Nikita Ivanov in Business of Apps Thursday, July 23, 2020|
Nikita Ivanov, an international speaker on in-memory computing frameworks and founder of GridGain System, explains deployment options, helpful tools and resources, and places people can go for help so IT and dev teams can quickly deploy an in-memory data grid to solve immediate application performance challenges and prepare their businesses for the changing post-COVID-19 world.
The COVID-19 pandemic has led to shelter-in-place and lockdown orders that are dramatically changing both business and consumer behavior. Online activity is soaring, and many businesses, such as those in food delivery, ecommerce and remote access and collaboration services, are experiencing exploding demand for their services. Many of these businesses have struggled to scale out and maintain high performance for their applications with surges in website visitors, delivery requests, sales transactions, video streaming, or other activity. As a result, users have experienced delays, outages, or other application issues.
The technical challenges for these businesses are ones that many enterprises faced even before the pandemic. To accelerate and scale applications, developers have often focused on either reducing latency (the speed of a single operation) or increasing concurrency (how many operations can be supported per second). To keep up with the huge increases in load that many businesses are experiencing today while maintaining acceptable application performance, developers need to maintain low latency while simultaneously increasing throughput. Addressing these needs cannot take months to implement or involve the heavy cost of completely rearchitecting a system, though. The solution must be easy to implement and have an immediate impact. Ideally, it should also support the business’s long-term growth strategy.
Over the last five years, many businesses experiencing rapid growth have found that the fastest approach to maintaining or decreasing latency while simultaneously increasing throughput is to deploy an in-memory data grid (IMDG). For example, when Sberbank, the largest bank in Russia with 135 million customers, transitioned from a traditional brick-and-mortar banking model to offer online and mobile banking, the number of transactions soared from 30 to 40 per second to 3,000 to 4,000 per second.
When the bank looked at its options for building a next-generation data-processing infrastructure, it selected a solution built on Apache Ignite®, an in-memory computing platform that includes an in-memory data grid. Sberbank was able to build multiple IMDG clusters spanning thousands of nodes that store and collectively process petabytes of data in real time and support thousands of transactions per second. The IMDG clusters also enable the bank to continue scaling their infrastructure across their multiple business units simply by adding nodes to their clusters, as needed.
Apache Ignite is an open source in-memory computing platform. A distributed computing solution, it is deployed on a cluster of commodity servers and supports ANSI-99 SQL and ACID transactions. It pools the available CPUs and RAM of the cluster and distributes data and compute to the individual nodes. Ignite can be deployed on-premises, in a public or private cloud, or on a hybrid environment, and it can be used as an in-memory data grid inserted between an existing application and disk-based database or as a standalone in-memory database (IMDB). Since an IMDG requires no rip-and-replace of the database or applications, it is the fastest and easiest way to provide higher performance and increased scalability to existing applications.
The Ignite IMDG is essentially a distributed write-through cache. Applications send new transactions to the IMDG, which writes them to the database, ensuring data consistency and availability. The solution supports ANSI-99 SQL, ACID transactions, a Unified API and MapReduce functionality.
Ignite offers users two configurable approaches to ACID compliance between the IMDG and the underlying database. With strict compliance, each time data is written to the in-memory layer, it is also committed to the database. While ensuring ACID compliance, the write performance of the IMDG is slowed while awaiting disk writes. A “write-behind” approach delivers faster writes by buffering transactions in the in-memory layer and providing eventual consistency. These two approaches allow businesses to balance performance and risk for their individual applications. In both cases, however, the IMDG provides a tremendous increase in the performance of reads, which is essential for ensuring customer experience at scale.
With all data in memory, the Ignite IMDG uses MapReduce to execute massively parallel processing (MPP) across the distributed cluster. Leveraging both in-memory data caching and MPP, Ignite provides up to a 1,000X increase in application performance. Thus, the IMDG decreases latency by processing transactions in memory to eliminate the delays caused by disk reads and writes and by applying massively parallel processing. The IMDG also enables companies to simultaneously increase throughput because the distributed architecture allows the compute power and RAM of the cluster to be increased simply by adding new nodes. The platform automatically detects the additional nodes and redistributes data across all nodes in the cluster to ensure optimal use of the cluster CPU and RAM.
To support their long-term strategies, companies are using the Ignite in-memory data grid to power their digital transformations and enable 360-degree customer or business views. The IMDG makes real-time data access to data from multiple data stores and data streams easily accessible to any number of business applications. This many-to-many, real-time data hub architecture is called a Digital Integration Hub (DIH).
A DIH architecture establishes a common data access layer for aggregating and processing data from multiple on-premises and cloud-based sources and streaming data feeds. DIHs built on an in-memory data grid provide real-time, high-performance data access. They can span data sources, including on-premises or cloud databases, data lakes, data warehouses, SaaS applications and data streams from platforms such as Apache Kafka® or Apache Flink®. The required data is cached in memory, enabling multiple applications to access a single view of the data at in-memory speeds. The DIH also automatically synchronizes any data changes with the underlying data stores. A DIH can slash the number of calls made to data sources, overcoming the challenge of API call limits and eliminating delays caused by waiting for data to be retrieved from disk-based data stores.
Ignite IMDGs are also used to support hybrid transactional/analytical processing (HTAP), which is also referred to as hybrid operational/analytical processing (HOAP) or translytical processing. An HTAP architecture supports high-speed processing of the same in-memory dataset for both transactional and analytical use cases.
HTAP eliminates the need to separate online analytical processing (OLAP) systems from online transactional processing (OLTP) systems. Populating OLAP systems typically requires a time-consuming extract, transform and load (ETL) process to periodically copy data from the OLTP system. HTAP enables running pre-defined analytics directly on the operational data without impacting overall system performance. An IMDG supports HTAP by enabling real-time analytics to be performed on the operational data in the IMDG with massively parallel processing. By delivering this performance at scale and offering built-in machine learning libraries within the Ignite platform, an Ignite IMDG can even enable what Gartner refers to as “in-process HTAP,” which is combining HTAP with continuous learning based on machine learning models trained continuously using the transactional data. HTAP may also reduce long-term costs by reducing or eliminating the need to maintain a separate OLAP system.
Apache Ignite, a top-five Apache Software Foundation (ASF) open source project, has over 15 million total combined downloads and Docker pulls since the project launched in 2014. While an Ignite in-memory data grid may require some configuration changes to applications and minor changes to SQL, the relative ease of deployment means businesses can begin delivering additional speed and scale to their applications quickly – and without a significant upfront cost. In addition, for production environments, comprehensive support and training are available from third parties, which may also offer additional enterprise-grade functionality, including enhanced security features such as pluggable authentication and comprehensive auditing, multi-datacenter replication, certified connectors for third-party solutions, and more.
For companies experiencing surges in business due to COVID-19, an Apache Ignite in-memory data grid provides the fastest and easiest way to provide higher performance and increased scalability for their existing applications.
This content is made possible by a guest author, or sponsor; it is not written by and does not necessarily reflect the views of App Developer Magazine's editorial staff.