Observação:

Gerencie Custos Multi-Tenant SaaS no OCI Kubernetes Engine com OpenCost

Introdução

Fornecedores de Software Independentes (ISVs) que oferecem soluções de Software as a Service (SaaS) multilocatários na Oracle Cloud Infrastructure (OCI) geralmente enfrentam o desafio de gerenciar custos com eficiência, garantindo um faturamento preciso para cada locatário. Uma abordagem comum entre os provedores SaaS é executar as cargas de trabalho de seus tenants no Kubernetes, utilizando namespaces do Kubernetes para separá-los logicamente no mesmo cluster. Ao implantar clusters no Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes Engine ou OKE), a OCI fornece dados de custo detalhados para o cluster geral. No entanto, ele não pode fornecer insights de custo granulares para componentes individuais do Kubernetes, como namespaces, que são cruciais para rastrear e faturar o uso de recursos específicos do tenant.

Neste tutorial, orientaremos você por uma solução fácil de implementar usando o OpenCost, uma ferramenta de monitoramento de custos de código aberto que pode ajudar a rastrear e gerenciar custos em um ambiente multitenant no OKE.

Como um ISV, você provavelmente está executando aplicativos SaaS nos quais vários tenants compartilham infraestrutura em um cluster do OKE. O desafio é ganhar visibilidade dos custos associados ao consumo de recursos de cada inquilino. Compreender esses custos é essencial para alocar despesas com precisão e garantir um faturamento justo para cada inquilino.

Se você não tiver visibilidade do uso de recursos por tenant, fica difícil:

OpenCost é uma ferramenta de monitoramento e gerenciamento de custos de código-fonte aberto projetada especificamente para ambientes Kubernetes. Ele rastreia o uso de recursos dos clusters do OKE e aloca os custos de CPU, memória, armazenamento e rede. O OpenCost permite mapear facilmente esses custos para seus tenants com base nos namespaces do Kubernetes, tornando-o uma solução ideal para ISVs com aplicativos SaaS multitenant.

Com OpenCost, você pode:

Objetivos

Pré-requisitos

Instalar o OpenCost no Seu Cluster do OKE

  1. Crie o namespace OpenCost para sua instalação.

    kubectl create namespace opencost
    

    O OpenCost detectará automaticamente a OCI como provedor de serviços em nuvem (CSP) lendo as informações do nó em node.spec.providerID. Quando o OCI é detectado como o CSP, o OpenCost tenta recuperar dados de preços da API da Lista de Preços do OCI. Nenhuma chave de API é necessária para recuperar os dados de preços públicos.

  2. Instale OpenCost no namespace OpenCost.

    helm install opencost --repo https://opencost.github.io/opencost-helm-chart opencost --namespace opencost
    
  3. Atualize OpenCost.

    helm upgrade opencost --repo https://opencost.github.io/opencost-helm-chart opencost --namespace opencost
    
  4. Atualize o serviço para que um endereço IP externo seja designado ao Balanceador de Carga do OCI.

    kubectl patch svc opencost -n opencost -p '{"spec": {"type": "LoadBalancer"}}'
    

    Para acessar o OpenCost publicamente, precisamos criar um Grupo de Segurança de Rede (NSG), configurar uma regra de entrada para abrir a porta necessária e associá-la ao Balanceador de Carga do OCI.

  5. Crie o NSG (Grupo de Segurança de Rede). Certifique-se de substituir YOUR_COMPARTMENT_ID pelo seu ID de compartimento real e YOUR_VCN_ID pelo seu ID de VCN. Você pode recuperar essas informações na Console do OCI.

    oci network nsg create --compartment-id [YOUR_COMPARTMENT_ID] --vcn-id [YOUR_VCN_ID] --display-name opencost_nsg
    
  6. Crie uma regra de entrada que permita o tráfego TCP na porta 9090 pela internet. Você pode fazer download do arquivo opencost-nsg-rule.json aqui: opencost-nsg-rule.json.

    oci network nsg rules add --nsg-id [YOUR_NSG_ID] --from-json file://opencost-nsg-rule.json
    
  7. Anexe o Grupo de Segurança de Rede (NSG) recém-criado ao Balanceador de Carga do OCI. Substitua YOUR_LB_ID pelo ID do balanceador de carga e YOUR_NSG_ID pelo ID do Grupo de Segurança de Rede.

    oci lb nsg update --load-balancer-id [YOUR_LB_ID] --nsg-ids '[ "[YOUR_NSG_ID]" ]'
    

    Anexar NSG ao Balanceador de Carga

  8. Recupere o endereço IP externo e use-o para acessar OpenCost usando seu navegador da Web. Execute o comando kubectl get svc -n opencost.

    OpenCost aberto no browser

    Para se familiarizar com a interface do usuário OpenCost, consulte Vídeo: Veja Como o OpenCost Rastreia Seus Custos do Kubernetes e Faturamento na Nuvem.

    Parabéns! Você instalou e configurou com sucesso o OpenCost no cluster do OKE!

Próximas Etapas

Integrando o OpenCost ao cluster do OKE e configurando preços personalizados, você pode obter visibilidade precisa dos custos do SaaS multilocatário. Os ISVs agora podem alocar custos de forma justa e precisa, garantindo que o uso de recursos de cada inquilino seja refletido na fatura final.

Com o recurso de preços personalizado do OpenCost, você garante que as estimativas de custo estejam alinhadas com os preços da OCI, o que é fundamental para manter a lucratividade em um ambiente SaaS multitenant.

Confirmações

Mais Recursos de Aprendizagem

Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal Oracle Learning YouTube. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.

Para obter a documentação do produto, visite o Oracle Help Center.