Cloud Services é o ambiente de plataforma disponível no Microsoft Azure que permite a desenvolvedores hospedar aplicações de forma robusta e segura. Nesta apresentação (realizada no Azure Summit Brasil 2014), apresento os principais aspectos deste ambiente.
2. AUDITÓRIO 1
DESENVOLVIMENTO
Por que o Cloud
Services do Azure é o
melhor dos mundos?
Palestrante
Fabrício Lopes Sanchez
CIO na Conio Soluções em Tecnologia & ASP.NET/IIS MVP
Twitter: @SanchezFabricio
Blog: http://fabriciosanchez.com.br
3. Agenda
• Do que estamos falando?
• Roles != Websites
• Cloud Services
• Roles (web e worker)
• Stateless
• Deployment
• Gerenciamento
• Alguns cuidados no desenvolvimento
• Por que é o melhor dos mundos?
• Perguntas e respostas
4. Do que estamos falando?
IaaS PaaS SaaS
Cloud Services
SQL Azure
Azure Websites
Armazenamento
Mobile Services
Media Services
APIs
{ ... }
5. Do que estamos falando?
Cloud Services
Web Roles
Worker Roles
6. Do que estamos falando?
Serviço de hospedagem
Roles
Instâncias
Aplicação
Web Worker
Instância 1 Instância 2 Instância 1 Instância 2 Instância 3
7. Web Roles != Websites
Azure Websites
PaaS 100% fechado.
Sites e aplicações pequenas.
Web Roles
PaaS flexível.
Aplicações de maior escala. !=
8. Cloud Services. Worker Roles
Worker Roles
1
Servidores virtuais com
Windows Server sem IIS
2
Servidores otimizados para
tarefas assíncronas
3
Operações rodam em
background
4
Escolha da dimensão e a
quantidade das máquinas
9. Cloud Services. Worker Roles
Um exemplo clássico:
Uma aplicação de envio de e-mails
1. Página web exibe as mensagens e dispara novas
2. Uma tabela de mensagens para serem enviadas
3. Armazenamento de anexos e mensagens HTML
Página web
Gerencia listas e mensagens
Tabelas
Blobs
Pilha
Worker A
1.Ouve mensagens.
2. Para enviar
mensagem, cria um
ítem na lista para
cada destinatário.
Worker B
1.Empilha os ítens.
2. Empilha ítens
enviados.
3. Remove ítem da
pilha.
10. Cloud Services. Web Roles
Web Roles
1
Versão de servidor
com IIS habilitado
2
Customizações
possíveis
3
Stateless
(não esqueça)
4
Múltiplos
servidores
5
Gestão: portal,
PoweShell e ASMA
6
2 opções de
deployment
11. Cloud Services. Web Roles
Um exemplo clássico:
Aplicação “Cadê meu médico”
1. Cadastro de médicos, cidades e especialidades
2. Consulta por nome, especialidade e cidade
Cliente
Aplicação web (MVC)
Instância0 Instância1 Instância2
Serviços BD
Web Role
12. Stateless
• Web Roles possuem instâncias
• Instâncias são servidores e possuem discos de armazenamento virtuais
• Os servidores são stateless (quando possível)
• Discos virtuais das VM Roles são stateless e isso pode acontecer a
qualquer momento. Principais motivos:
Be carefull!
;-)
• Recovery para uma falha de hardware
• Desfragmentação do datacenter
• Reorganização da farm de armazenamento
• Dentre outros.
13. Deployment
Existem basicamente, 2 formas:
Visual Studio Deployment Tool
Web Deploy
Apenas incremental
Status report bem detalhado
Configurações via ferramenta gráfica
Portal do Microsoft Azure
Independe do ambiente
Upload simplificado
Só depende do browser e da internet
Configurações diretamente no XML
15. Deployment
Visual Studio Deployment Tool Portal do Microsoft Azure
*.cspkg
Armazena configurações básicas
da aplicação em questão como:
configurações de acesso a
serviços, banco de dados, etc.
*.cscfg
Armazena informações sobre o
ambiente de execução, como:
número de instâncias, pontos de
entrada, etc.
16. Gerenciamento
É possível gerenciar cloud services basicamente, através de 3 maneiras:
1. Windows PowerShell 2. Portal Web
17. Demos. E mais demos.
Iiiiiiiiiiiit’s time...
1
Visão do portal administrativo
2
Worker Role no
emulador
3
Web Role no
emulador
4
Worker Role na
produção
5
Web Role na
produção
18. Algumas dicas de quem já apanhou muito
• Servidores e armazenamento são stateless
• Sessions? Então... Cuidado.
• Ajax? Então... Cuidado.
• SLA 99,95 apenas para 2 instâncias ou mais
• CDN ajuda (e muito)
• Cache ajuda (e muito)
• Blobs ajudam (e muito)
• SQL Azure ajuda (e muito)
• Abuse de startup tasks
19. Por que é o melhor dos mundos?
Você vai concordar...
1
Foco apenas na
aplicação
2
Custo mais baixo
que uma VM
3
Personalizações
possíveis
4
Escala infinita
(+performance)
5
Deployment
simplificado
6
Sim limitação de
banda de net