Hyper-scale cloud-based companies like Google, Facebook, and Amazon are certainly the early pioneers of the modern data center. A modern data center focuses on applications and data — not the infrastructure. This technological shift arises from the increased focus today’s businesses have on customer experience. Digitally transforming businesses are increasingly looking to build similar types of cloud native applications that take advantage of data. The industry is simplifying these technologies and making them available to IT organizations of any size.
Cloud Native Applications
So what do cloud native applications look like? They enable digital services that can’t go down for any reason — systems have to be built from the ground up. Previously, by serving customers in physical stores, businesses had total control over the time and the volume of transactions being processed in any given 24-hour period. But now, digital services enable consumers to initiate transactions from anywhere and at any time with merely a tap on their smartphone.
That’s why cloud native applications should delight customers with frequent releases that deliver new features. However, to do so requires a change in the application architecture itself. IT organizations are beginning to break down their monolithic applications into loosely-coupled micro-services in order to independently develop, release, and scale. Development teams are building and packaging applications with software containers. This is a complete turnaround from the days in which underlying infrastructure and IT operations toolkits had to go through tremendous overhauling in order to enable DevOps and continuous integration/continuous delivery (CI/CD) workflows.
In the digital world, applications can go viral quickly. Pokemon Go! taught us — as its popularity skyrocketed — that one must scale with demand. These applications also have to run everywhere, whether it’s on a smartphone or laptop, in a few servers in the data center, or in the public cloud.
In short, cloud native architecture requires unprecedented levels of infrastructure portability, elastic scalability, and software automation.
Bringing New Technologies Mainstream
Cloud native application development requires a new set of tools, methodologies, and underlying IT infrastructure. In the past, such tools and methodologies were available exclusively to only certain companies, but that is changing. With the availability of both open source and commercial software, cloud native architecture has been possible for mainstream adoption by enterprises.
Traditional IT vendors are embracing and, in many cases, driving this change to help accelerate the development of data-driven cloud native applications. Among those are two community-led open source projects, REX-Ray and libStorage, that are designed to tie together the two most valuable digital resources: applications and data. REX-Ray, for example, can enable containers to consume storage seamlessly from both private storage clouds and public storage clouds alike.
As organizations are embracing modern application architecture and ways of developing software, the infrastructure that runs them is evolving too. Infrastructure is becoming software-defined, providing the hardware abstraction, elastic scalability, and automation necessary for the software-driven world. With software-defined storage and networking solutions, enterprises are unlocking the agility, cost efficiency, and IT organizational productivity that were once exclusive to web-scale companies.
The Industry Continues to Evolve
It’s still early for cloud native applications in enterprises, but there is a lot of work showcasing the transition, as evidenced by the growing use of containers and orchestration software. As enterprises begin adopting cloud native architectures, the entire ecosystem has begun to address enterprise needs. For example, in comparing cloud-based apps, the risk of a missed update from a friend on a social media platform is not as severe as losing a transaction on a cloud native business platform for payroll or loan payments.
One main topic of discussion about the state of today’s cloud native ecosystem is how data is handled. Cloud native applications have initially been developed as “stateless,” meaning they are not designed to keep data between executions. By limiting the cloud native architectural aspects, like micro-services and containers, to stateless applications, the community addressed the urgent need to be able to develop and deploy software faster. But without taking advantage of data — which is a valuable ingredient in the process of gaining insights and shaping consumer experience — cloud native applications were constrained.
The community has realized that the cloud native architecture has to include stateful applications too. Two fundamental enablers for building data-driven cloud native applications include container storage orchestration engines and software-defined storage solutions.
Container storage orchestrators enable storage to be consumed as a resource within software containers. It has become essential for these tools to support the container storage interface (CSI), an industry-wide specification to ensure interoperability between multiple container orchestrators and multiple storage providers.
Software-defined storage delivers the data management capabilities required for automating infrastructure provisioning and safely persisting and protecting enterprise data. With the exponential growth of the data and the digitization that every business is going through, software-based infrastructure solutions promise to deliver a simple, efficient, and scalable deployment model that can be easily integrated into the cloud native ecosystem. The infrastructure operations team can continue to fulfill enterprise needs like hardware fault tolerance, security, and reliability.
Running stateful services like databases inside software containers allows IT teams to rapidly deploy databases, along with the convenience of dynamically rescheduling and scaling them as technological or business conditions change.
The idea that technologies are born out of the needs of an individual organization going mainstream isn’t new. Many of the modern hotel and airline booking applications widely in use today actually came from a meeting between IBM and American Airlines in the 1950s. Over the last couple of decades, open source has been a successful model in accelerating wide adoption of technology beyond traditional organizational boundaries.
Organizations will continue to adopt cloud native thinking across both applications and infrastructure now that the cloud is a known operating model and not just a place for applications to operate. Software containers, orchestrators, and software-defined infrastructure solutions are enabling businesses of varying sizes to adopt cloud native strategies, propelling it ever closer to mainstream use across nearly every industry.