Alura > Cursos de Back-end > Cursos de .NET > Conteúdos de .NET > Primeiras aulas do curso .NET: Soluções em nuvem com Azure na prática

.NET: Soluções em nuvem com Azure na prática

Conceitos de nuvem e Azure - Apresentação

Apresentando o curso e o instrutor

Olá! Sejam todos bem-vindos ao novo curso da Alura: Soluções em Nuvem Azure com .NET na Prática. Já observamos quantas aplicações .NET interessantes construímos, mas nunca tivemos a oportunidade de migrar para a nuvem.

Meu nome é Marcelo Oliveira e faço parte da Escola de Programação da Alura. Por motivos de acessibilidade, vou me auto-descrever: sou um homem branco, tenho cabelos e barba escuros, uso óculos, estou vestindo uma camiseta marrom e, ao fundo, há uma parede iluminada pelas cores roxo e azul.

Preparando para o curso

Antes de começarmos, é importante que já tenhamos alguns fundamentos. Precisamos ter um conhecimento básico em linguagem C# e em AspNet Core. Este curso foi pensado para pessoas desenvolvedoras que desejam se aventurar pela primeira vez ou se aprofundar na Programação em Nuvem. Seremos as pessoas desenvolvedoras que ajudarão a migrar a solução local da Clínica Volmed para a nuvem.

Antes de irmos para a prática, abordaremos, logo na primeira aula, os conceitos básicos de uma nuvem pública e como eles diferem de um ambiente local e on-premises. Começaremos entendendo os conceitos de computação em nuvem e como o Azure se posiciona entre as grandes plataformas do mercado. Conheceremos os modelos de serviço, aprenderemos o que são as regiões do Azure e como isso impacta em nossa aplicação. Também exploraremos o portal do Azure e mostraremos como criar e organizar os recursos usando linha de comando.

Explorando banco de dados e publicação de aplicações

Na Aula 2, entraremos na parte de Banco de Dados. Veremos como conectar um projeto AspNet Core ao SQL Server local e, em seguida, migrar tudo para o Azure SQL Database com total segurança e escalabilidade. Apresentaremos também o Azure Cosmos DB, mostrando como lidar com informações mais flexíveis no formato NoSQL, ideal para quando o sistema precisa crescer e evoluir rapidamente.

Na Aula 3, colocaremos a aplicação na nuvem. Nessa aula, publicaremos um projeto MVC.

Na Aula 3, vamos aprender a publicar um projeto Web API no Azure App Service. Utilizaremos o Visual Studio para publicar a aplicação diretamente e configuraremos tudo para que o sistema funcione perfeitamente na nuvem.

Protegendo e monitorando a aplicação

Na Aula 4, será o momento de proteger o acesso à nossa aplicação. Exploraremos o Microsoft Entra, o serviço de identidade que gerencia a autenticação e autorização de usuários. Demonstramos na prática como manter a aplicação segura sem a necessidade de reinventar todo o sistema de login.

Toda aplicação em produção precisa ser observada. Por isso, na Aula 5, abordaremos monitoramento e diagnóstico. Aprenderemos a usar os recursos de monitoramento para acompanhar os logs, as métricas e a performance da aplicação em tempo real com o Azure.

Avançando em arquiteturas e automação

Na Aula 6, entraremos em arquiteturas mais avançadas. Conheceremos o Azure Service Bus e as Azure Functions. Aprenderemos a utilizar a mensageria para desacoplar os componentes e aumentar o desempenho da aplicação.

Quando a aplicação estiver mais madura, na Aula 7, vamos automatizar a publicação. Nesta aula, criaremos pipelines de CI e CD com GitHub Actions, que automatizarão o deploy das aplicações para a nuvem.

Otimizando desempenho e concluindo o curso

Fechando com chave de ouro, mergulharemos na otimização de desempenho na Aula 8. Entenderemos como aplicar um cache com Redis para reduzir a carga do banco de dados e acelerar as respostas ao usuário.

Ao concluir este curso, teremos uma visão prática e integrada de como construir operações com aplicações profissionais no Azure. Preparemos o Visual Studio, conectemos nossa conta do Azure e transformemos nossa aplicação local em uma solução moderna, segura e pronta para escalar na nuvem.

Não se esqueçam de aproveitar os recursos da plataforma da Alura. Além dos vídeos, contamos com atividades práticas e com o apoio da comunidade no fórum e no Discord. Vamos estudar?

Conceitos de nuvem e Azure - O que é computação em nuvem?

Introduzindo conceitos de nuvem e Azure

