{"id":2346,"date":"2020-11-09T14:19:18","date_gmt":"2020-11-09T07:19:18","guid":{"rendered":"http:\/\/international.binus.ac.id\/computer-science\/?p=2346"},"modified":"2020-11-09T14:59:54","modified_gmt":"2020-11-09T07:59:54","slug":"serverless-pay-as-you-go","status":"publish","type":"post","link":"https:\/\/international.binus.ac.id\/computer-science\/2020\/11\/09\/serverless-pay-as-you-go\/","title":{"rendered":"Serverless: \u201cPay as You Go\u201d"},"content":{"rendered":"<p>By: Dr. Maria Seraphina Astriani<\/p>\n<p>&nbsp;<\/p>\n<blockquote><p>Do you want to save money when your server is idle?<\/p>\n<p>Try SERVERLESS!<\/p>\n<p><strong>\u00a0<\/strong><\/p><\/blockquote>\n<p><strong>What is serverless computing?<\/strong><\/p>\n<p>Serverless computing enables developers to build applications faster by eliminating the need for them to manage infrastructure. With serverless applications, the cloud service provider automatically provisions, scales, and manages the infrastructure required to run the code [1].<\/p>\n<p>Serverless computing is an execution model for the cloud in which a cloud provider dynamically allocates\u2014and then <strong>charges the user for\u2014only the compute resources and storage needed to execute a particular piece of code<\/strong> or \u201cpay as you go\u201d [2]. If you do not use serverless, you still must pay for the unused resources.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Resources and Demand<\/strong><\/p>\n<p>Source: Salma REBAI, <em>Allocation et federation des ressources informatiques dans le Cloud<\/em> (Resource allocation in Cloud federation)<\/p>\n<p>&nbsp;<\/p>\n<p><strong>What is Function-as-a-Service?<\/strong><\/p>\n<p>Function-as-a-Service (FaaS) is a serverless way to execute modular pieces of code on the edge. FaaS lets developers write and update a piece of code on the fly, which can then be executed in response to an event, such as a user clicking on an element in a web application. This makes it easy to scale code and is a cost-efficient way to implement microservices [3].<\/p>\n<p>&nbsp;<\/p>\n<p>Using serverless code like FaaS, web developers can focus on writing application code, while the serverless provider takes care of server allocation and backend services.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Should I use serverless?<\/strong><\/p>\n<p>These are the four main reasons people switch to serverless [4]:<\/p>\n<ul>\n<li>it scales with demand automatically<\/li>\n<li>it significantly reduces server cost (70-90%), because you don\u2019t pay for idle<\/li>\n<li>it eliminates server maintenance<\/li>\n<li>it frees up developer resources to take on projects that directly drive business value (versus spending that time on maintenance)<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Reasons not to use serverless [5]:<\/p>\n<ul>\n<li>your workloads are constant<\/li>\n<li>you fear vendor lock-In<\/li>\n<li>you need advanced monitoring<\/li>\n<li>you have long-running functions<\/li>\n<li>you use an unsupported language<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><strong>Providers<\/strong><\/p>\n<p>There are many providers that already support serverless and these are some of them:<\/p>\n<ul>\n<li>Lambda (Amazon Web Services)<\/li>\n<li>Azure Functions (Microsoft)<\/li>\n<li>Google Cloud Functions (Google)<\/li>\n<li>IBM Cloud Functions (IBM)<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Please have a look on the following table to know which one is the most suitable for you [6]:<\/p>\n<table class=\"MsoNormalTable\" style=\"background: white;border-collapse: collapse;border: none\" border=\"1\" width=\"516\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr style=\"height: 46.5pt\">\n<td style=\"width: 85.1pt;border: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 46.5pt\" width=\"85\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><b><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Features<\/span><\/b><\/p>\n<\/td>\n<td style=\"width: 127.15pt;border: solid #CCCCCC 1.0pt;border-left: none;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 46.5pt\" width=\"127\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><b><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Amazon Web Services (AWS)<\/span><\/b><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border: solid #CCCCCC 1.0pt;border-left: none;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 46.5pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><b><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Microsoft<\/span><\/b><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border: solid #CCCCCC 1.0pt;border-left: none;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 46.5pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><b><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Google<\/span><\/b><\/p>\n<\/td>\n<td style=\"width: 91.15pt;border: solid #CCCCCC 1.0pt;border-left: none;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 46.5pt\" width=\"91\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><b><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">IBM<\/span><\/b><\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 30.75pt\">\n<td style=\"width: 85.1pt;border: solid #CCCCCC 1.0pt;border-top: none;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 30.75pt\" width=\"85\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;line-height: normal\"><i><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Serverless Compute Offerings<\/span><\/i><\/p>\n<\/td>\n<td style=\"width: 127.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 30.75pt\" width=\"127\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Lambda<\/span><span style=\"color: black\"><br \/>\n<span style=\"border: none windowtext 1.0pt;padding: 0cm\">Lambda@Edge<\/span><\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 30.75pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Azure Functions<\/span><span style=\"color: black\"><br \/>\n<span style=\"border: none windowtext 1.0pt;padding: 0cm\">Azure Event Grid<\/span><\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 30.75pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Google Cloud Functions<\/span><span style=\"color: black\"><br \/>\n<span style=\"border: none windowtext 1.0pt;padding: 0cm\">Google App Engine<\/span><\/span><\/p>\n<\/td>\n<td style=\"width: 91.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 30.75pt\" width=\"91\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">IBM Cloud Functions<\/span><\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 18.0pt\">\n<td style=\"width: 85.1pt;border: solid #CCCCCC 1.0pt;border-top: none;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"85\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;line-height: normal\"><i><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Maximum Functions<\/span><\/i><\/p>\n<\/td>\n<td style=\"width: 127.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"127\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Lambda<\/span><span style=\"color: black\">\u00a0\u2013 Unlimited<br \/>\n<span style=\"border: none windowtext 1.0pt;padding: 0cm\">Lambda@Edge<\/span>\u00a0\u2013<br \/>\n25 per AWS account<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Unlimited<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">1000 per<br \/>\nproject<\/span><\/p>\n<\/td>\n<td style=\"width: 91.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"91\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Unlimited<\/span><\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 18.0pt\">\n<td style=\"width: 85.1pt;border: solid #CCCCCC 1.0pt;border-top: none;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"85\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;line-height: normal\"><i><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Scalability &amp; Availability<\/span><\/i><\/p>\n<\/td>\n<td style=\"width: 127.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"127\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Transparent \u2013<br \/>\nAutomatic Scaling<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Automatic<br \/>\nscaling<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Automatic<\/span><\/p>\n<\/td>\n<td style=\"width: 91.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"91\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Automatic<\/span><\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 18.0pt\">\n<td style=\"width: 85.1pt;border: solid #CCCCCC 1.0pt;border-top: none;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"85\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;line-height: normal\"><i><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Languages supported<\/span><\/i><\/p>\n<\/td>\n<td style=\"width: 127.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"127\">\n<p class=\"MsoNormal\" style=\"text-align: center;text-indent: -18.0pt;line-height: normal;vertical-align: baseline;margin: 0cm 0cm .0001pt 21.95pt\" align=\"center\"><span style=\"font-size: 10.0pt;font-family: Wingdings;color: black\">\u00a7<span style=\"font: 7.0pt 'Times New Roman'\">\u00a0 <\/span><\/span><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Lambda<\/span><span style=\"color: black\">\u00a0\u2013 Node.js, Python, Java, C# (.NET)<\/span><\/p>\n<p class=\"MsoNormal\" style=\"text-align: center;text-indent: -18.0pt;line-height: normal;vertical-align: baseline;margin: 0cm 0cm .0001pt 21.95pt\" align=\"center\"><span style=\"font-size: 10.0pt;font-family: Wingdings;color: black\">\u00a7<span style=\"font: 7.0pt 'Times New Roman'\">\u00a0 <\/span><\/span><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Lambda@Edge<\/span><span style=\"color: black\">\u00a0\u2013 Node.js 6.10<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Node.js, C#,<br \/>\nPython, F#, PHP,<br \/>\nBash, Batch, executable for Azure Functions<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Node.js<\/span><\/p>\n<\/td>\n<td style=\"width: 91.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"91\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Binaries in<br \/>\nDocker, Python, Swift, Node.js, Java<\/span><\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 18.0pt\">\n<td style=\"width: 85.1pt;border: solid #CCCCCC 1.0pt;border-top: none;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"85\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;line-height: normal\"><i><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Max. execution time<\/span><\/i><\/p>\n<\/td>\n<td style=\"width: 127.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"127\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">300 seconds<br \/>\n(5 minutes) in Lambda<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">300 seconds<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">540 seconds<\/span><\/p>\n<\/td>\n<td style=\"width: 91.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"91\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">600 seconds<\/span><\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 18.0pt\">\n<td style=\"width: 85.1pt;border: solid #CCCCCC 1.0pt;border-top: none;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"85\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;line-height: normal\"><i><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Max Code Size<\/span><\/i><\/p>\n<\/td>\n<td style=\"width: 127.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"127\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">50 MB compressed<br \/>\n250 MB uncompressed<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">None<br \/>\nUser pays the storage cost<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">100 MB<br \/>\ncompressed<br \/>\n500 MB uncompressed<\/span><\/p>\n<\/td>\n<td style=\"width: 91.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"91\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">48 MB<\/span><\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 18.0pt\">\n<td style=\"width: 85.1pt;border: solid #CCCCCC 1.0pt;border-top: none;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"85\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;line-height: normal\"><i><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Monitoring<\/span><\/i><\/p>\n<\/td>\n<td style=\"width: 127.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"127\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Dashbird,<br \/>\nCloudWatch<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Azure<br \/>\nApplication Insights<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Stackdriver<\/span><\/p>\n<\/td>\n<td style=\"width: 91.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"91\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">IBM Cloud<br \/>\nShell<\/span><\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 18.0pt\">\n<td style=\"width: 85.1pt;border: solid #CCCCCC 1.0pt;border-top: none;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"85\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;line-height: normal\"><i><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Concurrent Executions<\/span><\/i><\/p>\n<\/td>\n<td style=\"width: 127.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"127\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">1000<br \/>\nconcurrent executions per account per region<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">10 concurrent<br \/>\nexecutions per function<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">400 per<br \/>\nfunction<\/span><\/p>\n<\/td>\n<td style=\"width: 91.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"91\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">1000 per<br \/>\nproject<\/span><\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 18.0pt\">\n<td style=\"width: 85.1pt;border: solid #CCCCCC 1.0pt;border-top: none;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"85\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;line-height: normal\"><i><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Triggers<\/span><\/i><\/p>\n<\/td>\n<td style=\"width: 127.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"127\">\n<p class=\"MsoNormal\" style=\"text-align: center;text-indent: -18.0pt;line-height: normal;vertical-align: baseline;margin: 0cm 0cm .0001pt 21.95pt\" align=\"center\"><span style=\"font-size: 10.0pt;font-family: Wingdings;color: black\">\u00a7<span style=\"font: 7.0pt 'Times New Roman'\">\u00a0 <\/span><\/span><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Lambda<\/span><span style=\"color: black\">\u00a0\u2013 S3, Kinesis, DynamoDB, Simple Notification,<br \/>\nCognito, Simple Email Service, CloudWatch Logs, CloudFormation,<br \/>\nCodeSummit,CloudWatch Events, Echo, Scheduled, Echo, API Gateway, Lex<\/span><\/p>\n<p class=\"MsoNormal\" style=\"text-align: center;text-indent: -18.0pt;line-height: normal;vertical-align: baseline;margin: 0cm 0cm .0001pt 21.95pt\" align=\"center\"><span style=\"font-size: 10.0pt;font-family: Wingdings;color: black\">\u00a7<span style=\"font: 7.0pt 'Times New Roman'\">\u00a0 <\/span><\/span><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Lambda@Edge<\/span><span style=\"color: black\">\u00a0\u2013 Functions will automatically trigger against<br \/>\nfollowing Amazon CloudFront events \u2013 viewer requests, viewer response, origin<br \/>\nrequest, origin response<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Queues,<br \/>\nSchedule, HTTP, Events, Blob Storage<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Cloud<br \/>\nStorage, HTTP, Cloud Pub\/Sub<\/span><\/p>\n<\/td>\n<td style=\"width: 91.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"91\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Periodic<br \/>\nTriggers, webhook triggers for GitHub, Cloudant noSQL DB, Push Notification<br \/>\nService, Message Hub Service, Watson, Slack APIs, websocket, weather<\/span><\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 18.0pt\">\n<td style=\"width: 85.1pt;border: solid #CCCCCC 1.0pt;border-top: none;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"85\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;line-height: normal\"><i><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Web Editing<\/span><\/i><\/p>\n<\/td>\n<td style=\"width: 127.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"127\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Web Editing<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Provided<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Via Google<br \/>\nCloud Source<\/span><\/p>\n<\/td>\n<td style=\"width: 91.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"91\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Provided<\/span><\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 18.0pt\">\n<td style=\"width: 85.1pt;border: solid #CCCCCC 1.0pt;border-top: none;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"85\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;line-height: normal\"><i><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Logs<\/span><\/i><\/p>\n<\/td>\n<td style=\"width: 127.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"127\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Via<br \/>\nCloudWatch Logs<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Available<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Via CLI and<br \/>\nStackdriver<\/span><\/p>\n<\/td>\n<td style=\"width: 91.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"91\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Yes<\/span><\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 18.0pt\">\n<td style=\"width: 85.1pt;border: solid #CCCCCC 1.0pt;border-top: none;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"85\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;line-height: normal\"><i><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">HTTP<\/span><\/i><\/p>\n<\/td>\n<td style=\"width: 127.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"127\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Must be<br \/>\ntriggered through an API gateway<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Directly<br \/>\ntriggered via HTTP<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Can be<br \/>\ndirectly triggered via HTTP<\/span><\/p>\n<\/td>\n<td style=\"width: 91.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"91\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Yes<\/span><\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 18.0pt\">\n<td style=\"width: 85.1pt;border: solid #CCCCCC 1.0pt;border-top: none;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"85\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;line-height: normal\"><i><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Orchestration<\/span><\/i><\/p>\n<\/td>\n<td style=\"width: 127.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"127\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Via the step<br \/>\nfunctions<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Via Logic<br \/>\nApps<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">No<\/span><\/p>\n<\/td>\n<td style=\"width: 91.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"91\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Via Rules<\/span><\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 18.0pt\">\n<td style=\"width: 85.1pt;border: solid #CCCCCC 1.0pt;border-top: none;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"85\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;line-height: normal\"><i><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Version Control<\/span><\/i><\/p>\n<\/td>\n<td style=\"width: 127.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"127\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Versioning<br \/>\nand aliases<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Via GitHub<br \/>\nand other similar platforms<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Via Google<br \/>\nCloud Source<\/span><\/p>\n<\/td>\n<td style=\"width: 91.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"91\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">No<\/span><\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 18.0pt\">\n<td style=\"width: 85.1pt;border: solid #CCCCCC 1.0pt;border-top: none;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"85\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;line-height: normal\"><i><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Deployments<\/span><\/i><\/p>\n<\/td>\n<td style=\"width: 127.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"127\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">.ZIP to S3 or<br \/>\nLambda<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Via GitHub,<br \/>\nVisual Studio, Local git, Dropbox, Bitbucket<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Google Cloud<br \/>\nSource and .ZIP to cloud storage<\/span><\/p>\n<\/td>\n<td style=\"width: 91.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"91\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">GitHub,<br \/>\nBluemix DevOps<\/span><\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 18.0pt\">\n<td style=\"width: 85.1pt;border: solid #CCCCCC 1.0pt;border-top: none;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"85\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;line-height: normal\"><i><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Access Management<\/span><\/i><\/p>\n<\/td>\n<td style=\"width: 127.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"127\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">IAM roles<br \/>\n(identity and access management)<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">IAM roles<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">IAM roles<\/span><\/p>\n<\/td>\n<td style=\"width: 91.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"91\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">IAM roles<\/span><\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 18.0pt\">\n<td style=\"width: 85.1pt;border: solid #CCCCCC 1.0pt;border-top: none;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"85\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;line-height: normal\"><i><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Dependencies<\/span><\/i><\/p>\n<\/td>\n<td style=\"width: 127.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"127\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Deployment<br \/>\npackages<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">NuGet, Npm,<br \/>\nVisual Studio Team Services<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Npm<br \/>\npackage.json<\/span><\/p>\n<\/td>\n<td style=\"width: 91.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"91\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">NA<\/span><\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 18.0pt\">\n<td style=\"width: 85.1pt;border: solid #CCCCCC 1.0pt;border-top: none;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"85\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;line-height: normal\"><i><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Limits<\/span><\/i><\/p>\n<\/td>\n<td style=\"width: 127.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"127\">\n<p class=\"MsoNormal\" style=\"text-align: center;text-indent: -18.0pt;line-height: normal;vertical-align: baseline;margin: 0cm 0cm .0001pt 21.95pt\" align=\"center\"><span style=\"font-size: 10.0pt;font-family: Wingdings;color: black\">\u00a7<span style=\"font: 7.0pt 'Times New Roman'\">\u00a0 <\/span><\/span><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Lambda<\/span><span style=\"color: black\">\u00a0\u2013 Memory Allocation \u2013 128 MB to 1536 MB<\/span><\/p>\n<p class=\"MsoNormal\" style=\"text-align: center;line-height: normal;vertical-align: baseline;margin: 0cm 0cm 18.0pt 21.95pt\" align=\"center\"><span style=\"color: black\">Ephemeral disk capacity \u2013<br \/>\n512 MB<\/span><\/p>\n<p class=\"MsoNormal\" style=\"text-align: center;text-indent: -18.0pt;line-height: normal;vertical-align: baseline;margin: 0cm 0cm .0001pt 21.95pt\" align=\"center\"><span style=\"font-size: 10.0pt;font-family: Wingdings;color: black\">\u00a7<span style=\"font: 7.0pt 'Times New Roman'\">\u00a0 <\/span><\/span><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Lambda@Edge<\/span><span style=\"color: black\">\u00a0\u2013 Viewer request and response event limits = 128<br \/>\nMB, request timeout = 30 seconds<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Azure<br \/>\nFunctions under consumption plan, limits the execution time to 5 minutes<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Function<br \/>\ncalls per second: 1,000,000 per 100 seconds<\/span><\/p>\n<\/td>\n<td style=\"width: 91.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"91\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Memory \u2013 min<br \/>\n256 MB and max 512 MB<\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal;vertical-align: baseline\" align=\"center\"><span style=\"color: black\">Timeout \u2013 60000 ms to 600000 ms<\/span><\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 18.0pt\">\n<td style=\"width: 85.1pt;border: solid #CCCCCC 1.0pt;border-top: none;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"85\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;line-height: normal\"><i><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Pricing<\/span><\/i><\/p>\n<\/td>\n<td style=\"width: 127.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"127\">\n<p class=\"MsoNormal\" style=\"text-align: center;text-indent: -18.0pt;line-height: normal;vertical-align: baseline;margin: 0cm 0cm .0001pt 21.95pt\" align=\"center\"><span style=\"font-size: 10.0pt;font-family: Wingdings;color: black\">\u00a7<span style=\"font: 7.0pt 'Times New Roman'\">\u00a0 <\/span><\/span><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Lambda<\/span><span style=\"color: black\">\u00a0\u2013 1M requests for free, after that, $0.20\/1M<br \/>\ninvocations along with $0.00001667\/GB-sec<\/span><\/p>\n<p class=\"MsoNormal\" style=\"text-align: center;text-indent: -18.0pt;line-height: normal;vertical-align: baseline;margin: 0cm 0cm .0001pt 21.95pt\" align=\"center\"><span style=\"font-size: 10.0pt;font-family: Wingdings;color: black\">\u00a7<span style=\"font: 7.0pt 'Times New Roman'\">\u00a0 <\/span><\/span><span style=\"color: black;border: none windowtext 1.0pt;padding: 0cm\">Lambda@Edge<\/span><span style=\"color: black\">\u00a0\u2013 Request Pricing is $0.60 per 1 million requests<br \/>\n($0.0000006 per request), Lambda@Edge functions are metered at a granularity<br \/>\nof 50ms<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Azure Event<br \/>\nGrid \u2013 Price per million operations $0.60<\/span><\/p>\n<\/td>\n<td style=\"width: 106.3pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"106\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">2 million<br \/>\ninvocations free. $0.40\/million invocations<\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-bottom: 18.0pt;text-align: center;line-height: normal;vertical-align: baseline\" align=\"center\"><span style=\"color: black\">$0.0000025\/GB-sec<br \/>\nwith 400,00 GB-sec\/month for free<\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal;vertical-align: baseline\" align=\"center\"><span style=\"color: black\">$0.0000100\/GHz-sec with 200,000 GHz-sec\/month for free<\/span><\/p>\n<\/td>\n<td style=\"width: 91.15pt;border-top: none;border-left: none;border-bottom: solid #CCCCCC 1.0pt;border-right: solid #CCCCCC 1.0pt;padding: 6.0pt 6.0pt 6.0pt 6.0pt;height: 18.0pt\" width=\"91\">\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal\" align=\"center\"><span style=\"color: black\">Basic Cloud<br \/>\nFunction Rate: $0.000017 per second of execution, per GB of memory allocated<\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-bottom: .0001pt;text-align: center;line-height: normal;vertical-align: baseline\" align=\"center\"><span style=\"color: black\">API Gateway: Free\/No Limits<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>REFERENCES:<\/p>\n<p>[1] <a href=\"https:\/\/azure.microsoft.com\/en-us\/overview\/serverless-computing\/\">https:\/\/azure.microsoft.com\/en-us\/overview\/serverless-computing\/<\/a><\/p>\n<p>[2] <a href=\"https:\/\/www.infoworld.com\/article\/3406501\/what-is-serverless-serverless-computing-explained.html\">https:\/\/www.infoworld.com\/article\/3406501\/what-is-serverless-serverless-computing-explained.html<\/a><\/p>\n<p>[3] <a href=\"https:\/\/www.cloudflare.com\/learning\/serverless\/glossary\/function-as-a-service-faas\/\">https:\/\/www.cloudflare.com\/learning\/serverless\/glossary\/function-as-a-service-faas\/<\/a><\/p>\n<p>[4] <a href=\"https:\/\/www.serverless.com\/blog\/when-why-not-use-serverless\">https:\/\/www.serverless.com\/blog\/when-why-not-use-serverless<\/a><\/p>\n<p>[5] <a href=\"https:\/\/blog.runscope.com\/posts\/why-you-might-not-need-serverless\">https:\/\/blog.runscope.com\/posts\/why-you-might-not-need-serverless<\/a><\/p>\n<p>[6] <a href=\"https:\/\/www.dailyhostnews.com\/serverless-computing-comparison-guide-aws-google-ibm-and-microsoft\">https:\/\/www.dailyhostnews.com\/serverless-computing-comparison-guide-aws-google-ibm-and-microsoft<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>By: Dr. Maria Seraphina Astriani &nbsp; Do you want to save money when your server is idle? Try SERVERLESS! \u00a0 What is serverless computing? Serverless computing enables developers to build applications faster by eliminating the need for them to manage infrastructure. With serverless applications, the cloud service provider automatically provisions, scales, and manages the infrastructure [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[112],"tags":[],"class_list":["post-2346","post","type-post","status-publish","format-standard","hentry","category-article"],"_links":{"self":[{"href":"https:\/\/international.binus.ac.id\/computer-science\/wp-json\/wp\/v2\/posts\/2346"}],"collection":[{"href":"https:\/\/international.binus.ac.id\/computer-science\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/international.binus.ac.id\/computer-science\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/international.binus.ac.id\/computer-science\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/international.binus.ac.id\/computer-science\/wp-json\/wp\/v2\/comments?post=2346"}],"version-history":[{"count":2,"href":"https:\/\/international.binus.ac.id\/computer-science\/wp-json\/wp\/v2\/posts\/2346\/revisions"}],"predecessor-version":[{"id":2350,"href":"https:\/\/international.binus.ac.id\/computer-science\/wp-json\/wp\/v2\/posts\/2346\/revisions\/2350"}],"wp:attachment":[{"href":"https:\/\/international.binus.ac.id\/computer-science\/wp-json\/wp\/v2\/media?parent=2346"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/international.binus.ac.id\/computer-science\/wp-json\/wp\/v2\/categories?post=2346"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/international.binus.ac.id\/computer-science\/wp-json\/wp\/v2\/tags?post=2346"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}