Serverless architecture is hot topic in today’s market in cloud computing. Its provide a great feature in Cloud computing. After coming IaaS (Infrastructure as a Server), PaaS (Platform as a Service) and SaaS (Software as a Service) architecture concept, this is new concept FaaS (Function as a Service). We can call FaaS as Serverless Architecture. It is providing great feasibility to developer for freely doing their code and innovation as well as company to save money as there is not require to take care of Production Server activity like load balancing, high traffic or highly available at all, Company need to pay per click or we can say payment depend on traffic on website. It’s very profitable for small and mid-level level companies.
Serverless architecture is described as that Cloud Server Provider will take care of all the server related activity and you need to only focus about coding. Cloud Server Provider provides you a container to deploy your code and press the execute button. Rest of works will be take care of Providers. In logical term we can say, FaaS is sited between PaaS and SaaS. Amazon Lembda and Micosoft Azure Function, Google Cloud Functions, Microsoft Azure Functions, IBM OpenWhisk with an open source implementation, Iron.io, and Webtask are providing this kind of Service.
serverless computing supplements DevOps because it frees up developers and IT operations staff from having to set up and tune systems. Serverless code is typically triggered by specific events, meaning users need only pay for virtual machines used once the code has been triggered.
Before understanding about FaaS, we should know services which are provided in Cloud Computing as below:
Now one more Service has been introduced by Cloud Computing as FaaS (Function as a Service)
FaaS (Function as a Service)
It is a cloud platform model that can deliver the true promises of cloud computing: infrastructure abstraction, scalability, ease of consumption and value pricing.
FaaS is about running back end code without man aging your own server systems or your own server applications. Deploy your applications as independent functions, that respond to events, charge you only when they run, and scale automatically.
- Scalability: This is one of the best feature in FaaS. Its provides scalability in a serverless environment, the ability to scale an application to meet user demand is handled by the platform hosting the code. If an application has 10,000 or 10 million users, it doesn’t matter. That eliminates operational concerns about pre-provisioning or over-provisioning servers.
- Cost benefits: Traditional runtime models have processes that constantly run, and the user pays for them even when they’re not being utilized. A serverless environment can be more cost effective because you’re not paying a fixed cost per instance deployed, but instead for the time those instances are actually doing work.
- Event-Driven: The fundamental difference between PaaS and Serverless Computing lies in the way the code is executed. Developers write code that is autonomous and independent of other components and services. Each component is invoked only when an event takes place. By connecting the dots, developers can define the sequence in which the invocation happens at runtime. For example, developers can easily change the logic of sending a push notification to a device instead of a text message without changing a single line of code. All they got to do is to change the flow of events.
- Support Multiple Language: Serverless Computing is the ability to support multiple runtimes, languages, and frameworks. Developers can choose their own languages to implement the fine-grained functionality. Independently deployable units will be connected at runtime to deliver the required workflow. That means developers are not restricted to one language or runtime to implement the logic
Where to Apply
- Timer-based processing
- Azure service event processing
- SaaS event processing
- Serverless web application architectures (WebHook URL)
- Serverless mobile back ends
- Real-time stream processing (IoT)
- Real-time bot messaging (Chatbox)
How does it help organization?
- Put your infrastructure in the hands of experts
- Liberate your developers.
- Avoid being locked into a monolithic provider.
- Cost Effective
- Vendor control
- Multitenancy Problems
- Vendor lock-in
- Does not support long running process.
If you are going to use Amazon Lembda, currently it has below limitation:
- The code must be less than 250 MB uncompressed, or 75 MB compressed
- It must run for no more than five minutes
- It can access no more than 512 MB of ephemeral storage