Categoria: DevOps

API Management APIs Cloud DevOps Serverless

Porque sua empresa deveria utilizar API Management

Organizações no mundo inteiro compreendem, cada vez mais, o potencial das APIs, mas ainda poucos compreendem a real necessidade do correto gerenciamento de APIs. Para atingir este objetivo é necessário o uso de soluções conhecidas como API Management. Atualmente, tais soluções são oferecidas por diversos players de tecnologia, e sua grande maioria é oferecida como serviço através da nuvem.O gerenciamento de APIs se tornou uma necessidade por diversos motivos, e o objetivo deste artigo é te ajudar a compreender melhor este conceito e sua importância na atual economia digital.Antes de falar sobre o Gerenciamento de APIs, é importante entender para que serve uma API.O que são APIs?APIs expõem dados para uso por aplicativos e os desenvolvedores que as criam. Eles tornam os ativos da empresa acessíveis por aplicativos e se tornaram a ferramenta pela qual as empresas adicionaram uma camada digital às suas interações com clientes, funcionários e parceiros. Basicamente, uma API especifica como os componentes de software devem interagir e se comunicar, de uma maneira mais “segura” e flexível.As organizações estão implementando estratégias para gerenciar suas APIs, para que possam responder a mudanças rápidas nas demandas dos clientes. Na maioria dos casos, essas organizações adotam uma arquitetura de microsserviços para atender às demandas, acelerando o desenvolvimento de software. APIs baseadas em HTTP tornaram-se o método preferido para interação síncrona entre arquiteturas de microsserviços. Essas APIs são a cola que conecta todos os microsserviços. O gerenciamento dessas APIs permite que uma organização garanta que as APIs sejam usadas em conformidade com as políticas corporativas e permita a governança por níveis adequados de segurança, pois alguns serviços podem exigir políticas de segurança diferentes das de outros.É neste momento que entra o API Management.Por que usar um API Management?O API Management é responsável pelos processos de distribuição, controle e análise das APIs que conectam aplicativos e dados da empresa e de outras plataformas. O objetivo do API Management é permitir que as organizações que criam APIs ou usam APIs de terceiros monitorem a atividade e garantam que as necessidades dos desenvolvedores e aplicativos que usam a API sejam atendidas.Além disso, o API Management tem, como um dos principais objetivos, centralizar o controle das suas APIs – incluindo análises, controle de acesso, monetização e fluxos de trabalho do desenvolvedor. Uma solução de gerenciamento de API, como o Azure API Management, por exemplo, fornece confiabilidade, flexibilidade, qualidade e velocidade para expor e consumir APIs.Para atingir esses objetivos e garantir que as APIs públicas e internas sejam consumíveis e seguras, uma solução de gerenciamento de API deve fornecer, no mínimo, controle de acesso, limites de taxa e políticas de uso. A maioria das soluções de API Management também inclui os seguintes recursos:Um portal para desenvolvedores: Utilizar um portal de desenvolvedor é uma prática comum, e recomendada, para gerenciamento de APIs. Os portais de desenvolvedor geralmente fornecem a documentação das APIs, juntamente com os processos de integração do desenvolvedor, como inscrição e administração da conta;Um API gateway: O API gateway é o ponto de entrada único para todos os clientes. O gateway também determina como os clientes interagem com as APIs por meio do uso de políticas – incluindo os níveis de segurança desejado;Gerenciamento de ciclo de vida da API: As APIs devem ser gerenciáveis desde o design, até a implementação, e, eventualmente, até o fim da sua utilização;Analytics: É importante saber o que está acontecendo com suas APIs – qual consumidor ou aplicativo está chamando qual API e com que frequência. Também é essencial saber quantas APIs falharam e por quê;Suporte para monetização de APIs: Para empresas que tem como objetivo a monetização de APIs, o API Management talvez seja essencial para um controle mais eficaz. É possível monetizar o acesso aos microsserviços por trás das APIs por meio de contratos de uso. O gerenciamento de API permite definir contratos de uso com base em métricas, como o número de chamadas de API, por exemplo. Os consumidores podem ser segmentados e diferenciados por níveis de acesso, e a qualidade do serviço pode ser oferecida a diferentes segmentos.API e SegurançaA segurança é fundamental para as empresas quando elas expõem seus sistemas back-end por meio de APIs. A primeira razão pela qual qualquer empresa consideraria o gerenciamento de API é proteger suas APIs. Não se trata apenas de autenticar e autorizar o acesso à API, mas também de políticas para bloquear ataques, garantir que dados confidenciais não sejam acidentalmente ou intencionalmente vazados e revogar uma API comprometida que foi concedida a um usuário.O gerenciamento da API também deve fornecer logs e trilhas de auditoria para oferecer suporte à análise offline e à solução de problemas em tempo real.Outro recurso importante são as cotas de API e a interrupção de pico, para que o tráfego nos sistemas back-end seja adequadamente controlado e gerenciado. Por exemplo, os hacks públicos que ocorreram contra a API do aplicativo Snapchat são um exemplo do que pode dar errado se sua API não estiver protegida. Por exemplo, o uso da limitação de taxa teria frustrado pelo menos um dos hacks que atingiram o Snapchat entre os anos de 2013 e 2014. Hoje em dia o Snapchat e a grande maioria das grandes empresas que tem algum tipo de exposição de APIs, com certeza, utilizam soluções robustas de API Management, mas é importante pensar em tais níveis de controle desde o começo do desenvolvimento de suas aplicações.Desenvolvimento com API ManagementA experiência do desenvolvedor é essencial para a adoção e o sucesso de suas APIs. As APIs da sua empresa são inúteis se ninguém as usar. Para permitir a rápida adoção de suas APIs, o API Management pode prover um portal para colocar todas as APIs em um único local, facilitando a descoberta e o teste dessas APIs. Os melhores portais fornecem uma experiência completa de autoatendimento, onde os desenvolvedores podem selecionar as APIs e os níveis de serviço necessários, obter acesso seguro, monitorar seu uso da API e até monetizar e participar do compartilhamento de receita com o provedor da API (no caso de APIs de terceiro). Outra característica muito importante do portal é um mecanismo de feedback, como blogs de suporte ao cliente, fóruns e conteúdo da comunidade. Como vimos, o API Management proporciona uma experiência superior para a exposição de APIs e o efetivo consumo das mesmas.Segurança, portais de desenvolvedores, análises e monetização são apenas alguns dos principais motivos pelos quais você precisa de uma ferramenta robusta de gerenciamento de API. Para aplicar conceitos de desenvolvimento desacoplado e realmente obter as vantagens do desenvolvimento de aplicações Cloud Native, um API Management é essencial.Tá afim de conhecer melhor o funcionamento do API Management? Entre em contato com a Kumulus. Somos especialistas em Application Modernization e podemos ajudar sua organização a aplicar novos conceitos de desenvolvimento e tirar benefícios tangíveis levando suas aplicações para a nuvem da forma correta.

