Azure Inteligência Artificial.

A Azure oferece várias capacidades e ferramentas para manipulação de inteligência artificial.

A inteligência artificial é muito usado para várias aplicações, interpretar texto, voz, imagem, filtrar e tomar decisões através de dados de entrada.

Com as inúmeras ferramentas para inteligência artificial oferecidas pela Azure, é possível criar soluções sem muito conhecimento em A.I.

Com isso o desenvolvimento da solução é acelerado, economizando recursos financeiros e tempo.

Azure também oferece SDK para inteligência artificial, possibilitando uma customização na solução.

Capacidades I.A Azure.

Existem algumas capacidades para Inteligência Artificial que são oferecidas pela Azure: Azure Machine Learning, Azure Cognitive Service e Azure bot service. Cada capacidade é útil em cada solução que deseja aplicar, e a Azure oferece soluções simples até a mais customizada.

Azure Machine Learning oferece várias ferramentas para trabalhar com M.L, oferecendo ferramentas para construção do seu fluxo de M.L utilizando ferramenta “drag and drop” e integrando com ferramentas externas e linguagens de programação.

Azure Cognitive Service oferece API rest ou SDK’s para analisar diversas entradas como imagem, texto, voz e executar tomadas de decisões.

Azure Bot Service oferece ferramentas simplificadas e customizadas para criação de bots e chat bots.

Conclusão.

Muitas empresas utilizam inteligência artificial para as mais diferentes soluções, chat bot, análise de dados, interpretação de imagem, texto, voz ou até cruzar as informações e a Azure pode ajudar nessa tarefa.

Ferramentas de monitoramento Azure.

A Azure oferece uma série de ferramentas de monitoramento para a infraestrutura até as camadas de aplicações.

Essas ferramentas ajudam a prevenir e analisar problemas para uma futura correção.

O monitoramento Azure oferece uma visibilidade global da saúde dos data centers, dicas a nível micro dos recursos e ferramentas para analisar os logs coletados.

Além de oferecer ferramentas para geração de métricas e gráficos para monitoramento e a nível de relatórios.

Entre os recursos de monitoramento Azure estão o Azure Advisor, Azure Monitor e o Azure Service Health.

Detalhes das ferramentas de monitoramento.

Como falamos anteriormente, as principais ferramentas de monitoramento Azure são Azure Advisor, Azure Monitor e o Azure Service Health. O Azure Advisor ajuda os recursos utilizados fornecendo dicas e informações de vulnerabilidade e atualizações, além de exibir o link para aplicar essas melhorias. O Azure Monitor oferece uma série de ferramentas para gerar métricas a partir de logs coletados das aplicações ou recursos, possibilitando cruzar informações para uma melhor análise. O Azure Service Health mostra de forma global e analítica como está a saúde da infraestrutura Azure, como está afetando seus recursos e informações como previsão de resolução e como contornar a situação. Utilizando recursos de monitoramento Azure, podemos evitar e até prevenir problemas que possam vir a acontecer.

Conclusão.

Prevenir problemas com uma rápida atuação é impossível sem ferramentas de monitoração, a melhor forma de atuação em algum problema é ter uma boa camada de log bem detalhada e a Azure oferece vários recursos para isso.

Azure Devops.

A Azure oferece ferramentas devops, chamada Azure Devops.

O Azure Devops oferece algumas ferramentas para entrega contínua, onde é automatizado o processo de compilação, testes e publicação do sistema.

Existem 2 segmentos do Azure Devops: Azure Devops service para trabalhos a partir da nuvem e o Azure Devops Server para trabalhos a partir de um ambiente local.

Uma operação Devops consegue unir grupos de tecnologia e de processos para uma entrega mais coordenada e segura.

Os benefícios de uma operação devops é a produtividade, segurança e satisfação do cliente.

Ferramentas Azure Devops.

