Docker com ASP.NET Core e Hospedagem no Azure
-
Upload
rogerio-moraes-de-carvalho -
Category
Technology
-
view
1.349 -
download
1
Transcript of Docker com ASP.NET Core e Hospedagem no Azure
Docker com ASP.NET Core e
Hospedagem no Azure
Rogério Moraes de CarvalhoConsultor e desenvolvedor de sistemas
rogeriom.wordpress.com | @rogeriomc
#GlobalAzure
Global Azure Bootcamp 2017 - Brasília #gabbsb2017
Agenda
ContêineresO que é um contêiner?
Contêineres versus máquinas virtuais
Contêineres e máquinas virtuais juntos
Padronização de contêineres
DockerO que é Docker
Docker em todo lugar
ASP.NET CoreO que é o ASP .NET Core?
Executando uma app ASP.NET Core
ASP.NET Core em detalhes
Docker com contêineres WindowsDocker para Windows Server 2016
Suporte a Docker no AzureAzure Container Service (ACS)
Outros serviços com suporte a Docker
Visual Studio 2017 & Docker
Suporte a Docker no Visual Studio 2017
Demonstração com contêiner Linux
Recursos para estudoDocumentação, vídeos e outros recursos
Global Azure Bootcamp 2017 - Brasília #gabbsb2017
Contêineres
Global Azure Bootcamp 2017 - Brasília #gabbsb2017
O que é um contêiner?
Um pacote de software em uma unidade padronizada
Uma imagem de contêiner inclui tudo que você precisa para executá-la
Código
Ambiente de execução
Ferramentas de sistema
Bibliotecas de sistema
Configurações
Disponível para apps em Linux e em Windows
Leve (compartilha o kernel do sistema operacional)
Padronizado (baseado em padrões abertos)
Seguro (isola as aplicações uma das outras e da infraestrutura)
Global Azure Bootcamp 2017 - Brasília #gabbsb2017
Contêineres versus máquinas virtuais
Benefício em comum
Ambiente isolado para execução de aplicações
Artefatos binários que se movem entre hospedeiros
Diferenças na virtualização
Contêineres virtualizam o sistema operacional (SO)
Múltiplos contêineres compartilham o kernel do SO
Tipicamente possuem algumas dezenas de MBs
Costumam ter uma inicialização quase instantânea
Máquinas virtuais virtualizam o hardware
Cada máquina virtual inclui uma cópia completa do SO
Tipicamente possuem algumas dezenas de GBs
Costumam ter uma inicialização lenta
Global Azure Bootcamp 2017 - Brasília #gabbsb2017
Contêineres e máquinas virtuais juntos
Juntos, fornecem flexibilidade no gerenciamento e implantação de apps
Global Azure Bootcamp 2017 - Brasília #gabbsb2017
Padronização de contêineres
Estrutura de governança aberta para criar padrões abertos para contêineres
Criado em junho de 2015 pelo Docker e outros líderes da indústria de contêineres
www.opencontainers.org
Atualmente contém duas especificações:
Runtime Specification (runtime-spec)
Especificação para o ambiente de execução de um contêiner no padrão OCI
github.com/opencontainers/runtime-spec
Image Specification (image-spec)
Especificação para o formato da imagem de um contêiner no padrão OCI
github.com/opencontainers/image-spec
Global Azure Bootcamp 2017 - Brasília #gabbsb2017
Docker
Global Azure Bootcamp 2017 - Brasília #gabbsb2017
O que é Docker
Docker é a líder mundial de plataforma de software para contêineres
Global Azure Bootcamp 2017 - Brasília #gabbsb2017
Docker em todo lugar
Docker para desenvolvedores (desktop – Windows, macOS e Linux)
Desenvolvedores criam imagens Docker com o necessário para executar suas apps
Contêineres Docker otimizados são completamente sem estado e imutáveis
Docker on-premises (servidor – máquinas físicas ou virtuais)
Docker para Linux (CentOS, Oracle Linux, Ubuntu, RHEL, ...)
Docker para Windows (Windows Server 2016)
Docker na nuvem
Docker para Amazon Web Services (AWS)
Docker para Azure
Docker para Google Cloud Platform (Docker em Compute Engine – Alpha)
Global Azure Bootcamp 2017 - Brasília #gabbsb2017
ASP.NET Core
Global Azure Bootcamp 2017 - Brasília #gabbsb2017
O que é o ASP .NET Core?ASP.NET Core
Um novo framework ASP.NET de código aberto e multiplataforma
Para construir aplicações Web modernas, prontas para a nuvem, em .NET
Multiplataforma
Escolha seus editores
e ferramentas
Open Source com
contribuiçõesOSS
Transição simples de
on-premises para a nuvem
Ciclos rápidos de
desenvolvimentoTotalmente modular
Rápido
Global Azure Bootcamp 2017 - Brasília #gabbsb2017
Desempenho do ASP.NET CoreASP.NET Core
ASP.NET Core: 2300% mais requisições por segundo que o ASP.NET 4.6
Foram 1,15 milhões de requisições por segundo (rps)
www.ageofascent.com/asp-net-core-exeeds-1-15-million-requests-12-6-gbps
Global Azure Bootcamp 2017 - Brasília #gabbsb2017
ASP.NET Core em detalhesASP.NET Core
Visual Basic 15 Visual Basic 15 (previsto para segundo semestre de 2017)
.NET Framework 4.7
.NET Framework completo para qualquer cenário
Suporte das bibliotecas somente em Windows
.NET Core 1.1.1Bibliotecas modulares e multiplataforma
Ambiente de execução otimizado para servidores e para a nuvem
C# 6 C# 7
Global Azure Bootcamp 2017 - Brasília #gabbsb2017
ASP.NET Core em detalhesASP.NET Core
Hospedagem
Kestrel (servidor web multiplataforma), WebListener e IIS/IISExpress no Windows
Middleware
Roteamento, autenticação, arquivos estáticos, diagnósticos, manipulação de erros,
sessão, CORS, localização, personalizados etc.
Injeção de dependência
Configuração e logging
Frameworks de aplicação
MVC, Web API, Identity, Web Pages e SignalR
Global Azure Bootcamp 2017 - Brasília #gabbsb2017
ASP.NET Core em detalhesASP.NET Core
ASP.NET Core frameworks (modelos de aplicações)ASP.NET Web Pages 3.2.3, ASP.NET MVC 5.2.3 e ASP.NET Web API 2.2ASP.NET Core MVC (MVC + Web API + Web Pages)
Global Azure Bootcamp 2017 - Brasília #gabbsb2017
ASP.NET Core em detalhesASP.NET Core
ASP.NET Core MVC
Um conjunto de conceitos unificado
Remoção de duplicações de tipos similares
Engloba aplicações Web com interface gráfica (MVC) e serviços Web (Web API)
Construído sobre o ASP.NET Core
Suporta o .NET Core
Hospedagem no Internet Information Services (IIS)
Hospedagem própria: WebListener em Windows e Kestrel multiplataforma
Integração intensa com injeção de dependência
Tag Helpers
Global Azure Bootcamp 2017 - Brasília #gabbsb2017
ASP.NET Core em detalhesASP.NET Core
ASP.NET MVC Core (MVC + Web API + Web Pages)
Recurso Executa no .NET 4.7 Executa no .NET Core 1.1
Pronto para a nuvem ✓ ✓
Projeto modular ✓ ✓
Injeção de dependência ✓ ✓
Depuração e rastreamento consistente ✓ ✓
Desenvolvimento rápido (sem necessidade de compilação) ✓ ✓
Open Source ✓ ✓
Lado a lado completo (framework distribuído dentro da aplicação) ✓
Inicialização rápida, baixo uso de memória, alta taxa de transferência ✓
Global Azure Bootcamp 2017 - Brasília #gabbsb2017
Docker com contêineres Windows
Global Azure Bootcamp 2017 - Brasília #gabbsb2017
Docker para Windows Server 2016
Parceria entre Docker e Microsoft (em 2014)
Para portar a plataforma Docker para todas edições do Windows Server 2016
Contêineres Windows Server 2016 gerenciados pelo engine DockerBenefícios do Docker em Linux agora disponíveis para Windows Server 2016
Primitivos de “conteinerização” no kernel do WindowsWindows Server 2016
Windows 10 (with the Anniversay Update)
Escolha do tipo de imagem basewindowsservercore
Executa muitas apps para Windows Server: IIS, SQL Server, .NET Framework completo etc.
nanoserverNova versão mínima do Windows Server 2016 que executa IIS e .NET Core
Global Azure Bootcamp 2017 - Brasília #gabbsb2017
Suporte a Docker no Azure
Global Azure Bootcamp 2017 - Brasília #gabbsb2017
Azure Container Service (ACS)
O que é o ACS?
Serviço que torna simples
criar, configurar e gerenciar
um cluster de máquinas virtuais
pré-configuradas para executar
aplicações em contêineres
Orquestração (Docker em clusters)
Docker Swarm
Kubernetes
DC/OS
Global Azure Bootcamp 2017 - Brasília #gabbsb2017
Outros serviços com suporte a Docker
Global Azure Bootcamp 2017 - Brasília #gabbsb2017
Visual Studio 2017 & Docker
Global Azure Bootcamp 2017 - Brasília #gabbsb2017
Suporte a Docker no Visual Studio 2017
ASP.NET Core Web Application (.NET Core)
Permite escolher o suporte a Docker na criação do projeto
Permite adicionar o suporte a Docker em um projeto já existente
O que o suporte a Docker do Visual Studio 2017 acrescenta ao projeto?
Arquivos Docker (Dockerfile) para a construção de imagens de contêiner
Um projeto de composição Docker para definir como instanciar seus contêineres
Suporta a depuração entre múltiplos contêineres/projetos
Global Azure Bootcamp 2017 - Brasília #gabbsb2017
Demonstração com contêiner Linux
Global Azure Bootcamp 2017 - Brasília #gabbsb2017
Recursos para estudo
Global Azure Bootcamp 2017 - Brasília #gabbsb2017
Documentação, vídeos e outros recursos
Documentação do Docker
docs.docker.com
Open Container Initiative (OCI)
www.opencontainers.org
Announcing Docker Container
Platform for Windows Server 2016
www.docker.com/microsoft
Guia de instalação do .NET Core(Windows, Linux, macOS e Docker)
www.microsoft.com/net/core
ASP.NET Core Documentation
docs.microsoft.com/aspnet/core
Azure Container Service
Documentation
docs.microsoft.com/azure/container-
service/