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

[CES-131] Scale Up io-p-cosmos-api #1204

Merged
merged 8 commits into from
Oct 4, 2024
Merged

Conversation

mamu0
Copy link
Contributor

@mamu0 mamu0 commented Sep 30, 2024

List of changes

Scaled RU for io-p-cosmos-api

Motivation and context

To be able to handle greater load

Type of changes

  • Add new resources
  • Update configuration to existing resources
  • Remove existing resources

Env to apply

  • DEV
  • UAT
  • PROD

Does this introduce a change to production resources with possible user impact?

  • Yes, users may be impacted applying this change
  • No

Does this introduce an unwanted change on infrastructure? Check terraform plan execution result

  • Yes
  • No

Other information

service has not yet been scaled (it is now at 15,000 RU) as it has not yet been decided how much to scale it


If PR is partially applied, why? (reserved to mantainers)

How to apply

After PR is approved

  1. run deploy pipeline from Azure DevOps io-platform-iac-projects
  2. select PR branch
  3. wait for approval

@gunzip
Copy link
Contributor

gunzip commented Sep 30, 2024

Do we have an extimate of cost increase?

@mamu0
Copy link
Contributor Author

mamu0 commented Sep 30, 2024

Do we have an extimate of cost increase?

yes, you can find it in the ticket description

@Krusty93 Krusty93 marked this pull request as ready for review October 4, 2024 12:32
@Krusty93 Krusty93 requested a review from a team as a code owner October 4, 2024 12:32
Copy link

sonarqubecloud bot commented Oct 4, 2024

Copy link

github-actions bot commented Oct 4, 2024

📖 Terraform Plan ('src/common/prod') - success

Terraform Plan
data.azurerm_linux_function_app.function_cgn: Still reading... [10s elapsed]
data.azurerm_linux_function_app.function_assets_cdn: Still reading... [10s elapsed]
data.azurerm_linux_web_app.firmaconio_selfcare_web_app: Still reading... [10s elapsed]
data.azurerm_linux_function_app.app_messages[0]: Still reading... [10s elapsed]
data.azurerm_linux_function_app.app_messages[1]: Still reading... [10s elapsed]
data.azurerm_linux_function_app.io_sign_user: Still reading... [10s elapsed]
module.application_gateway_weu.data.azurerm_linux_web_app.fims_op_app: Still reading... [10s elapsed]
data.azurerm_linux_function_app.wallet_user: Still reading... [10s elapsed]
data.azurerm_linux_function_app.eucovidcert: Still reading... [10s elapsed]
data.azurerm_linux_function_app.function_profile[0]: Still reading... [10s elapsed]
data.azurerm_linux_function_app.wallet_user: Still reading... [20s elapsed]
data.azurerm_linux_function_app.function_profile[1]: Still reading... [10s elapsed]
data.azurerm_linux_function_app.services_app_backend_function_app: Still reading... [10s elapsed]
data.azurerm_linux_function_app.lollipop_function: Still reading... [10s elapsed]
module.application_gateway_weu.data.azurerm_linux_web_app.cms_backoffice_app_itn: Still reading... [10s elapsed]
module.application_gateway_weu.data.azurerm_linux_web_app.appservice_devportal_be: Still reading... [10s elapsed]
module.application_gateway_weu.data.azurerm_linux_web_app.session_manager_03: Still reading... [10s elapsed]
module.application_gateway_weu.data.azurerm_linux_web_app.session_manager_04: Still reading... [10s elapsed]
module.application_gateway_weu.data.azurerm_linux_web_app.appservice_continua: Still reading... [10s elapsed]
data.azurerm_linux_function_app.function_profile[1]: Still reading... [20s elapsed]
data.azurerm_linux_function_app.services_app_backend_function_app: Still reading... [20s elapsed]
data.azurerm_linux_function_app.lollipop_function: Still reading... [20s elapsed]
module.application_gateway_weu.data.azurerm_linux_web_app.cms_backoffice_app_itn: Still reading... [20s elapsed]
module.application_gateway_weu.data.azurerm_linux_web_app.appservice_selfcare_be: Still reading... [10s elapsed]

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  ~ update in-place

