SlideShare uma empresa Scribd logo
Levando uma aplicação com 4
milhões de usuários para a
nuvem com Azure e .NET
Fabrício Sanchez (@sanchezfabricio)
Senior Technical Evangelist – Microsoft
It’s all about apps to the cloud
Transforming the Application Landscape
Loosely
Coupled
Services
Many Small
Servers
~2000 Today
Monolithic
Big Servers
Slow
changing
Rapidly
updated
The New Challenge of Distributed Apps
4
Virtual machines
Server
Public Cloud
Disaster Recovery
Developer Laptop
Server Cluster
Data Center
Static
Website
Web Front EndBackground
Workers
User DB Analytics DB
Queue API
Endpoint
Development Test & QA Production Scale Out
Cenários-base de migrações
 Desenvolvimento de novas soluções (born to the cloud)
Planejamento de novas soluções para a nuvem.
 Migração de soluções para PaaS
Migração de soluções para os serviços de plataforma do Azure.
 Migração de soluções para IaaS
Soluções que precisam ser migradas para IaaS apenas.
 Migração de soluções híbridas/mistas
Migração de soluções para um modelo híbrido – public and private (IaaS com PaaS).
PaaS, IaaS, misto ou híbrido?
DEPENDEPerguntas que podem ajudar
1. É uma solução nova ou já existente?
2. Qual é a tecnologia base da solução? .NET? PHP? Java?
Pyton?
3. Roda atualmente em Linux ou Windows?
4. Possui muitas customizações de ambiente?
5. O banco de dados, roda em servidor dedicado ou
compartilhado? Possui customizações de ambiente?
6. Banco de dados: SQL? Oracle? MySQL?
7. Existe a necessidade de IP fixo na solução?
8. Serviços. Soap? REST? Precisam ser escaláveis?
9. IOPS de disco. Qual a importância para a natureza da
aplicação?
10. Banco de dados: são múltiplos ou apenas 1?
11. Armanzenamento de arquivos: como é feito? Precisa ser
SSD?
12. Deployment. Como será feito?
13. Usa recursos adicionais como: SOLR, NGINX, etc?
14. Necessita de segmentações de rede?
15. Qual o esforço de engenharia disponível para o projeto?
16. Usa SMS, Email, etc.? Precisa de domínio personalizado?
Secretaria Escolar Digital (SED)
A Secretaria Escolar Digital
(SED) é uma plataforma on-
line criada para centralizar,
agilizar e facilitar todas as
operações que envolvem a
gestão diária da
administração escolar.
• 4 milhões de usuários
• Utilizado diariamente por
mais de 5k escolas
• Rotinas para professores,
alunos e responsáveis
https://sed.educação.sp.gov.br
Típico cenário de missão crítica
Tecnologias base utilizadas no host original
• Web
• ASP.NET MVC 4
• Web API
• WCF
• Frameworks web (jQuery, Bootstrap, etc)
• Database
• Oracle RAC
• Host
• IIS 7
• Windows Server 2008 R2
Informações adicionais do host original
Oracle RAC
• 3 instâncias clusterizadas
Cluster de aplicação
• 16 instâncias
• 8 cores
• 16 GB RAM
• 250 GB disco
Principais características técnicas
• Operações de banco de dados ad-hock
• Database de 4 TB
• +5k queries escritas para Oracle RAC
• Algumas cargas de dados automatizadas efetuadas por um
main frame
• Diversas customizações de ambientes
• Ampla utlilização de sessions
• Gravação de arquivos diretamente no file system
• Sem utlilização de cache
• Sem scale-up e sem scale-out
• Tempo era um limitador: tinhamos apenas 3 meses
Qual o melhor caminho de migração?
Conclusões sobre a aplicação
• Boa arquitetura mas muitos ajustes de queries
• Com algum esforço de engenharia blobs seriam
viáveis
• Com algum esforço de engenharia cache seria viável
• Aplicação usa recursos customizados do IIS e do SO
Conclusões sobre o banco de dados
• Migração para SQL Server era premissa
• Muitas rotinas de integração com main-frame
• Cada schema deveria ser tratado como novo banco
• Controle do ambiente necessário
PaaS +
IaaS
IaaS
Modelo
Misto
O processo de migração
• Oracle RAC -> SQL Server
• 2x D14 com AlwaysOn
• Reescrita de todas as queries para SQL Server
• Query tunning para otimização de performance
• Implementação de Redis Cache para persistir sessions e alguns
outros ítens
• Ajustes da aplicação para gravação em blobs
• Implementação de web farm (com VM’s) para host da aplicação web
• 8x Standard A4
• API’s publicadas em Web Role com ajustes via Startup Task
• Implementação de autoscaling e load balancer (BD e Web Farm)
• Implantação do processo de CD/CI para este novo ambiente via
VSTS
Arquitetura no Azure
Availability Set (SED-APP)
SED01 SED02 SED03 SED04
SED05 SED06 SED07 SED08
SEE-SQL1
(Reader)
SEE-SQL2
(Writer)
Always On
Availability Set (SED-BD)
… … … n
Cloud Service (SED)
Virtual Network
Blobs Cache n
Microsoft Azure
API’s
… n
Visões de ambientes. Antes e depois...
Uso de CPU
(host original)
Banco de dados
Uso de CPU
Microsoft Azure
Fácil crescer horizontalmente e verticalmente...Difícil crescer horizontalmente e verticalmente...
Visões de ambientes. Antes e depois...
Servidores de Aplicação
Uso de CPU
(host original)
Uso de CPU
Microsoft Azure
Máquinas são ligadas apenas por
demanda...
Todas as máquinas ligadas 100% do tempo...
André Costa
CIO | Secretaria de Educação do Estado de São Paulo
(Seduc)
Q&A

