SlideShare uma empresa Scribd logo
1 de 17
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

Mais procurados

Reduza seu trabalho de gerenciamento do kubernetes tdc 2018 poa
Reduza seu trabalho de gerenciamento do kubernetes   tdc 2018 poaReduza seu trabalho de gerenciamento do kubernetes   tdc 2018 poa
Reduza seu trabalho de gerenciamento do kubernetes tdc 2018 poaFabio Hara
 
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRJBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRElvis Rocha
 
Conteineres no Microsoft Azure
Conteineres no Microsoft AzureConteineres no Microsoft Azure
Conteineres no Microsoft AzureFabio Hara
 
Introdução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows AzureIntrodução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows AzureGiovanni Bassi
 
Azure DevTest Labs
Azure DevTest LabsAzure DevTest Labs
Azure DevTest LabsFabio Hara
 
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAmazon Web Services LATAM
 
Automatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAutomatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAmazon Web Services LATAM
 
Banco de dados na nuvem e isso é possível
Banco de dados na nuvem e isso é possívelBanco de dados na nuvem e isso é possível
Banco de dados na nuvem e isso é possívelMarcos Freccia
 
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.Amazon Web Services LATAM
 
Microsoft Azure
Microsoft AzureMicrosoft Azure
Microsoft AzureGeneXus
 
Apresentando o OpsWorks - Bemobi
Apresentando o OpsWorks - BemobiApresentando o OpsWorks - Bemobi
Apresentando o OpsWorks - BemobiRicardo Martins ☁
 
Apresentacao Blue Solutions - Armazenamento Simplificado de Alta Performance
Apresentacao Blue Solutions - Armazenamento Simplificado de Alta PerformanceApresentacao Blue Solutions - Armazenamento Simplificado de Alta Performance
Apresentacao Blue Solutions - Armazenamento Simplificado de Alta PerformanceBlue Solutions
 
Microsoft Azure Fundamentals | Everis - Julho-2021
Microsoft Azure Fundamentals | Everis - Julho-2021Microsoft Azure Fundamentals | Everis - Julho-2021
Microsoft Azure Fundamentals | Everis - Julho-2021Renato Groffe
 
Desvendando a Plataforma de Serviços Windows Azure
Desvendando a Plataforma de Serviços Windows AzureDesvendando a Plataforma de Serviços Windows Azure
Desvendando a Plataforma de Serviços Windows AzureLucasRomao
 
Conta gratuita do Azure
Conta gratuita do AzureConta gratuita do Azure
Conta gratuita do AzureFabio Hara
 

Mais procurados (20)

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

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

MySQL do ISAM ao NoSQL
MySQL do ISAM ao NoSQLMySQL do ISAM ao NoSQL
MySQL do ISAM ao NoSQLAirton Lastori
 
Desenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack DeveloperDesenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack DeveloperCesar Romero
 
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA CareerMarcus Vinicius Miguel Pedro
 
MySQL - o banco de dados open source mais popular do mundo
MySQL - o banco de dados open source mais popular do mundoMySQL - o banco de dados open source mais popular do mundo
MySQL - o banco de dados open source mais popular do mundoMySQL Brasil
 
Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infosimples
 
Uso estratégico do MySQL para empresas de TI: Novidades e Futuro
Uso estratégico do MySQL para empresas de TI: Novidades e FuturoUso estratégico do MySQL para empresas de TI: Novidades e Futuro
Uso estratégico do MySQL para empresas de TI: Novidades e Futuroassertimarilia
 
Oracle - Visão Geral de IaaS e PaaS dos serviços de Nuvem da Oracle
Oracle - Visão Geral de IaaS e PaaS dos serviços de Nuvem da OracleOracle - Visão Geral de IaaS e PaaS dos serviços de Nuvem da Oracle
Oracle - Visão Geral de IaaS e PaaS dos serviços de Nuvem da OracleLuciano Condé
 
Pangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformPangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformAndré Paulovich
 
Uma Arquitetura para Provisionamento de Ambientes de Alto Desempenho Customiz...
Uma Arquitetura para Provisionamento de Ambientes de Alto Desempenho Customiz...Uma Arquitetura para Provisionamento de Ambientes de Alto Desempenho Customiz...
Uma Arquitetura para Provisionamento de Ambientes de Alto Desempenho Customiz...Miguel Xavier
 
TDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no MacTDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no MacAndre Baltieri
 
IIS para desenvolvedores
IIS para desenvolvedoresIIS para desenvolvedores
IIS para desenvolvedoresCleber Dantas
 
Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...
Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...
Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...Ricardo Ferreira
 
Azure e suas vantagens (Palestra 1)
Azure e suas vantagens (Palestra 1) Azure e suas vantagens (Palestra 1)
Azure e suas vantagens (Palestra 1) Marcus Garcia
 
Docker | Minicurso Gratuito - Azure na Prática
Docker | Minicurso Gratuito - Azure na PráticaDocker | Minicurso Gratuito - Azure na Prática
Docker | Minicurso Gratuito - Azure na PráticaRenato Groff
 

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

