In this article published in APM Digest, I discuss eight key elements of a storage foundation needed to support modern, cloud-native applications.
Modern Performant Applications Require Modern Storage
Modern, cloud-native applications have been steadily expanding beyond development environments to on-premises production workloads. For enterprises, one of the primary drivers for making this move has been to ensure performance and avoid the cost and complexity of moving large workloads to the cloud.
As a result, organizations require a modern storage foundation that can fully support cloud-native environments and emerging technologies, such as Kubernetes, serverless computing and microservices which are significant components of these environments.
The following is an easy-to-follow checklist for building the ideal modern storage foundation:
1. S3 COMPATIBILITY
Complete S3 compatibility is critical for today’s modern storage foundation as it ensures that applications developed for the public cloud can also work seamlessly on-premises. In addition, S3 compatibility simplifies and streamlines the ability to move applications and data across hybrid cloud environments.
High-level, predictable and scalable performance is a must for today’s modern storage foundation. This includes the ability to rapidly complete a read or write operation, execute a substantial number of storage operations per second, and provide high data throughput for storage and retrieval in MB/s or GB/s.
A modern storage foundation must be highly scalable across four dimensions:
- Throughput scalability – the ability to run more throughput or process more data per second
- Client scalability – the ability to increase the number of clients or users accessing the storage system
- Capacity scalability – the ability to grow storage capacity in a single deployment of storage systems
- Cluster scalability – the ability to grow a storage cluster by deploying additional components
Consistency is another key element of modern storage. A storage system can be described as “consistent” if read operations promptly return the correct data after it’s written, updated or deleted. If new data is immediately available for read operations by clients after it’s been changed, the system is “extremely consistent.” However, if there is a lag until read operations return the updated data, the system is just “eventually consistent.” In this case, the read delay must be considered against the recovery point objective (RPO) because it represents the maximum amount of data loss in the case of component failure.
A modern storage foundation must be durable and protect against data loss. Truly durable platforms ensure that data can be safely stored for extended periods of time. This requires the inclusion of multiple layers of data protection (including support for numerous backup copies) and multiple levels of redundancy (such as local redundancy, redundancy over regions, redundancy over public cloud availability zones and redundancy to a remote site). To be truly durable, storage platforms must also be capable of identifying data corruption and automatically restoring or reconstructing that data. In addition, the specific storage media that comprises a cloud-native storage platform (e.g., SSDs, spinning disks and tapes) should be inherently physically resilient.
Cloud-native apps are extremely portable and easily distributed across many locations. As a result, it’s critical that the storage foundation supporting such apps be capable of being deployed or provisioned on demand. This requires a software-defined, scale-out approach, which enables organizations to immediately grow storage capacity without adding new systems. A storage architecture that leverages a single namespace is ideal here. Because such an architecture connects all nodes together in a peer-to-peer global data fabric, it’s possible to add new nodes (and more capacity) on demand across any location using the existing infrastructure.
7. HIGH AVAILABILITY (HA)
A modern storage foundation must maintain and deliver uninterrupted access to data in the event of a failure, no matter where that failure occurs. To be considered highly available, storage systems should be able to heal and restore any failed components, maintain redundant data copies on a separate device and handle failover to redundant devices/components.
Comprehensive end-to-end security is essential for modern storage. This includes encryption for data in flight and at rest, RBAC/IAM and SAML access controls, integrated firewall and certification with stringent government security requirements such as Common Criteria, Federal Information Processing Standard (FIPS) and SEC Rule 17a-4(f). In addition, modern storage foundations should offer data immutability (i.e., ensure the data cannot be changed/altered/deleted for a designated period of time) to protect data and operations from cyberattacks such as ransomware.