Terraform will perform the following actions:

  # module.application_gateway_weu.azurerm_web_application_firewall_policy.api_app will be updated in-place
  ~ resource "azurerm_web_application_firewall_policy" "api_app" {
        id                  = "/subscriptions/ec285037-c673-4f58-b594-d7c480da4e8b/resourceGroups/io-p-rg-external/providers/Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies/io-p-waf-appgateway-api-app-policy"
        name                = "io-p-waf-appgateway-api-app-policy"
        tags                = {
            "CostCenter"  = "TS310 - PAGAMENTI & SERVIZI"
            "CreatedBy"   = "Terraform"
            "Environment" = "Prod"
            "Owner"       = "IO"
            "Source"      = "https://github.com/pagopa/io-infra"
        }
        # (4 unchanged attributes hidden)

      ~ policy_settings {
          ~ request_body_inspect_limit_in_kb          = 0 -> 128
            # (6 unchanged attributes hidden)
        }

        # (1 unchanged block hidden)
    }

  # module.cosmos_api_weu.azurerm_cosmosdb_sql_container.these["message-status"] will be updated in-place
  ~ resource "azurerm_cosmosdb_sql_container" "these" {
        id                  = "/subscriptions/ec285037-c673-4f58-b594-d7c480da4e8b/resourceGroups/io-p-rg-internal/providers/Microsoft.DocumentDB/databaseAccounts/io-p-cosmos-api/sqlDatabases/db/containers/message-status"
        name                = "message-status"
        # (8 unchanged attributes hidden)

      ~ autoscale_settings {
          ~ max_throughput = 67000 -> 200000
        }

        # (2 unchanged blocks hidden)
    }

  # module.cosmos_api_weu.azurerm_cosmosdb_sql_container.these["messages"] will be updated in-place
  ~ resource "azurerm_cosmosdb_sql_container" "these" {
        id                  = "/subscriptions/ec285037-c673-4f58-b594-d7c480da4e8b/resourceGroups/io-p-rg-internal/providers/Microsoft.DocumentDB/databaseAccounts/io-p-cosmos-api/sqlDatabases/db/containers/messages"
        name                = "messages"
        # (8 unchanged attributes hidden)

      ~ autoscale_settings {
          ~ max_throughput = 46000 -> 100000
        }

        # (2 unchanged blocks hidden)
    }

  # module.cosmos_api_weu.azurerm_cosmosdb_sql_container.these["profiles"] will be updated in-place
  ~ resource "azurerm_cosmosdb_sql_container" "these" {
        id                  = "/subscriptions/ec285037-c673-4f58-b594-d7c480da4e8b/resourceGroups/io-p-rg-internal/providers/Microsoft.DocumentDB/databaseAccounts/io-p-cosmos-api/sqlDatabases/db/containers/profiles"
        name                = "profiles"
        # (7 unchanged attributes hidden)

      ~ autoscale_settings {
          ~ max_throughput = 48000 -> 100000
        }

        # (2 unchanged blocks hidden)
    }

  # module.app_backend_weu["1"].module.appservice_app_backend.azurerm_linux_web_app.this will be updated in-place
  ~ resource "azurerm_linux_web_app" "this" {
      ~ app_settings                                   = {
          ~ "APP_MESSAGES_API_URL"                            = "https://io-p-weu-com-citizen-func-01.azurewebsites.net/api/v1" -> "https://io-p-app-messages-fn-1.azurewebsites.net/api/v1"
            # (114 unchanged elements hidden)
        }
        id                                             = "/subscriptions/ec285037-c673-4f58-b594-d7c480da4e8b/resourceGroups/io-p-rg-linux/providers/Microsoft.Web/sites/io-p-app-appbackendl1"
        name                                           = "io-p-app-appbackendl1"
        tags                                           = {
            "CostCenter"                                     = "TS310 - PAGAMENTI & SERVIZI"
            "CreatedBy"                                      = "Terraform"
            "Environment"                                    = "Prod"
            "Owner"                                          = "IO"
            "Source"                                         = "https://github.com/pagopa/io-infra/blob/main/src/common/prod"
        }
        # (21 unchanged attributes hidden)

        # (2 unchanged blocks hidden)
    }

  # module.app_backend_weu["2"].module.appservice_app_backend.azurerm_linux_web_app.this will be updated in-place
  ~ resource "azurerm_linux_web_app" "this" {
      ~ app_settings                                   = {
          ~ "APP_MESSAGES_API_URL"                            = "https://io-p-weu-com-citizen-func-02.azurewebsites.net/api/v1" -> "https://io-p-app-messages-fn-2.azurewebsites.net/api/v1"
            # (114 unchanged elements hidden)
        }
        id                                             = "/subscriptions/ec285037-c673-4f58-b594-d7c480da4e8b/resourceGroups/io-p-rg-linux/providers/Microsoft.Web/sites/io-p-app-appbackendl2"
        name                                           = "io-p-app-appbackendl2"
        tags                                           = {
            "CostCenter"                                     = "TS310 - PAGAMENTI & SERVIZI"
            "CreatedBy"                                      = "Terraform"
            "Environment"                                    = "Prod"
            "Owner"                                          = "IO"
            "Source"                                         = "https://github.com/pagopa/io-infra/blob/main/src/common/prod"
        }
        # (21 unchanged attributes hidden)

        # (2 unchanged blocks hidden)
    }

  # module.app_backend_weu["3"].module.appservice_app_backend.azurerm_linux_web_app.this will be updated in-place
  ~ resource "azurerm_linux_web_app" "this" {
      ~ app_settings                                   = {
          ~ "APP_MESSAGES_API_URL"                            = "https://io-p-weu-com-citizen-func-01.azurewebsites.net/api/v1" -> "https://io-p-app-messages-fn-1.azurewebsites.net/api/v1"
            # (114 unchanged elements hidden)
        }
        id                                             = "/subscriptions/ec285037-c673-4f58-b594-d7c480da4e8b/resourceGroups/io-p-rg-linux/providers/Microsoft.Web/sites/io-p-app-appbackendl3"
        name                                           = "io-p-app-appbackendl3"
        tags                                           = {
            "CostCenter"  = "TS310 - PAGAMENTI & SERVIZI"
            "CreatedBy"   = "Terraform"
            "Environment" = "Prod"
            "Owner"       = "IO"
            "Source"      = "https://github.com/pagopa/io-infra/blob/main/src/common/prod"
        }
        # (21 unchanged attributes hidden)

        # (2 unchanged blocks hidden)
    }

Plan: 0 to add, 7 to change, 0 to destroy.

Warning: Argument is deprecated

  with module.application_gateway_weu.azurerm_web_application_firewall_policy.api_app,
  on ../_modules/application_gateway/firewall.tf line 60, in resource "azurerm_web_application_firewall_policy" "api_app":
  60:       rule_group_override {

`disabled_rules` will be removed in favour of the `rule` property in version
4.0 of the AzureRM Provider.

(and 50 more similar warnings elsewhere)

─────────────────────────────────────────────────────────────────────────────

Note: You didn't use the -out option to save this plan, so Terraform can't
guarantee to take exactly these actions if you run "terraform apply" now.

@Krusty93 Krusty93 merged commit 0c25a82 into main Oct 4, 2024
7 of 8 checks passed
@Krusty93 Krusty93 deleted the CES-131-scaling-cosmos-api branch October 4, 2024 12:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants