Ir para o conteúdo principal

Implantação do Cluster no SQL Server

OBJETIVO

Descrever o processo de análise e indicar a melhor alternativa para implantação da USER STORY “Criar laboratório de testes para implementação de Cluster do Sql Server.”

JUSTIFICATIVA

Após alinhamento com a gestão, foi identificada a necessidade de realizar um estudo para verificar a viabilidade de utilização de um cluster de banco de dados com o objetivo de aumentar a performance e tolerância a falhas das aplicações desenvolvidas e suportadas pela organização.

RESULTADOS ESPERADOS

  1. Relatório contendo a análise da melhor maneira de realizar a implantação da demanda;
  2. Documento contendo o passo-a-passo de instalação e configuração do ambiente;
  3. Descrição dos casos de teste utilizados;
  4. Análise dos resultados obtidos;
  5. Atender ao SPIKE “Criar laboratório de testes para implementação de Cluster do Sql Server.”

ENVOLVIDOS

  • Rodrigo Kreuzberg (Scrum Master)
  • Tiago Silveira (Product Owner)
  • Baymax (BI Team)

GLOSSÁRIO

  • CLUSTER - Um cluster é um grupo de dois ou mais servidores dedicados e conectados para prover performance e tolerância a falhas.

PREMISSAS

  1. ConsultasAplicações como SEI e Recadastramento regularmente demandam de uma grande quantidade de recursos dos bancos de dados;
  2. Alta demanda de utilização dos bancos impacta na performance e disponibilidade das aplicações;
  3. A utilização de Bancos Clusterizados se mostra uma alternativa interessante, visto sua ampla utilização no Pipefy deverão utilizar GraphQL;
  4. Relatórios podem conter dados de mais de um time;
  5. Relatórios serão gerados pela gerência, sendo necessária a coleta do máximo de subsídios o possível.mercado.

MAPEAMENTO

DEFINIÇÃO

ApósDO avaliação prévia, foi identificada a necessidade de mapear quais Pipes e Campos serão utilizados para atender a demanda. As informações estão descritas a seguir.

Pipes Mapeados

Pipes de Desenvolvimento

PIPE IDPIPE NAMEPIPE URL
725642Caveirashttps://app.pipefy.com/pipes/725642
786310Defensoreshttps://app.pipefy.com/pipes/786310
451637Guardiõeshttps://app.pipefy.com/pipes/451637
451635Vingadoreshttps://app.pipefy.com/pipes/451635
877708Esquadrão Suicídahttps://app.pipefy.com/pipes/877708
979418Tambaquihttps://app.pipefy.com/pipes/979418
961531Baymaxhttps://app.pipefy.com/pipes/961531
786390Black Opshttps://app.pipefy.com/pipes/786390
301411216AC/DChttps://app.pipefy.com/pipes/301411216

Pipes de Demandas

PIPE IDPIPE NAMEPIPE URL
1158684Demandashttps://app.pipefy.com/pipes/1158684
1158790Projetoshttps://app.pipefy.com/pipes/1158790
451374Produtoshttps://app.pipefy.com/pipes/451374
735403Dark Soulshttps://app.pipefy.com/pipes/735403
1083563Amazonashttps://app.pipefy.com/pipes/1083563
1263167300https://app.pipefy.com/pipes/1263167
Campos Mapeados

Pipes de Desenvolvimento

