Otomatik ölçeklendirmeAutoscaling

Otomatik ölçeklendirme, performans gereksinimlerini karşılamak için kaynakları dinamik olarak ayırma işlemidir.Autoscaling is the process of dynamically allocating resources to match performance requirements. İş hacmi büyüdükçe, bir uygulama istediğiniz performans düzeylerini sağlamak ve hizmet düzeyi sözleşmelerini (SLA) karşılamak için ek kaynaklar gerektirebilir.As the volume of work grows, an application may need additional resources to maintain the desired performance levels and satisfy service-level agreements (SLAs). Talep azaldığında ve ek kaynaklar artık gerekli olmadığında maliyetleri en aza indirmek için kaldırılabilirler.As demand slackens and the additional resources are no longer needed, they can be de-allocated to minimize costs.

Otomatik ölçeklendirme, yönetim yükünü azaltırken bulutta barındırılan ortamların esnekliğinden yararlanır.Autoscaling takes advantage of the elasticity of cloud-hosted environments while easing management overhead. Bir kullanıcının sürekli sistem performansını izlemesi ve kaynakları ekleme ve kaldırma hakkında karar vermesi gerekliliğini ortadan kaldırır.It reduces the need for an operator to continually monitor the performance of a system and make decisions about adding or removing resources.

Bir uygulamayı ölçeklendirmenin başlıca iki yolu vardır:There are two main ways that an application can scale:

  • Dikey ölçeklendirme, yukarı ve aşağı ölçeklendirme adıyla da bilinir. Bir kaynağın kapasitesini değiştirme anlamına gelir.Vertical scaling, also called scaling up and down, means changing the capacity of a resource. Örneğin, bir uygulamayı daha büyük bir VM boyutuna taşıyabilirsiniz.For example, you could move an application to a larger VM size. Dikey ölçeklendirme, genellikle dağıtılmakta olan sistemin geçici olarak devre dışı bırakılmasını gerektirir.Vertical scaling often requires making the system temporarily unavailable while it is being redeployed. Bu nedenle, dikey ölçeklemenin otomatikleştirilmesi daha az yaygındır.Therefore, it's less common to automate vertical scaling.

  • Yatay ölçeklendirme, içe ve dışa ölçeklendirme adıyla da bilinir. Kaynak örneklerinin eklenmesi ve çıkarılması anlamına gelir.Horizontal scaling, also called scaling out and in, means adding or removing instances of a resource. Yeni kaynaklar sağlanırken uygulama kesinti olmadan çalışmaya devam eder.The application continues running without interruption as new resources are provisioned. Sağlama işlemi tamamlandıktan sonra çözüm bu ek kaynaklara dağıtılır.When the provisioning process is complete, the solution is deployed on these additional resources. Talep azalırsa, ek kaynaklar düzgün bir şekilde kapatılır ve serbest bırakılır.If demand drops, the additional resources can be shut down cleanly and deallocated.

Microsoft Azure dahil olmak üzere pek çok bulut tabanlı sistem yatay otomatik ölçeklendirmeyi destekler.Many cloud-based systems, including Microsoft Azure, support automatic horizontal scaling. Bu makalenin geri kalanında yatay ölçeklemeye odaklanılmıştır.The rest of this article focuses on horizontal scaling.

Not

Otomatik ölçeklendirme çoğunlukla işlem kaynaklarına uygulanır.Autoscaling mostly applies to compute resources. Bir veritabanı ya da ileti sırasında yatay ölçeklendirme mümkün olsa da, bu genellikle içerir verileri bölümleme, hangi genellikle otomatik değil.While it's possible to horizontally scale a database or message queue, this usually involves data partitioning, which is generally not automated.

Genel BakışOverview

Otomatik ölçeklendirme stratejisi genellikle şunları içerir:An autoscaling strategy typically involves the following pieces:

  • Uygulama, hizmet ve altyapı düzeylerinde sistemleri düzenleme ve izleme.Instrumentation and monitoring systems at the application, service, and infrastructure levels. Bu sistemler, yanıt süreleri, sıra uzunlukları, CPU kullanımı ve bellek kullanımı gibi önemli ölçümleri toplar.These systems capture key metrics, such as response times, queue lengths, CPU utilization, and memory usage.
  • Karar verme mantığı bu ölçümleri önceden tanımlanmış eşikler veya zamanlamalarla karşılaştırarak değerlendirir ve ölçeklendirme yapılıp yapılmayacağına karar verir.Decision-making logic that evaluates these metrics against predefined thresholds or schedules, and decides whether to scale.
  • Sistemi ölçeklendiren bileşenler.Components that scale the system.
  • Otomatik ölçeklendirmeyi stratejisini, beklendiği şekilde çalıştığından emin olmak için test etme, izleme ve ayarlama.Testing, monitoring, and tuning of the autoscaling strategy to ensure that it functions as expected.

