Where is my server? This is the joke that I always hear from a colleague every time we talk about serverless. But all kidding aside, I believe that this is what most people think about when the serverless topic comes up, and this leads me to wonder if we all really understand the concept and the technologies that enable it.
In this article, I will try to provide some answers about what serverless is, and touch on some technologies behind the buzzword. In addition, I will introduce OpenShift Serverless, along with its features, and discuss why it should be considered as the preferred platform for your serverless workloads.
To understand OpenShift Serverless better, go to this article for an OpenShift Serverless demo.
What is Serverless:
Serverless computing as we know it is a concept where you can build and run an application without needing a server, hence the quote “where is my server?”
As per CNCF definition, It describes a finer-grained deployment model where applications, bundled as one or more functions, are uploaded to a platform and then executed, scaled, and billed in response to the exact demand needed at that moment.
But serverless computing does not mean that you really don’t need servers and other components like networking, firewall and storage to host and run your applications. Serverless computing still needs an operations team to maintain and manage the servers and networking components and to perform provisioning, maintenance, updates, scaling, and capacity planning.
Instead, serverless computing provides a platform that is capable of abstracting the operations requirement so the consumers of the platform - especially the developers - can focus on writing business critical applications while the operations team focus on business critical tasks.
Furthermore, serverless is actually a combination of Function as a Service (FaaS) and Backend as a Service (BaaS). FaaS, is simply event driven computing, using simple code created by a developer that can be deployed without depending on the implementation of related parts, while BaaS is defined as an API based service to provide infrastructure that can autoscale.
Serverless Offerings:
Looking at the major public cloud providers, all of them have their own version of serverless offerings and the options keep growing over time. This information is based on the following survey
AWS Lambda: AWS Lambda was GA in 2015 and is the overwhelming top offering in terms of usage as per the Serverless community survey. AWS Lambda supports JavaScript, Go, Python, Ruby, Java, and C#. Lambda functions can be triggered by AWS services like S3 buckets, HTTP requests from API Gateway, record changes in DynamoDB tables, messages arriving on SNS topics, and Kinesis streams.
Azure Functions: Azure Functions was GA in 2016 and is the second most popular serverless offering. Azure Functions support JavaScript, C#, Python, PHP, Scripting tools. Azure functions can be triggered by Azure services like Azure blob storage notifications, CosmoDB, HTTP requests, scheduled events and events from event hubs.
Google Cloud Functions: Google Cloud Functions was GA in 2017 and is the third most popular serverless offerings. Google Cloud Functions has the least language support which include JavaScript, Go and Python for now and can be triggered by Cloud storage bucket notifications, HTTP requests, Cloud events and Firebase events.
IBM Cloud Functions: GA in 2016 - IBM Cloud functions supports JS, Go, Python, Ruby, Java, C# and can be triggered by HTTP requests, messages from Apache Kafka or Message Hub topics, changes in Cloudant noSQL DB tables, scheduled events, virtually any type of external system, provided an integration has been created for it.
OpenShift Serverless:
So what is OpenShift Serverless and why should you consider it as your next platform for your serverless workloads?
OpenShift Serverless is based on the Knative project and supports almost any containerized application as it is designed to utilize many of the baseline features of OpenShift. Beyond auto-scaling for HTTP requests, you can trigger serverless containers from a variety of event sources and receive events such as Kafka messages, file upload to storage, timers for recurring jobs, and 100+ event sources like Salesforce, ServiceNow, email, etc, and is powered by Camel-K.
Unlike the serverless offerings by the major public clouds and similar, OpenShift serverless removes the lock-in concerns while enjoying the features developed by the open source community.
In addition, when you think about Serverless, you need to have an application that can startup quickly, respond quickly that requires low memory and small disk size. Quarkus is an ideal framework for this use case. Quarkus is a full-stack, Kubernetes-native Java framework made for Java virtual machines (JVMs) and native compilation, optimizing Java specifically for containers and enabling it to become an effective platform for serverless, cloud, and Kubernetes environments. More information about Quarkus can be found here.
OpenShift Serverless provides you a comprehensive serverless platform that enables speed and agility with low resource footprint. In short, OpenShift Serverless provides more than just the serverless primitives because all of OpenShift features inherent to the platform are automatically inherited, such as deploying new application features or revisions, performing canary, A/B or blue-green testing with gradual traffic rollout can be done easily.
Using OpenShift Serverless, developers will enjoy a simplified developer experience to deploy applications/code on serverless containers, abstracting infrastructure to focus on developing code that matters. This makes hybrid cloud readiness automatically attainable as well because you can run OpenShift on premise or on any public cloud. Most importantly with the use of operators, you can build loosely coupled and distributed applications which can then connect with a variety of built-in or third-party event sources or connectors.
Conclusion:
The Serveless space is rapidly evolving. This means that the serverless capabilities will likely change and evolve with the growing innovations from the open source. To make sure you benefit from this rapid, open source innovation and to avoid lock-in, one should consider looking at OpenShift Serverless as the platform of choice for serverless applications.
With OpenShift and the immutable architecture that it brings to the table, one can attain a serverless implementation that can handle more complex orchestration and integration patterns combined with some level of state management. Essentially, serverless will just be another application since most enterprises will want to be running a combination of serverless and non-serverless workloads.
References:
- https://www.martinfowler.com/articles/serverless.html
- https://medium.com/r/?url=https%3A%2F%2Fgithub.com%2Fjeremydaly%2Fserverless-community-survey-2020
- https://www.openshift.com/learn/topics/serverless
- https://quarkus.io/
- https://www.oreilly.com/radar/an-introduction-to-immutable-infrastructure/
- https://camel.apache.org/camel-k/latest/index.htm
- https://knative.dev/
저자 소개
유사한 검색 결과
채널별 검색
오토메이션
기술, 팀, 인프라를 위한 IT 자동화 최신 동향
인공지능
고객이 어디서나 AI 워크로드를 실행할 수 있도록 지원하는 플랫폼 업데이트
오픈 하이브리드 클라우드
하이브리드 클라우드로 더욱 유연한 미래를 구축하는 방법을 알아보세요
보안
환경과 기술 전반에 걸쳐 리스크를 감소하는 방법에 대한 최신 정보
엣지 컴퓨팅
엣지에서의 운영을 단순화하는 플랫폼 업데이트
인프라
세계적으로 인정받은 기업용 Linux 플랫폼에 대한 최신 정보
애플리케이션
복잡한 애플리케이션에 대한 솔루션 더 보기
오리지널 쇼
엔터프라이즈 기술 분야의 제작자와 리더가 전하는 흥미로운 스토리
제품
- Red Hat Enterprise Linux
- Red Hat OpenShift Enterprise
- Red Hat Ansible Automation Platform
- 클라우드 서비스
- 모든 제품 보기
툴
체험, 구매 & 영업
커뮤니케이션
Red Hat 소개
Red Hat은 Linux, 클라우드, 컨테이너, 쿠버네티스 등을 포함한 글로벌 엔터프라이즈 오픈소스 솔루션 공급업체입니다. Red Hat은 코어 데이터센터에서 네트워크 엣지에 이르기까지 다양한 플랫폼과 환경에서 기업의 업무 편의성을 높여 주는 강화된 기능의 솔루션을 제공합니다.