domingo, 31 de maio de 2020

Automatizando Manipulações de Recursos no Azure


O Portal do Azure fornece a possibilidade de criar contas de automatização para executar comandos para gerenciamento dos recursos, são os mais diversos cenários que podem necessitar de processos automáticos e recorrentes, desde a possibilidade de ativar ou desativar um recurso em horário não comercial para economia financeira, a criação de regras  especiais de monitoramente para redimensionamento de recursos, desprovisionar ambientes de desenvolvimento ou homologação, dentre tantas outras possibilidades.

Vamos para um exemplo prático, ligar e desligar uma máquina virtual de homologação, restringido seu funcionamento ao horário comercial.

1. Criando uma Conta de Automação

 


Importante: para que seus comandos possam ser executados, é preciso marcar a opção "Criar conta Exectar como do Azure", essa permissão irá criar um usuário no Azure Active Directory para permissão colaborador para ser utilizado dentro da automação. 

2. Criando um RunBook

Acesse a conta de automação que foi criada anteriormente, na barra lateral selecione a opção "Runbooks  (Runbook é conjunto de operações que serão executado dentro da agenda definida internamente). Selecione a opção "Criar um runbook"

 

Importante: em "Tipo de runbook" iremos utilizar a forma mais trivial de manipular recursos "PowerShell", porém existem outros formatos que podem facilitar quando houver um processo decisório, como a opção "Fluxo de Trabalho do PowerShell"

Depois de criar a tela para edição do mesmo será aberta, coloque o código que recupera a conexão atual da conta de aumtoação e efetuar a ligação da VM.


