[Dataflow] Descontinuar jobs de Dataflow que não são mais usados

Description

Texto padrão para issuetype Story conforme DoR (Definition of Ready)

01 - STAKEHOLDER (Pessoa que pode validar e responder questões):

@Geny Isam Hamud Herrera
02 - PROBLEMA (Qual o cenário ou dor a ser resolvida):

Hoje estamos rodando no Dataflow com a modalidade de streaming (24hx7) 6 jobs do Dataflow:

https://console.cloud.google.com/dataflow/jobs?project=labs-app-mdm-production&pageState=("DataflowJobListV1""f":"%255B%257B_22k_22_3A_22Type_22_2C_22t_22_3A10_2C_22v_22_3A_22_5C_22Streaming_5C_22_22_2C_22s_22_3Atrue_2C_22i_22_3A_22type_22%257D%255D"))

image-20240521-161144.png

Desses 6 Jobs 3 são CDS (jobs que iniciam com o prefixo cds-)e 3 são Staging (jobs que iniciam com o prefixo staging-).

Os jobs tem as seguintes funcionalidades:

  • CDS: Salvar registro staging no CDS (Parquet Files) e no BigQuery
  • Staging: Processar dados de staging usando o modelo antigo de processamento (CPU) e salvar os Golden Records gerados desse processamento no CDS (Parquet Files) e no BigQuery

Com a mudança da forma de processamento para SQL Processing, hoje temos basicamente os jobs Staging rodando sem processar dados e consumindo recursos ($$$).

Complementando esse arquitetura basicamente hoje temos 4 topicos:

  • staging
  • staging-techfin
  • staging-bulk
  • staging-techfin-bulk (não está mais sendo usado)

E cada um desses 3 topicos em uso tem 2 subscriptions que conecta o topico no Job do Dataflow, sendo uma subscription para CDS e outra para Staging;

image-20240521-162152.png

https://console.cloud.google.com/cloudpubsub/topic/list?referrer=search&project=labs-app-mdm-production&pageState=("cpsTopicList""f":"%255B%257B_22k_22_3A_22Topic%2520ID_22_2C_22t_22_3A10_2C_22v_22_3A_22_5C_22staging_5C_22_22_2C_22i_22_3A_22id_22%257D%255D"),"duration""groupValue":"PT1H","customValue":null))

PS: Tanto na Tenant quanto na Organization existe um attributo chamado processing_topic_override que indica para qual tópico a mensagem recebida na ingestão será redirecionada.

Rodando esse query contra o Postgres temos os seguintes resultados:

SELECT processing_topic_override, COUNT(processing_topic_override), 'TENANT' as type
FROM tenant
GROUP BY processing_topic_override
UNION ALL
SELECT processing_topic_override, COUNT(processing_topic_override) , 'ORGANIZATION' as type
FROM organization
GROUP BY processing_topic_override
ORDER BY type;

image-20240521-162806.png

03 - OBJETIVO (Descreva a solução proposta):

  • Descontinuar por completo os jobs Dataflow do tipo Staging;
  • Alinhar com SRE a remoção das Subscriptions;

04 - QUEM PODE USAR (Quais perfis de usuários):
05 - ASSETS (Links do Figma, documentos relevantes, Json, etc):
06 - CRITÉRIOS DE ACEITE:

  • Descontinuação dos jobs de Dataflow do tipo Staging;
  • No deploy de Sandbox, o flag START_CDS_PIPELINE será sempre TRUE, portanto não há mais necessidade desse flag no deploy do Jenkins.
  • Criação do card para o SRE afim de remover as subscriptions para os jobs de Dataflow do tipo Staging

Activity

Automation for Jira 11 November 2024, 21:54 Jira Internal Users

@Geny Isam Hamud Herrera ,

Esta issue foi planejada para ser entregue até 2024-11-14. Você pode confirmar consultando o campo Due Date desta issue.

Datas já planejadas para esta issue: 2024-11-14

Se o campo External Issue Link estiver preenchido com o link de uma issue válida no Jira Produção o cliente também será notificado no Jira Produção.

Automation for Jira 11 November 2024, 21:28 Jira Internal Users

Link para a thread da mensagem no Slack canal #emergencia