Randy Heffner gives us some insight into how Software as a Service differs from Infrastructure as a Service cloud offerings. Heffner also summarizes some conclusions and recommendations around combing SOA and cloud computing for economic advantage. This is the final part of Forrester Analyst Randy Heffner's 2011 SOA in Action VTS keynote from June of 2011. The text below represents a partial transcript of the video.
SOA is a wonderful way to connect between cloud and on-premise environments. Cross-environment patterns can determine whether the cloud-based deployment is financially advantageous. You have to understand what’s going where. Where’s your data moving - any kind of data movement.
Dedicated Internet access is a major hidden factor here. You have to understand how any individual scenario changes the actual network that you need to buy. You may need to deploy that application in another way, or maybe you can stop paying for that network. So you’ve got to closely evaluate the network boundaries, how SOA is being used between these, but any other type of network data transfer as well.
It’s not all about Infrastructure as a Service (IaaS), there are some other things going on out there like Software as a Service (SaaS). So what we’re going to do is outsource our CRM environment to Salesforce.com. We’ve had some of the same data patterns that we’ve had before, and we got some new data patterns, and data transfer patterns that we have to model and factor into the cost of our cloud environment.
The costing models are different in the Salesforce world. So what do these numbers do? Let’s first understand a little bit about Saleforces model, in that Salesforce limits the number of API calls -- read SOA calls -- in and out of their environment.
300 thousand API calls a day compares to the fact that we’re only allowed a thousand API calls a day. That’s all that SF enterprise will allow us based on the hundred users that we have. So what do we do? We actually can’t run our application in the way it was architected.
So, here are our options. It basically boils down to two. We can say we’ll just upgrade, or re-architect my system -- change it in some way so that rather than all these messages going back and forth -- aggregate multiple updates into one API call. Here, it wasn’t just a matter of how much it would cost, it may actually affect the architecture of my solution, and what SOA services I’m using.
More resources on SOA, cloud computing and IT outsourcing
Read about whether or not IT outsourcing is worth the risk
Learn about the latest IT outsourcing trends
Get the inside scoop on outsourcing SOA
So, what does this all tell us? Let’s do some conclusions and recommendations. What you hear mostly, particularly with IaaS in the industry hype, is about service utilization. Only run the servers that you’re paying for. The real issue underneath is network cost. That tends to drive the financial equations in a much quicker and heavier way.
You really need to understand the network cost and what you need to provision in your environment between your environment and the cloud. So you have to know what’s between the cloud and other endpoints. What’s between the cloud and your own backhand environment?
The pricing and usage models of these service providers can have surprising characteristics and effects on both cost and how you have to architect your solution. So the only way you really know is to model a specific scenario and understand scenario by scenario, business usage by business usage, app by app, how the cloud effects the economics of a particular environment.
So what do you do? Well, start an analysis of any individual scenario with some type of resource equalization. In other words, if I have a server in my environment, what does that equate to in the cloud environment? Maybe the only way you can get there is to run some of your own benchmarks with your own applications.
If it runs in one server here [on-premise] -- how many servers does that take, and how many machine instances what type does it take in the cloud? What are your minimum and maximum usage boundaries if you pretty much have to keep the whole thing going 24 hours a day? There are different economics.
Understand how messages flow, understand how network capacity flows. How many messages there are, how big they are and how much bandwidth you need to support them. And then monitoring support models as well.
Start and understand these sorts of things, then you can, based on knowing your vendors pricing models and the gotchas like the Salesforce API limitations, knowing those things in great detail, knowing your own costs and operation models in great detail, now you can begin to put together an equation where you understand what the real cost dynamics are.
Be sure to include and verify any licensing requirements for any software you have. Don’t overlook network bandwidth costs, particularly in IaaS scenarios. And understand how much internet access you need to buy for any solution.
Understand these things with the cloud, and then you’ll be able to understand whether and how you want to use SOA to help you get more flexibility by moving bits of your business around in the cloud or around to outsource providers, or around where ever you might move it around - then you’ll get a good scenario in how you combine SOA and cloud computing for economic advantage.