Iniciamos nosso curso com a Aula 1, que aborda os conceitos de nuvem e Azure. Vamos começar com um contexto inicial. Recentemente, finalizamos o desenvolvimento da aplicação da Volmed, uma solução para clínicas médicas que gerencia médicos, pacientes e consultas. Utilizaremos este projeto, que é uma solução AspNetCore, ao longo de todo o curso como exemplo de uma aplicação a ser implantada na nuvem da Azure.

Teremos duas possibilidades de implantação. No caso da Volmed, é possível realizar uma instalação local, conhecida em inglês como cenário on-premises. Isso significa que a clínica Volmed manterá seu próprio parque de máquinas em um data center próprio ou alugado. A outra possibilidade é o cenário de nuvem. Com a nuvem da Azure, ou qualquer outra, todo o trabalho, mão de obra e custos de implantação inicial são transferidos para um provedor de serviços de nuvem, permitindo que a empresa foque em seu negócio principal, que são os serviços médicos.

Explorando desafios do cenário on-premises

Se a empresa optar pelo cenário on-premises, enfrentará algumas dificuldades, como o investimento inicial em hardware. Será necessário adquirir máquinas, equipamentos, cabeamento e contar com pessoal especializado para gerenciar e manter essas máquinas. Além disso, as máquinas têm vida útil, o que implica em custos de manutenção contínuos.

Outra dificuldade é a escalabilidade em momentos de pico. Por exemplo, em um e-commerce, há momentos de grande demanda, como no Dia das Mães, Dia das Crianças, Black Friday e Natal. Nesses períodos, o volume de hardware pode ser insuficiente para atender a todas as requisições simultâneas. Isso exige a compra ou aluguel de máquinas adicionais, configuração e instalação de software, gerando dificuldades para escalar.

Há também limitações para levar a aplicação a diferentes regiões do Brasil. Se o data center estiver localizado em uma única região, a prestação de serviços para o país inteiro pode ser problemática, pois nem todas as regiões terão o mesmo nível de serviço e usabilidade. A experiência do usuário pode ser prejudicada em diferentes regiões.

Destacando vantagens do uso da nuvem

A alternativa é utilizar os serviços de um provedor de nuvem. Com a nuvem, temos características peculiares e amplamente conhecidas, pois atualmente todos utilizam a nuvem, mesmo que apenas como usuários. Com um provedor de nuvem, como a Azure, temos provedores globais, o que significa que há locais espalhados pelo mundo inteiro fornecendo serviços e infraestrutura de nuvem.

A escalabilidade é uma das vantagens, permitindo que os recursos cresçam ou diminuam conforme a demanda, evitando o pagamento por um volume excessivo de máquinas sem necessidade.

Quando a demanda aumenta, as máquinas são automaticamente instanciadas e criadas de forma transparente pelo provedor de nuvem, mantendo o mesmo nível de serviço para todos os usuários, garantindo a satisfação com o serviço oferecido. Além disso, há flexibilidade, pois é possível configurar a nuvem facilmente com as ferramentas fornecidas pelo provedor. O armazenamento é crítico para diversos serviços e aplicações, e há várias opções de armazenamento para diferentes necessidades, pagando apenas pelo tipo necessário.

Analisando serviços e segurança na nuvem

Os serviços de banco de dados são de primeira linha, incluindo bancos NoSQL, que são não estruturados, e bancos relacionais tradicionais. Diversos fornecedores oferecem bancos de dados na nuvem como serviço, permitindo que se leve ou comece na nuvem com o banco de dados mais adequado para a aplicação. A segurança em redes é fundamental na nuvem, com infraestrutura já fornecida para segurança e redes, eliminando preocupações com problemas básicos de hardware, pois o provedor cuida de tudo.

Comparando provedores de nuvem

No mercado, o Azure tem mostrado crescimento significativo, impulsionado pela adoção de serviços de nuvem. Não só o Azure, mas também outros provedores concorrentes são adotados por empresas de diversos setores que necessitam de serviços de nuvem. A nuvem é cada vez mais a opção padrão para negócios e empresas. Especificamente, o Azure possui atualmente aproximadamente 20% do market share, sendo o segundo maior provedor de plataforma de nuvem do mundo, atrás apenas da Amazon AWS, que detém 30% do mercado. A Amazon é muito grande nesse segmento. Em terceiro lugar, está o Google com o Google Cloud Platform, com aproximadamente 10% do mercado.

É importante ter essa noção, pois, apesar de o Azure estar em segundo lugar com 20% do market share, é recomendável aprender sobre todas as plataformas, não apenas uma. Este curso é valioso porque, ao aprender sobre o Azure, adquirimos conceitos padrão de mercado encontrados também na AWS e no Google Cloud. A nuvem possui conceitos de armazenamento, banco de dados e rede que são comuns e muito parecidos entre as plataformas, proporcionando uma experiência e conceitos que podem ser reaproveitados ao trabalhar ou estudar outros provedores de nuvem.