Mais conteúdo relacionado

PPTX
Docker para devs .NET
PPTX
Windows Azure Pack - Visão Geral
PPTX
Azure infrastructure as a service overview
PPTX
Windows Server 2016 | Hyperconvergência
PPTX
Fim do Suporte do Windows Server 2008 e SQL Server 2008
PPTX
Bibliotecas de interface rica no jsf 2
PPT
PPTX
Webinar: Apresentando AWS Device Farm
Docker para devs .NET
Windows Azure Pack - Visão Geral
Azure infrastructure as a service overview
Windows Server 2016 | Hyperconvergência
Fim do Suporte do Windows Server 2008 e SQL Server 2008
Bibliotecas de interface rica no jsf 2
Webinar: Apresentando AWS Device Farm

Mais procurados (20)

PPTX
Reduza seu trabalho de gerenciamento do kubernetes tdc 2018 poa
PDF
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
PDF
JavaME - Aula 1
PPTX
Conteineres no Microsoft Azure
PPTX
Introdução à computação na nuvem e Windows Azure
PDF
Jboss eap 6
PPTX
Azure DevTest Labs
PPTX
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
PPTX
Automatize seu processo de entrega de software com CI/CD na AWS
PDF
Banco de dados na nuvem e isso é possível
PPTX
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
PDF
Falando sobre DevOps no azure
PPTX
Webinar: Introdução a Big data
PPTX
Microsoft Azure
PDF
Apresentando o OpsWorks - Bemobi
PDF
Overview AWS - Bemobi
PDF
Apresentacao Blue Solutions - Armazenamento Simplificado de Alta Performance
PPTX
Microsoft Azure Fundamentals | Everis - Julho-2021
PPTX
Desvendando a Plataforma de Serviços Windows Azure
PPTX
Conta gratuita do Azure
Reduza seu trabalho de gerenciamento do kubernetes tdc 2018 poa
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
JavaME - Aula 1
Conteineres no Microsoft Azure
Introdução à computação na nuvem e Windows Azure
Jboss eap 6
Azure DevTest Labs
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
Automatize seu processo de entrega de software com CI/CD na AWS
Banco de dados na nuvem e isso é possível
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
Falando sobre DevOps no azure
Webinar: Introdução a Big data
Microsoft Azure
Apresentando o OpsWorks - Bemobi
Overview AWS - Bemobi
Apresentacao Blue Solutions - Armazenamento Simplificado de Alta Performance
Microsoft Azure Fundamentals | Everis - Julho-2021
Desvendando a Plataforma de Serviços Windows Azure
Conta gratuita do Azure
Anúncio