PROPRIEDADETIMEDEPARA
SprintCaveiras  sprint
Defensoresfield_11_connector
Guardiõesfield_37_connector
Vingadores 
Esquadrão Suicida 
Tambaqui 
Baymax 
Black Ops 
AC/DC 
TimeCaveiras time
Defensoresfield_10_connector
Guardiõesfield_36_connector
Vingadores 
Esquadrão Suicida 
Tambaqui 
Baymax 
Black Ops 
AC/DC 
Planejado na Sprint?Caveirasfield_9_stringplanejado
Defensoresfield_10_string
Guardiõesfield_31_string
Vingadoresfield_30_string
Esquadrão Suicidafield_9_string
Tambaquifield_10_string
Baymaxfield_9_string
Black Opsfield_5_string
AC/DCfield_7_string
NecessidadeCaveirasfield_15_connectornecessidade
Defensoresfield_7_connector
Guardiõesfield_34_connector
Vingadoresfield_34_connector
Esquadrão Suicida 
Tambaquifield_8_connector
Baymaxfield_5_connector
Black Opsfield_4_connector
AC/DC 
ProjetoCaveirasfield_14_connectorprojeto
Defensoresfield_5_connector
Guardiõesfield_33_connector
Vingadoresfield_33_connector
Esquadrão Suicidafield_5_connector
Tambaquifield_7_connector
Baymaxfield_4_connector
Black Opsfield_6_connector
AC/DC 
ProdutoCaveirasfield_11_connectorproduto
Defensoresfield_3_connector
Guardiõesfield_31_connector
Vingadoresfield_28_connector
Esquadrão Suicidafield_1_connector
Tambaquifield_5_connector
Baymaxfield_1_connector
Black Opsfield_5_connector
AC/DC 
Tipo de AtividadeCaveirasfield_1_label_selectatividade
Defensoresfield_1_label_select
Guardiõesfield_25_label_select
Vingadoresfield_20_label_select
Esquadrão Suicidafield_1_label_select
Tambaquifield_1_label_select
Baymaxfield_1_label_select
Black Opsfield_1_label_select
AC/DCfield_1_label_select
Pontos de HistóriaCaveirasfield_5_numberpontos
Defensoresfield_5_number
Guardiõesfield_6_number
Vingadoresfield_3_number
Esquadrão Suicidafield_1_number
Tambaquifield_1_number
Baymaxfield_2_number
Black Opsfield_3_number
AC/DCfield_1_number

MODELOAMBIENTE DE CONSULTATESTE

Para atender a obtençdemanda R.E.2 , torna-se necessário detalhar quais ferramentas foram utilizadas assim como a instalação dose dadosconfiguração necessários,do ambiente do laboratório de teste. Esta seção é possíveldividida em três partes, sendo elas, 1) Ferramentas Necessárias; 2) Instalação das Ferramentas Necessárias; 3) Configuração do Ambiente.

Ferramentas Necessárias

VM Ware / Virtual Box

Instalação

VM Ware / Virtual Box

Configuração

VM Ware / Virtual Box

DEFINIÇÃO DOS CASOS DE TESTE

Para os casos de teste vamos utilizar aos seguinteregistros consultade GraphQL:

auditoria
{do allCards(pipeId:SEI, #PIPEID) {
    edges {
      node {
        id
        title
        current_phase {
          id
          name
        }
        fields {
          date_value
          datetime_value
          filled_at
          float_value
          indexName
          name
          report_value
          updated_at
          value
        }
      }
    }
  }
}

As consultas podem ser testadas no link https://app.pipefy.com/graphiql, logando comdevido a contagrande quantidade de registros nas tabelas, o que facilitará a análise de performance dos servidores clusterizados. Os testes serão divididos em Inserção, Projeção+Junção, Aritimética+Agrupamento. Para todos os exemplos serão consideradas as métricas quantidade de linhas afetadas X tempo e dashboardsetic.tamanho da tabela X tempo. Essas métricas são consolidadas na literatura (PIRES, 2006).

Teste de Inserção
Teste de Projeção+Junção
Teste de Aritmética+Agrupamento

RESULTADOS

Após análise dos Pipes, assim como seus campos, foi identificada a necessidade de implantação do projeto em algumas etapas, sendo elas: 

# ETAPA PREVISÃO CONCLUSÃO
1 Estudo de viabilização da implantação dos Pipes de Desenvolvimento 25/11/2020 17/11/2020
2 Implantação dos Pipes de Desenvolvimento; 11/12/2020  
3 Estudo de viabilização da implantação dos Pipes de Demandas;    
4 Implantação dos Pipes de Demandas;    

CONCLUSÃO

Conforme demonstrado, o projeto será implantado em etapas, descritas no parágrafo anterior. A utilização do GRAPHQL foi definida anteriormente, sendo documentada no link a seguir https://documentos.sistemas.ro.gov.br/books/pipefy/page/ferramentas-de-integra%C3%A7%C3%A3o-do-pipefy .

RECOMENDA-SE a adoção dos campos Sprint e Time, atualmente utilizado pelos Guardiões e Defensores, nos Pipes de TODOS os times de Desenvolvimento.

REFERÊNCIAS

Documentação - Ferramentas de Integração PipefyArtigo - https://documentos.sistemas.ro.gov.br/books/pipefy/page/ferramentas-de-integra%C3%A7%C3%A3o-do-pipefyPires, Carlos ES, Rilson O. Nascimento, and Ana C. Salgado. "Comparativo de desempenho entre bancos de dados de código aberto." Escola Regional de Banco de Dados, Anais da ERBD06, Porto Alegre (2006).

Artigo - Angles, Renzo, et al. "Benchmarking database systems for social network applications." First International Workshop on Graph Data Management Experiences and Systems. 2013.