Pular para o conteúdo principal

Implantação (Deploy)

Visão Geral

Após a criação da release de uma integração, o próximo passo é disponibilizá-la em um ambiente para os usuários, no processo de implantação. Portanto, é necessário ter pelo menos uma release da integração criada. Para saber mais, acesse a seção Releases da integração.

A implantação (ou deploy) de uma integração é o processo onde ela é disponibilizada em um ou mais clusters gerenciados pelo DHuO. Na geração da release, o canvas do serviço de integração é empacotado como uma imagem docker, enquanto a implantação fará a instalação dessa imagem em um cluster kubernetes.

Assim, é possível ter uma visão unificada de todos os ambientes e clusters onde determinada integração está implantada, bem como suas versões.

Processo de deploy

O processo de implantação envolve a escolha de uma release, um ambiente e um cluster. Opcionalmente, podem ser informadas configurações avançadas de deploy no kubernetes, detalhadas na próxima seção.

Dado que uma integração pode ser implantada em ambientes diferentes, com configurações distintas, é no momento da implantação que os valores específicos de cada cluster são obtidos e configurados. São eles:

  • Secrets
  • Variáveis
  • Arquivos SSL/TLS
Informação adicional

É possível também configurar no momento da implantação variáveis adicionais às configuradas no canvas durante o desenvolvimento. Diferente das variáveis configuradas no canvas, utilizadas nas configurações dos componentes, essas variáveis podem ser utilizadas como variáveis de ambiente da aplicação para sobrescrever configurações de timezone ou para leitura por componentes Go Plugin pela instrução os.Getenv. As configurações são detalhadas na próxima seção.

Atenção!

Não será possível implantar a integração se não houver valores configurados de todas as variáveis, secrets e arquivos SSL/TLS presentes no canvas e seus subfluxos para o cluster escolhido. É necessário satisfazer todas as dependências. Em caso de erro, verifique se os cadastros contêm valores para o cluster em questão. Para saber mais, acesse as seções Secrets, Variáveis e Arquivos SSL/TLS da Administração do iPaaS.

Ao final do processo de implantação, é disponibilizada a URL do endpoint de acesso à integração no cluster. Essa URL é interna no contexto de cluster e pode ser usada, por exemplo, para configurar o endereço da API em um API Gateway, caso o serviço de integração seja exposto com um trigger HTTP. Para saber mais, acesse a seção Trigger HTTP do catálogo de componentes triggers.

Configuração

As implantações de integrações são gerenciadas pela interface do estúdio da integração. A partir da home, acesse o menu > Integrações. Na página de integrações, visualize a integração desejada e acesse o menu > Implantação. Na aba > Implantações, elas podem ser criadas, atualizadas e excluídas.

No botão Detalhes de uma implantação é possível visualizar os detalhes dela, como:

  • URL do endpoint de acesso, em caso de implantação com sucesso
  • detalhes da configuração, como a relação de variáveis, secrets e arquivos SSL/TLS associados à integração, em caso de implantação com sucesso
  • logs de erro, caso a implantação não tenha concluído com sucesso
Informação adicional

O processo de criação, atualização e exclusão de implantações pode levar alguns instantes. É possível acompanhar o status pela lista de implantações. Enquanto isso, é possível realizar outras atividades na plataforma.

Permissões

Apenas usuários com papel de administrador da organização (Org Admin), provedor de APIs (API Provider) ou operador de APIs (API Operator) podem gerenciar implantações. Para saber mais, acesse a seção Papéis e permissões.

Atenção!

A implantação em ambientes protegidos só é permitida para os papéis de administrador da organização e operador de APIs. Para saber mais sobre ambientes protegidos, acesse a seção Ambientes.

Parâmetros

Aqui estão os parâmetros para configuração de implantação de uma integração:

  • Release: Obrigatório. Release a ser implantada.
  • Ambiente: Obrigatório. Ambiente do cluster no qual será implantado a release da integração.
  • Cluster: Obrigatório. Cluster kubernetes no qual será implantado a release da integração.

Configurações avançadas

  • Variáveis: Lista opcional de variáveis de ambiente. Para saber mais sobre variáveis, acesse a seção Variáveis da Administração do iPaaS.

  • Node affinity: Opcionalmente é possível configurar as informações de node affinity do kubernetes para que o serviço de integração fique restrito à execução em nós específicos do cluster baseado em labels e taints configurados nos nós. Para isso, configure:

    • Chave: Chave do label configurado no nó do kubernetes. A chave não pode conter espaços e pode conter apenas letras sem acentos, números e os caracteres ., - e _.
    • Valor: Valor do label configurado no nó do kubernetes.

A configuração de node affinity gerada pelo DHuO segue o seguinte formato:

affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: <key>
operator: In
values:
- <value>
tolerations:
- key: <key>
operator: Equal
value: <value>
effect: NoSchedule
  • HostAliases: Opcionalmente é possível configurar as informações de hostAliases do kubernetes para adicionar entradas adicionais ao arquivo hosts (/etc/hosts) dos pods do serviço de integração para resolução de endereços quando o DNS e outras opções não são aplicáveis. Por exemplo: para resolver os hostnames foo.local e bar.local para o IP 127.0.0.1 e o hostname foo.remote para o IP 10.1.2.3. Para isso adicione e configure, para cada hostAlias:
    • Endereço de IP: Endereço IP a ser resolvido pelos hostnames associados.
    • Hostname: Hostnames mapeados para o IP configurado. Caso deseje incluir mais de um hostname, separe os valores por vírgula ,. Os hostnames não podem conter espaços e podem conter apenas letras mínusculas e sem acentos, números e os caracteres . e -.

A configuração de hostAliases gerada pelo DHuO segue o seguinte formato:

spec:
hostAliases:
- ip: <ip_1>
hostnames:
- "<hostname_1>"
- "<hostname_2..>"
  • Habilitar Tracing: Habilita a geração de dados de tracing para a integração no cluster.
Informação adicional

Para a coleta de dados de tracing das integrações é necessário habilitar o tracing no cluster desejado para que possa ser habilitado na integração no momento do deploy. Para saber mais sobre clusters, acesse a seção Clusters da Administração do iPaaS.

Gerenciamento de recursos

Opcionalmente defina as configurações de recursos computacionais do cluster kubernetes consumidos pela integração. O DHuO possui 3 conjuntos padrão de configurações sugeridos (pequeno, médio e grande) e uma opção de customização, onde cada item é configurado individualmente.

Atenção!

O dimensionamento de recursos deve ser analisado para cada cenário, pois implica tanto no desempenho do serviço de integração, quanto nos custos e consumo de infraestrutura.

  • Tamanho: Obrigatório. Tamanho da integração. Opções: Pequeno (padrão), Médio, Grande, Personalizado.
  • Consumo mínimo de memória: Quantidade mínima de memória, em bytes. Ex: 128974848, 0.5G, 129e6, 129M, 123Mi
  • Consumo mínimo de CPU: Quantidade mínima de CPU, em cpu units. Ex: 2, 0.5, 200m
  • Consumo máximo de memória: Quantidade máxima de memória, em bytes. Ex: 128974848, 0.5G, 129e6, 129M, 123Mi
  • Consumo máximo de CPU: Quantidade máxima de CPU, em cpu units. Ex: 2, 0.5, 200m
Informação adicional

O formato das quantidades de CPU e memória segue o padrão utilizado pelo kubernentes. Para memória, é possível expressar a quantidade como um número inteiro simples ou usando um destes sufixos de quantidade: E, P, T, G, M, k ou equivalentes em potência de base 2 Ei, Pi, Ti, Gi, Mi, Ki. Por exemplo, 256 megabytes de memória pode ser representado por 0.25G ou 256M. O mesmo para notação de base 2: 0.25Gi e 256Mi são equivalentes a 256 mebibytes. Para CPU, o mais comum é utilizar um número inteiro simples ou acompanhado pelo sufixo m. Por exemplo, 50% de tempo computacional de uma CPU pode ser representado por 0.5 ou 500m (500 milicpus).

Para saber mais, acesse a documentação oficial Resource Management for Pods and Containers do kubernetes.

A configuração de recursos de CPU e memória gerada pelo DHuO segue o seguinte formato:

containers:
- name: example
resources:
requests:
cpu: <min_cpu>
memory: <min_memory>
limits:
cpu: <max_cpu>
memory: <max_memory>

Configurações de escalonamento

São configurações para que o serviço de integração seja escalado automaticamente para atender picos de demanda. No contexto do kubernetes, define a escalabilidade do pod. Ao atingir os percentuais definidos, o pod é dimensionado automaticamente, dentro do limite mínimo e máximo de réplicas (quantidade de pods) configurados. São utilizadas as métricas de utilização de CPU e memória.

O aumento de pods (scale up) ocorre quando pelo menos uma das métricas ultrapassa (maior ou igual) o percentual definido. A diminuição de pods (scale down) ocorre quando ambas as métricas ficam abaixo dos percentuais definidos.

  • Quantidade mínima de réplicas: Quantidade mínima de pods em execução.
  • Quantidade máxima de réplicas: Quantidade máxima de pods que o escalonamento será limitado.
  • Percentual de memória: Percentual de consumo de memória que será gatilho para escalar a quantidade de pods (aumento ou diminuição)
  • Percentual de CPU: Percentual de utilização de CPU que será gatilho para escalar a quantidade de pods (aumento ou diminuição)

A configuração de recursos de CPU e memória gerada pelo DHuO segue o seguinte formato:

spec:
minReplicas: <min_replica>
maxReplicas: <max_replica>
metrics:
- resource:
name: cpu
target:
averageUtilization: <threshold_cpu>
type: Utilization
type: Resource
- resource:
name: memory
target:
averageUtilization: <threshold_memory>
type: Utilization
type: Resource
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: example
Atenção!

As configurações de acesso do cluster devem estar corretas no cadastro de clusters. Para saber mais sobre clusters, acesse a seção Clusters da Administração do iPaaS.

Da mesma forma, as implantações no cluster devem ser feitas somente pelo DHuO, para ter o controle e rastreio de mudanças no ambiente.

Cuidado!

Ao excluir a implantação de uma integração de um cluster, os consumidores do serviço serão afetados.