{"id":1518,"date":"2022-02-10T09:38:14","date_gmt":"2022-02-10T09:38:14","guid":{"rendered":"https:\/\/blog.amt.in\/?p=1518"},"modified":"2022-02-10T09:38:14","modified_gmt":"2022-02-10T09:38:14","slug":"function-as-a-service","status":"publish","type":"post","link":"https:\/\/blog.amt.in\/index.php\/2022\/02\/10\/function-as-a-service\/","title":{"rendered":"Function as a Service"},"content":{"rendered":"<p>FaaS is the concept of serverless computing via serverless architectures. Software developers can leverage this to deploy an individual \u00e2\u20ac\u0153function\u00e2\u20ac\u009d, action, or piece of business logic. They\u00c2\u00a0are expected to start within milliseconds and process individual requests and then the process ends.<\/p>\n<p>Principles of FaaS:<\/p>\n<ul>\n<li>Complete abstraction of servers away from the developer<\/li>\n<li>Billing based on consumption and executions, not server instance sizes<\/li>\n<li>Services that are event-driven and instantaneously scalable<\/li>\n<\/ul>\n<p>At the basic level, you could describe them as a way to run some code when a \u00e2\u20ac\u0153thing\u00e2\u20ac\u009d happens.<\/p>\n<p>Benefits:<\/p>\n<p>Like most things, not every app is a good fit for FaaS.<\/p>\n<p>We have been looking to use them at\u00c2\u00a0Stackify\u00c2\u00a0primarily for our very high volume transactions. We have some transactions that happen hundreds of times per second. We see a lot of value in isolating that logic to a function that we can scale.<\/p>\n<ul>\n<li>Super high volume transactions \u00e2\u20ac\u201c Isolate them and scale them<\/li>\n<li>Dynamic or burstable workloads \u00e2\u20ac\u201c If you only run something once a day or month, no need to pay for a server 24\/7\/365<\/li>\n<li>Scheduled tasks \u00e2\u20ac\u201c They are a perfect way to run a certain piece of code on a schedule<\/li>\n<\/ul>\n<p>Types of Functions:<\/p>\n<p>There are a lot of potential uses for functions. Below is a simple list of some common scenarios. Support and implementation for them varies by provider.<\/p>\n<ul>\n<li>Scheduled tasks or jobs<\/li>\n<li>Process a web request<\/li>\n<li>Process queue messages<\/li>\n<li>Run manually<\/li>\n<\/ul>\n<p>These functions could also be chained together. For example, a web request could write to a\u00c2\u00a0<a href=\"https:\/\/stackify.com\/what-is-csharp-queue\/\">queue<\/a>, which is then picked up by a different function.<\/p>\n<p>FaaS Providers:<\/p>\n<p>AWS, Microsoft Azure, and Google Cloud all provide a solution.\u00c2\u00a0 A lot of innovation is still going on in this area and things are rapidly improving and changing. \u00c2\u00a0Read our\u00c2\u00a0article\u00c2\u00a0on how AWS, Azure, and Google Cloud compare to determine which cloud best meets your needs.<\/p>\n<ul>\n<li>AWS Lambda<\/li>\n<li>Azure Functions<\/li>\n<li>Cloud Functions<\/li>\n<li>Iron.io<\/li>\n<li>Webtask.io<\/li>\n<\/ul>\n<p>Monitoring Challenges:<\/p>\n<p>One of the big challenges is\u00c2\u00a0monitoring your function apps. You still need to understand how often they occur, how long they take, and potentially, why they are slow.<\/p>\n<p>Since you don\u00e2\u20ac\u2122t necessarily have a server or control the resources they are running on, you can\u00e2\u20ac\u2122t install any monitoring software.<\/p>\n<p>How we monitor these new types of apps is going to continue to evolve.<\/p>\n<p>The above is a brief about Function-as-a-service. Watch this space for more updates on the latest trends in technology.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>FaaS is the concept of<\/p>\n","protected":false},"author":1,"featured_media":1520,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[294,296,7],"tags":[297,299,18],"class_list":["post-1518","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-function-as-a-service","category-serverless","category-techtrends","tag-function-as-a-service","tag-serverless","tag-technology"],"_links":{"self":[{"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/posts\/1518","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/comments?post=1518"}],"version-history":[{"count":1,"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/posts\/1518\/revisions"}],"predecessor-version":[{"id":1519,"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/posts\/1518\/revisions\/1519"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/media\/1520"}],"wp:attachment":[{"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/media?parent=1518"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/categories?post=1518"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/tags?post=1518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}