﻿
{"id":17034,"date":"2020-08-03T00:29:18","date_gmt":"2020-08-03T00:29:18","guid":{"rendered":"https:\/\/www.gencayyildiz.com\/blog\/?p=17034"},"modified":"2020-08-03T00:32:58","modified_gmt":"2020-08-03T00:32:58","slug":"azure-functions-serisi-2-azure-functions-hosting-plan-turleri","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/azure-functions-serisi-2-azure-functions-hosting-plan-turleri\/","title":{"rendered":"Azure Functions Serisi #2 \u2013 Azure Functions Hosting Plan T\u00fcrleri"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Bu i\u00e7eri\u011fimizde <a href=\"https:\/\/www.gencayyildiz.com\/blog\/azure-functions-yazi-serisi\/\" rel=\"noopener noreferrer\" target=\"_blank\">Azure Functions Yaz\u0131 Serisi<\/a>nin ikinci konusu olan Azure Functions Hosting Plan T\u00fcrleri \u00fczerine konu\u015fuyor olaca\u011f\u0131z.<\/p>\n<h3 style=\"color:purple;\">Hosting Plan\u0131 Nedir?<\/h3>\n<p>Azure&#8217;da bir Function olu\u015fturuldu\u011funda, bu function&#8217;\u0131n nas\u0131l \u00f6l\u00e7eklendirilece\u011fini ve ne \u015fekilde davran\u0131\u015f sergileyece\u011fini belirleyebilmek i\u00e7in bir hosting plan\u0131n\u0131n se\u00e7ilmesi gerekmektedir. Uygulama hosting plan\u0131, \u00f6zel altyap\u0131lardan yararlanman\u0131za da olanak sa\u011flayan ve her t\u00fcrl\u00fc function \u00f6rne\u011fi i\u00e7in kullan\u0131labilir kaynaklar sunan tasar\u0131mlard\u0131r.<\/p>\n<p>Hosting planlar\u0131;<\/p>\n<ul>\n<li>Consumption plan<\/li>\n<li>Premium plan<\/li>\n<li>Dedicated (App Service) plan<\/li>\n<\/ul>\n<p>olmak \u00fczere \u00fc\u00e7 adettirler.<\/p>\n<h4 style=\"color:red;\">Consumption plan<\/h4>\n<p>Function dedi\u011fimiz yap\u0131lar esas\u0131nda bir koddur. Dolay\u0131s\u0131yla bu kodun \u00e7al\u0131\u015ft\u0131r\u0131labilmesi i\u00e7in \u00f6ncelikle bir Function Host&#8217;a ihtiyac\u0131m\u0131z vard\u0131r. Bizler her bir function host&#8217;a instance demekteyiz. Bir function tan\u0131mland\u0131\u011f\u0131nda o function ile birlikte bir instance olup olmamas\u0131 bizler a\u00e7\u0131s\u0131ndan performans de\u011ferlendirmesinde \u00f6nem arz etmektedir. Consumption plan&#8217;da bir tetikleme olmad\u0131\u011f\u0131 yani function \u00e7al\u0131\u015ft\u0131r\u0131lmad\u0131\u011f\u0131 s\u00fcrece ayakta olan\/default bir instance bulunmamaktad\u0131r. Ne zaman bir tetikleme meydana gelir o zaman instance aya\u011fa kald\u0131r\u0131lacakt\u0131r. Bu durumda ilk istek a\u00e7\u0131s\u0131ndan ekstra bir gecikme sa\u011flayacakt\u0131r. Tabi ki de bu gecikme sonraki isteklerde ilk olu\u015fturulan instance kullan\u0131laca\u011f\u0131ndan dolay\u0131 bir daha olmayacakt\u0131r.<\/p>\n<p>Consumption plan, otomatik olarak \u00f6l\u00e7eklendirilir ve sadece ilgili function tetiklenirken \u00fccretlendirilir. Haliyle kulland\u0131k\u00e7a \u00f6de prensibine ba\u011fl\u0131d\u0131r. Faturaland\u0131rma; istek say\u0131s\u0131, i\u015flev s\u00fcresi, kullan\u0131lan belle\u011fin miktar\u0131 vs. gibi fakt\u00f6rleri temel al\u0131r.<\/p>\n<blockquote style=\"color:green;\"><p><em>Functionlar\u0131n \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131 hostlara Function Host, her bir function host&#8217;a ise Instance denmektedir..<\/em><\/p><\/blockquote>\n<p>Consumption plan ile olu\u015fturulan functionlar 10 dk&#8217;da i\u015flevini bitirmesi \u00f6ng\u00f6r\u00fclen fonksiyonlard\u0131r. E\u011fer ki bir function 10 dk&#8217;dan fazla(ki 10&#8217;dk bile bir fonksiyonun \u00e7al\u0131\u015fmas\u0131 i\u00e7in haddinden fazla bir s\u00fcreyken) \u00e7al\u0131\u015facaksa e\u011fer Premium plan tercih edilmelidir.<\/p>\n<blockquote style=\"color:gray;\"><p><em>Azure Functions&#8217;da varsay\u0131lan(default) plan Consumption plan&#8217;d\u0131r.<\/em><\/p><\/blockquote>\n<h4 style=\"color:red;\">Premium plan<\/h4>\n<p>Consumption plan&#8217;a nazaran mutlaka bir adet default instance her daim ayaktad\u0131r. B\u00f6ylece gelen istek ister ilk ister n. olsun bir instance aya\u011fa kald\u0131rmak i\u00e7in ekstradan bir maliyet s\u00f6z konusu olmayacakt\u0131r. Bu default instance say\u0131s\u0131 istenildi\u011fi kadar \u00e7o\u011falt\u0131labildi\u011fi gibi bir instance i\u00e7erisinde \u00e7al\u0131\u015facak olan maximum function s\u00fcreside manuel olarak belirlenebilmektedir.<\/p>\n<p>Premium plan, bir function&#8217;a 60 dk&#8217;ya kadar garanti olacak \u015fekilde s\u0131n\u0131rs\u0131z i\u015flev s\u00fcresi vermektedir. \u00c7ok i\u015flevli ve a\u011f\u0131r operasyonlar i\u00e7in daha uygundur. Yap\u0131lacak i\u015flevin a\u011f\u0131rl\u0131\u011f\u0131na g\u00f6re daha \u00f6ng\u00f6r\u00fclebilir bir fiyatland\u0131rma yapmaktad\u0131r. Faturaland\u0131rma; i\u015flev s\u00fcresi, default instance adedi, kullan\u0131lan \u00e7ekirdek say\u0131s\u0131 ve kullan\u0131lan belle\u011fin miktar\u0131 ile hesaplan\u0131r. Haliyle default instancelardan dolay\u0131 premium hesapta ayl\u0131k minimum bir maliyetin olmas\u0131 ka\u00e7\u0131n\u0131lmazd\u0131r. Ekstradan \u00fccrete tabii oldu\u011fu a\u015fikard\u0131r. Kulland\u0131k\u00e7a \u00f6de prensibini benimsemi\u015ftir.<\/p>\n<p>Premium plan, default instance sayesinde istek gelmeksizin function&#8217;\u0131 s\u00fcrekli aktif \u00e7al\u0131\u015f\u0131r bir \u015fekilde ayakta tutacakt\u0131r. Consumption plan&#8217;a nazaran daha fazla CPU ve bellek se\u00e7enekleri mevcuttur ve yine Consumption plan&#8217;a nazaran 10 dk&#8217;dan daha uzun operasyonel i\u015flevler i\u00e7in tercih edilmelidir.<\/p>\n<blockquote style=\"color:blue;\"><p><em>Bir Azure Storage&#8217;a birden fazla Azure Function tan\u0131mlayabilirsiniz. Birden fazla tan\u0131mlama Azure a\u00e7\u0131s\u0131ndan herhangi bir olumsuz etki yaratmamakta ve hatta \u00f6l\u00e7eklenebilirli\u011fi ve g\u00fcvenirlili\u011fi zerre kadar etkilememektedir.<\/em><\/p><\/blockquote>\n<h4 style=\"color:red;\">Dedicated (App Service) plan<\/h4>\n<p>Azure&#8217;da al\u0131nan bir alandaki kaynaklar\u0131n t\u00fcketilmesinden dolay\u0131 \u00fccretlendirme yapan pland\u0131r. Otomatik scale edilmemektedir.<\/p>\n<p>\u0130lgilenenlerin faylanmas\u0131 dile\u011fiyle&#8230;<br \/>\nSonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Merhaba, Bu i\u00e7eri\u011fimizde Azure Functions Yaz\u0131 Serisinin ikinci konusu olan Azure Functions Hosting Plan T\u00fcrleri \u00fczerine konu\u015fuyor olaca\u011f\u0131z. Hosting Plan\u0131 Nedir? Azure&#8217;da bir Function olu\u015fturuldu\u011funda, bu function&#8217;\u0131n nas\u0131l \u00f6l\u00e7eklendirilece\u011fini ve ne \u015fekilde davran\u0131\u015f sergileyece\u011fini&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":17011,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3121],"tags":[3674,3661,3669,3671,3675,3673,3670,3672],"class_list":["post-17034","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure","tag-app-service-plan","tag-azure-functions","tag-azure-functions-hosting-plan","tag-consumption-plan","tag-dedicated-app-service-plan","tag-dedicated-plan","tag-hosting-plan-turleri","tag-premium-plan"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/17034","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=17034"}],"version-history":[{"count":17,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/17034\/revisions"}],"predecessor-version":[{"id":17055,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/17034\/revisions\/17055"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/17011"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=17034"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=17034"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=17034"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}