Successful companies like Ford and Netflix have deployed more than just innovative consumer service models; they also use cutting-edge cloud native IT architecture to quickly adapt to changing market demands.
Cloud Native is an architectural principal that helps IT developers write applications in a way that that maximizes the use of cloud environments where tight coupling of applications to underlying infrastructure is eliminated. Combined with the right Platform as a Service (PaaS) capabilities, this approach reduces your organization’s time to market, increases responsiveness to customer feedback and cuts operating costs—all the things today’s innovative companies thrive on.
Ford, for instance, is using cloud native architecture in a free app called FordPass that enables it to rapidly innovate and iterate on new applications and mobility solutions for consumers. Currently being piloted, FordPass lets customers access mobile parking and ride sharing services, lock and unlock their vehicles, and check out the company’s latest innovations.
Within EMC IT, we have implemented Pivotal Cloud Foundry PaaS to support cloud native architecture. With its self-service capabilities and scalability, our developers—armed with a new way of thinking about application design— have been able to shift into high gear to leverage the speed and agility of this flexible IT offering.
Why Cloud Foundry PaaS is different
Let’s look at why cloud native is necessary to maximize PaaS.
When IT infrastructure is provisioned through traditional IT as a Service, continuous availability is a key feature. The promise of ITaaS is that your server or virtual machine will be available 100 percent of the time. You depend on continuous uptime.
Pivotal Cloud Foundry (PCF) PaaS, however, functions differently. To achieve flexibility by decoupling the environment from physical infrastructure, it uses “containers” that have all the software to run requested components—server, compute, storage— in a single node. PaaS provides self-service capabilities to developers to consume services rather than infrastructure. If an application component fails, PaaS automatically creates another container. This self-healing property means users don’t have to care about traditional infrastructure or about nursing failed components back to health. PaaS provides an agnostic environment that can run anywhere. Developers can self-provision environments instantly that they can manage and control themselves. If a developer wants a data base service, he or she can just push a button.
However, the stateless nature of PCF PaaS—the fact that nodes die and new ones are created in the self-healing process rather than the traditional continuous uptime—means some of the old ways of writing applications are ineffective.
Embracing cloud native
That’s where cloud native comes in.
Cloud native has two major facets—a micro-service application development approach based on 12 established design factors and a platform that supports self-service, on-demand infrastructure.
First, developers need to create applications in smaller chunks called micro-services rather than following the traditional monolithic method of writing applications in one large block of code. There is a set of 12 factor design patterns that will guide you in the specifics of designing and writing cloud native applications, about which I will not get into detail in this blog but to which you can link for more information.
The bottom line is that using micro-services architecture allows developers to create smaller chunks of code within PaaS containers that can then be assembled into broader applications. Basically, micro-services architecture means you develop one function at a time around individual business capabilities that can be addressed independently and orchestrated later. These smaller services focus on doing a single task very well. They are highly decoupled and can scale independently. For example, if you are developing capabilities for a ‘shopping cart’, you create a micro-service for credit card validation, which later can be assembled with other parts of the overall application.
To maximize this micro-service approach, you need to choose a platform that enables the process. We use PCF PaaS because it has the potential to make the software build, test, deploy, and scale cycles significantly faster. It removes many of the hurdles involved in deploying software, enabling you to release software at will.
Within EMC IT, we recently leveraged micro-service architecture to accelerate the creation of MyService360, an on-line solution that gives EMC Support customers and partners easier and faster access to real-time service information. Unveiled at EMC World in May, it features a personalized dashboard that provides customers with a 360-degree view of their EMC environment and service experience.
Using the cloud native approach, architects developed the solution in smaller chunks of code by function—such as ‘case management’ or ‘service history’. The developers were able to make changes and updates to the solution every two weeks instead of having to wait a month or more in a traditional monolithic development process. MyService360 emerged as a highly successful EMC Global Services solution that has drawn enthusiastic praise from customers and industry experts.
Besides maximizing PCF PaaS for scalability of services, micro-service architecture improves productivity. Multiple development teams can work on different micro-services and assemble them to create a richer user experience. Developers who are new to a project don’t need to come up to speed on an overall application but can be productive on day one in tackling a micro-service. And developing apps in smaller pieces means aspects of the project can fail without having the whole thing fail, as it does with traditional approaches.
PCF PaaS offers tremendous flexibility, speed and cost efficiency for your IT application development needs. But it does require changing the way developers do their job. Cloud native holds the key to helping developers embrace this new tool to transcend the limits of traditional infrastructure and better keep pace with ever-changing business demands.