Editor's note: Welcome to .NETRocks Conversations, excerpts from the .NET Rocks! weekly Internet audio talk show. Hosts Richard Campbell and Carl
Franklin chat with a wide variety of .NET developer experts. This month's excerpt is from show 669, with David Nielsen, founder and principal
consultant of Platform D, founder of CloudCamp, and author of the book
PayPal Hacks. Richard and Carl chat with David about the state of cloud software development.
Carl Franklin:
Platform D, the website, is this your consulting company?
David Nielsen:
Yeah. I'm basically a one-man show.
CF:
And you're all about the cloud.
DN:
That's right. I've been doing web services for the last seven years, and then after that I got my computing kicked into high gear. I've been working in
the cloud base for the past three years.
CF:
When our listeners think of cloud, they think of Amazon, they think of Azure. What's the state of these various cloud offerings?
DN:
Well, I think of those as well. There's a bunch of others, and it seems like everybody has got a cloud these days.
CF:
Is this [cloud] a really overused term these days?
DN:
I think it actually might become the new term, the one that we use instead of a thing like the Internet or the web. When you're talking about
applications and using applications on the web, I think we're just talking about the cloud.
CF:
So it's really the Internet and web for business developers on the Internet.
DN:
Yeah, kind of. The cloud implies somebody else is managing things for you. So when you're talking about using a service, they think we're talking about
the cloud. Then when we talk about looking up information, we might talk about look it up on the web. So cloud is kind of like a subset of the web in a
way. I think that's one way to look at it.
CF:
Yeah, OK. So you've done some work for PayPal. Was that cloud-based work, or was that just straight-up web development?
DN:
No. Actually I was PayPal's first web API evangelist. So back then using web APIs as a part of your website was pretty minimal. Those weren't seen a
lot. You ran the risk of having your website go down if the other companies didn't respond or something. Then in 2006, when that became kind of the
rage, everyone was realizing that there's so much value in using somebody else's data or service that it was worth the risk, and that's when we kind of
started kicking off this whole cloud computing space where you realize somebody else can provide something pretty critical to your website.
Richard Campbell:
Especially when you talk about a payment system, where I don't make money if this doesn't work.
DN:
Right. But with payments, you really have no other choice because it's not like you build your own payment processors.
RC:
I guess that's true.
DN:
You kind of have to do it. There are different types of data that I think just had to do, like real-time code, stuff like that. So you have to rely on
somebody else to some degree. With PayPal, our payments were the ones that you had to do real time, so it was pretty important.
As far as my perspective on cloud computing, I think the most important thing to consider is that cloud computing as a term really became interesting
after 2006 when Amazon EC2 and Salesforce.com both went into beta. It's because those are the first few services that successfully [let] you put your
code on their servers, where they manage it as a cloud service.
CF:
Right.
RC:
Now I get that for Amazon. But talk about Salesforce, because I thought it was just a CRM product online.
DN:
Well, that's what they're most famous for, but they also have this thing called Force.com, which is
a place where you put-originally you put snippets of code up there, little bits of Apex code, which kind of looks like Java a little bit. You could
copy and paste there or write and paste that from the website, and then they would manage it, and it would talk to their databases-so that [it] was
like running your code on their platform. And then over time, they open it up. You could run it on any website, not just pass it through Salesforce's
CRM database. So you can have your own panel of database, you could create your own system or maybe a financial system or maybe a little pane of tools
to help pay commissions for your salespeople. You can do anything you wanted really up there as long as it could be written in a scripting language.
RC:
I'm with you. Most people think of Salesforce.com for the CRM product, they thought they just sort of jumped on the cloud bandwagon. If you don't know
about Force.com-this is a full-out cloud development environment now.
DN:
Yeah, it is. I mean, they were first to do platform as a service, quite frankly. There were other companies before them, but [those companies] all
pretty much failed or...they got lost. But Force.com, they did it well, and they kind of got overshadowed when EC2 launched because with EC2 you could
put your own operating system up there. You could do it with Windows or Linux and do whatever you want, whereas Force.com, as platform as a service,
you get a lot of nice things like automatic scalability, but you are limited to that proprietary environment.
RC:
So you don't call EC2 platform as a service. Is it infrastructure as a service?
DN:
Yeah. It's an infrastructure as a service. Amazon Web Services does have some platform as a service features like simple VB and trying to call Elastic
MapReduce, which is kind of a service. But for the most part, it's infrastructure as a service.
RC:
And then we got Azure.
DN:
That's kind of like right between the two because in a way, it's not really infrastructure as a service and it's not really...I mean, it is platform as
a service, but it also is operating system as a service. You get Windows, all managed for you. You don't have to worry about updates or caches or
virus, or that kind of stuff. They kind of take care of all that for you, and then on top of that they manage a platform, sort of a platform of
services, for you as well, if you want. So [Azure is] kind of both. Just like operating system as a service, you can use it on PHP, Java, C++, but I
think most people think of it as a platform as a service as if you're writing in .NET.
RC:
So which one is better?