Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Quota Increase: 100 cores per env, 15 env per region, no app per env quota #503

Closed
torosent opened this issue Nov 21, 2022 · 24 comments
Closed
Labels
ANNOUNCEMENT Announcement from the product group Quotas Related to quotas in Container Apps Scale related to scaling behavior

Comments

@torosent
Copy link
Member

torosent commented Nov 21, 2022

Hi All,

We are increasing the default quotas to the following:
Cores: 100 per environment.
Environments: up to 15 per region.
No quota limit of apps per env - the cores will be the only limit per environment.

Notes

  1. The change will propagate during December.
  2. New environments are already provisioned with 100 cores by default.
  3. You can request via a support ticket up to 30 environments per region.
@torosent torosent added Scale related to scaling behavior Quotas Related to quotas in Container Apps labels Nov 21, 2022
@torosent torosent pinned this issue Nov 21, 2022
@ghost ghost added the Needs: triage 🔍 Pending a first pass to read, tag, and assign label Nov 21, 2022
@dariagrigoriu dariagrigoriu changed the title New Quotas Quotas Roadmap Nov 21, 2022
@torosent torosent removed the Needs: triage 🔍 Pending a first pass to read, tag, and assign label Nov 21, 2022
@kendallroden kendallroden added the ANNOUNCEMENT Announcement from the product group label Dec 12, 2022
@kendallroden kendallroden changed the title Quotas Roadmap Quota Increase: 40 cores per env, 40 apps per env, 15 env per region Dec 12, 2022
@lgmorand
Copy link

lgmorand commented Jan 7, 2023

how can we check, as users, if it has been rollout or not ? I saw no announcement about it yet and I don't know if we can communicate this to Cx. Thanks :)

@torosent torosent unpinned this issue Jan 24, 2023
@metamultiverse
Copy link

Hello . please let us know how much max replicas can be granted by contacting support?

@SophCarp SophCarp changed the title Quota Increase: 40 cores per env, 40 apps per env, 15 env per region Quota Increase: 40 cores per env, 15 env per region, no app/env quota Feb 14, 2023
@SophCarp SophCarp changed the title Quota Increase: 40 cores per env, 15 env per region, no app/env quota Quota Increase: 40 cores per env, 15 env per region, no app per env quota Feb 14, 2023
@SophCarp
Copy link

Apologies for the late communication. @lgmorand this has been rolled out. @metamultiverse the current quota of replica is 30 per revision. Each quota increase request is personalized and based on the customer's needs. I'm not aware of any specific max when it comes to replicas.

Additional note: There is no longer a quota for apps per environment. This is intended to simplify the quotas for ACA 😄

@lgmorand
Copy link

Thanks Sophia. but then should not the issue be closed ? :)

@SophCarp
Copy link

@lgmorand Since this is an item in the roadmap, we leave the issue open so it can be seen and tracked. It moving to different sections of the roadmap indicates its status.

@lgmorand
Copy link

With GitHub projects (classic & new ones), you can have closed issues in the board and move them from one section to another at anytime. Totally not related to the issue's status :)

It'd be less confusing for customers especially because ACA now has a big roadmap (great news :))

ie. AKS roadmap, items are closed by Jorge/Mike when rollout https://github.com/Azure/AKS/projects/1

@anrub
Copy link

anrub commented Mar 1, 2023

Does it mean, that all existing environments have now the new quota? Or is it neccessary to recreate the environment or can I get it somehow "moved up"?

@metamultiverse
Copy link

@SophCarp thank you for update.
As per current quota, single container app can scale up 30 replicas per revision , 2 Cores per replica and max 100 cores per env. So max scale single container app can achieve is
Revison 1 - 30 replicas - 2 Cores/Replica
Revision 2 - 20 Replicas - 2 Cores/Replica

Can container apps can large number of scale like VMSS?

@SophCarp
Copy link

@anrub All existing environments have the quota, so you don't need to recreate an environment to access the larger quota.

@metamultiverse I'm not sure where you got 100 cores per environment. The current default max is 40 cores per environment. I believe we're working to increase to 100 cores per environment, but it's not available by default yet. @torosent correct me if I missed an announcement

If you have access to 100 cores/environment, your answer is a possible maximum.

however, if we look at the current default maximums:

  • Maximum 40 cores in an environment
  • Maximum 100 revisions per container app
  • Maximum 30 replicas per revision
  • Maximum 2 cores per replica.

If you want 1 container app in your environment with two active revisions with 2 cores per replica, you could have:
Revision 1: 10 replicas (2 cores/replica = 20 cores total)
Revision 2: 10 replicas (2 cores/replica = 20 cores total)

