Migrando seu site para o Azure utilizando
Plataforma como serviço.
Quem é o palestrante?
Vinícius Souza
Evangelista Técnico @vbs_br
Migrando seu site para o Azure utilizando
Plataforma como serviço.
Tenho um site que gostaria de migrar para o
Azure, qual a melhor forma de fazê-lo?
Local Vo cê es ca la, t or na res ilient e e g er encia Infraestrutura (como serviço) Aplicação Ge ren ci ado pelo f ornece do r Vo cê e sca la, t orna resil ie nt e e ger en ci a Plataforma (como serviço) Esca la, r esil ie nci a e ger en ci ament o pelo f ornece do r Vo cê ge ren ci a Aplicação
Modelo de hospedagem
Software (Como serviço) AplicaçãoModelo de negócio
Aplicação Esca la, r esil ie nci a e ger en ci ament o pelo f ornece do rNosso projeto
Desenvolvido em Web Forms
Utilizando Sql Server
Dividido em FrontEnd e Backend
Frontend (acesso para os usuários Web)
Backend (Mantenedores do site)
• Necessidade de novos recursos;
• Mudança de política da empresa;
• Diminuição de custos
Pontos a serem considerados para a migração
• Utiliza o sistema de arquivos da máquina;
• Compartilhamento de sessão;
• Serviços de armazenamento
• Sql Server
• Plataforma como Serviço (Computação)
• Devo refazer o projeto do zero?
• Mudança de arquitetura
Serviços do Microsoft Azure
Clien t la yer (on -pr emis es)Tablet Phone Games console
PC Browser On-premises database
Office Add-in On-premises service
AD Multifactor Authentication A cc ess C ont rol La yer Int eg ra tion la
yer BizTalk Services Service Bus CDN Traffic Manager Virtual Networks Express Route
A
ppli
ca
tion
la
yer API Mgmt Mobile Services Websites Cloud Services VM Media Services Notification Hubs Scheduler Automation
Da
ta
La
yer
Arquitetura do Website
Frontend Admin
Web server
IIS 7.0 / File Server On Premises
Azure - IaaS - Máquinas virtuais
Frontend Admin
Web server
IIS 10 / File Server Azure
Azure – Máquinas Virtuais
• Escala vertical (Tamanho da máquina);
• Escala horizontal (Multiplas instâncias);
http://azure.microsoft.com/en-us/pricing/details/virtual-machines/
A3A6 A3 A3 A3
Azure – Máquinas Virtuais
• Escala vertical (Tamanho da máquina);
• Escala horizontal (Multiplas instâncias);
http://azure.microsoft.com/en-us/pricing/details/virtual-machines/
• Deixar as máquina provisionada;
• Manual / Automática;
Solução Híbrida
Frontend Admin Web server
IIS 10 / File Server
SQL Azure vs SQL Server
• Banco de dados como serviço;
• Tamanho de instâncias de acordo com a necessidade;
• Medidos em DTU (Data Transacion Units)
• Migração de Schema e Dados
• Diferenças entre as versões (SGBD)
SQL Azure vs SQL Server
• Visual Studio - Sql Server Database Project
• Microsoft SQL Server Management
• BCP Utility
• SQL Database Migration Wizard (Codeplex)
http://sqlazuremw.codeplex.com/
Azure - IaaS - Máquinas virtuais
Frontend Admin
Web server
IIS 10 / File Server Azure
Sql Azure
File System Sessions
Armazenar sessão asp.net
Banco de dados (Sql Azure / Sql Server)
Azure Redis Cache
Azure Store Table
Utilizar o comando
Sessão no banco de dados
<system.web>
<sessionState mode="SQLServer"
timeout="20"
allowCustomSqlDatabase="true"
sqlConnectionString="Data Source=WIN-QA8QSSEHTP2\SQLEXPRESS;Initial Catalog=loja2;User ID=sa;Password=Etapa!2011;Pooling=False"
cookieless="false" />
Azure - IaaS - Híbrida
Frontend Admin
Web server
IIS 10 / File Server Azure
Sql Azure
File System Sessions
Azure - IaaS - Híbrida
Frontend Admin
Web server
IIS 10 / File Server Azure
Sql Azure
File System Sessions
Sessão com Redis Cache (PaaS)
Sessão com Redis Cache (PaaS)
<sessionState mode="Custom" customProvider="MySessionStateStore1"> <providers>
<add name="MySessionStateStore1"
type="Microsoft.Web.Redis.RedisSessionStateProvider" host="loja.redis.cache.windows.net" accessKey="j9Ua2oshj7sKVAxdquRfq5CbuKLkmsre+SNgwaXOJAs=" ssl="true" port="6380" applicationName = "lojaTechedFrontend" retryTimeoutInMilliseconds = "5000" abortConnect="false" connectionTimeoutInMilliseconds = "5000" operationTimeoutInMilliseconds = "10000" /> </providers> </sessionState>
Azure - IaaS - Híbrida
Frontend Admin
Web server
IIS 10 / File Server Azure Sql Azure File System Sessions Dados Redis Cache
File System – Azure Storage(PaaS)
File System – Azure Storage(PaaS)
//Salvando a imagem no Blob string tipo = "imagem_titulo";
string blobName = String.Format("{0}_{1}_{2}{3}",
radUpImagem.UploadedFiles[0].GetNameWithoutExtension(), tipo, Session.SessionID, radUpImagem.UploadedFiles[0].GetExtension());
Stream stream = radUpImagem.UploadedFiles[0].InputStream;
BlobStorage blobStorage = new BlobStorage();
//Upload imagem to Bob
String blobUri = blobStorage.UploadFileToBlob("produtotitulo", blobName, stream);
//Create Thumb
ThumbnailImage thumb = new ThumbnailImage(stream, true, 100, "thumb", false); thumb.geraThumbnail(true);
Azure - IaaS - Híbrida
Frontend Admin
Web server
IIS 10 / File Server Azure Sql Azure File System Sessions Dados Redis Cache Blob Storage
Indo para uma solução Full PaaS
Web App
Cloud Service
Não requer mudança no projeto;
Permite deploy com FTP / Git / WebDeploy Maior abstração - Não permite acesso a VM
Requer maior alteração de arquitetura; Deploy através do pacote do serviço Divide em WebRole / Worker Role
Azure - PaaS – Web App
Azure Brazil South
Sql Azure File System Sessions Dados Redis Cache Blob Storage Fr on tend Back of fi ce Web app
Pequenas mudanças, grandes benefícios
• Valide com o time o esforço necessário para a mudança (ITPros e Dev)
• Eleja responsáveis no time
Serviços do Microsoft Azure
Clien t la yer (on -pr emis es)Tablet Phone Games console
PC Browser On-premises database
Office Add-in On-premises service
AD Multifactor Authentication A cc ess C ont rol La yer Int eg ra tion la
yer BizTalk Services Service Bus CDN Traffic Manager Virtual Networks Express Route
A
ppli
ca
tion
la
yer API Mgmt Mobile Services Websites Cloud Services VM Media Services Notification Hubs Scheduler Automation
Da
ta
La
yer
Q&A
Sessões relacionadas
24/09
• DEV203 - Java no Azure? Sim, nós podemos!
• DEV201 - Visão geral do Application Insights
• DEV302 – DevOps – Automação de deployment no Azure com Open Source
25/09
• DEV309 – Entregando containers no Universo DevOps em nuvem híbrida com
Microsoft Azure
• DEV207 – Transformando suas APIs em produtos
• DEV209 – Microsoft Azure Resource Manager – O que muda com essa nova
perspectiva
Continue sua capacitação
Microsoft Virtual Academy