I’ve heard from many customers and partners that they want an optimized and flexible architecture for their new or future infrastructure, and I would like to voice my concerns about this point of view when looking at new datacenter architectures.
Let’s start by going back a bit to the 2nd platform that has served us so well for the last 15 years. The start of that platform consisted of somewhat standardized servers running an application or two, and the last few years we’ve been loading those servers with several virtualized apps per server. With the adaption of virtualization, we also saw an explosion of the number of apps that were actually running inside a datacenter. This led us to have an infrastructure that needed to be very flexible as it would have to handle a large variety of applications on the same hardware, be it server, network or storage.
The continued centralization of applications have brought us a lot of ease of use and management, and many times when looking at new infrastructure for new apps we’re counting on the old ways of centralizing and virtualizing applications will be the answer to everything. However, using centralized virtualization clusters, centralized storage, and core networking, might not work for many of the new types of applications you want to deploy.
Now, when were moving into the 3rd platform, many of the new apps are optimized for scale-out architectures and are therefore also demanding an optimized infrastructure. When being scale-out, it means that apps can use resources where available, not necessarily just the centralized resources. Your application might span from the DMZ, to internal, to a cloud provider, with improved performance and availability. Here’s where the problem comes in. If you’re used to having an very efficient and flexible (not optimized) infrastructure for a large variety of applications, it might be hard to see how you would go about to enjoy optimal performance on your new apps. Hint: it’s probably not by using the old ways.
Let’s start with centralization. It’s been great. Awesome even. Having a hundred VMs running on one centralized server, that is a great feat of technology. I’m sure we’ll continue enjoying the benefits of centralization for many of our internal applications for years to come, but many of the new app technologies or parts thereof will not, cannot or should not be centralized. Some examples I see include content distribution, both internal and external, data analysis, and our old friend cloud computing. Most of these include some way of scaling out.
“But we can just put it in here with all the other stuff!”
No. Stop. Don’t.
Some parts of it might be a great fit. All of it? Probably not. Running data analysis on the exact same hardware where you’re running your Exchange mailboxes and CRM systems might not be such a good idea (unless your data set is very small). I’m not saying you’ll abandon your centralized systems, absolutely not, I’m just saying you’ll use them in a different way. And I’m not saying that you wouldn’t benefit from building your own cloud environment, absolutely not, just that everything in a private cloud might not run in a centralized environment.
One thing that’s not mentioned enough IMHO when looking at new applications and the 3rd platform, is the Hot Edge and Cold Core, and it’s really important. Your centralized, flexible systems will essentially become the Cold Core where we can and will store data for a longer period of time at a lower cost. The new Hot Edge will be where you will put customer-facing (internal and external) applications that are on an optimized platform. Everyone is connecting to it through different networks, devices and places. You want to have your latest code running there, you want the latest features, and the fastest most optimized hardware. This is where you will see the most benefits of not having a centralized flexible solution. With an optimized Hot Edge, you can more easily control and predict the application performance, instead of trying to shuffle around other virtualized applications that have nothing to do with the delivery of data from that app.
Picture the gymnast on top and imagine your infrastructure is as flexible as that, which would be great, right? It could do pretty much anything you needed it to do, and stretch and bend in many ways. But it might not be as efficient as others when trying to run fast or do really heavy lifting. That’s where the optimized infrastructure come in. So when you talk about wanting an optimized flexible infrastructure, you’re most likely talking about an infrastructure for the 2nd platform applications. Some of them will probably be exchanged with a 3rd platform variant during the next 3-5 years, so I would suggest you look for a flexible infrastructure for those (which you can then also use as a Cold Core later on), and focus your vision on infrastructure that will be optimized for your new 3rd platform applications.