Learning Library

← Back to Library

Evolution of Computing to Serverless

Key Points

  • Serverless means developers no longer manage or provision servers; the cloud provider abstracts that infrastructure so they can focus solely on code and business logic.
  • Deployment models have progressed from bare‑metal (full OS installation and patching) to virtual machines (still requiring environment setup), then containers (packaging code and dependencies but adding scaling complexity), and finally to serverless, which minimizes stack implementation and maximizes business‑logic focus.
  • Bare‑metal and virtual‑machine approaches demand extensive manual configuration and idle‑time management, while containers simplify deployment by encapsulating dependencies yet introduce challenges in orchestrating large‑scale workloads.
  • In the serverless model, Functions as a Service (FaaS) provides a compute platform where individual functions—single units of code—are executed in response to events, eliminating the need to manage underlying servers.
  • The event‑driven architecture of serverless platforms lets any trigger (e.g., a user clicking a button) invoke a function, enabling developers to build reactive applications using the cloud provider’s ecosystem of services.

Full Transcript

# Evolution of Computing to Serverless **Source:** [https://www.youtube.com/watch?v=vxJobGtqKVM](https://www.youtube.com/watch?v=vxJobGtqKVM) **Duration:** 00:06:41 ## Summary - Serverless means developers no longer manage or provision servers; the cloud provider abstracts that infrastructure so they can focus solely on code and business logic. - Deployment models have progressed from bare‑metal (full OS installation and patching) to virtual machines (still requiring environment setup), then containers (packaging code and dependencies but adding scaling complexity), and finally to serverless, which minimizes stack implementation and maximizes business‑logic focus. - Bare‑metal and virtual‑machine approaches demand extensive manual configuration and idle‑time management, while containers simplify deployment by encapsulating dependencies yet introduce challenges in orchestrating large‑scale workloads. - In the serverless model, Functions as a Service (FaaS) provides a compute platform where individual functions—single units of code—are executed in response to events, eliminating the need to manage underlying servers. - The event‑driven architecture of serverless platforms lets any trigger (e.g., a user clicking a button) invoke a function, enabling developers to build reactive applications using the cloud provider’s ecosystem of services. ## Sections - [00:00:00](https://www.youtube.com/watch?v=vxJobGtqKVM&t=0s) **Evolution from Bare Metal to Serverless** - Ashher Syed explains how serverless frees developers from managing physical and virtual infrastructure, tracing the shift from bare‑metal servers through virtual machines to fully managed cloud‑native deployment. - [00:03:07](https://www.youtube.com/watch?v=vxJobGtqKVM&t=187s) **Event‑Driven Serverless Function Overview** - The speaker explains how serverless Function‑as‑a‑Service relies on event‑driven architecture, outlines its limits such as timeouts and latency, illustrates with an image‑resize use case, and highlights the pay‑per‑execution benefit. - [00:06:16](https://www.youtube.com/watch?v=vxJobGtqKVM&t=376s) **Fault‑Tolerant Event‑Driven Architecture** - The speaker highlights that all services in an event‑driven architecture are fault‑tolerant, making the overall application highly available, and invites viewers to explore IBM Cloud with a free account. ## Full Transcript
0:00Hi, I'm Ashher Syed with the IBM Cloud team. 0:02Today, I'm going to discuss serverless, but first, 0:04let's define what serverless actually means. 0:07Does it mean that there are no servers involved? 0:12The answer is no, obviously. 0:14What it means is that you're not responsible for managing and provisioning of these servers, 0:20it's sort of outsourced to the cloud provider whereas you are as a developer focused 0:25on writing code or business logic. 0:28And our deployment models have been evolving over the years, so let me walk you 0:32through how we have gone to where we are on the serverless and the journey behind that. 0:37So, on the Y axis you see increasing business focus on logic, that means you're concerned more 0:44about writing code and less about the underlying infrastructure. 0:49And on the X axis, you're seeing decreasing stack implementation. 0:52What that means is you are in less control of what goes behind the scenes 0:57when you deploy your code or write your code. 1:00So, first we start off at bare metal. 1:04Bare metal you were managing and configuring these servers and the environment 1:09that you want to deploy your code on. 1:11That means you are responsible for installing OS, all the patching and everything. 1:17So, quite time consuming to figure out that environment. 1:20Next, we move to virtual machines. 1:24Resource optimized from the bare metal where you were handling idle times much better. 1:29But at the same time, you're still responsible for setting up your environment; again, 1:34installing O/S and patching and everything. 1:37Down the road, we move to containers. 1:40Actually, Docker popularized this idea. 1:46Essentially what you're doing is you are packaging your deployment code, application code 1:50and all of its dependencies into a single container which could run 1:55on any underlying infrastructure. 1:57It simplified a lot of things from the deployment point of view but at the same time, 2:02some challenges with containers could be when you scale up your apps, 2:06management of containers becomes a challenge. 2:08At any given time, your application code is at least running on one server, 2:12so you still have some idle time. 2:13Then we move to serverless which is where we are now. 2:19And in this, like I said earlier, in this model you are sort of abstracting from all 2:25of the underlying infrastructure and you're focused mainly on writing business logic. 2:30Let's look at how this serverless actually works. 2:33All of the major cloud providers have this Functions as a Service. 2:37This is essentially a compute platform for serverless where you run your functions -- 2:44functions are, just again, single unit of deployment of your code, 2:50you could say it like a file processing as an example -- 2:53which is run by events which I called by events. 2:56Events are anything, think of it as a click of button the user has, and it creates an event 3:04which calls a function and then you run your code. 3:07And in this serverless Function as a Service environment you have event driven architecture 3:13which is, again, an ecosystem provided by cloud provider which has different services running 3:20like database, IoT depending on how you want to build your app. 3:24So, those, all of them are emitting those events and you build your app, 3:28you look for those events and program that into your code. 3:32And again, like any other platform, some of the drawbacks of serverless would be timeouts, 3:38you know, these are stateless containers, [they] spin off for a little bit 3:42of time and are deleted afterwards. 3:44So, if your execution code does not finish in that time, your app could fail. 3:50And then, you can also run into some latency issues depending 3:53on how time sensitive you want your app. 3:56So, let me illustrate that into an example here. 4:00So, for example, a user comes here on a client side and uploads an image 4:06and press a button to submit, it creates an event. 4:11So, an event calls a function or invokes a function which does the resizing 4:16of that image and it stores into storage. 4:19So, this is just a very over simplified example of how Function as a Service works 4:27and how you build your apps in that environment, serverless environment. 4:30So, let's look at some of the benefits. 4:35You pay for execution only. 4:38What that means is there's no idle time. 4:40So, like in previous cases where you were always maintaining a capacity or you're provisioning 4:50for different scenarios that you always had something running. 4:53Here, when your function is running, that's the only time you are paying for that 4:57and its very cost efficient and functions usually run at 100 milliseconds of times. 5:01So, auto scalables. 5:05That's a responsibility taken by a cloud provider again. 5:10When you architect your apps, you're not provisioning for any of that, 5:14you are less concerned with the resources. 5:18Faster time to market. 5:20Again, since you're not responsible for any of the management and deployment of any 5:27of the underlying infrastructure, you can build your apps faster, 5:30solve customer problems and bring them to market. 5:35Polyglot environment. 5:36So, like others, I mean, Function as a Service allows you, you can write any language 5:44and frameworks that you are comfortable with. 5:46A lot of cloud providers have multiple languages that they support, so it could be very helpful 5:53in cases where you are comfortable with one language, you want to write in that. 5:56So, that's totally okay in the serverless environment. 5:59Last but not the least is all of the serverless apps are highly available. 6:05What that means is that cloud provider takes care of all the fault tolerance and the MZRs -- 6:13Multi Zone Regions -- that they build to make sure that your app is always up and running. 6:17And all the services that you're using in event driven architecture are also fault tolerant, 6:22so your app overall is always highly available. 6:26Thank you for watching the video. 6:28If you have any questions, please drop us a line below. 6:31If you want to see more videos like this in the future, please like and subscribe. 6:35And don't forget, you can always get started on the cloud at no cost 6:38by signing up for a free IBM Cloud account.