Any number of business models have been built around the exchange of data on daily, weekly and monthly intervals, but scheduling processes to produce results in the future can be a significant barrier to today’s computing, mobile, Web and application needs with the increased connectivity of businesses and consumers.
Examples include real-time access to inventory, order management, services and data assets within your business. Successfully managing real-time processing enables partners to better integrate offerings and third-party developers to create mobile apps, expanding business reach.
There are many opportunities to better leverage existing data assets and services in a larger ecosystem by providing real-time access through APIs. A great example of this vision is Netflix, which provided a real-time API for its consumer accounts and content. It has been so successful that it is working on the next version. Today Netflix serves more than a billion requests per day, with peak loads of over 20k requests per second.
Storage IO performance is critical to scale these real-time services while keeping your level of service consistent. Your storage architecture can impact the performance of these services both operationally as well as capture and report service usage for analytics and optimization.
Now is the time to leverage business assets — data, services, etc. — as real-time services. In doing so, you will find new business opportunities, provided you have infrastructure that can scale up and out for the large data demands of today and tomorrow.
Scott Metzger, vice president for corporate development at Violin Memory, has identified five key areas to consider when implementing and scaling real-time processing systems and services.
Click through for five areas to consider when implementing real-time processing, as identified by Scott Metzger, vice president for corporate development at Violin Memory.
In the batch world, integration largely depends on files to consume and produce information. Distributed systems architecture has had many challenges with RPC, CORBA, J2EE and others. In 2000, a Ph.D. thesis by Roy Fielding breathed new life into distributed computing with an architecture known as Representational State Transfer (REST). Fielding’s contribution leveraged Web infrastructure and standards with a pragmatic approach to keep it simple.
The simplicity of REST APIs put the architecture on a fast track to become the new standard of integrating disparate systems and those accessing their services. These RESTful API design practices preach the elimination of dependencies to create loosely coupled services to avoid the pains of distributed architectures of the past. RESTful services also make it much easier for developers to learn these APIs with a number of tools and resources.
This generation of distributed services has helped power the growth of mobile devices and the app-store economy. The days of building applications that do not leverage services on the network are dwindling. Apple’s new mobile feature, Siri, is a great example that employs a large number of service providers in real time on highly distributed infrastructure. The B2B software and services, such as Salesforce and Amazon, are also aggressively building out cloud applications and services on this architecture.
Distributed services require high-performance components to keep average response times very low (100 milliseconds or less). Many of the client apps and users of these apps are located around the world. This typically requires the replication of services across a number of regions to provide a consistent experience. Sometimes this can be supported with local read caches but many times both read and write operations need to be supported by service instances across multiple regions. The instances of these services therefore need to support some type of synchronization and support for read and write operations to maintain state.
To meet new real-time demands, compute, network and storage technology must be able to scale up and out. Compute and network performance have followed Moore’s Law, leveraging the gains available by roughly doubling transistor counts every two years. Storage technology has not kept up with this rate of performance growth with the dependency on spinning disks and mechanical movement of drive heads. RAID algorithms have provided some improvements in throughput and availability, yet continue to be challenged with storage workloads that require a lot of random reads and writes. A way to try to improve this kind of performance has been to keep adding disk drives to stripe the data across more and more mechanical disks. This may also cause over-provisioning of compute and software to support this IO-bound overhead.
Solid-state storage technologies are now able to re-balance the workload between compute, network and storage. The same flash memory technology utilized by digital cameras and mobile devices has been designed into the next generation of enterprise storage. Primary, all-flash storage systems provide a new class of performance over spinning disk systems. This is especially important for these highly distributed services when they are required to scale.
One of the most important underlying metrics of service performance is latency: the time delay experienced between a request and response at every layer of infrastructure. If a service randomly reads and/or writes data to support its response, storage IO is frequently the largest contributor to latency. Compute and network tiers under heavy load can spend the majority of their time waiting on storage IO. The next generation of enterprise-class solid-state storage provides a new level of performance for low-level IO operations, taking individual reads and writes from 10s and 100s of milliseconds to 100s of microseconds, an order of magnitude higher performance. This can be the difference between an end-user experience going from 10 seconds of wait time to 1 second or less. Some solid-state storage can support consistent performance of read-write operations regardless of sequential or random IO. This is especially important when many users are interacting with the system concurrently.
Solid-state storage technology can give impressive results on spikes of traffic but not all solutions are created equal. The underlying IO operations require sophisticated management capabilities to maintain those low latency numbers while under sustained workload. This is most significant when supporting write operations, as a study from Violin Memory shows. You will also want to consider how to achieve and maintain this level or performance without giving up support for high availability in the event of failure of a single storage component in the most cost-effective way.