Plataformas, Microsserviços e APIs
Info
Carga Horária: 80
Semestre: 5º período
Ementa
Conceitos de Aplicações em Monólíto e Microserviços; Conteinerização; Padrões de Construção de Softwares (Design Patterns); Monitoramento e Rastreabilidade de Aplicações; Segurança (autenticação e autorização); Mensageria; Dados Distribuídos; Orquestração de computação em nuvem, sistemas de gerenciamento, monitoramento e configuração de recursos virtualizados; Integração entre Desenvolvimento e Operação; Utilização de Plataformas em Nuvem para Produção (Cloud Computing); Aspectos de automação de gestão de sistema em cloud – DevOps. Serverless computing – FaaS - function as a service; Utilização da Plataforma como Produto para Negócios: Infraestrutura como Serviço (IaaS), Plataforma como Serviço (PaaS) e Software como Serviço (SaaS). Gestão de níveis de serviço (SLA - Service Level Agreement). Custos de projeto e de operação de sistemas em cloud.
Objetivos
Ao final da disciplina o aluno será capaz de:
- Tomar decisões a respeito da escolha de estratégias de arquiteturas para o emprego de problemas computacionais;
- Implementar e interconectar aplicações computacionais para a construção de plataformas de alto desempenho: escalabilidade por meio do uso de técnicas de computação em nuvem;
- Administrar um sistema de gerenciamento de nuvem, provisionando a infraestrutura necessária como um serviço;
- Construir, com o auxílio de frameworks, soluções de plataformas completas e integradas de forma profissional;
- Arquitetar e implementar linhas de produções de softwares robustos (CI/CD);
- Analisar, projetar e especificar uma solução de computação em nuvem mista baseada em hardware, software e redes para atender aos requisitos de determinado pacto de nível de serviço (SLA);
- Planejar e analisar o uso de plataformas empresariais como subsídio para criação de novos negócios (PaaS).
Conteúdo Programático
- Conceitos de Arquitetura e Microsserviços;
- Microsserviços com Interface API - RESTful;
- Introdução a Contêineres;
- Introdução e Implementação de Design Patterns;
- Apresentação de Design Patterns mais Complexos: Segurança, Mensageria, Cache, etc;
- Fundamentos de Computação em Nuvem.
- Orquestração, Implementação e Monitoramento de Ambientes Virtualizados e Distribuídos;
- Infraestrutura como um Serviço.
- Redes Definidas por Software;
- Software como um Serviço;
- Gestão de Níveis de Serviço.
Bibliografia Básica
Livros:
-
ROMAN, Ed; AMBLER, Scott W.; JEWELL, Tyler. Dominando Enterprise Javabeans. Porto Alegre: Bookman, 2004. E-book. ISBN 9788577804061. Disponível em: https://integrada.minhabiblioteca.com.br/#/books/9788577804061. Acesso em: 30 de maio de 2023.
-
ALVES, William Pereira. Java para Web - Desenvolvimento de Aplicações. São Paulo: Érica, 2015. E-book. ISBN 9788536519357. Disponível em: https://integrada.minhabiblioteca.com.br/#/books/9788536519357. Acesso em: 30 de maio de 2023.
-
FREEMAN, Emily. DevOps Para Leigos. Rio de Janeiro: Editora Alta Books, 2021. E-book. ISBN 9788550816661. Disponível em: https://integrada.minhabiblioteca.com.br/#/books/9788550816661. Acesso em: 30 de maio de 2023.
Bibliografia Complementar
Livros:
-
XU, A., System Design Interview - An insider's guide, 1ª ed., Independently Published, 2020.
-
MARTIN, R. C., Arquitetura Limpa: o guia do artesão para estrutura e design de software, 1ª ed., Alta Books, 2018.
-
PARKER, G. G.; VAN ALSTYNE, M. W.; CHOUDARY, S. P., Plataforma: a revolução da estratégia, 1ª ed., Alta Books, 2018.
-
SEHGAL, N. K.; BHATT, P. C. P.; ACKEN J. M., Cloud Computing with Security and Scalability.: Concepts and Practices, 3ª ed., Springer, 2023.
-
KRIEF, M., Learning DevOps: A comprehensive guide to accelerating DevOps culture adoption with Terraform, Azure DevOps, Kubernetes, and Jenkins, 2ª ed., Packt Publishing, 2022.
-
GAMMA, E.; HELM, R.; JOHNSON, R., VLISSIDES, J., Design Patterns: Elements of Reusable Object-Oriented Software, 1ª ed., Addison-Wesley Professional, 1994.
-
SANTANA, E. F. Z., Back-end Java: Microsserviços, Spring Boot e Kubernetes, Casa do Código, 2021. Material.
-
SANTANA, E. F. Z., Apache Kafka e Spring Boot: Comunicação assíncrona entre microsserviços, Casa do Código, 2022. Material.
-
VERONEZ, F., Canal do YouTube.
Artigos:
-
XU, A. et al.. ByteByteGo - System Design 101. Disponível em: https://github.com/ByteByteGoHq/system-design-101. Acesso em: 19 dezembro 2023.
-
Spring. Spring Cloud. Disponível em: https://spring.io/projects/spring-cloud. Acesso em: 19 dezembro 2023.
-
CHOI, K., Software Engineering Blogs. Disponível em: https://github.com/kilimchoi/engineering-blogs. Acesso em: 20 dezembro 2023.
-
Ghemawat, S. et al.. Towards Modern Development of Cloud Applications. Proceedings of the 19th Workshop on Hot Topics in Operating Systems, 2023 - p. 110-117. Association for Computing Machinery, Providence, RI, USA. Disponível em: doi:10.1145/3593856.3595909. Acesso em: 05 fevereiro de 2024.