Arquitetura de aplicativos em nuvem - curso RUB 44.900. do IBS Training Center, treinamento 25 horas, data 26 de novembro de 2023.
Miscelânea / / December 05, 2023
Este curso é o ponto de partida para aprender como projetar sistemas em nuvem. O objetivo principal é apresentar ao ouvinte as funcionalidades e desafios da nuvem, bem como mostrar como utilizar as ferramentas básicas da nuvem. Isso é tudo - tanto na teoria quanto apoiado pela prática de projetar um aplicativo em equipes.
Após uma palestra introdutória sobre “onde encontrar a nuvem” e quais tipos existem, e uma breve visão geral das principais tecnologias no coração da computação em nuvem, passaremos ao design do sistema.
Planejando pontos de presença, organizando o tráfego de entrada e saída, entrega de conteúdo - esses tópicos do módulo tratam da construção de redes virtuais em nuvem e do atendimento aos usuários. A seguir, estudaremos como os elementos funcionais são implantados: opções de servidor e sem servidor. Vamos considerar opções para trabalhar com dados constantes e quais SGBDs são aplicáveis nesse caso. Vamos completar nossa introdução aos blocos de construção resolvendo problemas de integração.
Escalabilidade, desempenho, segurança e tolerância a falhas – estudaremos e aplicaremos as táticas básicas para alcançar essas qualidades de sistema.
A automação é importante para a operação eficiente de sistemas em nuvem. Os provedores de IaaS/PaaS nos permitem alocar e manter recursos automaticamente, organizar o monitoramento e as reações a mudanças na aplicação e falhas. Veremos os cenários mais importantes.
Assuntos abordados:
1. Noções básicas de computação em nuvem
O que é a “nuvem” e onde ela está?
Tipos de "nuvens".
Tecnologias por trás da computação em nuvem.
Novos modelos de serviço: IaaS, PaaS, SaaS.
Economia da nuvem.
2. Princípios de design de aplicativos em nuvem
Aplicativo mínimo em nuvem.
Blocos de construção de aplicativos em nuvem.
Tipos de “blocos de construção”: computação, armazenamento, infraestrutura de rede, serviços gerenciados.
Aplicativos nativos da nuvem.
Múltiplos inquilinos.
Desafios de design: comunicações, dimensionamento, trabalho com estado.
3. Projetando limites de aplicativos
Tipos de tráfego, redes virtuais.
Roteamento com e sem redes privadas virtuais.
Regiões e áreas de presença.
Processamento de solicitações externas: conteúdo dinâmico e estático.
Processamento de solicitações de clientes internos.
Modelos de pagamento de tráfego. Estrutura de cobrança.
4. Design de computação
Servidores “clássicos”, servidores “elásticos”, ambientes de execução de aplicações, conteinerização, computação sem servidor.
Padrões básicos: monólito escalável, aplicação composta.
5. Design de dados persistente
Capacidades básicas de armazenamento: armazenamento de blocos, objetos e arquivos.
Fatores-chave para avaliar métodos de armazenamento de dados: modelo de apresentação, consistência, tolerância a falhas e disponibilidade, carga.
Opções de banco de dados disponíveis: relacional, valor-chave, documento, famílias de colunas, outros.
Opções de armazenamento.
6. Resolvendo problemas de coordenação e integração
Chamadas remotas.
Comunicação síncrona e assíncrona.
Brokers, Queues, Kafka, API Gateways e Service Mesh.
7. Automação
Resumidamente sobre as possibilidades de automação no desenvolvimento e operação.
Selecionando métricas.
8. Abordando as qualidades do sistema
Desempenho de rede, localização de tráfego.
Segurança, tolerância a falhas.
Evite falhas em cascata.
9. Alguns métodos arquitetônicos para projetar aplicativos em nuvem
O aplicativo de doze fatores, estrutura bem arquitetada.