Semelhante a QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure (20)

PPTX
Azure e suas vantagens (Palestra 1)
PPTX
Introdução ao Windows Azure - Sessão 1 (mais teórica)
PDF
Arquiteturas de Software para o Século XXI
PDF
AAB308 - Cloud Computing Windows Azure - wcamb.pdf
PPTX
Mvp virtual conference_2013(consumerizacaode_ti_trilha)_ss
PPTX
Ufs na nuvem gp 2017-2
PPTX
Cloud Computing
PPTX
Computacao em nuvem windows azure
PDF
Cloud Computing
PPTX
GWAB 2014 - Brasília - Explorando o poder do SaaS no Azure
PPTX
Cloud Computing
PDF
AAB309 - SQL Azure Database - wcamb
PDF
AAB309 - SQL Azure Database - wcamb
PDF
Introdução ao Windows Azure
PDF
Guia de compras - Microsoft Azure
PDF
Microsoft Azure: Fundação para Transformação Digital
PPTX
Windows Azure - Visão geral
PDF
Tecnologia e Inovação - YPO
PPTX
Cloud Computing
PDF
De zero a cem em cloud computing transformando idéias em aplicações em pouco...
Azure e suas vantagens (Palestra 1)
Introdução ao Windows Azure - Sessão 1 (mais teórica)
Arquiteturas de Software para o Século XXI
AAB308 - Cloud Computing Windows Azure - wcamb.pdf
Mvp virtual conference_2013(consumerizacaode_ti_trilha)_ss
Ufs na nuvem gp 2017-2
Cloud Computing
Computacao em nuvem windows azure
Cloud Computing
GWAB 2014 - Brasília - Explorando o poder do SaaS no Azure
Cloud Computing
AAB309 - SQL Azure Database - wcamb
AAB309 - SQL Azure Database - wcamb
Introdução ao Windows Azure
Guia de compras - Microsoft Azure
Microsoft Azure: Fundação para Transformação Digital
Windows Azure - Visão geral
Tecnologia e Inovação - YPO
Cloud Computing
De zero a cem em cloud computing transformando idéias em aplicações em pouco...
Anúncio

Mais de Fabrício Lopes Sanchez (20)

PDF
Azure Lab Services
PPTX
Projetando aplicações para a nuvem
PPTX
Microserviços na vida real
PPTX
Soluções de IoT no Microsoft Azure
PPTX
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
PPTX
ASP.NET 5, MVC 6 e além
PPTX
Por que Cloud Services é o melhor dos mundos?
PPT
O Futuro do ASP.NET (vNext)
PPTX
PPTX
Windows Azure: computação em nuvem no melhor estilo self-service
PDF
SSI 2012 - Computação em Nuvem
PDF
Desenvolvimento de aplicações para Windows Azure
PDF
Construindo aplicações robustas com a suíte de tecnologias gratuítas da Micro...
PDF
PPTX
Estrutura de Dados - Conceitos fundamentais
PPTX
Modelagem de dados
PDF
Interop Day 2011 - Construindo aplicações web com WebMatrix
PPTX
QS24 - REST e SOAP com Razor e WebMatrix
PPTX
Conhecendo o NuGet e utilizando com ASP.NET MVC
PPTX
Web em grande estilo com CSS 3
Azure Lab Services
Projetando aplicações para a nuvem
Microserviços na vida real
Soluções de IoT no Microsoft Azure
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
ASP.NET 5, MVC 6 e além
Por que Cloud Services é o melhor dos mundos?
O Futuro do ASP.NET (vNext)
Windows Azure: computação em nuvem no melhor estilo self-service
SSI 2012 - Computação em Nuvem
Desenvolvimento de aplicações para Windows Azure
Construindo aplicações robustas com a suíte de tecnologias gratuítas da Micro...
Estrutura de Dados - Conceitos fundamentais
Modelagem de dados
Interop Day 2011 - Construindo aplicações web com WebMatrix
QS24 - REST e SOAP com Razor e WebMatrix
Conhecendo o NuGet e utilizando com ASP.NET MVC
Web em grande estilo com CSS 3