O Azure Devops ainda oferece algumas ferramentas que ajudam no processo de entrega contínua. Azure Repos: Oferece plataformas de repositórios como Github e TFVC; Azure Pipeline: Serviço para integração contínua; Azure Boards: Fornece ferramentas para processo Ágil como quadro para Kanban e Scrum; Azure Test Plan: Fornece ferramentas para testes das aplicações; Azure Artifacts: Fornece um repositório para pacotes Maven, NPM e Nuget.

Conclusão.

O Azure Devops oferece vários recursos para melhorar a produtividade do processo devops com ferramentas próprias e de terceiros.

Cloud computing.

Cloud computing ou Computação nas nuvens é uma tecnologia que ajuda empresas que não querem investir em equipamentos para data center físico.

Hoje existem várias empresas que oferecem serviços de computação nas nuvens como Azure da Microsoft, AWS da Amazon, Openshift da Red Hat, entre outras.

Com a facilidade e velocidade do tráfego de dados, hoje, sem dúvida é mais vantajoso contratar um serviço de computação nas nuvens.

As principais vantagens são que não é necessário investir capital em um equipamento caro que deprecia rapidamente e a possibilidade de pagar somente pelo uso do serviço, se não está usando, não é necessário pagar.

Além da economia financeira, existem outros pontos que fazem a computação nas nuvens ser vantajosa que vão além da segurança até a flexibilização dos serviços oferecidos.

Algumas vantagens técnicas.

A alta disponibilidade oferecida pela computação na nuvem é uma garantia de que o serviço e equipamentos terão baixa frequência a falhas, garantindo que o serviço fique no ar sem interrupções. Uma escalabilidade, oferecendo a possibilidade de aumentar ou diminuir número de poder computacional como CPU e memória Ram a qualquer momento, também chamado de escalabilidade vertical. Também é possível uma escalabilidade horizontal, aumentando números de instâncias da aplicação. A elasticidade é uma das capacidades da computação nas nuvens, onde é possível configurar as aplicações se auto escalarem. A computação nas nuvens tem uma alta capacidade de provisionar e publicar serviços e aplicações em minutos ou até segundos, essa capacidade também é chamada de Agility. Também oferece uma capacidade de Disaster Recovery, onde a aplicação é restaurada rapidamente em caso de uma simples queda de energia, rede, falha no equipamento até um desastre como terremoto, incêndio no data center, conflito políticos, mas cada recuperação de falha vai depender do modelo contratado.

Conclusão.

Está claro que é muito vantajoso contratar um serviço de computação nas nuvens, as vantagens vão de economia, equipamentos sempre atualizados, pagamento por demanda, segurança, flexibilidade, entre outros.

Serviços ACI e AKS.

O ACI ou Azure Container Instance e AKS ou Azure Kubernetes Service são serviços baseados em containers dentro do ambiente Azure.

Esses 2 serviços geram muita dúvida para quem está iniciando no ambiente Azure.

Se os dois serviços trabalham com containers, qual dos serviços utilizar?

O Azure Container Instance permite o deploy de containers de forma rápida e sem a necessidade de máquinas virtuais.

O Azure Kubernetes Service permite o deploy e gerenciamento de containers sem a necessidade de um conhecimento avançado em orquestração de containers, mas é necessário pelo menos 1 instância de máquina virtual.

Principais diferenças.

Vamos descrever as principais diferenças para tomar decisão de qual serviço utilizar. Uma das principais diferenças entre o ACI e AKS é a forma de cobrança, o ACI é cobrado por tempo de CPU e memória utilizado e o AKS é cobrado por máquina virtual instanciada. Outra diferença importante é sobre o controle das máquinas, o ACI não tem um controle completo da máquina que está hospedada, já o AKS tem um controle completo da máquina. O ACI fornece um IP e DNS público, mas não fornece criptografia SSL, o AKS fornece IP, DNS e criptografia SSL. Ao utilizar o ACI, não existe nenhuma capacidade de orquestração por padrão, mas é possível combinar serviços AKS ou outro orquestrador.

