Monitoramento e Observabilidade

Monitoramento e Observabilidade

Todo Analista de Infraestrutura, DevOps ou mesmo o próprio Analista de Monitoramento desenvolve um plano de monitoramento para um serviço e inclui alguns objetivos de monitoramento. 

O primeiro objetivo é garantir que os consumidores de monitoramento dentro da organização de T.I atinjam um alto nível de conforto ou de confiança com a solução que está sendo planejada para eles assim que possível. 

O outro objetivo é avaliar continuamente os SLOs (Objetivos de nível de serviço) e os SLIs (indicadores de nível de serviço) correspondentes para o serviço específico e se esforçar para otimizá-los por meio de iterações de planejamento.

Como a observabilidade e o monitoramento têm bastante ligação, há uma distinção entre eles. O monitoramento coleta informações e informa que detectou um problema com base foi configurado para monitorar tais condições. Simplesmente declarado, onde é monitorado falhas conhecidas ou previsíveis. 

Já a observabilidade é mais focada em combinar todos os dados coletados por suas ferramentas de monitoramento e buscar oportunidades para entender o comportamento desses sistemas. Por sua vez, pode ser usado  este conhecimento para ajustar ainda mais o monitoramento detectando os sintomas e condições.  

Por que a observabilidade é tão importante

benefícios da observabilidade

A observabilidade é o primeiro paradigma do consumidor de monitoramento, pois ele reconhece o que é considerado ou percebido como operação normal de um serviço. Em outras palavras, ele busca visibilidade total, um princípio de monitoramento chave, assim que possível. 

Assim que a observabilidade é alcançada, com base nesse nível inicial de visibilidade para desenvolver alertas acionáveis, é criado painéis úteis e avaliações de soluções AIOps (um acrônimo de “Artificial Intelligence for IT Operations”, ou seja, inteligência artificial para operações de TI). Isso acaba fornecendo tempo para que os analistas se sintam confortáveis com a métrica subjacente e os dados de monitoramento de logs.

A visibilidade total significa apenas alcançar e sustentar, porém a visibilidade suficiente contém três dimensões ou aspectos:

  • Monitoramento em profundidade
  • Monitoramento em amplitude
  • Monitoramento em todo o modelo de integridade 

Um analista de observabilidade não apenas foca na T.I, mas sim em garantir que os usuários finais possam consumir o conteúdo e que os SLOs sejam atendidos.

Monitoramento de sistemas e observabilidade

O monitoramento da infraestrutura e dos aplicativos é bastante complexo, mesmo com a computação em nuvem sendo mais presente em nosso dia a dia, o influenciamento do monitoramento na nuvem vem ganhando mais força e deixando o nível de complexibilidade bem mais alto e necessário. 

Para arquitetos, o diagnóstico forma um núcleo de sua exploração de estruturas de monitoramento nativas de nuvem mais econômicas que permitem que o TI gerencie serviços em diferentes modelos de nuvem.
Os arquitetos precisam, como os operadores, entender quais informações de diagnóstico um componente de infraestrutura ou um aplicativo emite. Combinar fluxos de log multivariados, dinâmicos, de série temporal, com eventos, com estado e telemetria em uma inteligência valiosa depende do seguinte:

  • Conhecimento e experiência da pessoa desenvolvedora ou engenheira de software, que tenha um entendimento profundo do destino de monitoramento.
  • Experiência de solução de problemas e suporte reais usando os dados para encontrar problemas ou localizar as causas de problemas 
  • Revisão de incidentes anteriores para encontrar motivos não tecnológicos que podem ser corrigidos automaticamente mais tarde.

Na nuvem, o analista tem uma flexibilidade enorme nos tipos de serviços que pode escolher. O monitoramento inclui como eles mudam ao longo do tempo e podem ser dinâmicos, globais e resilientes. 

Diferença entre Monitoramento e Observabilidade

A observabilidade funciona de modo em que as plataformas descobrem e coletam telemetrias de desempenho. São encontradas em quatro tipos de telemetria:

  • Logs: são registros granulares, com carimbos de data/hora, completos e inalterável de eventos de aplicativos.
  • Métricas: são medidas fundamentais da integridade do aplicativo e dos sistemas durante um determinado período de tempo.
  • Rastreamento: registram a jornada ponta a ponta de cada solicitação do usuário.
  • Dependências: revelam como cada componente do aplicativo depende de outros componentes, aplicativos e recursos de TI.

Já o monitoramento significa observar e verificar um progresso ou qualidade de algo por um certo período de tempo. A monitoração foi mudando conforme a infraestrutura e ferramentas disponíveis ao longo do tempo.