Azure, sık karşılaşılan senaryolara yönelik yerleşik otomatik ölçeklendirme mekanizmaları sağlar.Azure provides built-in autoscaling mechanisms that address common scenarios. Belirli bir hizmet veya teknoloji yerleşik otomatik ölçeklendirme işlevine sahip değilse ya da otomatik ölçeklendirme gereksinimlerinizi karşılamıyorsa, özel ölçeklendirme yöntemi düşünebilirsiniz.If a particular service or technology does not have built-in autoscaling functionality, or if you have specific autoscaling requirements beyond its capabilities, you might consider a custom implementation. Özel ölçeklendirme yöntemi, işlem ve sistem ölçümlerini toplar, ölçümleri analiz eder ve kaynakları uygun şekilde ölçeklendirir.A custom implementation would collect operational and system metrics, analyze the metrics, and then scale resources accordingly.

Bir Azure çözümünde otomatik ölçeklendirmeyi yapılandırmaConfigure autoscaling for an Azure solution

Azure, çoğu işlem seçenekleri için yerleşik otomatik ölçeklendirmeyi sağlar.Azure provides built-in autoscaling for most compute options.

Bu işlem seçeneklerinin tümü bir dizi genel otomatik ölçeklendirme işlevi sağlamak için Azure İzleyici otomatik ölçeklendirme kullanır.These compute options all use Azure Monitor autoscale to provide a common set of autoscaling functionality.

  • Azure İşlevleri önceki işlem seçeneklerinden farklıdır; herhangi bir otomatik ölçeklendirme kuralını yapılandırmanıza gerek yoktur.Azure Functions differs from the previous compute options, because you don't need to configure any autoscale rules. Kodunuzu çalıştırırken, bunun yerine, Azure İşlevleri otomatik olarak işlem gücünü yükü işlemek için gerekli olan ölçeğe ayırır.Instead, Azure Functions automatically allocates compute power when your code is running, scaling out as necessary to handle load. Daha fazla bilgi için bkz. Azure İşlevleri için doğru barındırma planını seçme.For more information, see Choose the correct hosting plan for Azure Functions.

Son olarak, özel bir otomatik ölçeklendirme çözümü bazı durumlarda yararlı olabilir.Finally, a custom autoscaling solution can sometimes be useful. Örneğin, Azure tanılama ve uygulama tabanlı ölçümleri, uygulama ölçümlerini izlemek ve dışarı aktarmak için özel kod ile birlikte kullanabilirsiniz.For example, you could use Azure diagnostics and application-based metrics, along with custom code to monitor and export the application metrics. Ardından bu ölçümleri temel özel kuralları tanımlayabilir ve otomatik ölçeklendirmeyi tetiklemek için Kaynak Yöneticisi REST API'lerini kullanabilirsiniz.Then you could define custom rules based on these metrics, and use Resource Manager REST APIs to trigger autoscaling. Ancak, özel bir çözüm uygulamak, basit değildir ve yalnızca önceki yaklaşımların hiçbiri gereksinimlerinizi karşılamazsa düşünülmelidir.However, a custom solution is not simple to implement, and should be considered only if none of the previous approaches can fulfill your requirements.

Gereksinimlerinizi karşılıyorsa platform yerleşik otomatik ölçeklendirme özelliklerini kullanın.Use the built-in autoscaling features of the platform, if they meet your requirements. Aksi durumda, daha karmaşık ölçekleme özelliklerine gerçekten ihtiyacınız olup olmadığını dikkatlice düşünün.If not, carefully consider whether you really need more complex scaling features. Ek gereksinim örnekleri arasında daha fazla ayrıntı düzeyi, tetikleyici olaylarını algılamak için farklı yollar, abonelikler arasında ölçeklendirme ve diğer kaynak türlerini ölçeklendirme bulunur.Examples of additional requirements may include more granularity of control, different ways to detect trigger events for scaling, scaling across subscriptions, and scaling other types of resources.

