Like all software, databases are influenced by the physical environment they’re intended to run on, as well as the performance requirements placed on them. Relational databases were conceived when storage was limited and expensive, and a significant speed gap existed between main memory and storage. Database design practices like Codd’s third normal form (3NF) and the stricter Boyce-Codd normal form (BCNF) made sense in that physical deployment environment. RDBMSs also evolved in a world where the number of queries per second was fairly low, and acceptable query times were measured in seconds and minutes.
A revolution in DRAM, combined with a need for significantly lower latency caches in front of RDMBSs, enabled the rise of memcache, Redis, and a variety of other in-memory caches and databases. These systems leveraged competition between main memory hardware vendors, as it became faster, denser and cheaper per GiB.
Aerospike was originally designed to ride a different technological wave of hardware, that of innovation in solid state storage. In the last ten years, fierce competition between manufacturers has resulted in Solid State Drives (SSDs) becoming faster, denser, more durable, and cheaper by the TiB. This competition has spawned solid state technology such as Intel Optane DC persistent memory, which Aerospike uniquely utilizes for the persistent storage of indexes and data.
But in the Information Age, just considering the hardware inside a single database machine falls short of the complexities of deploying a tech stack. The reality is that all applications built for internet scale are distributed systems, composed of multiple technologies, that must grow and shrink with the flux of traffic. Aerospike has been designed as a distributed database from the ground up, intrinsically aware of the state of other nodes in the cluster, as well as the distribution of data across the cluster. However, where the cluster can be deployed is as big a consideration for building and running an application.
Another trend that evolved in the lifetime of Aerospike is a migration of hardware to the cloud. There really is no “The Cloud” – it means different things to different users. They may be in a private cloud running at their own datacenter, a public cloud, across several public clouds, or bare metal clusters augmented by periodic scaling into a public cloud infrastructure. I’ve written about this before in my blog post Using Aerospike on Google Cloud Platform: Two Use Cases.
At Aerospike, we’ve seen our share of enterprise customers running in the cloud increase rapidly over the past six years. At this moment, a majority of Aerospike users (both Enterprise Edition and Community Edition users) are on this spectrum of cloud deployments. We have grown alongside our users, building tools to measure the performance of drives and nodes in any deployment environment, learning about the quirks of different public clouds, and optimizing for them. Our core database, clients and tools all include improvements and new features inspired by the need to support our customers as they deploy their Aerospike clusters in the cloud.
A new chapter in the history of cloud computing is the evolution of cloud native software. Kubernetes, initiated by Google with its 1.0 release in July 2015, has turned into a juggernaut, led by the Cloud Native Computing Foundation (CNCF). It has wide adoption, and heavy interest by enterprises, which are on their migration path to the cloud. Membership in CNCF continues to grow at an accelerated rate. Whether running in VMs or on containerized cloud services, cloud native software takes into account the lifecycle of deploying, running, monitoring, upgrading and scaling applications in cloud environments.
We are committed to integrating with cloud native software, to facilitate our customers as they grow into and in the cloud. We are announcing Aerospike Cloud, a family of software products and services that will enable our customers to compose their own database service, through components for deployment, orchestration, management, alerting and monitoring. Aerospike Cloud products are aligned with CNCF initiatives, and Aerospike has joined CNCF as a Silver member.
The following Aerospike Cloud components are Generally Available (GA) or will be GA in Q2 of 2020:
Deployment and Orchestration
Aerospike has released Kubernetes templates, a refreshed deployment guide for running Aerospike in Kubernetes StatefulSets, and Helm charts for deploying Aerospike easily using the Helm package manager for Kubernetes, a CNCF incubating project. You can find Aerospike Helm charts on Helm Hub.
In April, Aerospike will beta test its Kubernetes operator for Aerospike Enterprise Edition, to be released as GA later in Q2 of 2020. The operator will increasingly encapsulate Aerospike operational knowledge, and make it available for automation through Kubernetes API calls. The beta of the operator will include functionality such as scaling up and scaling down an Aerospike cluster, cluster configuration and upgrade.
Monitoring and Alerting
Over the past couple of years the footprint of Prometheus, a CNCF-graduated monitoring and alerting solution, and Grafana, a popular visualization dashboard tool by CNCF member Grafana Labs, has continued to grow. Many Aerospike customers use Prometheus and Grafana to monitor large clusters containing tens and hundreds of terabytes of data. For example, see the Aerospike Summit ‘19 talk from Henry Snow, VP of Infrastructure at Nielsen Marketing Cloud, Hurdling Operational Issues.
Aerospike has begun beta testing a Prometheus exporter for Aerospike Enterprise Edition, as well as configurations for Prometheus and Alertmanager, and dashboards for Grafana. This will be released as GA early in Q2 of 2020. You can already try the beta version of this monitoring solution through our Aerospike Enterprise Edition Helm chart.
Aerospike clusters have been deployed in production in a variety of cloud environments. With Aerospike Cloud, we continue to support our customers in this choice, with an emphasis on alignment with cloud native software from CNCF.
Whether you are deploying on Aerospike Enterprise Edition for GKE or creating your own Aerospike database service in the cloud, Aerospike Cloud components will become essential building blocks.