Monitoramento e Observabilidade

Como medir o monitoramento e a observabilidade

Ao implementar um sistema de monitoramento e observabilidade dentro da organização, é necessário acompanhar algumas métricas internas para visualizar o desempenho. 

Existem algumas opções que podem ser acompanhadas com uma pesquisa mensal ou possivelmente analisar automaticamente os registros de alerta.

  • Alterações feitas no monitoramento da configuração. Quantas solicitações de pull ou alterações por semana são feitas no repositório que contém a configuração de monitoramento? e com que frequência essas alterações são enviadas ao sistema de monitoramento? 
  • Alterações de ‘Fora do horário de funcionamento’. Verificar qual porcentagem dos alertas é gerenciada a noite. Em algumas empresas globais têm um modelo de suporte 24 horas, o que não torna isso um problema, mas pode indicar que não foi dada atenção suficiente aos principais indicadores de falhas.
  • Falsos positivos. Quantos alertas resultaram em nenhuma ação ou foram marcados como ‘Trabalhando como pretendido’. 
  • Falsos negativos. Quantas falhas do sistema ocorreram sem alerta ou alerta depois do esperado.
  • Alertas não funcionais. Qual porcentagem de alertas foi considerada ‘não aceitável’. Ou seja, o analista alertado não consegue tomar nenhuma medida imediata, devido a incapacidade de entender a implicação do alerta ou devido a um problema conhecido.

Conclusão – Monitoramento e Observabilidade 

Quando se aplica a observabilidade e o monitoramento, os benefícios são imensos dentro da sua empresa, fazendo com que a inovação e implementação andem lado a lado deixando tudo mais rápido, custos reduzidos e melhor compreensão de como priorizar seu tempo e atenção dentro dos aplicativos. 

Tudo isso leva a um entendimento mais profundo dos dados, sistemas e dos clientes. Além de agregar o crescimento nos negócios a medida que se tem visualizaçẽos em tempo real de como o sistema funciona.

Quem é a Aquarela Analytics?

A Aquarela Analytics é vencedora do Prêmio CNI de Inovação e referência nacional na aplicação de Inteligência Artificial na indústria e em grandes empresas. Por meio da plataforma Vortx e da metodologia DCIM (Download e-book gratuito), atende clientes importantes, como: Embraer (aeroespacial),  Auren (energia), Scania e Grupo Randon (automotivo), SolarBR Coca-Cola (alimentício), Hospital das Clínicas (saúde), NTS-Brasil (óleo e gás), Telefônica Vivo (Telecomunicações), dentre outros. Fique atento às novas publicações diárias da Aquarela Analytics no Linkedin e assinando a nossa Newsletter mensal!

Autor

Orquestração de Containers: o que é e quais seus benefícios

Orquestração de Containers: o que é e quais seus benefícios

Para fazer a implantação de um software, precisamos não só do software em si, mas de suas dependências. As dependências implicam em bibliotecas, interpretadores, subpacotes, compiladores, extensões e assim por diante.
Você também precisará da sua configuração. Parâmetros, detalhes específicos da localidade, chaves de licença, senhas de banco de dados. Tudo que transforma um software bruto em um serviço utilizável.
É aí que entram os Containers de Software, que trazem a solução em uma ideia de empacotamento e um formato de distribuição, padrões genéricos, de adoção generalizada, com uma capacidade muito maior de transporte, custos menores, economias de escala e facilidade de manipulação. O formato de container inclui tudo que a aplicação precisa para executar.

Diferenças entre uma imagem de container para uma máquina virtual:

Uma máquina virtual contém tudo que a aplicação precisa para executar, mas conta com muito mais itens. A imagem de uma máquina virtual típica tem aproximadamente 1 GB. A imagem de um contêiner com um bom design, pode ser cem vezes menor.
Como uma máquina virtual contém muitos programas, bibliotecas e itens não relacionados e que jamais serão usados pela aplicação, a maior parte de seu espaço é desperdiçada. Pior ainda, as máquinas virtuais são virtuais: a CPU física subjacente implementa uma CPU emulada, na qual a máquina virtual executa.
Em comparação, os containers executam diretamente na CPU real, sem o overhead da virtualização, simplesmente como fazem os executáveis binários comuns.
Por ter apenas os arquivos de que necessitam, os containers são muito menores que as imagens de VMs. Eles também usam uma técnica mais inteligente de camadas de sistemas de arquivos que permitem endereçamento e podem ser compartilhadas e reutilizadas entre os containers.
Por exemplo, se você tiver dois containers, ambos derivados da mesma imagem Debian Linux de base, a imagem da base só precisará ser baixada uma vez, e cada container poderá simplesmente a referenciar.

