My lovely wife has gone unscathed from blog posts for quite some time, but I think it’s time to bring her up to speed on some new technology. Over the last year, I’ve had the opportunity to work on some interesting projects at IBM that have yielded some good potential topics. In this instance, I wanted to explain the importance of having a standard cloud architecture.
Like many cloud service providers, IBM has realized that while every client would like a 100% customized solution, it’s not cost effective to do so. Instead we have taken a standardized approach to guide our clients into common deployment patterns, and then provide some customization on top of those base configurations to meet the specific needs that will of course vary.
To help illustrate this concept of a standardized cloud architecture, my analogy of choice is again, a car.
In many respects, designing and building an enterprise-class cloud is like designing and building a new vehicle. While car manufacturers could create every vehicle by hand and customize it to uniquely meet every driver’s request, that would introduce several problems. Let’s explore several of them and how they relate to developing a best-in-class cloud architecture.
1. Complete customization would be completely cost prohibitive. By standardizing on a common frame, body style, drivetrain, engine, etc., manufacturers are able to build cars much quicker and much more cost efficiently since they can implement standardized tooling, assembly lines, and scalable training to produce a large volume of vehicles. Similarly, developing a custom cloud solution would incur far more costs and likely would result in a costly situation where it wouldn’t make financial sense for clients to move workloads to the cloud.
2. Safety (i.e.: security) and reliability would go down dramatically. Would you feel comfortable driving a car 75 mph that had never been tested? I sure wouldn’t! Drawing a parallel conclusion, clients want to know that the cloud they choose to run their workloads is going to be secure and reliable enough to run their critical business workloads. When you hit the gas to cross an intersection, you know your car will accelerate. When clients spin up additional instances to handle a peak workload, they too want to know that the cloud will be there for them.
3. It makes sense to have several base offerings. Vehicle manufacturers have different models to address different needs. There are good reasons that everyone does not drive a minivan. A recent grad living in the heart of the city has no need for 7 seats and a power lift gate. A sports car won’t fit the needs of many 3 kid families. Similarly, cloud providers have different base offerings to address the differing needs of their customers. Some clients need the full control and performance offered by bare metal servers. Others want the flexibility and agility of a container service. Still others want to consume the capabilities that they need as a managed service. These major offerings allow both types of providers to focus their innovation on few focused items, so that they can actually make an impact.
4. It’s ok to tweak those base offerings to some degree. Manufacturers offer different trims within a model and the ability to make some modifications within a given. That dad driving the minivan to soccer might want the V6 Turbo-charged package, or he might not. He might pay extra for a DVD system with premium sound system, or he might not. Those smaller feature sets build on top of the base and help match a particular set of requirements within the constraints of an offering. Similarly, cloud providers allow some customization of their base offerings within a given set of approved constraints. Just as you could not buy a minivan with a V12, there are a fixed set of customizations you can make to your cloud environment. Standardized cloud architectures help define what options are tested and permitted to meet specific client needs.
As you can see, while cars and clouds have many differences, the principles that go into designing and architecting them have many similarities.
Do you have another way to explain common cloud architectures? Let me know @TalkToErik.