5. rodando containers docker na aws
5. rodando containers docker na aws5. rodando containers docker na aws
5. rodando containers docker na aws
 
MySQL do ISAM ao NoSQL
MySQL do ISAM ao NoSQLMySQL do ISAM ao NoSQL
MySQL do ISAM ao NoSQL
 
Desenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack DeveloperDesenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack Developer
 
Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0
 
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
 
MySQL - o banco de dados open source mais popular do mundo
MySQL - o banco de dados open source mais popular do mundoMySQL - o banco de dados open source mais popular do mundo
MySQL - o banco de dados open source mais popular do mundo
 
Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)
 
Uso estratégico do MySQL para empresas de TI: Novidades e Futuro
Uso estratégico do MySQL para empresas de TI: Novidades e FuturoUso estratégico do MySQL para empresas de TI: Novidades e Futuro
Uso estratégico do MySQL para empresas de TI: Novidades e Futuro
 
O Futuro do ASP.NET
O Futuro do ASP.NETO Futuro do ASP.NET
O Futuro do ASP.NET
 
Oracle - Visão Geral de IaaS e PaaS dos serviços de Nuvem da Oracle
Oracle - Visão Geral de IaaS e PaaS dos serviços de Nuvem da OracleOracle - Visão Geral de IaaS e PaaS dos serviços de Nuvem da Oracle
Oracle - Visão Geral de IaaS e PaaS dos serviços de Nuvem da Oracle
 
Pangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformPangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud Platform
 
Uma Arquitetura para Provisionamento de Ambientes de Alto Desempenho Customiz...
Uma Arquitetura para Provisionamento de Ambientes de Alto Desempenho Customiz...Uma Arquitetura para Provisionamento de Ambientes de Alto Desempenho Customiz...
Uma Arquitetura para Provisionamento de Ambientes de Alto Desempenho Customiz...
 
TDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no MacTDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no Mac
 
Web Scale Data Management
Web Scale Data ManagementWeb Scale Data Management
Web Scale Data Management
 
IIS para desenvolvedores
IIS para desenvolvedoresIIS para desenvolvedores
IIS para desenvolvedores
 
Apprenda 12.2015
Apprenda 12.2015Apprenda 12.2015
Apprenda 12.2015
 
Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...
Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...
Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...
 
Azure e suas vantagens (Palestra 1)
Azure e suas vantagens (Palestra 1) Azure e suas vantagens (Palestra 1)
Azure e suas vantagens (Palestra 1)
 
Preparando sua arquitetura para microservicos
Preparando sua arquitetura para microservicosPreparando sua arquitetura para microservicos
Preparando sua arquitetura para microservicos
 
Docker | Minicurso Gratuito - Azure na Prática
Docker | Minicurso Gratuito - Azure na PráticaDocker | Minicurso Gratuito - Azure na Prática
Docker | Minicurso Gratuito - Azure na Prática
 

Mais de Fabrício Lopes Sanchez

Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Construindo aplicações leves e performáticas com ASP.NET Core 1.0Fabrício Lopes Sanchez
 
Por que Cloud Services é o melhor dos mundos?
Por que Cloud Services é o melhor dos mundos? Por que Cloud Services é o melhor dos mundos?
Por que Cloud Services é o melhor dos mundos? Fabrício Lopes Sanchez
 
Windows Azure: computação em nuvem no melhor estilo self-service
Windows Azure: computação em nuvem no melhor estilo self-serviceWindows Azure: computação em nuvem no melhor estilo self-service
Windows Azure: computação em nuvem no melhor estilo self-serviceFabrício Lopes Sanchez
 
Desenvolvimento de aplicações para Windows Azure
Desenvolvimento de aplicações para Windows AzureDesenvolvimento de aplicações para Windows Azure
Desenvolvimento de aplicações para Windows AzureFabrício Lopes Sanchez
 
Construindo aplicações robustas com a suíte de tecnologias gratuítas da Micro...
Construindo aplicações robustas com a suíte de tecnologias gratuítas da Micro...Construindo aplicações robustas com a suíte de tecnologias gratuítas da Micro...
Construindo aplicações robustas com a suíte de tecnologias gratuítas da Micro...Fabrício Lopes Sanchez
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisFabrício Lopes Sanchez
 
Interop Day 2011 - Construindo aplicações web com WebMatrix
Interop Day 2011 - Construindo aplicações web com WebMatrixInterop Day 2011 - Construindo aplicações web com WebMatrix
Interop Day 2011 - Construindo aplicações web com WebMatrixFabrício Lopes Sanchez
 
QS24 - REST e SOAP com Razor e WebMatrix
QS24 - REST e SOAP com Razor e WebMatrixQS24 - REST e SOAP com Razor e WebMatrix
QS24 - REST e SOAP com Razor e WebMatrixFabrício Lopes Sanchez
 
Conhecendo o NuGet e utilizando com ASP.NET MVC
Conhecendo o NuGet e utilizando com ASP.NET MVCConhecendo o NuGet e utilizando com ASP.NET MVC
Conhecendo o NuGet e utilizando com ASP.NET MVCFabrício Lopes Sanchez
 

Mais de Fabrício Lopes Sanchez (20)

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

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