Azure CDN: Como realizar a implementação e validar o funcionamento

O objetivo deste artigo é demonstrar passo-a-passo a criação de um ambiente web hospedando um website utilizando a CDN do Azure.

Para uma melhor compreensão serão abordados os tópicos desde o registro do domínio, passando pela configuração no Azure DNS, criação/configuração do webserver, até a configuração da CDN e testes.

Neste exemplo será utilizado o domínio azurelab.com.br com registro feito no http://registro.br.

Preparando o ambiente no Azure

A primeira coisa à ser feita é criar o Resource Group no azure, que conterá todos os recursos relacionados com o ambiente à ser criado.

resourcegroup

Uma vez criado, vamos configurar o Azure DNS.

dns-1

Após escolher o resource group criado, vamos clicar em Add:

dns-2

Na caixa de busca, vamos procurar por DNS

dns-3

Em seguida clique em create:

dns-4

Na próxima tela, vamos definir qual será o nome DNS, a subscription que será usada e qual resource group usar:

dns-5

Após criar será exibido conforme abaixo:

dns-6

Neste primeiro momento, ao clicar na zona criada, teremos esta tela:

dns-7

A primeira coisa à ser feita é tomar nota dos Name Servers do Azure, para configurá-los no Registro.Br. Neste exemplo, os NameServers associados ao nome dns que criamos foram:

  • ns1-04.azure-dns.com.
  • ns2-04.azure-dns.net.
  • ns3-04.azure-dns.org.
  • ns4-04.azure-dns.info.

De posse destas informações, o próximo passo é voltar ao Registro.Br e configurar os NameServers fornecidos.

registro-1

Basta escolher o domínio desejado e ir na opção correspondente para alterar os servidores DNS:

registro-2

Agora informar os novos name servers:

registro-3

Criação da máquina virtual Linux

Dentro do resource group que estamos trabalhando, clicar em Add:

labcdn-1

Na caixa de pesquisa que será aberta, escreva CentOS, para usar esta distribuição Linux

labcdn-2

Escolha do modelo de deployment (Resource Manager) e em seguida clique para criar:

labcdn-3

Em seguida será feita a definição do nome da máquina, nome do usuário a ser criado, método de autenticação, escolha do resource group à ser usado e localização:

labcdn-4

Escolha do tipo de máquina virtual:

labcdn-5

O próximo passo é a criação da storage account:

labcdn-6

Criação da VNet:

labcdn-7

Criação da Subnet:

labcdn-8

Definição do IP público da máquina virtual como estático:

labcdn-9

Configuração do Network Security Group:

labcdn-10

Por padrão, como é um servidor Linux o Security Group já vem com a porta SSH (22) aberta. Como este servidor terá a função de webserver, vamos abrir a porta HTTP (80):

labcdn-11

Extensões, Monitoramento e Availability Set:

labcdn-12

