The infrastructure we use to host applications has a profound impact on development and business processes. It’s possible — if shortsighted — to think of the cloud as simply another way to deliver the infrastructure we’ve always used. To think like this is to regard a cloud server as equivalent to a dedicated server and a cloud platform as equivalent to traditional server hosting.
But retaining traditional organizational structures, deployment and testing methodologies, and product lifecycles misses the point of the cloud. To get the most from cloud infrastructure, developers, system administrators, and operations professionals must embrace the capabilities specific to cloud platforms.
Some in the industry are referring to this cloud-centered conception of application development and deployment as cloud native. What cloud native means depends on who you ask, but fundamentally it’s a way of accounting for the particular merits and capabilities of cloud platforms and approaching development and deployment with a mindset that moulds processes and workflows to suit the platform.
Leading contenders for “cloud native” development and deployment approaches include the use of containers, microservices, and dynamic resource management.
Containers tie together development and deployment workflows and can have a substantial impact on their efficiency. Containers are self-contained software environments that can be used across the lifecycle of an application. They provide a consistent and easily replicated environment for developer machines, testing and staging servers, and production servers.
Microservices foreground modular application design and work well with container-based workflows. Each microservice encapsulates a small piece of the functionality of a larger application. Microservices communicate via clearly defined interfaces. Providing the interface doesn’t change, the implementation details of each microservice are independent: infrastructure, programming languages, release schedules, and other aspects of development and deployment can be managed on a per microservice basis.
Finally, dynamic resource management takes advantage of a key feature of cloud platforms: the ability to programmatically and instantaneously deploy and scale cloud servers.
Building workflows that leverage these development and deployment technologies has clear advantages when coupled with cloud infrastructure, but it’s important to note they often don’t presuppose cloud infrastructure.
Containers and microservices can be deployed on bare metal hardware without losing any of the purported advantages. While it’s true to say that organizations benefit from a cloud native approach to application development, putting infrastructure choice ahead of the specific needs of the application is overly hasty.
Cloud is just one option among many for infrastructure hosting — and while cloud is a significant improvement in many areas, there are applications and services that work perfectly well, or even better, on bare metal hardware, particularly those where performance is of more importance than rapid scaling.
The takeaway is this: to make the most of the cloud, organizations should rethink development and deployment processes, but before deciding on public cloud, they should consider the relative merits of other infrastructure hosting modalities, including bare metal, private cloud, and hybrid clouds.
via Technology & Innovation Articles on Business 2 Community http://ift.tt/2ooKI94