Azure İzleyici otomatik ölçeklendirmesini kullanmaUse Azure Monitor autoscale

Azure İzleyici otomatik ölçeklendirme, VM Ölçek Kümeleri, Azure App Service ve Azure Bulut Hizmeti için ortak bir otomatik ölçeklendirme işlev kümesi sağlar.Azure Monitor autoscale provide a common set of autoscaling functionality for VM Scale Sets, Azure App Service, and Azure Cloud Service. Ölçekleme bir zamanlamaya göre gerçekleştirilebileceği gibi CPU veya bellek kullanımı gibi bir çalışma zamanı ölçümünü de temel alabilir.Scaling can be performed on a schedule, or based on a runtime metric, such as CPU or memory usage. Örnekler:Examples:

  • Hafta içi günlerde ölçeği 10 örneğe genişletme ve Cumartesi ve Pazar günleri 4 örneğe daraltma.Scale out to 10 instances on weekdays, and scale in to 4 instances on Saturday and Sunday.
  • Ortalama CPU kullanımı %70’in üzerinde ise ölçeği bir örnek genişletme ve CPU kullanımı %50’nin altına düşerse bir örnek azaltma.Scale out by one instance if average CPU usage is above 70%, and scale in by one instance if CPU usage falls below 50%.
  • Sıradaki iletilerin sayısı belirli bir eşiği aşarsa ölçeği bir örnek genişletme.Scale out by one instance if the number of messages in a queue exceeds a certain threshold.

Yerleşik ölçümlerin listesi için bkz. Azure İzleyici otomatik ölçeklendirme ortak ölçümleri.For a list of built-in metrics, see Azure Monitor autoscaling common metrics. Application Insights'ı kullanarak özel ölçümler de uygulayabilirsiniz.You can also implement custom metrics by using Application Insights.

Otomatik ölçeklendirmeyi PowerShell, Azure CLI, Azure Resource Manager şablonu veya Azure portalını kullanarak yapılandırabilirsiniz.You can configure autoscaling by using PowerShell, the Azure CLI, an Azure Resource Manager template, or the Azure portal. Daha ayrıntılı denetim için Azure Resource Manager REST API'sini kullanın.For more detailed control, use the Azure Resource Manager REST API. Azure İzleme Hizmeti Yönetim Kitaplığı ve Microsoft Insights Kitaplığı (önizleme), farklı kaynaklardan ölçümleri toplamaya izin SDK'lardır ve otomatik ölçeklendirmeyi REST API'lerini kullanarak gerçekleştirir.The Azure Monitoring Service Management Library and the Microsoft Insights Library (in preview) are SDKs that allow collecting metrics from different resources, and perform autoscaling by making use of the REST APIs. Azure Resource Manager desteği olmayan kaynaklar için veya Azure Cloud Services kullanıyorsanız, otomatik ölçeklendirme için Hizmet Yönetimi REST API'si kullanılabilir.For resources where Azure Resource Manager support isn't available, or if you are using Azure Cloud Services, the Service Management REST API can be used for autoscaling. Diğer durumlarda, Azure Resource Manager'ı kullanın.In all other cases, use Azure Resource Manager.