Aplicações Plug and Play

O container não é a unidade de implantação e de empacotamento; é também a unidade de reutilização (a mesma imagem de container pode ser usada como um componente de vários serviços diferentes), a unidade para escalar e a unidade de alocação de recursos (um container pode executar em qualquer lugar em que haja recursos suficientes disponíveis para suas necessidades específicas).
Os desenvolvedores não precisam mais se preocupar em manter versões diferentes de software para executar em distribuições distintas de Linux, com bibliotecas e versões de linguagem diferentes, e assim por diante. O único item do qual o container depende é o Kernel do sistema operacional (Linux, por exemplo).
Basta disponibilizar sua aplicação em uma imagem de container, e ela executará em qualquer plataforma que aceite o formato padrão do container e tenha um Kernel compatível.

Conduzindo a orquestração de containers

As equipes de operações tendem a achar que sua carga de trabalho é bastante simplificada com os containers. Isso porque em vez de ter que manter um conjunto enorme de máquinas de vários tipos, arquitetura e sistemas operacionais, tudo que elas têm de fazer é fazer a orquestração de containers em um orquestrador de containers. Ou seja, um software projetado para reunir várias máquinas diferentes em um cluster – um tipo de substrato unificado de computadores que, para o usuário, parece um único computador muito potente no qual os containers podem executar.

Os termos orquestração (orchestration) e escalonamento (scheduling) muitas vezes são usados de modo flexível como sinônimos. Estritamente falando, porém, orquestração, nesse contexto, significa coordenar e sequenciar diferentes atividades para servir a um objetivo comum (como os músicos em uma orquestra). Escalonamento quer dizer administrar os recursos disponíveis e atribuir cargas de trabalho aos locais em que sejam executadas com mais eficiência. (Não confundir com escalonar no sentido de tarefas agendadas [scheduled jobs], que executam em horários predefinidos.)

Principais pontos para adoção da orquestração de Containers

  • Provisionamento e implantação: Trás uma facilidade na construção dos containers gerando uma certa liberdade para os administradores provisionarem recursos de acordo com as necessidades solicitadas.
  • Alocação de recursos: Pode ser bastante satisfatória, pois pode-se agrupar e desagrupar diversos recursos para cada finalidade do container.
  • Disponibilidade dos containers: Irá garantir que os containers estejam 100% em constante funcionalidade.
  • Balanceamento de carga e roteamento de tráfego: Facilita o processo de distribuição dos containers dentro do cluster melhorando ainda mais a disponibilidade das aplicações.

Conclusão – Orquestração de Containers

Todo o conceito de containers permite que você implante e execute softwares em unidades pequenas, padronizadas e autocontidas. Isso facilita e reduz os custos de construção de sistemas distribuídos grandes e diversificados, por meio da conexão de microsserviços conteinerizados. Já o sistema de orquestração de containers cuida da implantação de seus containers, escalonamento, escalabilidade, rede e de todas as tarefas que um bom administrador de sistemas faria, porém de modo automatizado e programável.

Quem é a Aquarela Analytics?

A Aquarela Analytics é vencedora do Prêmio CNI de Inovação e referência nacional na aplicação de Inteligência Artificial na indústria e em grandes empresas. Por meio da plataforma Vortx e da metodologia DCIM (Download e-book gratuito), atende clientes importantes, como: Embraer (aeroespacial),  Auren (energia), Scania e Grupo Randon (automotivo), SolarBR Coca-Cola (alimentício), Hospital das Clínicas (saúde), NTS-Brasil (óleo e gás), Telefônica Vivo (Telecomunicações), dentre outros. Fique atento às novas publicações diárias da Aquarela Analytics no Linkedin e assinando a nossa Newsletter mensal!

Autor

O que é Computação em Nuvem?

O que é Computação em Nuvem?

A Computação em Nuvem ou Cloud Computing é a entrega sob demanda de poder computacional. Permitindo ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer lugar, independente de plataforma, bastando ter um terminal conectado à “Nuvem”.
A Nuvem é representada pela internet. Isto é, a infraestrutura de comunicação composta por um conjunto de hardwares, softwares, interfaces, redes de telecomunicações, dispositivos de controle e armazenamento que permitem a entrega da computação como um serviço.
Um ponto importante para o entendimento deste modelo de computação refere-se aos participantes da nuvem. São três grandes grupos: provedor de serviço, desenvolvedor e usuário. O provedor é responsável pela tarefa de disponibilizar, gerenciar e monitorar toda a infraestrutura de nuvem. Já o Desenvolvedor deve ser capaz de prover serviços para o usuário final, a partir da infraestrutura disponibilizada. Enquanto o usuário final é o consumidor que irá utilizar os recursos oferecidos pelo cloud computing.
A computação na nuvem representa um novo modelo de serviço capaz de fornecer todo o tipo de processamento, infraestrutura e armazenamento de dados exclusivamente através da internet.

