Ir para o conteúdo principal

Impactos da descontinuação de determinados dados no SAURON

Data de elaboração

Data: 18/02/222022

Responsável pelo estudo

Autores:

  1. João Pedro Rocha Brito (Assessor)


Equipe do estudo

João Pedro Rocha Brito (Assessor)

José Lucas da Silva Costa (Analista de Desenvolvimento Full-Stack)

Jônatas Neves Legal (Técnico emTecnologia da Informação e Comunicação) 

AlvoSauron
Origem

Melhoria: Descontinuação de determinados dados no SAURON

Objetivo

Averiguar os sistemas que estão sob responsabilidade do time TITÃS para saber se será necessário uma intervenção técnica.
Documentação CorrelataSem documentação.

Observações

Sem observações.



1. Glossário de Termos

  1. API - Application Programming Interface (interface de Programação de Aplicações).
  2. SID - Sistema Integrado de Descanso.
  3. KIBANA - Plugin de visualização de dados de fonte aberta para o Elasticsearch.

2. Introdução


A SETIC fornece vários serviços e cada um com sua responsabilidade, foi identificado que a API do SAURON será descontinuada. Atualmente a API fornece mais dados do que deveria. Desta maneira será necessário a averiguação dos sistemas sob responsabilidade do time TITÃS para saber se será necessário uma intervenção técnica.


2.3. Desenvolvimento


O levantamento de impactos de tal mudança é essencial, no SID este trabalho de isolar dados que não seja de responsabilidade do demandante já foi realizado, pois a própria equipe identificou de forma antecipada que não era necessário utilizar todos os dados fornecidos pela rota do SAURON, vejamos:

using Microsoft.AspNetCore.Http;
using SID.Extensions;
using SID.Interfaces;
using System.Security.Claims;

namespace SID.Services
{
    public class UserService : IUserService
    {
        private readonly ClaimsPrincipal user;

        public UserService(IHttpContextAccessor httpContextAccessor)
        {
            this.user = httpContextAccessor.HttpContext.User;
        }

        public int ObterQuantidadePerfis() => user.BuscarPerfis().Count;

        public string ObterCpfCnpj() => user.CpfCnpjSauron();

        public bool VerificarSePossuiPerfilChefeImediato() => user.PossuiPerfilChefeImediato();

        public bool VerificarSePossuiPerfilTitularDaPasta() => user.PossuiPerfilTitularDaPasta();
    }
}

A utilização do SAURON em sua maneira tradicional, viola um dos princípios do design orientado a objetos, que preza pela responsabilidade única em suas funcionalidades, em resumo o SAURON não pode entregar informações ao solicitante que não seja da sua área de responsabilidade.

Alguns sistemas não exploram o SAURON em sua totalidade, o que é bom pois nesses caso se usa atributos que não seja de sua responsabilidade, mas o SKALA que é um dos sistemas que está sob responsabilidade do time TITÃS merece certa atenção quanto a essa demanda, o sistema possui integração com o SAURON e em prévia análise se utiliza de atributos que possivelmente serão descontinuados.

Portanto, para atendimento deste tipo de demanda é necessário fazer um relatório que levante todos os sistemas dependentes do SAURON e que aborde a prioridade de migração de cada um, para que o trabalho seja realizado pela equipe de forma eficiente e de objetiva.


2.3.1. Complexidade de cada funcionalidade

Para atendimento desta demanda, será necessário deslocar o time integralmente ou parcialmente, visto que, após a descontinuação dos dados do SAURON, sistemas que dependem de forma acoplada serão afetados diretamente e dependendo do nível de importância do serviço, a sua priorização de correção seria mais alta. O esforço empreendido para solução do problema será focado em sua totalidade para atendimento da demanda, cuja complexidade pode atingir a disponibilidade das aplicações.


2.3.2. Possíveis problemas

Uma das situações que pode ocorrer quando optado pela não adaptação imediata, seria problemas da disponibilidade das aplicações, provavelmente entrariam em colapso e não funcionaria corretamente. Visto a quantidade de sistemas da SETIC os problemas vindos as mudanças no SAURON possivelmente seriam:

  • Alertas inconsistentes para "Sem conexão com o servidor"
  • Carregamentos que nunca param
  • Miniaturas que nunca carregam
  • Sistema de Autenticação não funcional ou com erro

Então, antes da descontinuação ocorrer, todos os sistema devem estarem sob aptidão de que suas implementações estejam totalmente atualizadas.


2.3.3. Valor agregado

A melhor maneira de arruinar a reputação de um sistema é manter uma péssima documentação da API ou manter a codificação sem revisão ou atualizada. A documentação por exemplo, é uma janela para os produtos da SETIC. Documentos que detalham recursos obsoletos ou não mencionam atualizações importantes, serão vistos como sinais de alerta de que o código dos produtos não estão funcionando ou estão em conformidade.  Mas muitas vezes a documentação falha por causa da má comunicação. Manter o código atualizado e os bons princípios de desenvolvimento parece bobagem burocrática, mas funciona. E não há relação com manuais, na verdade o que há é esclarecimento de padrões. Cada desenvolvedor pode manter a documentação e o código em um padrão de qualidade diferente, por isso é vital que todos estejam na mesma linha de raciocínio.


3.4. Conclusão


O presente ESTUDO TÉCNICO PRELIMINAR, elaborado pelos integrantes TÉCNICOS do time TITÃS, considerando a análise dos desafios técnicos envolvidos e citados, conclui PELA ABORDAGEM DOS IMPACTOS DA DESCONTINUAÇÃO DE ALGUNS DADOS FORNECIDOS PELA SAURON, uma vez que foram considerados a análise técnica do serviço envolvido. Em complemento, os contratempos identificados são administráveis, pelo que RECOMENDAMOS A REVISÃO E SUBSTITUIÇÃO DOS ATRIBUTOS QUE SERÃO DESCONTINUADOS, uma vez que, os projetos podem parar de funcionar.