{"id":79560,"date":"2020-10-01T17:00:20","date_gmt":"2020-10-01T14:00:20","guid":{"rendered":"https:\/\/en.buradabiliyorum.com\/how-does-googles-serverless-app-engine-work-cloudsavvy-it\/"},"modified":"2020-10-01T17:00:20","modified_gmt":"2020-10-01T14:00:20","slug":"how-does-googles-serverless-app-engine-work-cloudsavvy-it","status":"publish","type":"post","link":"https:\/\/buradabiliyorum.com\/en\/how-does-googles-serverless-app-engine-work-cloudsavvy-it\/","title":{"rendered":"#How Does Google\u2019s Serverless App Engine Work? \u2013 CloudSavvy IT"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a37bde74f479\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #dd3333;color:#dd3333\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #dd3333;color:#dd3333\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a37bde74f479\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/buradabiliyorum.com\/en\/how-does-googles-serverless-app-engine-work-cloudsavvy-it\/#What_Is_App_Engine\" >What Is App Engine?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/buradabiliyorum.com\/en\/how-does-googles-serverless-app-engine-work-cloudsavvy-it\/#Standard_versus_Flexible_Environments\" >Standard versus Flexible Environments<\/a><\/li><\/ul><\/nav><\/div>\n<p><strong>&#8220;#How Does Google\u2019s Serverless <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/download-scripts-themes-apps\/\" data-internallinksmanager029f6b8e52c=\"9\" title=\"Download Scripts &amp; Themes &amp; Apps\" target=\"_blank\" rel=\"noopener\">App<\/a> Engine Work? \u2013 CloudSavvy IT&#8221;<\/strong><\/p>\n<div id=\"article-content-area\">\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-5252\" src=\"https:\/\/www.cloudsavvyit.com\/thumbcache\/0\/0\/cee845c6326f4edba5310085cab5cd71\/p\/uploads\/2020\/06\/29add7ff.png\" alt=\"app engine\" width=\"700\" height=\"300\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>App Engine is a fully managed serverless compute service from Google Cloud Platform that makes managing a backend of microservices a lot simpler. It\u2019s built around high scalability without having to manage your own servers.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"What_Is_App_Engine\"><\/span>What Is App Engine?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>App Engine is in essence a set of microservices. Traditional applications are usually monolithic, meaning that you run one big runtime service on a server that handles everything. However, what usually happens in the real world is different parts of that application experience differing amounts of traffic, use, and overall load. You end up with bottlenecks, where you\u2019d like to be able to pull out one part of your backend and run more instances of it to keep up with demand.<\/p>\n<p>The design principle of microservices solve this problem. In a microservice-based backend, each service handles only what is required of it. This allows you to deploy multiple copies of the services that you need more of. It also allows you to easily deploy updates to only the services that need updating.<\/p>\n<p>It\u2019s commonplace to use serverless compute services like AWS Lambda Functions or GCP Cloud Functions to easily deploy individual functions as services. App Engine is very similar but is much more powerful as it\u2019s built specifically for microservices backends.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-5251\" src=\"https:\/\/www.cloudsavvyit.com\/thumbcache\/0\/0\/636125e58c36951fd899d2b6eaff4593\/p\/uploads\/2020\/06\/ec655480.png\" alt=\"app engine\" width=\"700\" height=\"269\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Much like Cloud Functions, you don\u2019t need to manage any underlying servers. You simply upload your code, select a runtime, and let it run. If you\u2019re using the flexible environment, you can deploy your application as Docker containers, allowing much more flexibility.<\/p>\n<p>However, unlike Cloud Functions, you do still need to run \u201cInstances\u201d of each service. You\u2019re charges are based on this, and not based on individual function invocations, as there\u2019s nothing like cold start available. (You can downscale to 0 instances on the standard environment, but cold starts will be slow.)<\/p>\n<p>App Engine currently supports the <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/cloud.google.com\/appengine\/docs\/the-appengine-environments\">following runtime environments<\/a>, though if you\u2019re using the flexible environment, you can run custom runtimes in Docker containers.<\/p>\n<ul>\n<li>Python 2.7, Python 3.7<\/li>\n<li>Java 8, Java 11<\/li>\n<li>Node.js 8, Node.js 10<\/li>\n<li>PHP 5.5, PHP 7.2, PHP 7.3, and PHP 7.4 (beta)<\/li>\n<li>Ruby 2.5 (beta)<\/li>\n<li>Go 1.11, Go 1.12, Go 1.13, and Go 1.14 (beta)<\/li>\n<\/ul>\n<p>For data storage and persistence, there\u2019s a built-in datastore, but it\u2019s being phased out in favor of <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/cloud.google.com\/appengine\/docs\/standard\/java\/using-cloud-datastore\">Firestore<\/a>, a NoSQL Document database offered as part of the Firebase platform. It has a <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/cloud.google.com\/datastore\/docs\/firestore-or-datastore\">Datastore mode<\/a> specifically for compatibility with App Engine\u2019s built in datastore.\u00a0There\u2019s also a memcache as a service, custom task queues, and cron jobs available from the App Engine console.<\/p>\n<p>If you\u2019d like to get started, Google provides <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\/\/console.cloud.google.com\/appengine\">plenty of built in tutorials from the App Engine console<\/a>.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Standard_versus_Flexible_Environments\"><\/span>Standard versus Flexible Environments<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>App Engine has two different environments you can choose from, both with their pros and cons.<\/p>\n<p>The first, and default environment, is the standard one. This mode operates like compute engine, with predefined instance classes and VM configurations where you will be billed hourly based on usage. Of course, you don\u2019t have to manage these yourself\u2014App Engine will handle it, and the environment is sandboxed. This environment has the advantage of quick deployments, and the possibility of zero downscaling, though cold starts can still be slow.<\/p>\n<p>However, with standard you don\u2019t get SSH access, nor do you you get background processes like cron (though Google does provide this as a managed service). There\u2019s a startup and shutdown cost of 15 minutes of instance time, so you\u2019ll want to avoid overly aggressive auto scaling.<\/p>\n<p>The flexible environment uses Docker containers to run everything. Though, if you\u2019re using one of the supported runtimes, you might not need to manage the container yourself. You get SSH access, much more flexibility (it\u2019s in the name), and support for background processes. However, deployments and startup take a few minutes, and you don\u2019t get access to some built-in App Engine services like memcached.\n<\/p><\/div>\n<blockquote>\n<p style=\"text-align: center;\">For forums sites go to <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/forum.buradabiliyorum.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Forum.BuradaBiliyorum.Com<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\"><strong>If you want to read more like this article, you can visit our <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/en.buradabiliyorum.com\/technology\/\" target=\"_blank\" rel=\"noopener noreferrer\">Technology category.<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<p><span style=\"color: black;\"><a style=\"color: #ff9900;\" href=\"https:\/\/www.cloudsavvyit.com\/5200\/how-does-googles-serverless-app-engine-work\/\" target=\"_blank\" rel=\"noopener noreferrer\">Source<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;#How Does Google\u2019s Serverless App Engine Work? \u2013 CloudSavvy IT&#8221; App Engine is a fully managed serverless compute service from Google Cloud Platform that makes managing a backend of microservices a lot simpler. It\u2019s built around high scalability without having to manage your own servers. What Is App Engine? App Engine is in essence a&#8230;<\/p>\n","protected":false},"author":1,"featured_media":79561,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2020\/06\/29add7ff.png","fifu_image_alt":"","footnotes":""},"categories":[18],"tags":[],"class_list":["post-79560","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/79560","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/comments?post=79560"}],"version-history":[{"count":0,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/79560\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media\/79561"}],"wp:attachment":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media?parent=79560"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/categories?post=79560"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/tags?post=79560"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}