Azure otomatik ölçeklendirme kullanırken aşağıdaki noktaları göz önünde bulundurun:Consider the following points when using Azure autoscale:

  • Zamanlanmış otomatik ölçeklendirme kullanmak için uygulama yükünü yeterince iyi tahmin edip edemeyeceğinizi, talepte artış olduğunda örnek ekleyip çıkarmanız gerekeceğini göz önünde bulundurun.Consider whether you can predict the load on the application well enough to use scheduled autoscaling, adding and removing instances to meet anticipated peaks in demand. Bu mümkün değilse, talepte öngörülemeyen değişiklikleri işlemek için çalışma zamanı ölçümlerini temel alan reaktif otomatik ölçeklendirme kullanın.If this isn't possible, use reactive autoscaling based on runtime metrics, in order to handle unpredictable changes in demand. Genellikle, bu yaklaşımları birleştirebilirsiniz.Typically, you can combine these approaches. Örneğin, bir uygulamanın en meşgul olduğunu bildiğiniz zamanlara göre kaynak ekleyen bir strateji oluşturun.For example, create a strategy that adds resources based on a schedule of the times when you know the application is most busy. Bu, herhangi bir gecikme olmadan yeni örneklerin başlatılmasını sağlayarak gerektiğinde kapasitenin artırılmasını mümkün kılar.This helps to ensure that capacity is available when required, without any delay from starting new instances. Zamanlanmış her kural için, uygulamanın sürekli ancak öngörülemeyen yükleri kaldırabileceğinden emin olmak için bu süre boyunca reaktif otomatik ölçeklendirmeye izin veren ölçümler tanımlayın.For each scheduled rule, define metrics that allow reactive autoscaling during that period to ensure that the application can handle sustained but unpredictable peaks in demand.

  • Genellikle, özellikle de bir uygulama başlangıçta dağıtıldıysa, ölçümler ve kapasite gereksinimleri arasındaki ilişkiyi anlamak zordur.It's often difficult to understand the relationship between metrics and capacity requirements, especially when an application is initially deployed. Başlarda küçük bir ek kapasite sağlayın ve ardından kapasiteyi gerçek yüke yaklaştırmak için otomatik ölçeklendirme kurallarını izleyin ve ayarlayın.Provision a little extra capacity at the beginning, and then monitor and tune the autoscaling rules to bring the capacity closer to the actual load.

  • Otomatik ölçeklendirme kurallarını yapılandırın ve ardından uygulamanızın zaman içerisinde performansını izleyin.Configure the autoscaling rules, and then monitor the performance of your application over time. Bu izleme sonuçlarını gerektiğinde sistemin ölçeklendirilme yöntemini ayarlamak için kullanın.Use the results of this monitoring to adjust the way in which the system scales if necessary. Bununla birlikte, otomatik ölçeklendirmenin anlık bir işlem olmadığını unutmayın.However, keep in mind that autoscaling is not an instantaneous process. Ortalama CPU kullanımının belirli bir eşiği aşması (veya altında kalması) gibi bir ölçüme yanıt vermek zaman alır.It takes time to react to a metric such as average CPU utilization exceeding (or falling below) a specified threshold.

  • Örneğin, CPU kullanımı veya sırası uzunluğu gibi bir ölçülen tetikleyici özniteliğini temel alan bir algılama mekanizmasından yararlanan otomatik ölçeklendirme kuralları, otomatik ölçeklendirme eylemi tetiklemek için anlık değerler yerine zaman içinde elde edilen bir toplu değer kullanır.Autoscaling rules that use a detection mechanism based on a measured trigger attribute (such as CPU usage or queue length) use an aggregated value over time, rather than instantaneous values, to trigger an autoscaling action. Varsayılan olarak, bu toplam değerlerin bir ortalamasıdır.By default, the aggregate is an average of the values. Bu, sistemin çok hızlı bir şekilde tepki vermesini veya hızlı salınıma neden olmasını engeller.This prevents the system from reacting too quickly, or causing rapid oscillation. Yeni örnekler başlatılırken ek otomatik ölçeklendirme işlemlerinin gerçekleşmesini engelleyerek otomatik başlatılan yeni örneklerin çalışma moduna geçmesine fırsat verir.It also allows time for new instances that are auto-started to settle into running mode, preventing additional autoscaling actions from occurring while the new instances are starting up. Azure Cloud Services ve Azure Sanal Makineler için varsayılan toplama süresi 45 dakikadır. Bu nedenle, ölçümün ani talep artışlarına yanıt olarak otomatik ölçeklendirmeyi tetiklemesi bu süre kadar sürebilir.For Azure Cloud Services and Azure Virtual Machines, the default period for the aggregation is 45 minutes, so it can take up to this period of time for the metric to trigger autoscaling in response to spikes in demand. SDK'yi kullanarak toplama dönemini değiştirmek, ancak 25 dakikadan az süreleri öngörülemeyen sonuçlara neden olabileceğini unutmayın.You can change the aggregation period by using the SDK, but be aware that periods of fewer than 25 minutes may cause unpredictable results. Web Apps için ortalama süre çok daha kısadır, ortalama tetikleme ölçümünde bir değişiklik olduktan yaklaşık beş dakika sonra yeni örneklerin kullanılabilir olmasını sağlar.For Web Apps, the averaging period is much shorter, allowing new instances to be available in about five minutes after a change to the average trigger measure.

  • Portal yerine SDK'yi kullanarak otomatik ölçeklendirmeyi yapılandırırsanız kuralların etkin olduğu daha ayrıntılı bir zamanlama belirtebilirsiniz.If you configure autoscaling using the SDK rather than the portal, you can specify a more detailed schedule during which the rules are active. Ayrıca kendi ölçümlerinizi oluşturabilir ve bunları otomatik ölçeklendirme kurallarınızda olan veya olmayan ölçümlerle birlikte kullanabilirsiniz.You can also create your own metrics and use them with or without any of the existing ones in your autoscaling rules. Örneğin, saniye başına istek sayısı veya ortalama bellek kullanılabilirliği gibi alternatif sayaçları veya belirli iş süreçlerini ölçen özel sayaçları kullanmak isteyebilirsiniz.For example, you may wish to use alternative counters, such as the number of requests per second or the average memory availability, or use custom counters that measure specific business processes.

  • Otomatik ölçeklendirme sırasında Service Fabric, kümenizdeki düğüm türleri arka uçta VM ölçek kümelerinden oluşur, her düğüm türü için otomatik ölçeklendirme kurallarını ayarlamanız gerekir.When autoscaling Service Fabric, the node types in your cluster are made of VM scale sets at the backend, so you need to set up auto-scale rules for each node type. Otomatik ölçeklendirmeyi ayarlamadan önce sahip olmanız gereken düğüm sayısını dikkate alın.Take into account the number of nodes that you must have before you set up auto-scaling. Birincil düğüm türü için gereken düğüm sayısı alt sınırı seçmiş olduğunuz güvenilirlik düzeyi tarafından yönetilir.The minimum number of nodes that you must have for the primary node type is driven by the reliability level you have chosen. Daha fazla bilgi için bkz. Bir Service Fabric kümesini otomatik ölçeklendirme kurallarını kullanarak içe veya dışa ölçeklendirme.For more info, see scale a Service Fabric cluster in or out using auto-scale rules.

  • SQL Veritabanı örnekleri ve kuyrukları gibi kaynakları bir bulut hizmeti örneğine bağlamak için portalı kullanabilirsiniz.You can use the portal to link resources such as SQL Database instances and queues to a Cloud Service instance. Bu, bağlı kaynakların her biri için ayrı elle ve otomatik ölçeklendirme yapılandırma seçeneklerine daha kolay erişmenizi sağlar.This allows you to more easily access the separate manual and automatic scaling configuration options for each of the linked resources. Daha fazla bilgi için nasıl yapılır: Bir kaynağı bir bulut hizmetine bağlama.For more information, see How to: Link a resource to a cloud service.

  • Birden çok ilke ve kural yapılandırdığınızda, bunlar birbiriyle çelişebilir.When you configure multiple policies and rules, they could conflict with each other. Otomatik ölçeklendirme, her zaman yeterli sayıda örnek çalıştırıldığından emin olmak için aşağıdaki çakışma çözümleme kurallarını kullanır:Autoscale uses the following conflict resolution rules to ensure that there is always a sufficient number of instances running:

    • Ölçek genişletme işlemleri, ölçek daraltma işlemlerine göre her zaman önceliklidir.Scale out operations always take precedence over scale in operations.
    • Ölçek genişletme işlemleri çakıştığında ölçeklendirme, örnek sayısında en büyük artışı başlatan kural öncelikli olur.When scale out operations conflict, the rule that initiates the largest increase in the number of instances takes precedence.
    • Ölçek daraltma işlemleri çakıştığında ölçeklendirme, örnek sayısında en küçük azaltmayı başlatan kural öncelikli olur.When scale in operations conflict, the rule that initiates the smallest decrease in the number of instances takes precedence.
  • App Service Ortamında, herhangi bir çalışan havuzu veya ön uç ölçümleri otomatik ölçeklendirme kurallarını tanımlamak için kullanılabilir.In an App Service Environment any worker pool or front-end metrics can be used to define autoscale rules. Daha fazla bilgi için bkz. Otomatik Ölçeklendirme ve App Service Ortamı.For more information, see Autoscaling and App Service Environment.