Note que não adicionaremos nenhuma extensão (https://azure.microsoft.com/pt-br/blog/automate-linux-vm-customization-tasks-using-customscript-extension/https://github.com/Azure/azure-linux-extensions ).

É recomendável deixar o monitoramento habilitado, usando uma conta de storage account separada para os dados de diagnósticos do monitoramento.

Como se trata de apenas um servidor, não utilizamos o recurso de Availability Set (https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-windows-manage-availability/)

Resumo da configuração:

labcdn-13

Após a validação das configurações, basta dar OK para iniciar a criação da VM.

Depois da criação da VM, já podemos pegar o IP público que associamos com ela e configurar como endereço do tipo A no DNS:

labcdn-14

Criação do registro no Azure DNS

Dentro do Azure DNS, vamos adicionar um novo registro:

labcdn-15

Na tela que se abre, basta informar o ip público associado com a máquina virtual com o nome www e com o tipo A:

labcdn-16

Depois de aguardar alguns instantes para a replicação de DNS, verifique:

labcdn-17

Configurando o Webserver

Neste exemplo, vamos trabalhar com o Nginx como servidor web. Vamos conectar no servidor e em seguida usar rodar os comandos abaixo para realizar a instalação:

labcdn-18

Instalação do repositório epel:

Instalação do Nginx:

Criando a configuração do servidor web:

Em seguida rode esta linha de comando:

Iniciando o servidor:

Testando o acesso:

Acesse: http://www.azurelab.com.br

labcdn-19

Configurando a storage account

Os dados estarão hospedados em um container chamado “files” dentro de uma storage  account. Para configurar vamos usar uma ferramenta chamada Azure Explorer, que pode ser obtida em http://www.storageexplorer.com/

Depois de instalar, ele se apresenta desta forma e você deve ir em “Azure Accounts Settings” conforme destacado abaixo:

labcdn-20

Em seguida escolha a opção para adicionar uma conta:

labcdn-21

Ao clicar em adicionar conta, será solicitado o email e senha de acesso à sua conta:

labcdn-22

Depois de informar as credenciais, vamos em uma das storage accounts criadas e criaremos um novo container:

labcdn-23

Clicando com o botão direito do mouse em “blob container”, temos a opção de criar um novo:

labcdn-24

E vamos criar um novo container chamado “files”:

labcdn-25

Clique com o botão direito do mouse no container “files”e em seguida escolha a opção “Set Public Access Level”:

labcdn-26

Então podemos escolher a opção de “Public read access for blobs only”. Desta forma apenas o acesso aos arquivos será público, não ao container inteiro.

Feito isso vou fazer o upload de um arquivo de imagem para este container escolhendo a opção correspondente:

labcdn-27

Como é um arquivo de imagem, vou escolher a opção de blob de blocos:

labcdn-28

Pronto:

labcdn-29

Para fazer um teste, pegue a URL do arquivo e abra no browser:

labcdn-30

http://labcdn4353.blog.core.windows.net/files/hello.png

labcdn-31

Configuração da CDN

O próximo passo, é criar um perfil de CDN no  Azure. Dentro do resource group, clique em Add e em seguida digite CDN:

labcdn-32

Em seguida clicar em create:

labcdn-33

Para nosso teste, vou escolher a camada S2 da Akamai para usar:

labcdn-34

Criação do Endpoint da CDN

Abra a blade da CDN criada, em seguida clique para adicionar um endpoint e preencha os campos correspondentes:

labcdn-35

Finalizando a configuração no webserver

Para que as chamadas em www.azurelab.com.br/cdn sejam direcionadas para o endpoint da CDN, precisamos adicionar o bloco abaixo ao arquivo de configuração do Nginx (/etc/nginx/conf.d/default.conf):

O arquivo deve ficar assim:

Depois faça um reload na configuração com o comando:

Validando a configuração

Testando o acesso via CDN em http://labricardo.azureedge.net/files/hello.png:

labcdn-36

Testando o acesso pelo webserver, buscando a imagem no storage account via CDN em http://www.azurelab.com.br/cdn/hello.png:

labcdn-37

Até a próxima!

Como é trabalhar onde tantos gostariam?

Hoje eu completo 3 meses na empresa onde estou trabalhando. Tem sido uma experiência incrível e muito além do que  eu imaginava que seria em todos os aspectos, seja em relação  ao ambiente, as pessoas, o trabalho, a cultura, os desafios, etc.

Mas o motivo deste post é de uma forma despretensiosa, tentar responder a uma pergunta que recebi de um amigo logo que ele soube que eu estava trabalhando aqui: “Como é trabalhar em um lugar onde tantos gostariam?”

Continuar lendo

Perdeu a tão desejada vaga, e agora?

Chega um momento na carreira de todos nós que por mais que estejamos satisfeitos com a posição que temos, o cargo que ocupamos e as atividades que desempenhamos, desejamos algo maior. Penso que não ná nenhum problema nisso, afinal, evoluir é preciso.

Você deseja expandir seus horizontes, fazer parte de uma grande empresa, um local onde possa crescer não apenas verticalmente, mas também de forma horizontal, ganhando novas responsabilidades, descobrindo novas aptidões. Deseja ter desafios e conquistas maiores, reconhecimento.

Continuar lendo

Como instalar o Jenkins

A idéia deste post é criar um “mini-howto” da instalação do Jenkins.

Eu não vou entrar em muitos detalhes sobre o que é o Jenkins. Se você quiser saber um pouco mais sobre ele, separei os dois links abaixo, que são uma excelente documentação:

http://imasters.com.br/desenvolvimento/serie-integracao-continua-deploy-automatizando-jenkins-tomcat/

http://www.infoq.com/br/presentations/turbinando-testes-com-jenkins

A parte de configuração também pode variar muito, e dependerá muito das necessidades do time de desenvolvimento da sua empresa. Por esta razão vamos dar foco apenas na instalação mesmo. Vamos lá:

Neste caso, estou usando uma instância na Amazon, que utiliza o Amazon Linux (CentOS Based):

Por fim, acesse no browser:

http://ip.do.seu.servidor:8080

Videocast: Registro de um domínio e setup completo na AWS

Neste videocast fiz um laboratório prático de AWS. É demonstrado o registro de um domínio no registro.br, configuração deste domínio no route53 e em seguida a criação de uma instância EC2 com o Apache, PHP e WordPress instalado. Em paralelo é criado um RDS com MySQL, para ser usado em conjunto com a instância EC2, criando nosso stack LAMP (Linux, Apache, MySQL e PHP).

Abaixo os comandos utilizados no vídeo:

Se gostou, curta o vídeo e compartilhe nas redes sociais.

Até o próximo!

O problema está em você ou no mercado?

 

Personal-development-plan-template

Este texto é uma conversa franca, um desabafo fruto de reflexões pessoais. Conversa franca com você que de alguma forma tem tido problemas em arrumar um emprego novo, está com receios de ser demitido, ou ainda, desmotivado.

Volta e meia converso com pessoas que estão em uma das situações acima e sempre acabo chegando nos pontos destacados abaixo. Resolvi publicar pois certamente poderá servir para outras pessoas em situações semelhantes.

Continuar lendo

Webinar sobre Computação em Nuvem e AWS

treinamento-cloud

Estou finalizando os preparativos para a realização do meu primeiro webinar onde vou fazer uma abordagem sobre computação em nuvem usando os serviços da AWS.

A idéia será trazer uma visão geral sobre o que é computação em nuvem, tipos, conceitos e camadas. Em seguida veremos um pouco sobre a infraestrutura da Amazon Web Services, características, principais serviços e no final vamos fazer um laboratório. Neste laboratório veremos como iniciar sua primeira instância Linux EC2  junto com uma instância RDS e colocar para funcionar um blog rodando WordPress em cinco minutos!

Continuar lendo