The new way of the world for most web software development is the assembly of applications from cloud-based APIs. Developers are saving loads of time by pulling in various cloud services and focusing their attention on the novel business logic of their solutions.
Hundreds of new APIs are sprouting up monthly, as tracked on ProgrammableWeb. And as the very existence of a website dedicated to tracking APIs implies, application assembly has fundamentally changed software development. Yet as monumental as that is, it’s the tip of the iceberg when it comes to realizing the potential of a cloud service-based architecture. Distributing the logic within an application across numerous centralized cloud services will enable more automated, intelligent applications. And the timing couldn’t be better.
Interestingly, this separation is similar to how software defined networking (SDN) splits the components of a network into a “control” plane and “data” plane to enable more automated, intelligent networks. Just as an SDN controller can analyze data from the various nodes in a network and automatically change the behavior of a network to improve performance or security, a cloud service can analyze data across all the applications it powers and make changes to the applications to improve their behavior or performance.
In fact, a deeper look at SDN offers important clues about the benefits a decoupled architecture can provide for cloud applications. The control plane in SDN contains the intelligence responsible for defining the behavior of the network (the “rules”) while the data plane moves packets within the network according to these rules (the “processing”). Separating the “rules” of how network packets should be processed from the actual processing allows the feedback loop of measure, analyze, and modify that is critical for enabling automated, intelligent networks.
Cloud application architecture does bear some resemblance to SDN, where a centralized intelligent element (a cloud service) often plays the role of analyzing data from across numerous end nodes (in this case application instances) and modifying the behavior of those end nodes. Most startups haven’t exploited this because they have been able to deliver so much value to customers by simply offering a service or application with a modern web-based delivery model. That in and of itself adds enough of a value proposition to get off the ground.
However, as they mature, more and more of these companies will deploy intelligence and automation in their service. This will enable them to use the SDN qualities of their architecture to analyze data from all the applications powered by these services and then modify the application to improve performance or change the behavior of these applications.
One area already leveraging the intelligence enabled by a disaggregated architecture to provide a leap forward in value delivered to customers is security, where large-scale correlation analyses, machine learning, and other big-data techniques are utilized to determine if a threat is present. If a threat is detected, the data is shared across the network, alerting people of the threat. This is an intelligent cloud service at its best.
When I meet with startups offering cloud-based services, the discussion often leads to the tremendous value of the data they are gathering from all the applications that implement their service. But in order to benefit from this data, machine learning heuristics and other advanced analysis techniques will need to be applied so that action can be taken in real time to modify these applications. Centralized, intelligent cloud services will improve the functionality or performance of applications automatically based on the data they are seeing — not unlike Amazon making recommendations for you based on past purchases or ad-tech companies optimize retargeting. While a majority of cloud services startups today are creating a lot of value simply by delivering their service as an easy-to-use API, intelligence and automation is where the next large opportunity lies.