X : What about Amazon S3, isn't that a serverless environment?
Me : Nope, it's a web service for storage. It can used as an event source and storage of state by a serverless environment such as Lambda. It might even in the future be partially built upon a serverless environment.
X : What do you mean by code execution?
Me : Really? Ok, you are solely concerned about writing and executing code. There is no concept of machines, of operating systems or the mechanics of distribution or scaling of. Just code, not servers / VMs / containers etc.
X : What do you mean by event driven?
Me : The initiation and execution of the code is caused by some event for example the calling of an API or the storage of a file. The code is not running and listening for some input but instead is initiated and executed by the event.
X : What do you mean by stateless?
Me : Really? Environment in which the code runs is constructed in response to event, code is then executed, and environment deconstructed. No information can be passed between each function call by virtue of the environment it is running in.
X : What about containers?
Me : Underlying machinery (invisible subsystem) that may or may not be used. Future serverless environments will be encoded at the chip level. So, as far as serverless goes then containers is ... meh? might be used? who cares other than the provider?
X: Is OpenShift serverless?
Me : See Openstack. It's closer but falls down in four key areas - event driven, utility based, stateless, code execution environment. Given there are only four areas that matter with serverless, you can pretty much say .. no.
X : AWS Lambda is bootstrapped and executed within linux containers.
Me : Yep, and those containers run on physical machines powered by electricity. This does not mean my local nuclear power plant is an example of a serverless environment. These are all lower order components.
X : Serverless is just a marketing term.
Me : Yes and No. It has meaning as the name we give to an event driven, utility based, stateless, code execution environment but yes, desperate marketing and thought leaders are helping confuse things - see the history of serverless image
X : Are you concerned about serverless lock-in?
Me : If I was one of those companies that was concerned about lock-in with cloud and waited until I had no choice and incurred extortionate costs (due to demand for skills) then I might be concerned over making the same mistake.
... of course, I am assuming that people both :-
1) remember the costs caused by waiting to adopt cloud or building their own eye watering expensive private efforts
2) want to remember i.e. they're not incentivised to go spend oodles and oodles of cash on lost causes.
... in practice, there'll probably end up being a very lucrative market of "serverless servers" (serverless on a box) with lots of analysts claiming it is the future, launch parties galore and decade or two later hordes of company CFOs sobbing "why oh why" - see private cloud.
X : What if a public cloud provider is using OpenStack Qinling, backed by a Magnum K8s cluster, having Aodh and Zaqar enabled to trigger alarms based on events?
Me : Many components can be used to build a serverless environment. Your question now is ...
... to put this into context, my company built the first serverless environment in 2005. It is a field I know reasonably well. Would I today try to compete with AWS or MSFT in this space? Yes, if my company name is Google or Alibaba. No, if it's not.
... what you need to understand is how AWS and others play the game. If you read into basic ecosystem models e.g. ILC - blog.gardeviance.org/2014/03/unders… ... you will quickly discover that you're not competing against AWS Lambda but the entire ecosystem that's building on Lambda.
e.g. if AWS lambda had 20,000 outside developers building on it ... you need to think of this as "Amazon has a free R&D department of 20,000 finding new patterns" plus all the resources that AWS is throwing at Lambda. You don't stand a hope unless you're like Alibaba.
... hence you either just adopt it, build on top and look to build an adaptive organisation (hint, try to be "green" at all the doctrine that matters, see table) OR you build a time machine, go back about a decade and start working from there.
Stateless doesn't mean it has to be torn down between each event. Microservices can be stateless and restartable, they need to be if they're to be any use.
They can be torn down but then there's the cost of recreating them.
But yes it's nothing to do with serverless.
Aka a function that serves a purpose/s. I typically use Lambda for some of my legacy CRON jobs via time based events. An example of a utility would be a function that stops/starts servers daily to save money when they're not in use.