Transmitir aos alunos conceitos sobre streams de dados, considerando seus aspectos relacionados ao ambiente de containers e a produção de aplicações nativas da Web com foco na arquitetura de microservices.
Fundamentos em Arquiteturas de Dados. Introdução a Stream de Dados. Arquiteturas de sistemas de processamento de streams. Padrões de Projetos de Stream de Dados. Coleta, armazenamento e processamento de dados de fluxos contínuos. Ferramentas para Stream de Dados Massivos. Introdução a Arquitetura de Software. Construção de APIs. Migração de sistemas monolíticos para micro serviço. Práticas na construção de uma API (Documentação e Segurança de APIs). Infraestrutura para processamento de dados escaláveis. Balanceadores de Carga. Virtualização e Containers. Ferramentas de monitoramento de soluções escaláveis. Ferramentas de Infrastructure as Code (IaC) para implantação automatizada de infraestrutura.
1. Fundamentos em Arquiteturas de Dados a. Componentes e elementos 2. Introdução a Stream de Dados a. Conceitos e Requisitos 3. Arquiteturas de sistemas de processamento de streams 4. Padrões de Projetos de Stream de Dados 5. Coleta, armazenamento e processamento de dados de fluxos contínuos 6. Ferramentas para Stream de Dados Massivos a. Apache Kakfa b. Apache Spark c. Apache Hadoop d. Scala 7. Introdução a Arquitetura de Software a. SOA, Microsserviços, Monolíticos 8. Construção de APIs a. Web Services (SOAP), REST, GraphQL. 9. Migração de sistemas monolíticos para microsserviço. 10. Práticas na construção de uma API (Documentação e Segurança de APIs) 11. Infraestrutura para processamento de dados escaláveis 12. Balanceadores de Carga 13. Virtualização e Containers 14. Ferramentas de monitoramento de soluções escaláveis a. Zabbix b. Data Dog c. Prometheus 15. Ferramentas de Infrastructure as Code (IaC) para implantação automatizada de infraestrutura a. Terraform b. Terragrunt c. Pulumi d. Cloud Formation
Bibliografia Principal - Akidau, Tyler, Slava Chernyak, and Reuven Lax. 2018. Streaming systems: the what, where, when, and how of large-scale data processing. - Narkhede, N., Shapira, G., & Palino, T. (2017). Kafka - the definitive guide: Real-time data and stream processing at scale. - Newman, S., & Safari, an O'Reilly Media Company. (2021). Building Microservices, 2nd Edition. - Operadores do Kubernetes: Automatizando a plataforma de orquestração de contêineres, Novatec, 1a Edição, 172p, 2020 - Notas de aula Bibliografia Complementar - Burns, Brendan. 2018. Designing distributed systems: patterns and paradigms for scalable, reliable services. - Kleppmann, M. (2018). Designing data-intensive applications: The big ideas behind reliable, scalable, and maintainable system - Descomplicando o Docker, 2a Edição, 2018 - Kubernetes Básico: Mergulhe no futuro da infraestrutura, Novatec, 1a Edicao, 316p, 2020 - Engenharia de Confiabilidade do Google: Como o Google Administra Seus Sistemas de Produção, Novatec, 1a Edição, 632p, 2016 - Poulton, N. (2021). The Kubernetes book.