Open Source & Cloud Native: Why should Your Business Care?
Over the last few years, several new companies disrupted established businesses from a software centric model. Some examples are Amazon, Netflix, Uber, and AirBnB. These companies were able to disrupt these industries by leveraging the agility and speed of changes that software can deliver. Today software is at the core of business strategy and at the center of software is open source technology. This software-centric approach taken by businesses is referred to as digital transformation.
But why do businesses need digital transformation? The first reason is around the technology innovation and speed of adoption that a community of developers can deliver in open source. The second reason is around the power of community support and contribution quality. The quality of the code and the rigorous review of the code ensures reliability and production readiness. Another reason is the transparency and openness of the community: Pull Requests can be submitted easily, and acceptance and issues are visible. These reasons have led to the emergence of open source being central to your company’s business strategy.
This current transformation is similar to the automation and orchestration transformation of the initial cloud computing effort roughly 8 years ago. Back in those days, The buzz and market interest in cloud computing was not accepted by traditional hosting and telecommunications companies. On the other side, a retail company understood that their business needed agility and rapid delivery of software to accomplish the goals that the business vision had before them. This was one of the first examples of software disruption as this retail company that 8 years later is larger than all the hosting, telecommunication, and cloud service providers combined. How did this happen? It’s quite simple; they paid attention to one simple rule: “application architecture and programmability are critical to agility and enable the business applications and services to differentiate from the competition”. The business application requirements are defined in terms of agile software development, infrastructure as code (IaaS) and automated interfaces through Application Programmable Interfaces (APIs).
To differentiate your business services, companies need to differentiate at the build, deploy, and run aspects of their software development lifecycle.
However, this cloud transformation has not been enough to unlock the business agility, primarily because while it accomplishes infrastructure as code and automation, it’s only at the infrastructure layer and this layer is becoming commodity. To differentiate your business services, companies need to differentiate at the build, deploy, and run aspects of their software development lifecycle. The impact of digital disruption is taking a toll on larger, waterfall, process heavy businesses. Open source software (OSS) and the pace of change that it allows a developer to innovate and optimize their capabilities more than ever before. In addition, the move to mobile first and platform independent development practices cause businesses to rethink their development frameworks. I’m convinced that this, more than anything else has lead Cloud Native architectures to the forefront. Cloud Native is defined as the software architecture framework that consist of containers, Distributed Orchestration and Management, Micro-services Architecture.
There are several examples in recent publications about the adoption in the enterprise space. "ING Group has said it uses Docker to update 1,400 different applications a day; Goldman Sachs uses Docker to build and deploy the software it runs internally.” As another example, Capital One stated: “Docker figures very prominently in our journey into microservices. It will take many years, but it is inevitable because containers will be pervasive in everything we do. But we start from a base, and we started embracing VMware in the early 2000s. Docker is more easy to embrace in the public cloud right now, but we have the ability to deploy Docker in our own datacenters. But we are not trying to get rid of the hypervisor or getting VMware out of the equation in the foreseeable future. We are big supporters of Docker, but you have to look at where it is in terms of its evolution. I don’t know a single enterprise that would completely bet their future in 2015 on Docker. For instance, there are security enhancements that are needed, and we are working very closely with the Docker community to make sure that happens.”
Who are the users of this architectural style? Today, there are three primary users and use cases. The primary users are IT administrators, Cloud Native developers, and Data Scientists.
• IT administrators are your traditional IT organizations that support the business. They are responsible for creating the infrastructure and supporting the business. Their primary concerns are security, monitoring, governance, supporting the business transition to DevOps, Operational Support Systems, and Business Support Systems.
• Cloud native developers are primarily concerned with continuous delivery, mobile first development, microservices, and support for multiple languages/frameworks.
• Data Scientists are mostly concerned with streaming data, unstructured data, multiple data sources, and machine learning.
The three use cases of interest today are:
1. Containers as a Service (CaaS) – IT infrastructure deployed and managed by IT (IT DevOps). In this use case, the microservices components are individually configured, optimized, and hardened to meet the IT requirements.
2. Developers who want to focus on the business application and service development only (Devs). In this use case, the developers do not want to install or integrate services, they just want to develop the application code and deploy to any location or service the business chooses to consume.
3. Developers who want to develop no stack (or all aspects from the infrastructure to the services) (Dev DevOps). In this use case, the developers want access to the underlying services and APIs in order to optimize their code.