Características da Computação em Nuvem

Com uma gama enorme de stacks tecnológicos, em que cada um tem sua importância no mundo da tecnologia. A computação em nuvem pode prover vários tipos de serviços que se adequam a essas tecnologias, dentre outras funcionalidades e particularidades.

Suas principais particularidades quanto a entrega de uma computação em nuvem, são aspectos como: Elasticidade e Escalonamento, Self-Service(Auto-atendimento), Faturamento e Medição por uso, Amplo acesso à rede e suas disponibilidades, Customização de recursos.

Elasticidade e Escalonamento

Na computação em nuvem é possível aumentar e diminuir a capacidade de serviços de maneira elástica e automatizada. Assim, proporcionando ao administrador menor complexidade na garantia de qualidade e estabilidade do produto.

Self-Service(Auto-atendimento) 

Os consumidores dos serviços da computação em nuvem esperam adquirir recursos computacionais de acordo com suas necessidades e da forma instantânea para o uso. Para suportar este tipo  de expectativa, as Clouds Computing  devem permitir o acesso em auto-atendimento. Assim, os usuários podem solicitar, personalizar, pagar e usar os serviços desejados sem nenhuma intervenção ou indisponibilidade.

Faturamento e Medição por uso

Na computação em nuvem, utiliza-se um modelo de despesa variável, em que pode ser controlada facilmente. Em vez de investir substancialmente em datacenters e servidores antes de saber sua utilização, você pode pagar somente quando consome recursos e somente pela quantidade consumida. Assim, o usuário da cloud economiza dinheiro em tecnologia. A computação em nuvem também permite a utilização de novos aplicativos com o espaço necessário em minutos em vez de semanas ou dias. Permitindo a concentração nos principais objetivos da empresa.

Amplo acesso à rede

Os recursos devem estar disponíveis através da rede e acessados através de mecanismos padrões que permitam sua utilização por plataformas heterogêneas, como smartphones, laptops, PDAs, entre outros. A Cloud proporciona uma facilidade na disponibilidade das aplicações globalmente, oferecendo uma latência menor e melhor experiência aos clientes com facilidade e custo mínimo.

Customização

No atendimento a múltiplos usuários verifica-se a grande disparidade entre a necessidade dos mesmos, tornando essencial a capacidade de personalização dos recursos da nuvem.

Camadas de arquitetura e tipos de nuvem

Os serviços de computação na nuvem são divididos em três classes. Sua separadação leva em consideração o nível de abstração do recurso provido e o modelo de serviço do provedor. O nível de abstração nada mais é que a camada de arquitetura em que os serviços das camadas superiores são compostas pelo serviços das camada inferiores. Essas camadas/modelos são nomeadas como: Infraestrutura como Serviço (IaaS), Plataforma como serviço (PaaS) e Software como serviço (SaaS).

Infraestrutura como serviço (IaaS)

Os serviços nesta categoria são os componentes básicos da TI em nuvem e, geralmente, fornecem acesso (virtual ou no hardware dedicado) a recursos de rede e computadores, bem como espaço para o armazenamento de dados. A IaaS oferece o mais alto nível de flexibilidade e controle de gerenciamento sobre seus recursos de TI.

Plataforma como serviço (PaaS)

Os serviços nessa categoria reduzem a necessidade de gerenciar a infraestrutura subjacente (geralmente hardware e sistemas operacionais) e permitem que apenas se concentre na implantação e no gerenciamento das aplicações.

Software como serviço (SaaS)

Os serviços nesta categoria fornecem um produto completo que o provedor de serviços executa e gerencia. Na maioria dos casos, o software como serviço refere-se a aplicativos de usuário final. Com uma oferta de SaaS, não é necessário pensar na manutenção do serviço ou no gerenciamento da infraestrutura subjacente. É necessário pensar apenas em como planejar e usar esse software específico.

Camadas de arquitetura e tipos de computação em nuvem
Camadas de arquitetura


Vantagens da Computação em Nuvem

Além das vantagens já citadas, também há a possibilidade de acesso aos dados e aplicativos de qualquer lugar, desde que haja conexão de qualidade com a internet, trazendo assim mobilidade e flexibilidade aos usuários.