Conceitos de nuvem e Azure - Modelos de serviço: IaaS, PaaS e SaaS

Introduzindo os modelos de serviço em nuvem

No último vídeo, discutimos conceitos de nuvem e Azure. Agora, vamos abordar os modelos de serviço. A Vomad precisa decidir como utilizar a nuvem para hospedar sua aplicação, pois existem diferentes formas de utilizar os recursos da nuvem, cada uma com suas vantagens e responsabilidades distintas.

Um problema comum é que muitas equipes escolhem de forma inadequada como consumir os recursos da nuvem, o que resulta em maior gasto de tempo e recursos, além de assumir responsabilidades desnecessárias e gastar mais do que o necessário.

Criando uma analogia com a preparação de alimentos

Como solução, vamos criar uma analogia entre preparar um alimento e utilizar a nuvem do Azure. Comecemos com o primeiro passo para montar um prato de macarrão. É necessário ter os ingredientes. Se começarmos a preparar o alimento do início, com ingredientes como farinha, leite, água, maisena e ovos, teremos o que está representado na imagem à esquerda: a farinha sendo preparada com os ovos e outros ingredientes sobre uma mesa. Abaixo, há um rótulo indicando que isso representa IaaS, ou infraestrutura como serviço (Infrastructure as a Service). Essa analogia sugere que precisamos fazer tudo do zero. Essa é uma forma de utilizar a nuvem em que precisamos configurar e desenvolver tudo desde o início. Embora isso exija mais trabalho, proporciona maior controle sobre todo o processo.

Existe também um meio-termo, uma solução intermediária chamada de plataforma como serviço (Platform as a Service), também conhecida como PaaS. Na imagem central, vemos o macarrão instantâneo com outros ingredientes instantâneos, já empacotados de fábrica. Compramos esses pacotes, colocamos em uma panela com água, aquecemos, mas não precisamos fabricar o macarrão, pois ele já vem pronto. Misturamos com outros ingredientes e água quente para finalizar o prato. Isso reduz o trabalho e diminui a necessidade de controle. Cada abordagem tem suas vantagens e desvantagens.

Comparando os modelos de serviço: IaaS, PaaS e SaaS

A terceira opção é comprar o prato pronto. Nesse caso, pedimos pelo aplicativo de celular, adquirimos o prato e ele é entregue em nossa casa para consumo. Fazemos uma analogia comparando esse tipo de uso com o SaaS (Software as a Service, ou software como serviço), onde tudo já está pronto, bastando apenas utilizar. Essas três formas chegam ao mesmo resultado, mas variam no nível de esforço, controle e praticidade. Isso também ocorre com os modelos de nuvem.

Apresentamos uma tabela para exemplificar o que são essas siglas, além de on-premises, que já discutimos, o IaaS, o PaaS e o SaaS. Vamos explorar as diferenças entre eles. Já falamos sobre on-premises, que são máquinas mantidas na empresa, em um data center próprio ou alugado. A empresa tem controle total, mas enfrenta mais trabalho e problemas relacionados à infraestrutura e segurança.

Explorando as características de IaaS, PaaS e SaaS

Vamos abordar as outras colunas: IaaS, PaaS e SaaS. No caso da infraestrutura como serviço (IaaS), ao pensar em nuvem, gerenciamos servidores, rede e sistema operacional, semelhante a ter controle sobre todos os ingredientes de uma refeição que preparamos. Um exemplo no Azure é criar uma máquina virtual e instalar manualmente o .NET para desenvolver aplicações.

No caso do Platform as a Service (PaaS), a nuvem já entrega um ambiente pronto para rodar a aplicação. Por exemplo, o Azure App Service permite publicar uma aplicação da Volmed no .NET sem preocupação com o servidor.

A terceira coluna, SaaS (Software as a Service), refere-se a aplicações prontas para consumo. Um exemplo é o uso do Microsoft 365 para comunicação com a equipe da Volmed. O Microsoft 365 permite que as equipes da clínica Volmed se comuniquem sem a necessidade de desenvolver uma aplicação própria, pois a Microsoft já fornece tudo instalado e vinculado à nuvem.

Concluindo sobre a escolha do modelo de serviço

Esses são os diferentes níveis de modelo de serviço de nuvem. Cada modelo tem seu lugar, cabendo à equipe da Volmed e a nós, como pessoas desenvolvedoras, avaliar o que faz mais sentido em termos de custo, controle e agilidade.

Sobre o curso .NET: Soluções em nuvem com Azure na prática

O curso .NET: Soluções em nuvem com Azure na prática possui 574 minutos de vídeos, em um total de 108 atividades. Gostou? Conheça nossos outros cursos de .NET em Back-end, ou leia nossos artigos de Back-end.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda .NET acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas