Interop Day 2019 – Porto Alegre

E o ano de 2019 encerrou em alto nível. No dia 07 de dezembro aconteceu nas dependências da Unisinos Porto Alegre o Interop Day. Um dia cheio de conteúdo técnico de alta qualidade. Como sempre, o evento contou com uma excelente organização e estrutura.

Fui convidado pelo MVP/Regional Director André Ruschel para palestrar. Meu assunto desta edição foi Azure DevOps com deployment em containers. Tentei fazer a apresentação mais hands-on possível, indo da criação de um simples repositório no Github ao build um container Docker e seu deploy no Azure. É um assunto inesgotável – poderíamos passar muitas horas apresentando o conteúdo.

Fiquei extremamente feliz pela sala cheia e participação ativa da audiência. Para as palestras sobre esse assunto no próximo ano, farei algumas otimizações na apresentação para deixá-la ainda mais interessante.

Obrigado a todos que em um sábado de sol radiante investiram seu tempo na aquisição e compartilhamento de conhecimento!

Palestrantes do Evento

Microsoft Graph e Powershell

Gostaria de fazer chamadas para a API do Microsoft Graph utilizando Powershell? Não existe SDK para ele, mas você pode facilmente fazer esta integração chamando a Rest Api diretamente, utilizando Invoke-RestMethod.

