Listen to my podcast with John Michelsen, Chief Architect and Co-Founder of iTKO. John has over 15 years of experience as a technical leader at all organizational levels, and in this podcast we discuss the approach today's enterprise should take to Cloud Computing.
Listen to or download the 10:14 minute podcast below:
PS: Why do some people still claim that the cloud is not ready for business?
JM: Well, there's a good reason but the cloud is possible to use in a variety of scenarios and some of those scenarios I think it's accurate to say are still not ready for use. For example, large enterprises with significant security or performance issues are not going to be able to go to a public cloud anytime soon. There's a lot of SLA details to work out. There's a lot of issues around how to move portions of but not entire applications from inside the firewall, to outside the firewalls, to public clouds. So I think there's an example where we do have some scenario where the cloud isn't quite ready for that particular scenario but there are plenty of use cases that are ready for the picking.
There's a lot of pre-production utilization of cloud that's already starting to happen that we've seen really exciting for customers, it gives them a lot of the great benefit, and it's a nice natural evolution of their infrastructure and their application architectures. So inasmuch as you look at the particular reason you might need a cloud you might find its ready for you or not depending on your use.
Now, a lot of people are talking about cloud apps, exactly how are cloud apps different from cloud computing?
Sure. The basic difference is that cloud computing is the whole infrastructure itself of if you think about a cloud generally as a Platform-as-a-Service or Infrastructure-as-a-Service. Cloud computing is the whole notion of leveraging this utility, if you will, of these on-demand platforms like IAAS or platform AAS. All that's great and that's cloud computing. Cloud applications are those applications that have been architected to take advantage of these cloud-computing platforms. So all a cloud app really is, is these same exact nest of heterogeneous technology application you currently deal with but it's now distributed onto what I call anonymous infrastructure; that's the whole cloud-computing platform.
So while today a typical enterprise application is destined for a very specific data center on very specific machines and its very specific cluster, a cloud application is that same enterprise app just reconfigured to be deployable onto a variety of infrastructures. Some of it might be on-premises, some might be off-premises, some might be off-premises, some might be well-known server names in the cluster but others might be leveraging cloud infrastructure. So it's the additional level of let's say loose couplings.
We've gone through an application architectures, a whole of generations around lead nor loosely coupling application components but we've deployed them onto very specific hardware platforms. Well now, we're doing the loose coupling that we did at the application component level, we're doing the same thing now at the deployment or the infrastructure level and that makes it a cloud app because there's some things to think about when you take that application from the typical enterprise style deployment to the cloud computing.
Good to know, now you can kind of figure that most enterprises now have heard about the cloud and they're probably asking themselves should I try to replicate and host everything on the cloud. Is that reasonable?
Well Peter, the short answer is we're going to have to take a little more of thinking, iterative piece at a time kind of approach. The first is just to derisk the whole situation. If we were to try to even leverage non-cloud, very well understood technology, very mature technology and try to do something wholesale, we would likely fail because of the risk associated with that much change all at one time. So I certainly wouldn't recommend, hey, this cloud thing sounds pretty good. The financials look pretty good, let's go wholesale and do everything tomorrow. Let's not do that.
I think we've tried as an industry to do that a few times and haven't we learned our lesson yet? But there is I think very appropriate to do is to start taking that little hanging fruit. Let's do a prioritization. Let's see where the risk would be the least, or let's see where the benefit would be the greatest and have a high degree of focus on that one initiative. Let's go and leverage, let's do some base finding, measuring outcome and then let's see what that did for us. And if it did something special, then I think we should start to loosen up on this aversion a little bit and let's start to figure out how to do this right and get going.
So I would certainly not recommend a big bang approach but I do recommend getting started. It is a great time to get started because while cloud technology is not ten year old and very mature, it's certainly mature enough to start identifying opportunities where you can make a difference and to start taking advantage of those.
Interesting. Now exactly what do you mean by 'Dev & Test' cloud or pre-production cloud and why is it so important?
Well, we think that this is the right first place to start for most enterprises. If you think about production applications I n the cloud you have to deal with those security issues, those performance issues much more and the whole challenge is around getting operationalizing of cloud application for production use. And of course, that's a pretty high-risk thing to do and most of the public cloud infrastructure these days is not willing to commit to SLAs. The old people haven't learned how to deal with cloud infrastructure yet in the operations world so there's some pretty significant risk to production use of the cloud. But pre-production, which is typically like development or test type utilization of a cloud is a really appropriate first place to start and here's a perfect example of what's let's not go big bang, let's take the low hanging fruit here.
For every data center that you have and in a large enterprise its typically two or three data centers with a DR data center as well. That two or three labs we'll say is small in comparison to the dozens of development or test labs that exist within enterprises. And in fact, the demand for increase number of labs and increase amount of computing capacity within the lab is actually lower in production than it is in pre-production infrastructure.
So let's leverage this on-demand computing capacity in pre-production use because its lower risk, it's got lower security concerns, it's got less impact to the business to the operational execution of the business if we have some troubles, and we can get good at cloud pre-production. And of course, eventually we'll look at production but this is why we're making such a big distinction between pre-production use of the cloud, which we typically will follow development cloud versus the production use of a cloud, which is obviously, where you deploy a completed application to make it available to end users.
Now how can customers benefit from this early stage involvement in design development and test in the cloud?
So the best benefit here is around the utilization of two pieces of very important technology. And of course, the first is the whole need for a virtual lab and management. When we have a whole collection of virtual machine in a catalog that are made available for rapid provisioning of development clouds, we get a great benefit here. We get the rapid provisioning of infrastructure that in many cases our customers say it takes weeks to do now and that's a great benefit that you can more rapidly provision these virtual machines. There's another critical component here and that is that there are many systems that are not going to be available for virtual machines in the cloud.
In fact, your legacy systems, your third party application, large databases that you need to access. These are systems that are not going to be available in the cloud. In fact, the way we typically describe it is these are wires hanging out of your cloud where you might be provisioning this on-demand series of virtual machines which is great but still constrained from a capacity standpoint by these wires that attach out to shared infrastructure that is not going to be in the cloud anytime soon or ever. For that, you need what we call virtual services, this is technology we provide. So when you marry virtual machines and virtual services for the cloud, you have a completely isolated infrastructure that is in fact practically (indiscernible) capacity, at least from the user's perspective.
And if you go hybrid where you have private cloud infrastructure on-premises, and you have the ability to as it will bleed over into a public cloud to catch the spikes of capacity that you might encounter from time to time. You in fact do have for all intense and purposes have an unlimited capacity that is very inexpensive to provide and have a very nice economic model where its pay for use, and the peak you don't have to buy as CapEx, you pay for those as OpEx as you go. So this is we think the best way to get benefit today from development and test clouds or from cloud computing in general. It is marry virtual machines with virtual services, provision them in a private development cloud. And if you have significant peaks of computing needs go off private cloud to a public cloud hybrid, this makes a lot of sense we think.