Outra vantagem é no modelo de pagamento, pois possibilita ao usuário pagar somente pelo que utiliza dentro da cloud, evitando desperdício de recursos, o que também possibilita a escalabilidade. E assim, é possível ampliar a disponibilidade de recursos conforme o usuário verifica a necessidade. Também é fácil o compartilhamento de recursos e o ganho em confiabilidade dos serviços, já que as empresas que oferecem os serviços são avaliadas por reputação. Principalmente pela capacidade de manter os dados seguros através de cópias de segurança, criptografia e controle de acesso rigoroso.

Pontos de atenção para a adoção

Mas é sempre necessário incluir na balança suas desvantagens para que ao definir o uso ou até mesmo migrar para a cloud, a escolha traga benefícios conforme as necessidades. Existem desvantagens da computação em nuvem que devem ser avaliadas para seu processo de evolução e adoção, dentre elas estão: segurança, escalabilidade, interoperabilidade, confiabilidade e disponibilidade.

A segurança é o desafio mais visível, pois a informação que antes era armazenada localmente ficará localizada na nuvem em em algum local físico, mas que não se tem precisão de onde e nem que tipos de dados estão sendo armazenados junto a ela.

A escalabilidade é uma característica fundamental na computação em nuvem, pois as aplicações para uma nuvem precisam ser escaláveis (ou elásticas). Desta forma os recursos utilizados podem ser alterados conforme a demanda.

A confiabilidade está relacionada à frequência com que o sistema falha e qual o impacto de suas falhas (com perda de dados ou não). As aplicações desenvolvidas para a computação em nuvem devem ser confiáveis, ou seja, elas devem possuir uma arquitetura que permita que os dados permaneçam intactos mesmo que haja falhas em um ou mais servidores/máquinas virtuais sobre os quais essas aplicações estão executando.

A disponibilidade é uma grande preocupação, pois as ferramentas precisam de estabilidade para atender adequadamente os usuários. Por exemplo, quando servidores de e-mail ficam fora do ar, o usuário final fica sem ṕoder utilizar a ferramenta. Uma alternativa para solucionar esse tipode de problema é ter mais de um prestador de serviços de e-mails e com isso mais de uma nuvem se possível. Isso permitirá aos usuários acessarem seus serviços em outra nuvem enquanto uma está fora do ar. Com este conceito, o Multi-Clouds, podemos ter mais de um provedor de cloud distribuindo suas aplicações ou serviços tendo uma alta disponibilidade. 

Conclusão – Computação em Nuvem

Cada vez mais a computação na nuvem está presente em nosso cotidiano, não só para usuário doméstico, mais como na área empresarial, comercial e acadêmica. A utilização da computação em nuvem já está presente em tarefas comuns como: publicar uma foto na internet, comentar em um site de rede social, desenvolver um trabalho com um colega usando ferramentas de edição de texto em sites ou simplesmente enviar uma mensagem por correio eletrônico.

A nuvem representa uma camada conceitual que abstrai toda infraestrutura da plataforma computacional, deixando os serviços transparentes ao usuário, que é atendido como se os dados e programas estivessem em sua máquina local. Os benefícios obtidos com esta tecnologia tem sido expressivos, para grandes corporações, com um grande apelo econômico além da flexibilidade e dinamicidade proporcionada. E também para o usuário comum, que usufrui principalmente da mobilidade, integração e inteligência das aplicações.

O uso de computação em nuvem já é uma realidade que a cada dia vem se popularizando e gerando valor aos clientes. Adquirir nos dias de hoje a computação em nuvem é um passo enorme no que se diz respeito ao valor da Empresa como um todo. Pois como diz Christopher Little, executivo de software e um dos primeiros cronistas de DevOps: “Toda empresa é uma empresa de tecnologia, independente do negócio, em que pense estar. Um banco é apenas uma empresa de TI com licença bancária”.

Quem é a Aquarela Analytics?

A Aquarela Analytics é vencedora do Prêmio CNI de Inovação e referência nacional na aplicação de Inteligência Artificial na indústria e em grandes empresas. Por meio da plataforma Vortx e da metodologia DCIM (Download e-book gratuito), atende clientes importantes, como: Embraer (aeroespacial),  Auren (energia), Scania e Grupo Randon (automotivo), SolarBR Coca-Cola (alimentício), Hospital das Clínicas (saúde), NTS-Brasil (óleo e gás), Telefônica Vivo (Telecomunicações), dentre outros. Fique atento às novas publicações diárias da Aquarela Analytics no Linkedin e assinando a nossa Newsletter mensal!

Autor