$servicePrincipalConnection = Get-AutomationConnection -Name
AzureRunAsConnection
$connectionResult =  Connect-AzAccount -Tenant $servicePrincipalConnection.TenantID `
                            -ApplicationId $servicePrincipalConnection.ApplicationID   `
                            -CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint `
                            -ServicePrincipal
 Start-AzVM -ResourceGroupName "gr-VM-hml" -Name "vm-homolog"

Sempre que criar um runbook é fundamental que efetuamos o teste em ambiente controlado, veja que existe a opção "Painel de Teste", porém de executar esses comandos, precisamos incluir as bibliotecas necessárias dentro da conta de automação. 

4. Adicionando Módulos

Para o comando "Connect-AzAccount" precisamos do módulo " Az.Accounts" e no caso do comando "Start-AzVM" necessitamos do módulo "Az.Compute", basta selecionar a opção "Adicionar um módulo"

Para efetuarmos a inclusão devemos acessar a opção "Galera de Módulos" na barra lateral, basta pesquisar pelo nome do módulo, clicar no módulo e clicar na opção "Importar", processa a mesma ação para o outro módulo

Para verificar o status da instalação, basta acessa o menu na barra lateral "Módulos"


5. Testando e Publicando seu runbook

Basta acessar a edição do código, clicar na opção "Painel de Teste", será exibida uma tela com a opção "Iniciar" e aguardar a execução.

Importante: Essa execução somente efetua o teste de seus comandos, ela não está sendo executada na realidade, ou seja, nenhum comando surtirá efeito em seus recursos.


Quando o teste for concluído sem erro, basta fechar o painel de teste e efetuar a publicação de seu runbook, toda vez que seu runbook for executado será o último código publicado que será utilizado. 

6. Definindo um Agenda para Execução

Agora precisamos definir o(s) dia(s) e horário que será agendando as execuções, basta acessar no menu lateral a opção "Agendas" , as agendas são compartilhadas dentro da sua conta de  automação.

Vamos criar uma agenda que iniciará a VM todo dia útil às 8h

 


Importante: a data Inicia é a primeira execução. Caso esse comando será para sempre, não configurar uma expiração.

Pronto, já temos configura o serviço que inicia, agora só precisamos configurar o serviço que desligará todo dia as 18h com o comando "Stop-AzVM". E assim dessa forma já estaremos economizando 58% do valor da VM por ela estar desligada no horário que ninguém estará utilizando.

Marcelo Goberto de Azevedo

Arquiteto na GFT Brasil

//marcelogoberto.com.br

 

 


domingo, 24 de maio de 2020

Lançamento do Microsoft Cloud para Área Médica


Em virtude do cenário atual da pandemia do Covid-19, muitas empresas se viram obrigadas a acelerar sua transformação digital. Por conta desse episódio global a Microsoft anunciou durante o evento Microsoft Build 2020, o lançamento do pacote de serviços na nuvem voltado para a área de saúde, o Microsoft Cloud for HealthCare. Esse oferta reúne vários recursos confiáveis que aumentam o envolvimento de pacientes, conecta os profissionais de saúde para melhorar a colaboração, facilita a criação de resultados para a tomada de decisões e oferece todo um ambiente seguro e confiável para os dados. Esse novo serviço proporciona uma forma de acelerar à transformação digital da saúde.  

Aumentar o Engajamento de Pacientes

Hoje o paciente precisa e necessita estar no controle de muitas atividades, para que possa facilitar a resolução de seus problemas, e que facilidade maior que ter acesso as informações quando necessário. Um dos principais serviços foi a disponibilidade de um serviço de Bot voltado para área de saúde, que possibilita de forma rápida e simples, a utilização de inteligência artificial em uma chat de atendimento com autoavaliação e dados institucionais, como localização de unidades, especialidades médicas e horários de atendimento para os pacientes. Outro serviço é a utilização do Microsoft Teams para criar possibilidade de interações virtuais em um canal seguro e privado, entre o paciente e o profissional de saúde. Através de um simples atalho recebido por e-mail a consulta virtual poderá ser realizada através de qualquer interface que tenha acesso a internet.

Fomentar a Colaboração entre os Profissionais

Num mundo totalmente conectado é imprescindível que os profissionais de saúde possam colaborar de forma mais objetiva e simplista para oferecer mais qualidade, um dos principais serviços que podem auxiliar é o Microsoft Teams que alia bate-papo, reuniões de voz e vídeo e oferece gravação e transcrição, além de recursos seguros de mensagens, disponíveis em todos os dispositivos. A Microsoft ainda anunciou a disponibilização de um aplicativo Bookings no Microsoft Teams, que irá permite que as assistências médicas agendem, gerenciem e realizem visitas virtuais para paciente.

Proteção e Interoperabilidade dos Dados  

Os dados de pacientes são a principal de insumo que necessita estar protegida contra possíveis falhas de segurança e principalmente estar num formato que possa ser utilizado por toda cadeia de soluções que devem ter acesso. Por conta disso, a nuvem já está preparada para garantir as melhores condições e praticas para proteger esses dados, assim como a questão de integração desses dados, a Microsoft foi a primeira nuvem a oferecer um serviço FHIR no Azure – esse serviço permite que as organizações médicas gerenciem seus dados no formato FHIR, esse padrão foi desenvolvido HL7 para normatizar os dados clínicos e facilitar a leitura e interpretação dos dados.

Prover Melhores Intuições

A utilização de inteligência artificial e serviços cognitivos oferecem várias ferramentas para efetuar grande analise de dados de forma rápida e gerar resultado consistentes para tomadas de decisão, desde a analise de centenas de milhares de exames para detecção de um padrão de infecção, como treinamento da máquina para efetuar detecção de possíveis doenças em imagens de ultrassom, raio-x, etc. Outra facilidade é criação de aplicativos e fluxos de trabalho sem código/código baixo em horas ou dias, não semanas ou meses para resolver pequenos atividades que podem auxiliar no ganho de eficiência.

No sábado (23/maio) a GFT efetuou uma transmissão ao vivo com vários especialistas, Diego Cardoso, Cleiton Felipe Moraes, Juliano Custódio, Julio Arruda, Josué Vidal, MBA e Rogério Rodrigues para comentar todas as novidades que foram apresentadas durante o Build 2020, entre os assuntos desse bate papo estava o Microsoft Cloud for HealthCare, para mais informações confira todo o conteúdo em youtu.be/oPwuHMDnTgA

Marcelo Goberto de Azevedo

Arquiteto na GFT Brasil

//marcelogoberto.com.br

 

 

 


domingo, 10 de maio de 2020

Monitorando o Desempenho da sua Aplicação com Application Insights



A maioria dos projetos são desenvolvidos utilizando-se das melhorias tecnologia, padrões de arquitetura, boas práticas, enfim tudo aquilo que irá garantir a entrega da aplicação para atender os requisitos funcionais. Porém quantos projetos depois de entreguem fazem acompanhamento do sucesso em relação ao comportamento dos usuários na sua utilização no dia a dia.

Por isso é fundamental que uma aplicação tenha uma ferramenta que auxilie na leitura de indicadores de desempenho, diagnosticar problemas e entender o que os usuários realmente fazem com seu aplicativo. Devido a essa importância, vamos exemplificar como instalar o Application Insights, um recurso do Azure Monitor, em sua aplicação para ajudar você a aprimorar continuamente o desempenho e a usabilidade.

Você necessitará ter uma assinatura no Portal Azure, por que será necessário criar o recurso do Application Insights que será associado ao seu projeto. 

Etapa 1: Adicionar o SDK do Application Insights

Através das propriedades do seu projeto, opção Adicionar, instalar a opção Application Insights Telemetry, isso habilitará o SDK em seu projeto.



A tela abaixo será aberta para que seja feita a configuração, basta clicar no botão Introdução



A seguir será exibido os dados para criação do recurso para o projeto dentro do Azure, clicando em Definir configurações, você poderá alterar o local para "Brazil South" e depois clicar em Registrar



Aguarde o processo de criação do recurso e instalação do Application Insights em seu projeto.



Depois que for criado, você precisa habilitar  que o SDK possa coletar os dados e enviar para o recurso, clicando em Coletar rastreamentos de System.Diagnostics


Pronto, toda vez que executar o projeto ou ele estiver publicado e rodando, os dados serão automaticamente enviado para o Dashboard dentro do Portal Azure.



Etapa 2: Criar Eventos Customizados

Umas das grandes vantagens é possibilidade de criar eventos customizados, esses eventos pode ser qualquer necessidade que você deseja monitorar, desde um simples clique num botão até mesmo a resposta de função.

Para criar essa chamada basta inserir o código abaixo no local que deseja que seja monitorado, no exemplo abaixo estamos registro na entrada na página e armazenando o IP de origem.


Dentro do recurso do Application Insights podemos ver o evento registrado com os dados capturados


Conclusão

Recomendo que faça a conexão da sua aplicação e acesse pelo portal que tem mais gráficos, ferramentas analíticas e modos de exibição para que possa se aprofundar e verificar todos os pontos que pode analisar, uma grande vantagem é que você poderá criar alertar para determinadas condições e através desse disparar ações.

Marcelo Goberto de Azevedo
Arquiteto na GFT Brasil
//marcelogoberto.com.br

domingo, 3 de maio de 2020

Coisas que Desenvolvedores deveriam Aprender

Segurança em Primeiro Lugar

Qualquer aplicativo com certeza deverá ter segurança implementada, nunca deixe o desenho da segurança para "depois". Quando não efetuamos o mapeamento correto da estrutura de segurança no inicio do projeto, com certeza ela aumentará o tempo de desenvolvimento, com certeza será necessário reescrever código, adaptar conceitos para resolver as questões de segurança não mapeadas.

Cada Aplicativo é Diferente

Pode parecer redundante falar que cada aplicação é diferente de outra, porém muitas vezes acreditamos que todo aplicativo deve seguir um conjunto padrão de regras. Para cada aplicação é importante verificar o que realmente é preciso para que ela atinja o objetivo, e as vezes são necessários "exceções" para que se tenha o melhor caminho, não existe literamente, o certo e errado, e sim o que é melhor para que aplicação obtenha o melhor resultado no final.

Microsserviços não são Obrigatórios

É cativante falar que trabalhamos com microsserviços em nosso dia a dia, surfando na onda da alta tecnologia, transformando todos os nossos monólitos em microsserviços. Um exemplo clássico de quando não é recomendado utilizar, é quando o principal objetivo do projeto é cortar custos, a utilização de microsserviços com certeza não irá ajudá-lo a alcança esse resultado, pois lhe obrigará a criar mais instâncias do que realmente necessitaria. A utilização de microsserviços devem ser levadas em consideração analisando o contexto como um todo e não simplesmente a adoção da tecnologia por si só.

Padronize seu Ambiente de Desenvolvimento

Essa com certeza é uma das maiores dores de cabeças para um equipe durante um desenvolvimento, quando temos vários desenvolvedores que não estejam com os seus ambientes equalizados. Incidem inconsistências que levam a grande perda de tempo para solucioná-las, é importantíssimo coordenar as atualizações de versões, ferramentas, addons, enfim tudo que se relaciona com o projeto para sejam iguais, com isso fazemos com que todos estejam na mesma "página".

Use Pacotes quando Necessários

Ter pacotes para as aplicações se torno algo muito popular e principalmente fácil e rápido de executar. Entretanto cada pacote que é instalado, acoplado ou referenciado em seu projeto irá criar uma nova dependência, isso com certeza irá acarretar primeiramente o acréscimo na maioria das vezes de código de terceiros, além pequenas caixas pretas em seu projeto. Outro fator é que os pacotes sempre acabam importando mais referências, logo um simples, formatador de campo, pode se tornar uma extensão cadeia de bibliotecas que precisaram ser entregues e estarem disponíveis. É importantíssimo termos a analise do que realmente deve fazer parte do projeto, uma regra simples que pode ajudá-lo na decisão de importar ou fazer é, se puder escrevê-la em cerca de 10 a 15 minutos, e então o faço.

Não Abstraia o Universo

A abstração é uma outra grande armadilha que é fácil de cair. É muito comum pensarmos "talvez eu possa reutilizá-lo depois" e acabarmos por abstrair para que esteja "pronto" para ser reutilizado. O conceito de reutilização é amplamente mencionado como uma boa prática para ganharmos velocidade e qualidade no projeto, porém gastasse muito mais tempo para criar lógica de abstração, do que simplesmente escrever um método. Outra regra que pode ajudá-lo é, escreva a função, se no próximo passo, você escrever outra função semelhante, você poderá voltar e abstraí-la.

Você não é um Google

Muitas vezes iniciamos nossos projetos imaginando o envolvimento de todas tecnologias de ponta para o escalonamento e alta disponibilidade de nossa aplicação. Sabemos que a escala do projeto é determinante para definir nossa plataforma operacional, logo quanto mais imaginamos nosso projeto "gigante" maior será a plataforma. Ou seja, estamos fazendo isso porque a aplicação precisa estar num padrão de escala "Google" ou porque queremos adicionar essa tecnologia em nosso currículo? Procure se ater ao que realmente a aplicação precisa atender para o público e não o que é moda no mercado.

Não crie uma "filosofia" baseado em Estranhos

Seja você um desenvolvedor iniciante ou não, é importante que você decida sobre quais regras se aplicam ao seu aplicativo e ao seu estilo de desenvolvimento. Estude, pesquise, absorva novos conhecimentos na Internet, mas não crie uma forma de pensar em algo dos outros, faça seus testes, implementações, erre, aprenda, erre de novo, aprenda mais...

Marcelo Goberto de Azevedo
Arquiteto na GFT Brasil
//marcelogoberto.com.br