Platforms, Microservices and APIs
Info
Workload: 80 hours
Semester: 5th
Syllabus
Concepts of monolithic and microservice applications; containerization; software design patterns; application monitoring and traceability; security (authentication and authorization); messaging; distributed data; cloud computing orchestration, management systems, monitoring and configuration of virtualized resources; integration between development and operations; use of cloud platforms in production (cloud computing); automation of cloud system management — DevOps; serverless computing — FaaS (function as a service); the platform as a product for business: Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and Software as a Service (SaaS); service level management (SLA — Service Level Agreement); project and operating costs of cloud systems.
Objectives
By the end of the course the student will be able to:
- Make decisions about architectural strategies to address computational problems;
- Implement and interconnect applications to build high-performance platforms: scalability through cloud computing techniques;
- Administer a cloud management system, provisioning the required infrastructure as a service;
- Build, with the help of frameworks, complete and integrated platform solutions in a professional way;
- Design and implement robust software delivery pipelines (CI/CD);
- Analyze, design and specify a mixed cloud computing solution based on hardware, software and networks to meet the requirements of a given service level agreement (SLA);
- Plan and analyze the use of enterprise platforms as a basis for creating new businesses (PaaS).
Course Content
- Architecture and microservice concepts;
- Microservices with an API interface — RESTful;
- Introduction to containers;
- Introduction to and implementation of design patterns;
- More complex design patterns: security, messaging, cache, etc.;
- Cloud computing fundamentals;
- Orchestration, deployment and monitoring of virtualized and distributed environments;
- Infrastructure as a Service;
- Software-defined networking;
- Software as a Service;
- Service level management.
Basic Bibliography
Books:
-
ROMAN, Ed; AMBLER, Scott W.; JEWELL, Tyler. Dominando Enterprise Javabeans. Porto Alegre: Bookman, 2004. E-book. ISBN 9788577804061. Available at: https://integrada.minhabiblioteca.com.br/#/books/9788577804061. Accessed on: May 30, 2023.
-
ALVES, William Pereira. Java para Web - Desenvolvimento de Aplicações. São Paulo: Érica, 2015. E-book. ISBN 9788536519357. Available at: https://integrada.minhabiblioteca.com.br/#/books/9788536519357. Accessed on: May 30, 2023.
-
FREEMAN, Emily. DevOps Para Leigos. Rio de Janeiro: Editora Alta Books, 2021. E-book. ISBN 9788550816661. Available at: https://integrada.minhabiblioteca.com.br/#/books/9788550816661. Accessed on: May 30, 2023.
Further Reading
Books:
-
XU, A., System Design Interview - An insider's guide, 1st ed., Independently Published, 2020.
-
MARTIN, R. C., Arquitetura Limpa: o guia do artesão para estrutura e design de software, 1st ed., Alta Books, 2018.
-
PARKER, G. G.; VAN ALSTYNE, M. W.; CHOUDARY, S. P., Plataforma: a revolução da estratégia, 1st ed., Alta Books, 2018.
-
SEHGAL, N. K.; BHATT, P. C. P.; ACKEN J. M., Cloud Computing with Security and Scalability.: Concepts and Practices, 3rd ed., Springer, 2023.
-
KRIEF, M., Learning DevOps: A comprehensive guide to accelerating DevOps culture adoption with Terraform, Azure DevOps, Kubernetes, and Jenkins, 2nd ed., Packt Publishing, 2022.
-
GAMMA, E.; HELM, R.; JOHNSON, R., VLISSIDES, J., Design Patterns: Elements of Reusable Object-Oriented Software, 1st 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., YouTube channel.
Articles:
-
XU, A. et al.. ByteByteGo - System Design 101. Available at: https://github.com/ByteByteGoHq/system-design-101. Accessed on: December 19, 2023.
-
Spring. Spring Cloud. Available at: https://spring.io/projects/spring-cloud. Accessed on: December 19, 2023.
-
CHOI, K., Software Engineering Blogs. Available at: https://github.com/kilimchoi/engineering-blogs. Accessed on: December 20, 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. Available at: doi:10.1145/3593856.3595909. Accessed on: February 5, 2024.