However, it's relevant to note that you can have a smaller amount of core in each replica. For example, if you choose to have 1 core per replica you could have 20 replicas in each revision. ex:
Revision 1: 20 replicas (1 core/replica = 20 cores total)
Revision 2: 20 replicas (1 core per replica = 20 cores total)

If you had a half core in each replica, you'd need three revisions to max out:
Revision 1: 30 replicas (1/2 core per replica = 15 cores in this revision)
Revision 2: 30 replicas (1/2 core per replica = 15 cores in this revision)
Revision 3: 20 replicas (1/2core per replica = 10 cores in this revision)

Quota documentation is: https://learn.microsoft.com/en-us/azure/container-apps/quotas

I'm not quite sure what your question is, could you rephrase it? Container apps does have scaling options: https://learn.microsoft.com/en-us/azure/container-apps/scale-app?pivots=azure-cli

@metamultiverse
Copy link

@SophCarp Max 100 core limit is by contacting support.
Our main question is around scaling. As per quota, Single app can scale up to 100 cores per environment. What if we want our scale app beyond that? We need to create multiple apps in multiple environments and then use load balancer.

Thanks

@alhardy
Copy link

alhardy commented Mar 13, 2023

100 cores is a lot for a single app isn't it?

Are there plans to continue scaling container apps beyond the current 100 core max? This seems fairly limiting.

@SophCarp
Copy link

@SophCarp Max 100 core limit is by contacting support. Our main question is around scaling. As per quota, Single app can scale up to 100 cores per environment. What if we want our scale app beyond that? We need to create multiple apps in multiple environments and then use load balancer.

Thanks

Hi @metamultiverse Ah I think I understand better. If you want to scale your app beyond 100 cores, you can request another increase. We are continuously working to increase our default quotas and are happy to accommodate most individual quota increases!

@alhardy to clarify, the default quota is currently 40 cores per environment, not 100. @metamultiverse submitted a quota increase for themselves and now has 100 cores per environment. We are working to increase default quota, and users can always submit requests for quota increases.

Additionally, I'm working to improve our quota process for customers, to automate and streamline the process.

Helpful resources:
Current Quota: https://learn.microsoft.com/en-us/azure/container-apps/quotas
How to request a quota increase: https://learn.microsoft.com/en-us/azure/container-apps/faq#how-can-i-request-a-quota-increase-

@SophCarp
Copy link

Quick edit for clarity: The original issue mentioned a that you can request up to 100 apps per env. That was a residual from when we had an app-per-env quota. When I updated this issue in February to remove the app-per-env quota I didn't notice I needed to remove it from the note about requests as well.

The only per-environment quota we have is cores. If you want to request an increase in your environment's capacity, you only need to consider cores.

@anrub
Copy link

anrub commented Mar 30, 2023

Currently, a major problem in VNet integrated environments is subnet size. If your subnet for cappenv is not big enough (more than /23) you can not scale up to a lot more than 40 cores.

@metamultiverse
Copy link

Noted @SophCarp

@anrub /23 subnet will give 510 ip address/ 510 pods. So i guess max limitation on single environment would be 510 pods / replicas. So it will basically act as AKS cluster with max 510 pods ( 510x2 cores per replica/pods = 1020 cores)
@SophCarp please correct me if I am wrong.

@anrub
Copy link

anrub commented Mar 31, 2023

Noted @SophCarp

@anrub /23 subnet will give 510 ip address/ 510 pods. So i guess max limitation on single environment would be 510 pods / replicas. So it will basically act as AKS cluster with max 510 pods ( 510x2 cores per replica/pods = 1020 cores) @SophCarp please correct me if I am wrong.

Sadly, this is wrong at the moment. capps can max. deploy 12 AKS nodes to a /23 subnet (for whatever reason). So you get roughly 40 cores. Hope this will change in the future.

@metamultiverse
Copy link

metamultiverse commented Apr 5, 2023

@anrub noted.
@SophCarp Can you please update on above comments? We will have scaling dependency on number of replicas/core to decide to use ACA or AKS

@SophCarp
Copy link

SophCarp commented Apr 7, 2023

Hi @anrub and @metamultiverse Thank you for your patience!

In the current system, yes, you are correct that a /23 subnet gets you roughly 40 cores.

However, we have just soft launched a new option with workload profiles. https://learn.microsoft.com/en-us/azure/container-apps/workload-profiles-overview. This actually does allow for much smaller subnets to have capacity for many more cores.

There's more complicated math, but approximately in the established system (consumption only) there's 1 IP per replica(with a bit reserved for ACA). In the Dedicated workload profile, there's 1 IP per node.

I'll find the exact equations. @BigMorty Please correct any mistakes on my part about workload profiles!

@SophCarp
Copy link

SophCarp commented Apr 7, 2023

Okay, I procrastinated my other work and did the math:

For Consumption V1: (the established system)

