Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Cote's rule: If it ain’t broke, don’t cloud it

DZone's Guide to

Cote's rule: If it ain’t broke, don’t cloud it

· Cloud Zone ·
Free Resource

Discover a centralized approach to monitor your virtual infrastructure, on-premise IT environment, and cloud infrastructure – all on a single platform.

I took the title of this post from a recent blog entry by Michael Cote. Cloud enthusiasts (often people with limited operations experience) talk in grandiose terms of moving the entire data center to a public cloud. Cloud naysayers (often people with extensive operations experience) talk in detail about all the things you can't get in the cloud, like latency, lack of multi-cast, weaker security etc.


In general, cloud computing fits modern web architectures very well, by which I mean any app built to support a web browser client. These applications are "cloud-ready" and require little effort to move to a public or private cloud.


In general, any application not build to support a web browser client is going to be problematic to move into the cloud. These applications often rely on technologies that are not readily available in the cloud, such as multi-cast.

http://4.bp.blogspot.com/-vth82849Eok/TZtV98ZvSPI/AAAAAAAACmQ/I-JkWnrsMoY/s1600/aintbroke.jpg

The decision to cloud or not to cloud is not a binary decision made at the data center level. Instead, it is a more nuanced decision made at the app level.


Similarly, the decision to go public cloud or private cloud is a decision made at the app level.


At the margin, be governed by Cote's Rule of Cloud Migration: If it ain’t broke, don’t cloud it!

Learn how to auto-discover your containers and monitor their performance, capture Docker host and container metrics to allocate host resources, and provision containers.

Topics:

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}