Abaixo um exemplo (listar usuários do Azure AD). São duas chamadas:

  • Fazer a autenticação e guardar o token (lembrando que sua aplicação precisa estar registrada, e com as permissões atribuidas. No caso deste exemplo, estou setando estas permissões do tipo “Aplicativo”, passando ClientId, ClientSecret e TenantId).
  • Fazer a chamada para a API desejada (https://graph.microsoft.com/v1.0/users), passando no Header da mesma o token (Bearer).
$clientId = "5e3543b8-8ccd-4c6b-ada1-ef42dc536239"
$clientSecret = "HwQfqX/8mb2=9lLvGFmFTqc4huMpMG/:"
$tenantId = "367d2083-e69a-4817-8af0-b25958285733"

$body = "grant_type=client_credentials&scope=https://graph.microsoft.com/.default&client_id=$clientId&client_secret=$clientSecret"  

$authUrl = "https://login.microsoftonline.com/$tenantId/oauth2/v2.0/token"


Write-Output "Autenticando em $authUrl"

$token = Invoke-RestMethod -Method Post -Uri $authUrl -ContentType "application/x-www-form-urlencoded" -body $body

Write-Host "Token: " $token.access_token

$usersUrl = "https://graph.microsoft.com/v1.0/users"
$header = @{
    Authorization = "Bearer " + $token.access_token 
}


$users = Invoke-RestMethod -Method Get -Uri $usersUrl -Headers $header -ContentType "application/json"

foreach ($user in $users.value)
{
    Write-Host $user.displayName "<"$user.Mail">"
}

É isso. Barbada!

Obviamente os valores de ClientId, ClientSecret e TenantId são fakes 🙂

Git-to-Git: Migração Manual de Repositórios

Recentemente tive a necessidade de fazer uma migração de repositórios Git na empresa em que eu trabalho (TFS Git para Gitlab). Apesar de as ferramentas atuais já fornecerem algumas funcionalidades para fazer isso de maneira intuitiva (pela UI, por exemplo), precisei fazer isso manualmente.

A migração Git-to-Git é extremamente simples (ao contrário do cenário TFS (TFVC) para Git). Basta clonar (mirror) o repositório origem, remover a referência antiga(origin), adicionar a nova e fazer o pull.

Para exemplificar, fiz uma migração de Gitlab para AzureDevOps. O procedimento abaixo migra todos os branches, histórico (commits) e tags:

Repositório Origem (Gitlab): https://gitlab.com/Marcel_Goldhardt/test1.git
Repositório Destino (Azure DevOps): https://dev.azure.com/ocaradoazure/migration/_git/migration

git clone --mirror https://gitlab.dell.com/Marcel_Goldhardt/test1.git .
git fetch --tags --all
git remote rm origin
git remote add origin https://dev.azure.com/ocaradoazure/migration/_git/migration
git push origin --all
git push --tags
Origem: Repositório no Gitlab
Destino: Repositório no Azure DevOps

Microsoft Graph – M365 Global Bootcamp

No último dia 26 de outubro aconteceu em Porto Alegre o Global Microsoft 365 Developer Bootcamp, na Arena uMove.me (o local é simplesmente fantástico). No Brasil são 3 edições do evento (além de Porto Alegre, acontece em Belo Horizonte/MG e Santo Ângelo/RS). Apesar de um dia ensolarado e muito calor (convidativo para atividades ao ar-livre), o evento contou com um excelente número de participantes

Tive a honra de palestrar no evento, a convite do Rafael Felipe e do Diego Matos. Durante os 50 minutos de apresentação, abordei a plataforma Microsoft Graph e como podemos interagir com as ferramentas que compõe o Microsoft 365 (Office, Windows, Enterprise Mobility, Dynamics).

Microsoft Graph: Primeiros Passos

  • Introdução ao Microsoft Graph
  • Utilizando o Graph Explorer
  • Explorando a Documentação
  • Baixando o Quick Start / SDK´s
  • Registrando a Aplicação no Azure Active Directory
  • Lendo dados do Excel através da API
  • Consumindo a API utilizando Powershell
  • Coleções prontas do Postman para consumo

Obrigado a todos os partcipantes!

Tens interesse em levar essa palestra para o seu grupo de usuários? Me contate!

Global Microsoft 365 Developer Bootcamp – Porto Alegre

Pessoal! Dia 26 de outubro vai acontecer o Global Microsoft 365 Developer Bootcamp em Porto Alegre, na Arena uMove.me. O evento é totalmente grátis. Estou preparando um conteúdo sobre Microsoft Graph API, para iniciantes. Vocês irão se surpreender com as possibilidades da plataforma. Aguardo vocês!

Inscrições: https://o365poa.azurewebsites.net/

Abraço!

Banner Global Microsoft 365 Developer Bootcamp

InteropX – “E aí professor?”

Senhores, que evento em Ijuí/RS! A última vez que estive na Unijuí havia sido em 2006, por ocasião da minha formatura no curso de Sistemas da Informação daquela instuição. Já conhecia o auditório principal e sua grandiosidade – tinha minhas dúvidas se ele lotaria. E lotou: mais de 500 pessoas estiveram presentes neste que eu considero o melhor evento de TI do Rio Grande do Sul. Feito por pessoas apaixonadas por tecnologia e compartilhamento do conhecimento – SEM FINS LUCRATIVOS.

Interop X

Este ano participei como palestrante, com o assunto “Serviços Grátis do Azure”. Palestra semelhante a que fiz no Global Azure Bootcamp em abril. Como nesta oportunidade tive mais tempo, consegui fazer uma demo da Face API do Azure, mostrando para audiência como é possível implementar uma solução fantástica de reconhecimento facial rapidamente, sem gastar um centavo.

O formato desse ano mudou: pela manhã, palestras no auditório principal. A tarde, programação parelela em 4 mini-auditórios com assuntos específicos. O time da Microsoft Community of Practices da Dell particiou em peso, tanto palestrando, como auxiliando na organização do evento. Nota 1000!

Interop X Palestra Marcel Goldhardt

“E aí professor?” – caminhando por lá, encontrei ex-alunos (sim, já fui professor em 2006-2007-2008). Só por isso o evento já valeu a pena. Conversar e descobrir que aquilo que tentei transmitir anos atrás para eles, de alguma forma, agregou valor e pode inspirá-los nas suas carreiras. Que satisfação! É isso que me motiva a continuar nestas iniciativas.

Aos meus amigos Andre Ruschel e Rafael Felipe, os mais sinceros parabéns por mais um ano. O evento só acontece devido a dedicação de vocês. Contiuem sendo a inspiração destes estudantes e colegas de profissão! Até o Interop 2019!

 

Global Azure Bootcamp 2018 – Um Sucesso!

Azure Bootcamp 2018 - Porto Alegre - Palestrantes
Palestrantes do Evento

Sábado, 21 de abril – feriado nacional. Para complicar ainda mais, muita chuva em Porto Alegre. Entretanto, um SHOW da comunidade técnica Microsoft: auditório LOTADO! Mais de 100 pessoas investiram seu tempo e prestigiaram esse tradicional evento global que acontece todos os anos. Esta edição aconteceu no moderno auditório Global Tecnopuc, localizado dentro da PUC/RS. Este ano o evento foi organizado pelo Diego Moreira Matos e o MVP Rafael Felipe, contando com a gigante ajuda da Microsoft Community of Practices da Dell. Um teamwork poucas vezes visto.

Novamente tive a honra de palestrar no evento, desta vez com o assunto “Serviços Grátis do Azure“. Já fui dono de empresa do passado, e sei como é difícil começar um negócio, principalmente no que se refere a gastos. Já fui estudante e deixei de utilizar algumas tecnologias porque “precisava pagar”. O Azure possui uma série de serviços grátis que pode ajudar estes dois públicos a dar o pontapé inicial nos seus projetos.

As palestras tiveram um excelente nível técnico, com o público engajado o tempo inteiro. Simplesmente, UM SUCESSO! Até o ano que vem!

DevOps Day 2017 – Porto Alegre

DevOps Day Porto Alegre 2017No último sábado aconteceu em Porto Alegre a edição 2017 do DevOps Day. Cerca de 180 pessoas estiveram presentes no evento realizado na Faculdade de Tecnologia do Senac. Foi uma verdadeira maratona, com 14 palestras em um dia. Achei muito legal o formato do evento: sessões rápidas, direto ao ponto. Perguntas e respostas com um momento definido, geralmente em um slot de 15 minutos a cada três palestras. Uma atividade que eu não conhecia, mas que trouxe muita discussão entre a audiência, foi o fishbowl – extremamente interessante.

Quanto ao conteúdo, achei a maioria das palestras de alto nível, apesar de sentir falta de mais demos. Já no que envolve Cloud Computing, praticamente nada de Azure (domínio de AWS). Sem dúvidas, ano que vem irei submeter uma palestra ao evento contemplando algumas coisas da plataforma. Minha avaliação geral do evento é muito boa – recomendo a todos a participação.

Application Insights – Monitoramento de Endpoint

Já precisou fazer o health-check do endpoint da sua aplicação ou serviço, e ser notificado caso haja problemas? Há pouco tempo atrás, a feature de monitoramento de Endpoints era própria da WebApp no Azure. Na semana passada precisei configurar, e não a encontrei no local que eu costumava. Uma pesquisada rápida e descobri que essa feature foi movida para o Application Insights, atuando de maneira independente da WebApp. Para quem não conhecia/conhece o recurso: ele permite pings (http requests) periódicos de maneira externa a aplicação, a partir de diversas regiões do mundo. Obviamente, também permite a configuração de notificações, seja por e-mail ou webhooks.

A configuração é simples:

  • Crie o recurso Application Insights, caso não tenha feito juntamente com  a criação da WebApp. Para este propósito (http request), utilizei a opção “General”:

Azure Monitoramento de Endpoints Application Insights 1

  • Assim que  estiver que o AppInsights estiver rodando, adicione um teste (“Availability” -> “Create Test”):

Azure Monitoramento de Endpoints Application Insights 2

  • Escolha um nome e adicione a URL a ser monitorada (no meu caso, a URL root da aplicação). Deixei como freqüencia de teste, 5 minutos. Escolhi localidades aleatórias (obviamente isso depende das suas necessidades de negócio): Brasil, Sydney, Moscou e San Jose:

Azure Monitoramento de Endpoints Application Insights 3

  • Critério de sucesso: utilizei o padrão (retorno de um http 200), mas poderia inclusive validar o conteúdo de retorno desta chamada.

Azure Monitoramento de Endpoints Application Insights 4

  • Alertas: diminuí o treshold (se falhar em mais de 2 localidades, dispara a trigger). Por padrão, será enviado um e-mail para o administrador da subscription. Se eu quisesse algo mais personalizado, poderia configurar um webhook (e receber uma ligação de voz com detalhes do alerta, conforme explico neste post):

Azure Monitoramento de Endpoints Application Insights 5

  • Criado o teste, é só deixar rodando:

Azure Monitoramento de Endpoints Application Insights 6

  • Para fins de validação, parei e aplicação e aguardei os erros refletirem no dashboard:

Azure Monitoramento de Endpoints Application Insights 7

Extremamente fácil e útil!

Até a próxima!

[ ]´s