You can listen to the podcast and read the show notes here.
Michael Smith: Welcome back to The Box interviews. I'm here with Ray Camden, developer advocate for IBM, and a long time fan of ColdFusion, and he's speaking on, what are you speaking on, Ray? It sounded like a very interesting topic about OpenWhisk.
Raymond Camden: Yeah. So I'm speaking about Serverless with Apache OpenWhisk, which is a project that IBM is heavily involved with, as well.
Michael Smith: And for those who haven't understood what OpenWhisk is, because it sounds like, from what I've read, it could do a number of things. Some of which are incredibly powerful. Ray, what exactly is it?
Raymond Camden: Let me back up and talk about Serverless first, because I kind of avoided the topic for a while myself, because I knew the name was kind of stupid, and even more so than My Cloud, you know, Serverless, I knew, was the exact opposite, unless they were running on imaginary numbers, or something, but the best way to think of it is function as a service.
So I spent many, many years doing Adserver work with ColdFusion. Now I'm doing more Node.js, but typically, I set up an application server, and then, I write my business logic in there to do whatever. I get time, get temperature, et cetera, and it's all running in context of an Adserver. Now the Serverless is that you literally just write your particular function, and let us worry about the infrastructure. Let us worry about how you access it, making it available, and all that. So to me, that's incredibly compelling because a lot of times, you know, I end up writing code to say, “Whenever quest comes in, run this business logic.” Now, I can skip all that and literally just write a small file that does that one thing that I need for my business logic.
So I like that a lot. I look at my history of building websites of ColdFusion, and I see a lot of cases where I could have, and not all the time, but I could have replaced it with something a little bit simpler, like Serverless.
Michael Smith: And what's an example of one of those? Just to make it more concrete.
Raymond Camden: Sure. So one of the things I did a lot with ColdFusion, and I imagine the same would apply for PHP as well, which is talking to a backend table. So select star from cats, to get a list of rows from a DB. Select star from cats where IV equals five, et cetera. So in that case, literally, like all ColdFusion is doing is saying, “Oh, I'm just going to hand this off to my sequel, get the result and bounce it back.” With Serverless, I can do the same thing, and skip having the entire application server, and literally just have a pretty minimal amount of code just to handle the DB interaction. Sending form contents to an email box is also something that's much more nicer written as a small atomic function.
Michael Smith: So this would be called from Node.js or some other, where would we be calling these functions from?
Michael Smith: So any, no worries. So any language lets you call a REST service, you could call that function from, whether that's ColdFusion, or any other language you use?
Raymond Camden: Absolutely, and also, so these small atomic functions can call each other. So you can have building blocks. You know, this does one small thing and uploads the data. This one does something else with data, and I can combine these two together, then, to do whatever fancy business logic I need.
Michael Smith: And you're not loading an application server to make that call. It's like an ultra lightweight, you called it Serverless, which you didn't quite like that name, but, you know how when you fire up many application servers, they take quite a few seconds to wake up.
Raymond Camden: Yeah. So there are definitely [crosstalk 00:04:59] server running in this case, but I'm not managing it, which is the nice thing. That thing is like, you know, you may think, “Oh, wow. Every time I call that API, it's going to fire up a Node.js server, and Node being fast, every time, that's kind of dumb.” Well, most Serverless platforms like OpenWhisk will be smart enough to say, “I'm going to start this up, and I'm going to keep it running for a minute or so just to see if you keep hitting it.” That way, you don't have a ton of management, start, stop, et cetera, type of thing going on.
Michael Smith: So it's kind of like on demand application, a server, that's providing this, but you don't have to, you know, set it up, or anything. It spins itself up, and it's almost, I think caching is the wrong word here, but it's similar to a cache thing in that the function is available for a certain amount of time to speed things up.
Raymond Camden: Exactly.
Michael Smith: Now, I think you mentioned earlier, or maybe I read it on one of your blog articles on OpenWhisk, that there's some really powerful functionality in there, and I think you even mentioned that Watson thing, that can kind of get smart answers to medical questions, or solve Jeopardy questions instantly. Tell us a bit more about that.
Raymond Camden: Sure. So under our platform a server solution called Bluemix. We expose a lot of the Watson stuff via APIs, and there's much more stuff there than I've ever played with, but, like a visual recognition of things, text analysis, looking at personality the person or anything, or even the text, and all of these services are available as REST APIs, so isn't that the-
Michael Smith: So let's just stop that a moment. That means in my ColdFusion app, or whatever language I'm programming in I can call REST from, I can give it an image, and it will do image recognition of who the person is? I could give them text from an email, or a website, and they'll tell me, “This person is really attentive to detail.” Or they are friendly, or you should reply to them a certain way?
Raymond Camden: Yeah. Yeah. Yes, definitely, and that's not even a Serverless feature, that's just a feature of Bluemix. So like, via a vanilla ColdFusion application, you see a HTTP to call Watson services, work on that, and then you use it in your ColdFusion app. I'm not talking about that, but that's definitely something that you could do.
Michael Smith: And is Watson really an expensive thing for someone to play around with?
Raymond Camden: So everything on Bluemix, and there's a bundle of services. Everything has a free tier. So you definitely have a place where you can try it out and see if it makes sense. I've never paid for it, but in every service, you know, we obviously, we tell you. You know, for $5 you get so many calls a month. For a $100 you get so many more calls. I kind of casually look at it, so [crosstalk 00:08:08]
Michael Smith: So you can start off-
Raymond Camden: I was going to say I kind of casually look at them, and it seems like it's affordable to me, but I'll be honest, and say that I'm not the one paying for it myself.
Michael Smith: So, you know, if someone wanted to play around with it, you don't have to put a million dollars down to get access to this engine, you can just pay as you go by the query.
Raymond Camden: Absolutely. Yeah, and specifically, for OpenWhisk, when I work with it, I run it on Bluemix, because that makes it super easy to play, and test. That is all free. If you go into production, then you start looking at cost, but you could definitely experiment, and you know, write your code. If you don't like that, you could run Apache OpenWhisk on your own servers, and just not worry about it at all.
Michael Smith: So let's move into The Box conference, because I know you go to a lot of conferences, and you know, why are you going to enter the box? Tell us more about that.
Raymond Camden: Well, I really like the people behind it. You know, I'm not doing a lot of ColdFusion much anymore, and my regular blog readers know that, but when I look at the types of things that Orbis is doing, it's extremely impressive. There's pretty much two companies that I think of, who are, like, boosting ColdFusion in amazing ways. Orbis is one of them, and Fusion Reactor is the other.
Michael Smith: Yeah. I just spoke with David to Integral, who make Fusion Reactor, and he does a lot to help out the ColdFusion, both with their product, and supporting conferences, like “Into the Box” or “Objective” for CFL. So neat.
So tell us a bit about, you know, you say you, obviously you don't do ColdFusion in your day job, because you're IBM evangelist, and IBM doesn't really do ColdFusion, but you still do it for fun in your own time, is that true?
Raymond Camden: Not so much anymore. I have been more focused on Node.js. I kind of feel like I've learned as much ColdFusion as I can. Definitely not to imply that I know everything. I would never say that, but you know, I spent many years working with Apache PhoneGap as well, and I'm kind of in the same with that. I feel like I've kicked the wheels, and experimented enough with it, that, you know, if I don't try something new, I'll go crazy. So the last couple of years, it's been API, more Node.js, static websites, and now Serverless.
Michael Smith: Cool, and do you use, you know, Lucee CFML, when you do [Taj 00:11:21] ColdFusion?
Raymond Camden: Absolutely. I use that, and I use CommandBox for [Mortis 00:11:24] that the Box server start, and I may have munched up that command a bit, but just being able to have someone sitting there, like a broken CFM file. Save it to a folder, and then, fire up the Lucee server from the command line with CommandBox, it has just been, like, night and day, like, if I were to go back full time doing ColdFusion work, that is the tool that I would want to use.
Michael Smith: And both of those are open source, and no of cost to use. So a great way if you need to play around with stuff.
Raymond Camden: Mm-hmm (affirmative).
Michael Smith: Cool. Well, looking forward to hearing more about OpenWhisk, and all the amazing things, are you going to have a demo in this talk of yours? Because I think people would be blown away if they saw what it can do.
Raymond Camden: Absolutely.
Michael Smith: That was a nod there, I think, from Ray.
Raymond Camden: Yes.
Michael Smith: Well, thanks so much for sharing with us, Ray.
Raymond Camden: Yeah, no problem at all. Thank you for having me.