Following is an expanded (longer) version of Pete Sonsini's recent guest post on TechCrunch, highlighting several companies that are (or could be) playing an early role in the shift to automated, intelligent applications.
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 solution. Hundreds of new APIs are sprouting up monthly, as tracked on Programmable Web—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. Though it is still early days for automation or machine-learning being deployed in networking, we have seen initial adoption in video stream optimization.
For example, Conviva measures the performance of millions of different video streams across millions of different routes to an end-viewer, centrally crunches the data with Hadoop to determine optimal routing paths, and then automatically adjusts the flow of video packets in real-time to ensure a seamless, high quality viewing experience. The company has essentially turned the entire web into an application-aware network for video—a feat that can only be achieved by aggregating data from across the data plane and then analyzing it with a centralized network intelligence.
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 that capitalizes on 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.
Two companies that stand to benefit from the intelligence and automation enabled by a decoupled architecture are New Relic, with its central cloud service for application monitoring, and Stormpath, with its central cloud service for user authentication and identity management. New Relic is already gathering tons of data about application performance and presenting it to devops, but what if it automatically analyzed and acted on that data to make improvements to application performance? (This is purely speculation; I am not an investor in the company). With Stormpath, the intelligence potential is a bit more complicated but equally intriguing. Stormpath holds the user authentication policies for all applications that utilize the service, which can be easily customized by the developer. However, processing those rules (in this case, ensuring the right features are enabled for a user once Stormpath has validated their role) is left up to the application, commonly achieved through an enforcement framework such as Apache Shiro or Spring Security. The next step is to learn from the applications being serviced and make that learning actionable. For example, what if Stormpath could learn to identify suspicious IP addresses based on all the authentication requests from applications utilizing its cloud service, and then tell these applications to automatically block or flag login attempts from questionable IP addresses? The timing lines up nicely because machine-learning techniques are actually becoming much more available and consumable by developers, as my partner Greg Papadopoulos recently noted.
One area already leveraging the intelligence enabled by a disaggregated architecture to provide a leap forward in value delivered to customers is security applications, 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.