Subnet size = S
TotalIPs = 2^(32-s)
TotalNodes = 1 + (TotalIPs)/(30+1)
NodesAvailable = TotalNodes - 3 (reserving for platform use)
CoresAvailable = 3*NodesAvailable (4 Cores per Node, 1/4 of cores reserved for upgrade surges)

Dedicated and Consumption Hybrid Infastructure:

Subnet size = s
TotalIPs = 2^(32-s)
AvailableIPs = TotalIPs - 12 (reserving 12 IPs for platform use)

ConsumptionV2IPs = 10 minimum (As in, within the environment, at least 10 IPs are set aside for you to use for consumption. This may change! In any case, as later math shows, this is still a huge improvement in cores availability)
ConsumptionV2Nodes = ConsumptionV2IPs
ConsumptionV2Cores = 3*ConsumptionV2Nodes

DedicatedIPs = AvailableIPs - ConsumptionV2IPs
DedicatedNodes = DedicatedIPs
DedicatedCores = 3*DedicatedNodes (At minimum. Nodes have at minimum 4 Cores, with 1/4 reserved for upgrade surges. Depending on the workload profile you choose, you can have larger nodes)

Examples:

Consumption V1, with subnet /23

Subnet = 23
Total Ips = 2^(32-23) = 512 Ips
TotalNodes = 1 + (512/31) = 18 ish Nodes
NodesAvailable = 18 - 3 = 15 Nodes
CoresAvailable = 15*3 = 45 Cores

So in the established consumption system, when you have a subnet /23, you have access to at maximum about 45 cores.

Now in the dedicated and Consumption Hybrid, with a subnet of /27:

Subnet = 27
TotalIPs = 2^(32-27) = 32 IPs
AvailableIPs = 32 - 12 = 20 IPs

ConsumptionV2IPs = 10 Ips
ConsumptionV2Nodes = 10 nodes
ConsumptionV2Cores = 3*10 = 30 cores

DedicatedIPs = 20 - 10 = 10 Ips
DedicatedNodes = 101 = 10 nodes
DedicatedCores = 3
10 = 30 cores minimum

So, in the hybrid workplan, an environment with a subnet /27 can access 30 cores for consumption work ad 30 cores for dedicated work, meaning 60 cores total, more than /23 in the consumption-only plan. That also doesn't account for having more cores/node as some dedicated workload profiles do.

Please note, I'm not a dev and I'm not the PM working on the new workload profiles! Any mistakes are on me, and there is documentation explaining workload profiles far better than me here: https://learn.microsoft.com/en-us/azure/container-apps/workload-profiles-overview I just like math :) If this breakdown is useful, we could add it somewhere to the ACA docs.

@sanchitmehta @vinisoto @BigMorty could you confirm my math/explanations?

@BigMorty
Copy link
Member

BigMorty commented Apr 8, 2023

We have a doc article that covers the IP allocation - https://learn.microsoft.com/en-us/azure/container-apps/networking#subnet

@joeizy
Copy link

joeizy commented May 17, 2023

Also, it seems the /23 is the minimum subnet size not the maximum. In theory the subnet can be bigger so in combination with core quota increases we should be able to accommodate much larger environments than 100 cores. Is that right?

(Referring to the established Consumption model)

@torosent torosent changed the title Quota Increase: 40 cores per env, 15 env per region, no app per env quota Quota Increase: 100 cores per env, 15 env per region, no app per env quota May 23, 2023
@PaulVrugt
Copy link

Reading this, I am confused as to why we get the error: the environment <name> cannot have more than 100 apps in west europe

I seem to read everywhere there is no limit on the amount of apps in an environment, but still we get this error

@pownkel
Copy link

pownkel commented Nov 8, 2023

Reading this, I am confused as to why we get the error: the environment <name> cannot have more than 100 apps in west europe

I seem to read everywhere there is no limit on the amount of apps in an environment, but still we get this error

I'm getting this same message when trying to create a dedicated workload profile to increase scalability. I really wish this limit was clear in the documentation, I was hoping that container app jobs would be a good serverless option for handling high computing workloads but if there's a hard limit on scaling in the 100's that probably isn't the case. Are there any plans to increase this? If a quota increase can be requested, what is the upper limit on that?

@al-karbonhq
Copy link

al-karbonhq commented May 12, 2024

@SophCarp

We're doing some capacity planning with container apps. A couple of questions:

  • Is there still ongoing work to further increase the soft limit of 100 Cores / environment? If yes what does that roughly look like
  • Is there currently a known hard limit of quota increases?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ANNOUNCEMENT Announcement from the product group Quotas Related to quotas in Container Apps Scale related to scaling behavior
Projects
Status: Generally Available (Done)
Development

No branches or pull requests