LER MAIS ARTIGOS

Acompanhe a Kumulus nas redes sociais:

Facebook

Instagram

Youtube

Envelope

DevOps

Aprenda sobre o papel que os Bots têm no DevOps

Você sabe dizer onde os Bots se encaixam no pipeline DevOps?
Algumas das principais tendências de DevOps são:

DevOps assembly lines automation
Alertas inteligentes e acionáveis de ferramentas de monitoramento
Monitor e infra-estrutura de orquestração

Colaboração aprimorada:
Com o aumento da adoção do DevOps, as organizações enfrentam hoje muitos desafios no ciclo de vida de entrega de serviços de ponta a ponta.

Para aplicativos com configurações de ambiente complexas, a criação, a configuração e a implementação de um novo ambiente é dispendiosa, demorada e propensa a erros.

Devido a intervenções manuais, mover/promover o código entre os ambientes envolve riscos e pode causar interrupções.
As equipes de desenvolvimento buscam maximizar a mudança escrevendo novos códigos ou aprimorando o código existente, enquanto as equipes de operações procuram minimizar as alterações para acompanhar os principais indicadores de desempenho (KPIs) e os contratos de nível de serviço (SLAs). Essas metas são opostas por natureza e criam uma cultura de culpa entre as equipes de desenvolvimento e operações.
As organizações são incapazes de manter o desenvolvimento, o teste e a produção em sincronia devido a falhas no processo e na ferramenta. Um processo manual, não pode colmatar esta lacuna na consistência: assim interrupções na produção são comuns.

Vários mecanismos de colaboração permitem que as equipes trabalhem e aprendam juntas para produzir melhores resultados. A figura abaixo descreve o ciclo de vida de ponta a ponta do DevOps. A colaboração entre as fases é essencial para o sucesso da transformação de DevOps da sua empresa.

O que são ChatOps e Bots?
ChatOps é um termo cunhado pelo GitHub para descrever “colocar ferramentas no meio de uma conversa”. Em um pipeline típico de CI/CD, há várias ferramentas com as quais você interage e que têm funcionalidades variadas, como gerenciamento de código-fonte (SCM), gerenciamento de defeitos, integração contínua, implantação continua e outros. Essas são todas as ferramentas discretas, mas não há nada que as una juntas. É aqui que o ChatOps entra em jogo.

Um bot é a ponte entre a ferramenta de colaboração e as ferramentas DevOps. O bot recebe uma solicitação do usuário na forma de um comando de chat por meio de uma ferramenta de colaboração, analisa a solicitação e executa um conjunto de comandos na ferramenta DevOps de destino.
Os principais componentes do ChatOps e bots são:
Ferramenta de colaboração/aplicativo de bate-papo: esse é o sistema de bate-papo inicial que conecta as várias partes interessadas e permite que elas interajam entre si e os sistemas ao seu redor.

