Applying KnowIT: Software Defined Everything, Everything as a Service and the Market
In this post I will show how the NoIT principle of KnowIT can inform the decisions that we take to realise the outcomes we desire in order to meet and exceed the expectations of our stakeholders when considering the ‘why’, ‘what’ and ‘how’ of delivering Everything as a Service (XaaS). I will also argue that implementing Software Defined Everything, while not fundamentally required to deliver XaaS, significantly reduces the lead time of delivery and provides a foundation for execution that maximises the value generated by XaaS for the enterprise and its stakeholders. Finally I’ll argue that a market place of services should be our ultimate aim in endeavouring to generate value for the enterprise.
For the purpose of this discussion I consider XaaS to not only encompass the various on demand delivery service classes (software, infrastructure, platforms, etc) but also any function within the enterprise for which a demand exists to consume that service via an API (most probably a secured RESTFul API).
Firstly let’s be clear as to why we would want to implement XaaS. IT that is delivered as a service is really an expression of the commoditization of IT. In an infamous article published in 2003 by the Harvard Business Review, Nicholas Carr drew parallels between the commoditization of IT and other technological innovations in industry such as electricity and rail roads. Over time these proprietary technologies become ubiquitous through standardisation and competition driven in the market by entrepreneurs responding to customer demand.
Going even further back in time John McCarthy speaking at the MIT Centennial in 1961 famously said:
If computers of the kind I have advocated become the computers of the future, then computing may someday be organized as a public utility just as the telephone system is a public utility… The computer utility could become the basis of a new and important industry.
When we commoditize a product or service we make it easy to obtain and consume. Commoditization standardises the product or service and by simplifying and automating the provisioning processes; increases the supply of the commodity, thus reducing its cost to the consumer. For anyone within the enterprise that is responsible for delivering IT, XaaS represents the most cost efficient approach for large scale and sustainable IT delivery.
The success of any IT department is ultimately a measure of the value it generates for the business in which it operates. Provisioning IT on demand and at the most cost efficient price point, against agreed service levels, is at the core of running a value generating IT department. Adopting XaaS as an IT strategy fosters the simplification, standardisation and automation that is necessary to commoditize IT. In summery the enterprise should embrace XaaS to:
- Reduce or eliminate capital expenditure
- Create a more predictable operational expenditure
- Offload the burden of regulatory and audit compliance to third party providers that specialise in meeting those requirements
- Easily scale IT (up or down) to meet demand
- Rapidly respond to customer demands for new products and services
- Reallocate resources from the cost of doing business (IT) to generating revenue (The Business)
Beyond the three demand delivery service classes (SaaS, IaaS and PaaS) there are a range of fundamental IT services that span the enterprise that include:
- Logging as a Service (LaaS) — All applications generate logs however, few IT departments realise the huge benefits of centrally managing these logs and offering consolidated views of logs from multiple, distributed application components. (On a personal note I think simple measure of the effectiveness of an IT department can be measured by how quickly an engineer can access the logs they need to support a distributed system, if it takes more and a few seconds then I simply don’t rate your system, however good you think it is, I know it costs too much to support).
- Monitoring as a Service (MaaS) — Variance in the type, quality and temporal availability (real time or historical) of metrics across applications within the enterprise is another highly significant source of inefficiency.
- Security as a Service (SECaaS) — Providing a standard set of authentication, authorisation and encryption services that can be consumed by all applications in the enterprise is a vast improvement in terms of quality and costs over maintaining disparate DIY security solutions.
- Regulation, Audit and Compliance as a Service (RACaaS) — Giving regulators, auditors and compliance teams the services they need to perform their routine tasks is an imperative for any business operating in heavily regulated sectors and jurisdictions. The cost of these activities, mostly ad-hoc and manual in nature, and the disruption they cause to the enterprise should not be underestimated.
The above are just a few examples of IT activities that can, at least to some extent, be delivered as enterprise services.
Now that we have established the ‘why’ and ‘what’ to deliver as XaaS, lets consider the ‘how’ and this is where the notion of Software Defined Everything plays a significant role in informing our decisions.
There is much hype attached to Software Defined Everything and arguably little of substance right now, however this is an area that demands the attention of IT decision makers, especially those that have embraced the KnowIT principles. If we are to follow the assertions of NoDev, NoOps and NoIT it should be of no surprise that we find they lead us away from hardware and appliance based solutions towards software and services.
By configuring our IT infrastructure in software that is easily accessible to engineering teams and application owners via APIs we:
- Maximise disintermediation in our operating model and create lean, highly efficient and specialised teams that can support their services far more effectively than teams who’s specialisations are delineated across technology boundaries and who have no special interest in the services deployed to the infrastructure.
- Encourage automation by exposing standardised API’s that any application owners can choose to consume to automate common, repetitive tasks.
- Reduce the time and effort required to affect configuration changes.
I want to round off this post by explaining why I included ‘the Market’ in the title of the post. As I’ve already alluded to above I firmly believe that the commoditization of IT is in large part the direct result of market dynamics, that is, entrepreneurs taking risks to predict future customer demands for technology. The grandeur of the market should not be lost on those of us that are responsible for meeting the demands of IT consumers within their enterprise however, rather than attempting to take on the role of the entrepreneur I would suggest that instead we endeavour to create markets for IT services within the enterprise.
As IT decision makers we have it in our power to build platforms upon which application teams can deploy their services, whatever they may be. We can’t and shouldn’t try to imagine what they will deploy nor which services will be demanded by their customers and which ones will fail. Beyond providing a range of fundamental services that maximise the number market participants (adoption of our platform) and the efficiency and security of their operations we would do well to let the market decide what is innovative and successful while we focus on enhancing the market itself.
The only way that has ever been discovered to have a lot of people cooperate together voluntarily is through the free market. And that’s why it’s so essential to preserving individual freedom.