Uygulama tasarımında dikkat edilmesi gerekenlerApplication design considerations

Otomatik ölçeklendirme anlık bir çözüm değildir.Autoscaling isn't an instant solution. Bir sisteme sadece kaynak eklemek veya bir işlem için daha fazla örnek çalıştırmak sistem performansının artacağını garanti etmez.Simply adding resources to a system or running more instances of a process doesn't guarantee that the performance of the system will improve. Otomatik ölçeklendirme stratejinizi tasarlarken aşağıdaki noktaları göz önünde bulundurun:Consider the following points when designing an autoscaling strategy:

  • Sistemin yatay ölçeklendirme için tasarlanmış olması gerekir.The system must be designed to be horizontally scalable. Örnek benzeşimi ile ilgili varsayım yapmaktan kaçının; kodun her zaman belirli bir işlem örneğinde çalışıyor olmasını gerektiren çözümler tasarlamayın.Avoid making assumptions about instance affinity; do not design solutions that require that the code is always running in a specific instance of a process. Bir bulut hizmeti veya web sitesini yatay olarak ölçeklendirirken, aynı kaynaktan gelen bir dizi isteğin her zaman aynı örneğe yönlendirileceğini varsaymayın.When scaling a cloud service or web site horizontally, don't assume that a series of requests from the same source will always be routed to the same instance. Aynı nedenden dolayı, bir dizi isteğin her zaman bir hizmetin aynı örneğine yönlendirilmesini önlemek için hizmetleri durum bilgisiz olarak tasarlayın.For the same reason, design services to be stateless to avoid requiring a series of requests from an application to always be routed to the same instance of a service. Bir kuyruktan ileti okuyan ve bu iletileri işleyen bir hizmet tasarlarken belirli bir iletiyi hizmetin hangi örneğinin işleyeceği hakkında varsayımda bulunmayın.When designing a service that reads messages from a queue and processes them, don't make any assumptions about which instance of the service handles a specific message. Kuyruk uzunluğu arttıkça otomatik ölçeklendirme hizmetin ek örneklerini başlatabilir.Autoscaling could start additional instances of a service as the queue length grows. Rakip tüketiciler düzeni bu senaryonun nasıl ele alınacağını açıklar.The Competing Consumers pattern describes how to handle this scenario.

  • Çözüm, uzun süre çalışacak bir görev uygulayacaksa, bu görevi ölçeği hem genişletmeyi hem de daraltmayı destekleyecek şekilde tasarlayın.If the solution implements a long-running task, design this task to support both scaling out and scaling in. Sonrası düşünülmediğinde, bu tür bir görev ölçek daraltıldığında bir işlemin düzgün bir şekilde kapatılmasını engelleyebilir veya işlem sonlandırılmaya zorlanırsa veri kaybına neden olabilir.Without due care, such a task could prevent an instance of a process from being shut down cleanly when the system scales in, or it could lose data if the process is forcibly terminated. İdeal olarak, uzun süre çalışan görevleri yeniden düzenleyin ve daha küçük, ayrık parçaları işleyecek hale getirin.Ideally, refactor a long-running task and break up the processing that it performs into smaller, discrete chunks. Kanallar ve filtreler düzeni Bunu başarmak nasıl bir örnek sağlar.The Pipes and Filters pattern provides an example of how you can achieve this.

  • Alternatif olarak, düzenli aralıklarla görevle ilgili durum bilgilerini kaydeden ve bu bilgileri, görevi çalıştıran işlemin bir örneği tarafından erişilebilen dayanıklı bir depolama alanına kaydeden bir denetim noktası mekanizması uygulayabilirsiniz.Alternatively, you can implement a checkpoint mechanism that records state information about the task at regular intervals, and save this state in durable storage that can be accessed by any instance of the process running the task. Böylece, işlem kapatılırsa bile yapmakta olduğu iş son denetim noktasından başka bir örneği kullanarak devam ettirilebilir.In this way, if the process is shutdown, the work that it was performing can be resumed from the last checkpoint by using another instance.

  • Arka plan görevleri, bulut hizmetlerinde barındırılan bir uygulamanın çalışan rolleri gibi ayrı işlem örneklerinde çalıştırıldığında, uygulamanın farklı kısımlarını farklı ölçeklendirme ilkeleri kullanarak ölçeklendirmeniz gerekebilir.When background tasks run on separate compute instances, such as in worker roles of a cloud services hosted application, you may need to scale different parts of the application using different scaling policies. Örneğin, arka plan işlem örneklerinin sayısını artırmadan (veya bunun tam tersi) ek kullanıcı arabirimi (UI) işlem örnekleri dağıtmanız gerekebilir.For example, you may need to deploy additional user interface (UI) compute instances without increasing the number of background compute instances, or the opposite of this. Farklı hizmet düzeyleri (örneğin, temel ve premium hizmet paketleri) sunuyorsanız, SLA gereksinimlerini karşılamak için premium hizmet paketlerinin işlem kaynaklarını temel hizmet paketleri için olandan daha agresif bir şekilde ölçeklendirmeniz gerekebilir.If you offer different levels of service (such as basic and premium service packages), you may need to scale out the compute resources for premium service packages more aggressively than those for basic service packages in order to meet SLAs.

  • Otomatik ölçeklendirme stratejinizde ölçüt olarak kullanıcı arabirimi ve arka plan işlem örneklerinin sıra uzunluğunu kullanmayı göz önünde bulundurun.Consider using the length of the queue over which UI and background compute instances communicate as a criterion for your autoscaling strategy. Bu, bir dengesizlik veya geçerli iş yüküyle arka plan görevinin işlem kapasitesi arasındaki fark için en iyi göstergedir.This is the best indicator of an imbalance or difference between the current load and the processing capacity of the background task.

  • Otomatik ölçeklendirme stratejiniz karmaşık bir işlemin ortalama yürütme süresi veya saat başına verilen sipariş sayısı gibi iş süreçlerini ölçen sayaçları temel alıyorsa, bu sayaçların sonuçları ve gerçek işlem kapasitesi gereksinimleri arasındaki ilişkiyi tam olarak anladığınızdan emin olun.If you base your autoscaling strategy on counters that measure business processes, such as the number of orders placed per hour or the average execution time of a complex transaction, ensure that you fully understand the relationship between the results from these types of counters and the actual compute capacity requirements. İş işlem sayaçlarındaki değişikliklere yanıt olarak birden fazla bileşenin veya işlem biriminin ölçeklendirilmesi gerekli olabilir.It may be necessary to scale more than one component or compute unit in response to changes in business process counters.

  • Bir sistemin ölçeğini aşırı artırmasını ve binlerce örnek çalıştırmayla ilişkili maliyetleri önlemek için otomatik olarak eklenebilir örneklerinin sayısını sınırlandırmayı göz önünde bulundurun.To prevent a system from attempting to scale out excessively, and to avoid the costs associated with running many thousands of instances, consider limiting the maximum number of instances that can be automatically added. Çoğu otomatik ölçeklendirme mekanizması bir kural için minimum ve maksimum örnek sayısını belirtmenizi sağlar.Most autoscaling mechanisms allow you to specify the minimum and maximum number of instances for a rule. Ayrıca, maksimum sayıda örnek dağıtıldıysa ancak sistem yine de aşırı yüklüyse sistemin işlevlerini düzgün bir şekilde düşürmeyi göz önünde bulundurun.In addition, consider gracefully degrading the functionality that the system provides if the maximum number of instances have been deployed, and the system is still overloaded.

  • Otomatik ölçeklendirmenin iş yükünde ani artışlara karşı en uygun mekanizma olmayabileceğini unutmayın.Keep in mind that autoscaling might not be the most appropriate mechanism to handle a sudden burst in workload. Bir sistemde yeni hizmet örnekleri sağlamak ve bu örnekleri başlatmak veya sistem kaynakları eklemek zaman alır ve bu ek kaynaklar kullanımına sunulana kadar talep azalabilir.It takes time to provision and start new instances of a service or add resources to a system, and the peak demand may have passed by the time these additional resources have been made available. Bu senaryoda, hizmeti kısıtlamak daha iyi olabilir.In this scenario, it may be better to throttle the service. Daha fazla bilgi için azaltma düzeni.For more information, see the Throttling pattern.

  • Buna karşılık, birim hızlı bir şekilde dalgalandığında ve maliyet önemli bir faktör olmadığında tüm istekleri işlemek için kapasite gerekiyorsa, ek örnekleri daha hızlı bir şekilde başlatacak agresif bir otomatik ölçeklendirme stratejisi kullanmayı düşünün.Conversely, if you do need the capacity to process all requests when the volume fluctuates rapidly, and cost isn't a major contributing factor, consider using an aggressive autoscaling strategy that starts additional instances more quickly. Örnekleri beklenen yük gelmeden önce maksimum yükü karşılayacak şekilde yeterli sayıda başlatacak zamanlanmış bir ilke de kullanabilirsiniz.You can also use a scheduled policy that starts a sufficient number of instances to meet the maximum load before that load is expected.

  • Otomatik ölçeklendirme mekanizması otomatik ölçeklendirme işlemini izlemeli ve her otomatik ölçeklendirme olayının ayrıntılarını (neyin tetiklediği, hangi kaynakların eklendiği ve ne zaman eklendiği) kaydetmelidir.The autoscaling mechanism should monitor the autoscaling process, and log the details of each autoscaling event (what triggered it, what resources were added or removed, and when). Özel bir otomatik ölçeklendirme mekanizması oluşturursanız, bu özelliği içerdiğinden emin olun.If you create a custom autoscaling mechanism, ensure that it incorporates this capability. Otomatik ölçeklendirme stratejisinin verimliliğini ölçmeye ve gerekirse ayarlamaya yardımcı olması için bu bilgileri analiz edin.Analyze the information to help measure the effectiveness of the autoscaling strategy, and tune it if necessary. Kullanım alışkanlıkları daha belirgin hale geldikçe işletmenin genişlemesine veya uygulamanın gereksinimlerindeki değişikliklere göre hem kısa vadede hem de uzun vadede ayarlamalar yapabilirsiniz.You can tune both in the short term, as the usage patterns become more obvious, and over the long term, as the business expands or the requirements of the application evolve. Bir uygulama otomatik ölçeklendirme için tanımlanmış boyut üst sınırına ulaşırsa, mekanizma, gerekirse ek kaynakları başlatabilecek bir kullanıcıya uyarı gönderebilir.If an application reaches the upper limit defined for autoscaling, the mechanism might also alert an operator who could manually start additional resources if necessary. Bu durumda kullanıcının, iş yükü azaldığında bu kaynakları el ile kaldırması gerekeceğini unutmayın.Note that, under these circumstances, the operator may also be responsible for manually removing these resources after the workload eases.

