What it Means to be Natively Built for the Cloud ‒ and Why it Matters
When was the last time you got into a hot debate about data management in the cloud vs. on-premise? Probably not recently. A few years ago, many companies still felt that gold standard data management was a private network that they owned and controlled. Lately, however, public cloud-based software has risen in prominence, with clear and numerous advantages: more scalable storage, more distributed computing power, better automation, and all the efficiencies that come with sharing rather than owning and maintaining your own infrastructure.
Within this shifting landscape, a new cohort of offerings has come to the fore. They are SaaS products built natively for the cloud. This means that they didn’t begin as a traditionally hosted solution which was later migrated to the cloud. They were designed, from the ground up, to harness all that a cloud-based solution can and should be.
Designing Software for a New World
The way we design our solutions depends on our constraints and opportunities. When we built Amperity, for example, we took an old problem and applied a modern lens where computing power was virtually unlimited, machine learning was table stakes, and storage was cheap, robust, and reliable. For native-cloud software in general, we’ve found that there are five key areas of excellence, where all other approaches fall short.
1. Smarter Storage
Before the cloud, storage was extremely expensive and enterprise systems required skilled administrators to provide on-going maintenance. To keep costs as low as possible, systems were generally optimized for a single parameter: efficiency.
In the cloud, however, storage is highly available, performant, maintenance-free for users, and nearly infinite. And it’s extremely affordable. Because of this, today’s cloud-native systems apply a new approach to data storage ‒ one that’s optimized for a host of other considerations.
For example, cloud-native systems excel at making data readily available to end users and downstream systems, in the optimal formats and at the right speeds. This is accomplished by storing data in multiple formats concurrently, with each version of the data optimized for a specific use case.
Cloud-native systems often also store data raw, in its original format and full complexity, using data computation pipelines to shape the data on its way out and keeping the original data around for replay (a lambda architecture is one example). These approaches would have been cost-prohibitive before the cloud, but provide tremendous benefits for data users.
2. World-Class Security
On the whole, cloud-native software provides a higher standard of security than was ever possible before. There are several reasons for this. First, if two systems are run on the same cloud, they are in essence on the same network. This has powerful consequences for tasks like data transfer and access management. Traditional systems often require the use of slow and fragile transfer mechanisms to move data from one system to another. Cloud-native systems, on the other hand, can accomplish this by simply exchanging keys. This approach provides vast improvements in security with the bonus of order-of-magnitude improvements in speed, because data never exits the shared network.
Second, because cloud systems are complex, distributed, and process massive volumes of data, they have a variety of protections built in ‒ and cloud-native systems are designed to take full advantage. For example, the massive scale of cloud networks allows for protections against DDoS attacks (where cyber-attackers try to prevent legitimate access by flooding your systems), and the multi-tenant nature of the cloud means comprehensive encryption at all layers of the stack is the norm. Cloud providers even provide API-accessible hardware security modules for secure key storage. This all sits on top of world-class facility security, run by expert operators with huge leverage given the extraordinary scale of the data centers they are operating.
In the case of Amperity, we take full advantage of the cloud’s security capabilities through rigorous change control for configuration changes, active vulnerability scanning, full encryption from transport through storage, and much more. Also, because the “network effects” outlined above are so powerful, we have built Amperity to run on both AWS and Azure. This ensures that all of our customers get the full benefits of cloud-native speed and security, regardless of the cloud they’ve chosen to use for their brand.
3. Failure Resistant
This one is simple. With workloads distributed across hundreds or thousands of machines, failure of one machine is relatively common. To protect against this, cloud-native systems are architected so that no single failure can meaningfully affect availability or performance.
At Amperity’s scale, machine failures are routine. However, they do not result in emergency on-call incidents, because the system is resilient to failure. Amperity runs its workloads on distributed systems with built-in redundancy, insulating the system from single machine failures. Leveraging the cloud’s extensive automation capabilities, complete recovery from failure is also trivial and highly reliable.
4. Zero-Downtime Deployments
Alongside all the advantages of the cloud, there are some factors that make cloud-based software uniquely challenging. One of these factors is the complexity inherent to a system that’s both massive and uses modern microservices architectures with a variety of moving parts. Cloud-based systems simply cannot be stopped to wait for a code deployment.
Cloud-native software is built to deal with this challenge through zero-downtime deployments. This approach offers a comprehensive, automated mechanism for safely rolling out changes that provide automatic testing, health checking, and rolling/partial upgrades, for the safest, least-error prone way to deploy new code.
5. Comprehensively Monitored
The last area where cloud-native software excels is around monitoring. This is, again, partly out of necessity. This is because cloud-based systems require far more sophisticated monitoring than what was needed in legacy systems. When a single workload runs on hundreds of machines, it’s not possible to log in to individual systems and check CPU counters to understand system behavior. It’s even murkier in a resource-managed environment with multiple overlapping jobs competing for resources. Therefore, deep and detailed metrics are required both for the application itself and the infrastructure supporting it.
The benefit here is that cloud-native systems are designed from the ground up for comprehensive monitoring. If you look at Amperity, we use a sophisticated global metric monitoring system. This enables powerful alerting, the finding of correlations between related events across systems, and deep integrations with communication systems including on-call systems to support live 24×7 response.
Cloud-Scale Services Deliver Cloud-Scale Results
Cloud innovations and cloud-native software are fundamentally transforming how businesses work. What once took years to develop can be built in weeks using the capabilities of the cloud. What was once cost-prohibitive is now both more affordable and more efficient based the precise needs of a company at any given time.
As a result, more and more brands are entrusting their data to new, cloud-based technologies that provide never-before-possible capabilities. And the earliest adopters are often reaping the greatest rewards as they manifest new experiences, distinguish themselves from competitors, and meaningfully deliver on the promises of their brands.
At Amperity, we’ve leveraged the capabilities inherent to the cloud to provide a uniquely scalable and intelligent Customer Data Platform. Historically, brands that wanted to manage their customer data well had to make the difficult choice between sophistication or scale. Amperity enables best-in-class identity resolution across hundreds of millions of records. This is only possible using a system that’s truly built for the cloud.