O bot: este é o núcleo do ChatOps. Um bot é a cola entre sua ferramenta de colaboração e seus sistemas. Facilita um canal de comunicação bidirecional onde você pode buscar informações relevantes dos sistemas e agir sobre as suas informações recebidas. Um bot se encaixa entre sua ferramenta de colaboração e as ferramentas de DevOps, por exemplo, Hubot, Lita, ErrBot ou AWS Lex.
Onde os bots se encaixam no pipeline de DevOps:
Os bots podem provar ser um acelerador em vários estágios do pipeline de CI/CD. Abaixo estão os detalhes da integração com várias ferramentas de DevOps em cada fase do ciclo de vida:

Planejamento proativo – JIRA
Gerenciamento de Requisitos – JIRA
Integração Contínua – Jenkins
Implantação contínua – Ansible, Chef
Monitoramento contínuo – Nagios, Grafana, Splunk
Feedback contínuo – JIRA

Um chatbot desempenha um papel importante em reunir as diferentes equipes em uma única sala de bate-papo persistente para fazer a triagem e resolver o problema em questão. Além de solucionar problemas e triagem, os bots podem ser usados para vários outros trabalhos comuns, como:

Limpar servidores.Iniciando trabalhos de criação e implantação.
Rotating logs do servidor.
Aplicativo de integração nas ferramentas de monitoramento.
Coletando métricas de ferramentas como o Nagios ou o AppDynamics.

Modelo Técnico de Bot:
Para atingir as metas mencionadas, precisamos ter uma plataforma de bot de suporte em funcionamento. A proximidade das ferramentas com o bot garante a qualidade da implementação e abre novas oportunidades de automação.

Como o diagrama mostra, o chatbot está hospedado em uma ferramenta de chat como o Slack. Isso pode estar na plataforma de nuvem ou em um aplicativo de bate-papo/comunicador existente. O bot é integrado a um banco de dados de referência de pares de valores-chave, que é alimentado com as respostas. A chave pode ser o nome do aplicativo para recuperar dados ou qualquer ID exclusivo que reduza o número de leituras. Uma consulta da chave definida correspondente à chave secundária é executada no banco de dados de resposta e uma resposta é enviada de volta ao chatbot. Dependendo do número de saídas, as consultas podem ser definidas e armazenadas no banco de dados de resposta.
DevOps Bots: Casos de Uso:
Abaixo estão alguns exemplos de casos de uso para bots. Isso inclui o ciclo de vida completo do DevOps.
Planejamento proativo:
Crie novas histórias de usuários em ferramentas de planejamento de sprint e atribua sprints a equipes. Atualize sprints e backlogs de produtos.
Construção e Integração Contínua:
Execute tarefas de construção e relate as estatísticas do trabalho de construção. Realize compilações diárias / noturnas e relate o status da compilação para as equipes relevantes.
Implantação contínua:
Execute trabalhos de implantação e execute implantações em vários ambientes. Reverter implantações em caso de falhas, verificações de status, executar ações pós-implantação, como reinicializações da JVM.
Provisionamento de Infraestrutura e Gerenciamento de Configuração:
Inicie os trabalhos do Chef para provisionar infraestrutura ou provisionar ambientes de aplicativos. Ative o monitoramento e a reinicialização de serviços e servidores.
Monitoramento Contínuo:
Forneça estatísticas de aplicativos ou execute pesquisas de dados diárias e métricas de captura.
Feedback Contínuo:
Monitorar a integridade do aplicativo e executar análises.
Principais métricas de medição:
Para obter otimização e melhorar o desempenho do processo de entrega contínua, a medição métrica é a chave. Esses indicadores ajudarão a tomar certas ações corretivas e preventivas com base nos resultados. Abaixo estão alguns dos principais indicadores de métricas que podem ser medidos.
Redução de Esforço:
Indica a redução de esforços humanos/manuais para tarefas como o acionamento de uma construção ou implementação ou coleta de métricas a partir de ferramentas de monitoramento.
Taxa de Redução de Erro Humano Redução:
do esforço necessário devido a retrabalho causado por erros humanos.
Reduzir:
o tempo de triagem do problema indica o tempo necessário para resolver problemas em que várias partes estão envolvidas e a triagem de problemas é necessária.
Conclusão:
Os bots de DevOps podem melhorar significativamente a eficiência da equipe, bem como a capacidade de uma equipe de responder a emergências. Eles economizam tempo e dinheiro, são divertidos de construir e usar e podem ter um impacto positivo no moral da equipe, além de aumentar a produtividade geral das equipes. Isso se aplica às equipes de engenharia e operações. As empresas que adotam a digitalização buscam parceiros com uma mentalidade de engenharia que saiba como reunir equipes ágeis colaborativas com o mais recente conhecimento de plataformas de código aberto e de ferramentas DevOps.

Fonte: devops.com

LER MAIS ARTIGOS

Siga os canais da Kumulus nas redes sociais:

Facebook

Instagram

Youtube

Envelope

Social media & sharing icons powered by UltimatelySocial