Aşağıdaki düzenler ve kılavuzlar otomatik ölçeklendirme uygularken senaryonuz için uygun olabilir:The following patterns and guidance may also be relevant to your scenario when implementing autoscaling:

  • Azaltma düzeni.Throttling pattern. Bu düzende, talepteki artış kaynaklara aşırı yük bindirdiğinde uygulamanın nasıl çalışmaya devam edeceğini ve SLA gereksinimlerini karşılayacağını anlatılmıştır.This pattern describes how an application can continue to function and meet SLAs when an increase in demand places an extreme load on resources. Azaltma, bir sistemin ölçeğini artırırken aşırı yük altında kalmasını önlemek için otomatik ölçeklendirmeyle birlikte kullanılabilir.Throttling can be used with autoscaling to prevent a system from being overwhelmed while the system scales out.

  • Rakip Tüketiciler düzeni.Competing Consumers pattern. Bu düzende, herhangi bir uygulama örneğinden alınan iletileri işleyecek hizmet örneklerinin bir havuzunun nasıl uygulanacağı açıklanır.This pattern describes how to implement a pool of service instances that can handle messages from any application instance. Otomatik ölçeklendirme, beklenen iş yüküne göre hizmet örneklerinin durdurulması ve başlatılması için kullanılabilir.Autoscaling can be used to start and stop service instances to match the anticipated workload. Bu yaklaşım, sistemin aktarım hızını en iyi duruma getirmek, ölçeklenebilirliği ve kullanılabilirliği geliştirmek ve iş yükünü dengelemek için birden çok iletiyi işlemesini sağlar.This approach enables a system to process multiple messages concurrently to optimize throughput, improve scalability and availability, and balance the workload.

  • İzleme ve tanılama.Monitoring and diagnostics. İzleme ve telemetri, otomatik ölçeklendirme işlemini yönetecek bilgileri toplamak için önemlidir.Instrumentation and telemetry are vital for gathering the information that can drive the autoscaling process.