{"id":5911,"date":"2019-05-17T17:12:18","date_gmt":"2019-05-17T10:12:18","guid":{"rendered":"http:\/\/54.151.235.32\/?p=5911"},"modified":"2021-03-03T18:00:26","modified_gmt":"2021-03-03T11:00:26","slug":"cloud-serverless-co-ban","status":"publish","type":"post","link":"https:\/\/renovacloud.com\/en\/cloud-serverless-co-ban\/","title":{"rendered":"Cloud Serverless Basics"},"content":{"rendered":"<h3><b>Understanding Serverless<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">A basic understanding of\u00a0<\/span><b>serverless<\/b><span style=\"font-weight: 400;\">\u00a0cloud computing is becoming increasingly important as this technology has evolved and matured in recent years and has exploded in popularity. Some people are even saying we live in a \u201cpost-container\u201d world. No matter the hype, serverless computing is a useful technology that provides significant benefits to developers and organizations.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Where traditional virtualization provides hardware abstraction, and containers abstract the operating system, serverless computing abstracts the runtime environment. This means that developers no longer have to think about server resources when building and deploying applications, allowing them to focus on creating value rather than spending time on operations.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The diagram below depicts the consumer responsibility (and resulting abstractions) when using the Infrastructure as a Service (IaaS), Container as a Service (CaaS) and Functions as a Service (FaaS) cloud services models.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter  wp-image-5914\" src=\"http:\/\/renovacloud.com\/wp-content\/uploads\/2019\/05\/Picture2.png\" alt=\"\" width=\"751\" height=\"409\" \/>In its essence, serverless computing provides \u201cfunctions\u201d which provide data processing for your code using many different programming languages. You simply upload your code and it sits dormant until it needs to be executed. You pay for only what you use, and the functions can scale elastically as required.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">There is still a server processing the functions of course, however it is fully managed by the cloud service provider and is not visible to the consumer. Please note there are additional \u201cserverless\u201d computing offerings available other than functions, but this article focusses mainly on functions.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3><b>Benefits<\/b><\/h3>\n<p>The key benefits of serverless computing include:<\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">There are no servers to manage<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Fast instantiation of code<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Continuous scaling (elasticity)<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Pay only for what you use<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Completely dynamic (everything is automated)<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Services based (or functions based; ideal for microservices architectures)<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Dynamic access to cloud resources<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Use cases for serverless computing include performing real-time data processing for many types of applications, building scalable back-end services that are able to provide self-scaling, and to bind and choreograph systems into integration services, applications, and processes.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">It\u2019s key to understand that serverless computing is not a good fit for all use cases however. The best use cases usually include applications that are net new \u201ccloud-native\u201d architectures, which require elasticity, and that are based on services-oriented architectures such as microservices architectures.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Serverless computing is not so good for legacy applications that do not require elasticity, and that are based on monolithic components (not services-oriented). In some cases it may also be cost prohibitive, or there may be specific security or compliance issues to be considered.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">When serverless functions are offered as a service by a public cloud provider they are often known as Functions as a Service (FaaS). AWS Lambd is one of the most well-known offerings.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3><b>AWS Lambda<\/b><\/h3>\n<p><b>AWS Lambda<\/b><span style=\"font-weight: 400;\">\u00a0was one of the first serverless computing offerings in the public cloud space and has the largest user base today. Lambda natively supports Java, Go, PowerShell, Node.js, C#, Python, and Ruby code, and provides a Runtime API which allows you to use any additional programming languages to author your functions.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Each AWS Lambda function runs in its own isolated environment, with its own resources and file system view. Code is stored in Amazon S3 and is encrypted at rest. Though there is a default safety throttle for concurrently executing functions, you can in theory scale to any level.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Lambda executes in response to triggers from an event source. An event source is an AWS service or developer-created application that produces events that trigger an AWS Lambda function to run. For example, S3 can trigger Lambda to execute a function when an object is uploaded to an S3 bucket.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The image below depicts an object being uploaded to Amazon S3, which triggers a Lambda function to resize the images into various sizes for different devices, and then store the results:<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter  wp-image-5915\" src=\"http:\/\/renovacloud.com\/wp-content\/uploads\/2019\/05\/Picture3.png\" alt=\"\" width=\"778\" height=\"172\" \/>As mentioned previously, serverless functions are not the only form of serverless computing, AWS (and other providers) offer other managed services that deliver computing services without the need for the consumer to manage the underlying operating system. These include (amongst others):<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">AWS Fargate (containers)<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Amazon Simple Storage Service (S3)<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Amazon DynamoDB (NoSQL DB)<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Amazon API Gateway<\/span><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Understanding Serverless A basic understanding of\u00a0serverless\u00a0cloud computing is becoming increasingly important as this technology has evolved and matured in recent years and has exploded in popularity. Some people are even saying we live in a \u201cpost-container\u201d world. No matter the hype, serverless computing is a useful technology that provides significant benefits to developers and organizations. [&#8230;]\n","protected":false},"author":7,"featured_media":5913,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[144,162,28],"class_list":["post-5911","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-and-analytics","tag-serverless","tag-aws-lambda","tag-cloud-computing"],"_links":{"self":[{"href":"https:\/\/renovacloud.com\/en\/wp-json\/wp\/v2\/posts\/5911","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/renovacloud.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/renovacloud.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/renovacloud.com\/en\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/renovacloud.com\/en\/wp-json\/wp\/v2\/comments?post=5911"}],"version-history":[{"count":0,"href":"https:\/\/renovacloud.com\/en\/wp-json\/wp\/v2\/posts\/5911\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/renovacloud.com\/en\/wp-json\/wp\/v2\/media\/5913"}],"wp:attachment":[{"href":"https:\/\/renovacloud.com\/en\/wp-json\/wp\/v2\/media?parent=5911"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/renovacloud.com\/en\/wp-json\/wp\/v2\/categories?post=5911"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/renovacloud.com\/en\/wp-json\/wp\/v2\/tags?post=5911"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}