The new normal – Cloud & developer enablement
BY JAN WIERSMA
According to AWS CTO Werner Vogels “Cloud is now the new normal.”
Where the first day keynote at AWS’s ReInvent 2015 conference was all about enabling companies to migrate their current services to the cloud, the second day keynote by Vogels was all about the ‘new normal’ – developer enablement.
With new services like AWS Snowball , AWS Database Migration Service and AWS Schema Conversion Tool , AWS tries to smoothen the migration path from old on-premise infrastructure & application deployments, to using AWS’s Infrastructure As A Service offering (EC2, RDS, VPC, S3, ..).
While these new services help companies to move to a consumption model for compute, storage and networking, it is still very infrastructure focused. Design decisions around (virtual)network layout, load balancers and the build & management of the operating systems (Windows/Linux) are still the customer’s responsibility.
Needing to still deal with all these elements, holds developers back from moving fast as they go from idea to the launch of a new service. It slows the creation of real value to the company down.
In the real ‘new normal’ world, the developer is enabled to deploy a new service by building & releasing something fast, without needing to worry about the infrastructure behind it. By stitching external managed capabilities/services together in a smart way the developer can move even faster.
Where in the past a developer would try to speed releases up by code-reuse with, for example, software libraries, the availability of developer ready services like a fully managed message queuing service (AWS SQS) or a push messaging service (AWS SNS) have enabled developers to move even faster without worrying about the manageability of the solution.
Those of us who have seen the journey from mainframe systems to client-server models, have also witnessed the struggles to build scalable & reliable systems while not trying to block fast software changes and deployments. Werner Vogels seemed very aware of this when he wrote this 2003 thesis “Scalable Cluster Technologies for Mission-Critical Enterprise Computing” with focus on scalable systems, without neglecting the developer needs.
Not only AWS is aiming for developer enablement, but Microsoft Azure and Google App Engine’s new features share the same end goal. Companies like Pivotal (with Cloud Foundry) and Redhat (with OpenShift) have also aimed at building platforms for developer enablement by abstracting the infrastructure elements away.
During the ReInvent 2015 keynote, Vogels focused on 6 laws that provide guiding principles to Cloud architects in the new cloud world;
- Lucas Critique – “It is naive to try to predict the effects of a change entirely on the basis of relationships observed in historical data” – We should focus more on real-time streaming data. Machine learning and predictive analytics are key.
- Galls Law – “A complex system that works is invariably found to have evolved from simple system that worked. A complex system designed from scratch never works and cannot be patched to make work. You have to start over with a working simple system” – It is okay that architecture continues to change over time. Start small and don’t try to boil the ocean.
- Law of Demeter – “Each unit should have only limited knowledge about other units. Only talk to friends, don’t talk to strangers” – This is all about micro services architecture and decoupling in to small capabilities.
- Occam’s Razor – “The one with the fewest assumptions should be selected” – use the KISS principle.
- Reed’s Law – “The utility of large networks scales exponentially with the size of the network” – Focus on the effects of IoT and how to deal with it, as the ability to scale will be key to the success.
- The Gestalt Principle – “The whole is greater than the sum of its parts.” – The ecosystem of partners.
All these laws and principles provide a clear message that you cannot be successful by bringing the old ways of thinking & designing to the cloud.
It is clear that ‘the cloud’ is slowly moving beyond the delivery of basic IT infrastructure elements, to help companies move quicker from idea to real business value. This is done by adopting the right mind-set, guiding principles and combining that with services that provide developer enablement.