Conclusão.

Talvez um pouco complicado na teoria, mas a principal diferença além da forma de cobrança é que o ACI são containers que por padrão não possuem orquestração e o AKS possui orquestração embarcada dos containers.

Zonas e Regiões de disponibilidade Azure.

A Azure disponibiliza uma capacidade de disponibilidade de seus serviços de forma a entregar resiliência e confiabilidade nos seus produtos.

O que tudo isso quer dizer na prática?

Ao utilizar serviços Azure, a Microsoft garante um percentual de disponibilidade das suas aplicações dependendo da escolha de redundância, em outras palavras, mesmo que sua aplicação caia por qualquer motivo, ela não ficará mais que alguns segundos fora do ar.

O tempo de recuperação da aplicação ou serviço vai depender do tipo de redundância que escolher, que podem ser: Redundância Local, Redundância de Zonas e Redundância Regional.

Para cada tipo de contratação de redundância terá um custo diferente, quanto maior o tempo de disponibilidade/recuperação maior o custo.

Definindo cada redundância Azure.

A primeira opção que teremos é sem a contratação de redundância, a Single VM, onde teremos uma única instância do serviços, mas mesmo que a instância caia ela é recuperada rapidamente, sendo um SLA de 99,9% ao ano.

A segunda opção seria a Redundância Local ou Availability Set, onde teremos dentro de um mesmo data center 2 instâncias do serviços em racks separados, assim, mesmo que uma instância caia, teremos outra funcionando, essa modalidade tem um SLA de 99,95% ao ano.

A terceira opção é a Redundância por zona ou Availability zone, onde teremos instâncias espelhadas em “n” data centers de uma mesma zona de atuação, se um data center cair, ainda teremos outro data center disponível, essa modalidade tem um SLA de 99,99% ao ano.

A última opção é uma Redundância por região, onde teremos instâncias espelhadas em “n” data centers e em outra região separada por 300 milhas de distância, ou seja, se uma região por qualquer motivo seja por falta de energia ou queda de rede, ainda teremos a disponibilidade do serviço atendendo em outra região, essa modalidade entrega um SLA quase zero por ano.

Verificando a necessidade de disponibilidade da sua aplicação fica a cargo do Devops escolher qual a melhor modalidade solicitar.

Conclusão.

Fica claro que os serviços nas nuvens Azure são bem seguras e confiáveis, entregando um SLA muito próximo do zero, fica a cargo do cliente escolher o melhor custo benefício de redundância adotar.

Microsoft Az 900.

Essa semana comecei uma jornada de estudo para a prova Az 900 da Microsoft.

A prova Az 900 comprova nossos conhecimentos nos fundamentos da plataforma Azure.

O conteúdo da prova é extenso e muda constantemente o formato da prova, precisando acertar 70% da prova para ser aprovado.

Estou dedicando 2 horas por dia nos estudos e vou aproveitar os meus notes para publicar alguns resumos.

Essa semana estudei um pouco sobre a macro arquitetura Azure.

Arquitetura Azure.

A arquitetura Azure é baseada em uma estrutura de alguns componentes: Gerenciador de grupos, assinaturas, grupos de recursos e recursos.

Gerenciador de grupos fica no topo da hierarquia, gerenciando todas as assinaturas e grupos de recursos, controlando permissões, acessos e conformidades.

Assinaturas gerenciam as contas, determinam a quantidade de cotas de recursos disponíveis e controlam os custos da fatura mensal.

Grupos de recursos são contêineres que agrupam diversos recursos oferecidos pela Azure.

Recursos são todos os serviços ou unidades que podemos criar dentro da plataforma como storages, máquinas virtuais, redes virtuais, banco de dados, aplicativos, entre outros.

Conclusão.

A macro arquitetura Azure oferece uma cadeia de componentes aninhados e organizados hierarquicamente, cada componente gerenciando suas responsabilidades isoladamente.