Último (20)

PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Curso de Java 2 - (PrimeiroPrograma, Variáveis, Tipos e Operadores.pptx
PPTX
Curso de Java 3 - (Estruturas de Controle, Decisão, Loop, Procedimento).pptx
PPTX
Curso de Java 4 - (Orientação a Objetos).pptx
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
tutor eletronico para seguranca de bebes e criancas
PPTX
Curso de Java 7 - (ArrayList, Collections,(Set, List, Queue, Map)).pptx
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
PPTX
Curso de Java 5 - (Strings) Tipo de Dados.pptx
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
PPTX
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PPTX
22 - Lógica de Programação com Portugol.pptx
PPTX
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
PPTX
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
PPTX
Curso de Java 8 - (Tratamento de Exceções, (try-catch-finally)).pptx
Apple Pippin Uma breve introdução. - David Glotz
Custos e liquidação no SAP Transportation Management, TM130 Col18
Curso de Java 2 - (PrimeiroPrograma, Variáveis, Tipos e Operadores.pptx
Curso de Java 3 - (Estruturas de Controle, Decisão, Loop, Procedimento).pptx
Curso de Java 4 - (Orientação a Objetos).pptx
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
tutor eletronico para seguranca de bebes e criancas
Curso de Java 7 - (ArrayList, Collections,(Set, List, Queue, Map)).pptx
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
Curso de Java 5 - (Strings) Tipo de Dados.pptx
Processos na gestão de transportes, TM100 Col18
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
22 - Lógica de Programação com Portugol.pptx
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
Curso de Java 8 - (Tratamento de Exceções, (try-catch-finally)).pptx

QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure

  • 1. Levando uma aplicação com 4 milhões de usuários para a nuvem com Azure e .NET Fabrício Sanchez (@sanchezfabricio) Senior Technical Evangelist – Microsoft
  • 2. It’s all about apps to the cloud
  • 3. Transforming the Application Landscape Loosely Coupled Services Many Small Servers ~2000 Today Monolithic Big Servers Slow changing Rapidly updated
  • 4. The New Challenge of Distributed Apps 4 Virtual machines Server Public Cloud Disaster Recovery Developer Laptop Server Cluster Data Center Static Website Web Front EndBackground Workers User DB Analytics DB Queue API Endpoint Development Test & QA Production Scale Out
  • 5. Cenários-base de migrações  Desenvolvimento de novas soluções (born to the cloud) Planejamento de novas soluções para a nuvem.  Migração de soluções para PaaS Migração de soluções para os serviços de plataforma do Azure.  Migração de soluções para IaaS Soluções que precisam ser migradas para IaaS apenas.  Migração de soluções híbridas/mistas Migração de soluções para um modelo híbrido – public and private (IaaS com PaaS).
  • 6. PaaS, IaaS, misto ou híbrido? DEPENDEPerguntas que podem ajudar 1. É uma solução nova ou já existente? 2. Qual é a tecnologia base da solução? .NET? PHP? Java? Pyton? 3. Roda atualmente em Linux ou Windows? 4. Possui muitas customizações de ambiente? 5. O banco de dados, roda em servidor dedicado ou compartilhado? Possui customizações de ambiente? 6. Banco de dados: SQL? Oracle? MySQL? 7. Existe a necessidade de IP fixo na solução? 8. Serviços. Soap? REST? Precisam ser escaláveis? 9. IOPS de disco. Qual a importância para a natureza da aplicação? 10. Banco de dados: são múltiplos ou apenas 1? 11. Armanzenamento de arquivos: como é feito? Precisa ser SSD? 12. Deployment. Como será feito? 13. Usa recursos adicionais como: SOLR, NGINX, etc? 14. Necessita de segmentações de rede? 15. Qual o esforço de engenharia disponível para o projeto? 16. Usa SMS, Email, etc.? Precisa de domínio personalizado?
  • 7. Secretaria Escolar Digital (SED) A Secretaria Escolar Digital (SED) é uma plataforma on- line criada para centralizar, agilizar e facilitar todas as operações que envolvem a gestão diária da administração escolar. • 4 milhões de usuários • Utilizado diariamente por mais de 5k escolas • Rotinas para professores, alunos e responsáveis https://sed.educação.sp.gov.br Típico cenário de missão crítica
  • 8. Tecnologias base utilizadas no host original • Web • ASP.NET MVC 4 • Web API • WCF • Frameworks web (jQuery, Bootstrap, etc) • Database • Oracle RAC • Host • IIS 7 • Windows Server 2008 R2
  • 9. Informações adicionais do host original Oracle RAC • 3 instâncias clusterizadas Cluster de aplicação • 16 instâncias • 8 cores • 16 GB RAM • 250 GB disco
  • 10. Principais características técnicas • Operações de banco de dados ad-hock • Database de 4 TB • +5k queries escritas para Oracle RAC • Algumas cargas de dados automatizadas efetuadas por um main frame • Diversas customizações de ambientes • Ampla utlilização de sessions • Gravação de arquivos diretamente no file system • Sem utlilização de cache • Sem scale-up e sem scale-out • Tempo era um limitador: tinhamos apenas 3 meses
  • 11. Qual o melhor caminho de migração? Conclusões sobre a aplicação • Boa arquitetura mas muitos ajustes de queries • Com algum esforço de engenharia blobs seriam viáveis • Com algum esforço de engenharia cache seria viável • Aplicação usa recursos customizados do IIS e do SO Conclusões sobre o banco de dados • Migração para SQL Server era premissa • Muitas rotinas de integração com main-frame • Cada schema deveria ser tratado como novo banco • Controle do ambiente necessário PaaS + IaaS IaaS Modelo Misto
  • 12. O processo de migração • Oracle RAC -> SQL Server • 2x D14 com AlwaysOn • Reescrita de todas as queries para SQL Server • Query tunning para otimização de performance • Implementação de Redis Cache para persistir sessions e alguns outros ítens • Ajustes da aplicação para gravação em blobs • Implementação de web farm (com VM’s) para host da aplicação web • 8x Standard A4 • API’s publicadas em Web Role com ajustes via Startup Task • Implementação de autoscaling e load balancer (BD e Web Farm) • Implantação do processo de CD/CI para este novo ambiente via VSTS
  • 13. Arquitetura no Azure Availability Set (SED-APP) SED01 SED02 SED03 SED04 SED05 SED06 SED07 SED08 SEE-SQL1 (Reader) SEE-SQL2 (Writer) Always On Availability Set (SED-BD) … … … n Cloud Service (SED) Virtual Network Blobs Cache n Microsoft Azure API’s … n
  • 14. Visões de ambientes. Antes e depois... Uso de CPU (host original) Banco de dados Uso de CPU Microsoft Azure Fácil crescer horizontalmente e verticalmente...Difícil crescer horizontalmente e verticalmente...
  • 15. Visões de ambientes. Antes e depois... Servidores de Aplicação Uso de CPU (host original) Uso de CPU Microsoft Azure Máquinas são ligadas apenas por demanda... Todas as máquinas ligadas 100% do tempo...
  • 16. André Costa CIO | Secretaria de Educação do Estado de São Paulo (Seduc)
  • 17. Q&A