Sistemas de Informação, Centro de Informática, (UFPE)
- Professor Vinicius Cardoso Garcia ([email protected])
- Professor Colaborador Vanilson Burégio ([email protected])
- Pós-Graduação: IN1062 - Tópicos Avançados em Sistemas Distribuídos 3
- Graduação: IF1007 - Tópicos Avançados em Sistemas de Informação 4
- Centro de Informática, horários: segunda (17:00-18:40) e quarta (18:50-20:30), sala E-112, Bloco E.
- Aulas práticas, quando ocorrerem, serão no Lab G2 (preferencialmente).
- Temos um canal no Slack para uma comunicação mais dinâmica: IF1007 & IN1062 (para entrar, tem que utilizar o e-mail institucional do CIn).
Microservice é um estilo e padrão de arquitetura de software em que sistemas complexos são decompostos em serviços menores que trabalham em conjunto para formar serviços maiores. Os Microservices são serviços autônomos, independentes e independentemente implantáveis. No mundo de hoje, muitas empresas usam microservices como principal padrão para a construção de aplicativos corporativos grandes e orientados a serviços.
O framework Spring é um framework de programação popular com a comunidade de desenvolvedores por muitos anos. O Spring Boot removeu a necessidade de ter um conteiner leve de aplicação e forneceu um meio para implantar aplicativos leves e sem servidor. O Spring Cloud combina muitos componentes e junto com o OSS Netflix e fornece um ecossistema para executar e gerenciar microservices em grande escala. Ele fornece recursos como balanceamento de carga, registro de serviço, monitoramento, gateway de serviço e assim por diante.
No entanto, os microservices vêm com seus próprios desafios, como monitoramento, gerenciamento, distribuição, dimensionamento, descoberta, etc., especialmente quando se implanta em escala. A adoção de microservices sem abordar os desafios dos microservices comuns levaria a resultados catastróficos. A parte mais importante deste curso é discutir um modelo de capacidade de microservice agnóstico em termos de tecnologia que busca ajudar a resolver os desafios mais comuns do mundo de microservice.
Não há livro texto obrigatório. Entretanto, a seguir estão alguns livros que podem ser recomendados:
- Building Microservices: Designing Fine-Grained Systems
- LEWIS, J.; FOWLER, M. Microservices: a definition of this new architectural term. MartinFowler. com, v. 25, Mar 2014.
- X. Larrucea, I. Santamaria, R. Colomo-Palacios and C. Ebert, "Microservices," in IEEE Software, vol. 35, no. 3, pp. 96-100, May/June 2018. doi: 10.1109/MS.2018.2141030
- P. Jamshidi, C. Pahl, N. C. Mendonça, J. Lewis and S. Tilkov, "Microservices: The Journey So Far and Challenges Ahead," in IEEE Software, vol. 35, no. 3, pp. 24-35, May/June 2018. doi: 10.1109/MS.2018.2141039
- The Architecture of Open Source Applications
- Designing and Deploying Microservices, by Chris Richardson and Floyd Smith. Use the guidance in this ebook about building microservices to learn what a microservice is, and why you might need a microservices architecture to make your applications faster, more flexible, and more stable
- Spring Microservices
- Spring Boot: Acelere o desenvolvimento de microsserviços
- Microservices for Java Developers A Hands-on Introduction to Frameworks and Containers
- Migrating to Cloud-Native Application Architectures
- Continous Integration
- The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win
- Fundamentals of Software Architecture, by Mark Richards & Neal Ford, O′Reilly; Illustrated edição (7 fevereiro 2020).
- Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems, by Martin Kleppmann, O'Reilly Media, Inc., Released March 2017
- Pattern: Monolithic Architecture
- Pattern: Microservice Architecture
- Pattern API Gateway - APIs em uma arquitetura de microservices, by Petterson Andrade -- Jun 30, 2016
- Introduction to Microservices, this is a seven‑part series of articles
- How to Write Great API Documentation Every Time
- Layering Microservices
- Why Spring Boot is an Excellent Choice For Your Next Applications
- 10 Myths About Microservices, by Codonomics, Dec 23 - 2018.
- 10 Challenges and Solutions for Microservices — Tips and Tricks, by by Rajiv Srivastava, Jul 02 - 2018
- Spring IO
- Spring IO Website: http://www.spring.io
- Spring Boot: https://projects.spring.io/spring-boot/
- Spring Cloud: https://projects.spring.io/spring-cloud/
- Spring Projects: http://spring.io/projects
- Spring Guides: http://spring.io/guides
- Spring Document: http://spring.io/guides
- Spring Boot Docs: http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/
- Spring Boot API: http://docs.spring.io/spring-boot/docs/current/api/
- Stay Connected
- Twitter: http://twitter.com/springcentral
- YouTube: http://spring.io/video
- Questions: http://spring.io/questions
- JIRA: http://jira.spring.io
- Blog: http://spring.io/blog
- Help
- Stack Overflow: http://stackoverflow.com/questions/tagged/spring-boot
- Cloud Computing
- Serverless Architecture
- Building a Serverless Microservice CRUD RESTful API with MongoDB, Richard Freeman, PhD, Jan 29 - 2019.
- Service Mesh
- P. Jamshidi, C. Pahl, N. C. Mendonça, J. Lewis and S. Tilkov, "Microservices: The Journey So Far and Challenges Ahead", in IEEE Software, vol. 35, no. 3, pp. 24-35, May/June 2018.
- Pattern: Service Mesh, by Phil Calçado, Aug 3, 2017
- What’s a service mesh? And why do I need one?, by Willian Morgan, April 25, 2017
- The Enterprise Path to Service Mesh Architectures, O’Reilly Media, Inc., First Edition, 2018.
- Netflix Open Source Software Center
- A 360 Degree View Of The Entire Netflix Stack, by Chris Ueland -- November 9, 2015
- Netflix Builds a Reliable, Scalable Platform with Event Sourcing, MQTT and Alpakka-Kafka, by Eran Stiller -- Aug 31, 2021
- The InfoQ eMag: Microservices vs. Monoliths - The Reality Beyond the Hype, reviewed by Thomas Betts -- Jun 19, 2017
- Microservices Beyond the Hype: What You Gain and What You Lose, BY Paulo Merson -- November 5, 2015
- The cloud native application: Microservices with Spring Boot and Spring Cloud
- Production-Ready Microservices - Building Standardized Systems Across an Engineering Organization
- Microservices vs. Service-Oriented Architecture
- The Difference between SOA and Microservices?
- Canary deployments, A/B testing, and microservices with Ambassador
- Systems Performance: Enterprise and the Cloud
- Designing Data-Intensive Applications
- Continous Delivery
- The Evolution of DevSecOps Revisited
- Containers com Docker: Do desenvolvimento à produção
- Ansible: Up and Running
- WTF is Docker?, A brief explanation of Docker and Docker compose in English
- 5 Free Online Courses to Learn Docker for Beginners
- Docker Tutorials and Labs (This repo contains Docker labs and tutorials authored both by Docker, and by members of the community)
- Mike Coleman (Docker Employee) "Docker for the Virtualization Admin" eBook
- What Is Containerization?, by Shaan RayFollow, Feb 5 - 2019.
- Entrega contínua em Android: Como automatizar a distribuição de apps
- Jenkins: Automatize tudo sem complicações
- Testes automatizados de software: Um guia prático
- Test-Driven Development: Teste e Design no Mundo Real
- Cloud Computing: Concepts, Technology & Architecture
- Four Layers of TCP/IP model, Comparison and Difference between TCP/IP and OSI models
- Travis CI, Test and Deploy with Confidence
- From open source to sustainable success: the Kubernetes graduation story
- Kubernetes Ingress: NodePort, Load Balancers, and Ingress Controllers
- Kubernetes best practices: Resource requests and limits
- Package Management Basics: apt, yum, dnf, pkg (by Digital Ocean
- Getting Started with Feign Client in Spring
- Developing Microservices with Behavior Driven Development and Interface Oriented Design, by Kenneth Pugh -- Jan 26, 2019
- The Future of Cloud Providers in Kubernetes, Authors: Andrew Sy Kim (VMware), Mike Crute (AWS), Walter Fender (Google) -- April 17, 2019
- Você sabe qual a origem do Kubernetes do Google Cloud?, by Renê Fraga -- May 28, 2019
- From MVC to Modern Web Frameworks, by Robert Zhu -- Dec 6, 2018
- Learn how to automate deployment on GitHub-pages with Travis CI, by Dhruv BarochiyaFollow -- Jun 21, 2019
- A biblioteca do Desenvolvedor de Software dos dias de hoje
- 12 Fractured Apps
- The twelve-factor app
- THE RISE OF MICROSERVICES
- The Google Cloud Developer Cheat Sheet
- Angular Libraries and Microservices
- Principles of Container-based Application Design
- Hands on Lab Overview: DevOps Cloud Native Microservices Development - YouTube
- Microservices for Digital Transformation - case studies across ERP, Entertainment, Finance, Search, Auctions, and Cloud Industries
- Why Microservices Should Be Event Driven: Autonomy vs Authority
- 3 Easy Things to Do to Make Your Microservices More Resilient
- The Hardest Part About Microservices: Your Data
- Carving the Java EE Monolith Into Microservices: Prefer Verticals Not Layers
- Microservices - Organizing Large Teams for Rapid Delivery
- The Journey from Monolith to Microservices - A Guided Adventure
- Simon Brown on the Role of the Software Architect in a Continuous Delivery Environment
- Microserviços na prática: o que aprendemos em 2 anos
- MicroProfile: uma nova forma de desenvolver aplicações corporativas na era dos microservices
- Desenvolvendo, expandindo e amadurecendo a prática de Engenharia de Caos
- Cinco coisas que todo desenvolvedor de software deve saber sobre Arquitetura de Software
- 9 perguntas frequentes sobre REST
- IF1006 - TÓPICOS AVANÇADOS EM SISTEMAS DE INFORMAÇÃO 3 (SERVIÇOS E INFRAESTRUTURA DE NUVEM) - 2017.1
- IF1004 - Seminários em Sistemas de Informação 3 (Desmistificando DevOps: Projetando Arquiteturas Efetivamente Escaláveis)
- De monolítico a cloud native: uma jornada de erros e acertos na Wine.com.br
- Who monitors the monitoring systems?
- AWS
- Cloud
- Google Cloud
- Docker
- Docker In A Nutshell
- 7 best practices for building containers
- VMs vs. Containers for Microservices, by Spruha Pandya -- Mar 19, 2019
- Kubernetes
- Instalando e configurando kubernetes localmente com o minikube no Mac OSX, by Vinicius Garcia, Jan 03 -- 2019
- Kubernetes For Developers (by nirmata): Pods (Part 1)
- Kubernetes For Developers (by nirmata): Part 2 – Replica Sets and Deployments
- Kubernetes For Developers (by nirmata): Part 3 – Services
- Kubernetes best practices: upgrading your clusters with zero downtime
- Deploying Java Applications with Docker and Kubernetes & oreilly-docker-java-shopping
- Deploying Java Applications with Kubernetes and an API Gateway
- Kubernetes Chaos Engineering: Lessons Learned — Part 1
- Fundamentals of Containers, Kubernetes, and Red Hat OpenShift
- LinuxFoundationX: LFS158x Introduction to Kubernetes
- Microservices
- LinuxFoundationX: LFS132x Introduction to Cloud Foundry and Cloud Native Software Architecture
- Architecting Distributed Cloud Applications
- Pitfalls and Patterns in Microservice Dependency Management
- What Have We Learned over the Last Decade of Microservices?, by Chris Richardson and James Lewis -- Aug 04, 2021
- Adoption of Cloud-Native Architecture, Part 1: Architecture Evolution and Maturity, by Srini Penchikala and Marcio Esteves -- Nov 26, 2019
- Adoption of Cloud Native Architecture, Part 2: Stabilization Gaps and Anti-Patterns, by Srini Penchikala and Marcio Esteves -- May 27, 2020
- Adoption of Cloud Native Architecture, Part 3: Service Orchestration and Service Mesh, by Srini Penchikala and Marcio Esteves -- Sep 01, 2021
- Designing a Microservices Architecture for Failure, by RisingStack -- Sep 21, 2021
- Node
- Arquitetura de micro serviços em Node.js + MongoDB, by Luiz Duarte -- May 06, 2018
- Spring Boot
- Microservices and Cloud-Native Applications with Spring 5.0
- Advanced Spring Boot
- Source code from "Learning Spring Boot" (original and upgrades)
- Spring Boot Tutorial: Building Microservices Deployed to Google Cloud, by Sergio Felix @ InfoQ -- Mar 26, 2020
- The Twelve-Factor App: 12 Best Practices For Microservices, by @mobycast -- September 28th, 2019
- Microservices and the 12 Factor App, by Gabriela Melo -- Jun 15, 2018
- Microserviços: Do SOLID para o IDEALS, Nov 23, 2020
- Consistency, Coupling, and Complexity at the Edge, by Glenn Engstrand -- Aug 11, 2021
- Observability
- Istio monitoring with Elastic Observability, Feb 11, 2021
- Implementing Microservicilites with Istio, Jun 22, 2021
- Why Segment Moved from Microservices to a Monolith, Mar 17, 2019 By ProgrammableWeb Staff, ProgrammableWeb Staff
- Experiences Moving from Microservices to Workflows at Jet.com, by Jan Stenberg, Feb 14, 2019
- Microservices after Two Years, by George Stocker, January 21, 2019
- Monitoring containerized microservices with a centralized logging architecture. A case study of Project Horus, Sep 12, 2018.
- The Smart Parking story - Part 1, Part2 and Part 3, Apr 12, 2018
- Arquiteturas reativas e a experiência Mobile no Magazine Luiza, Jan 31, 2018.
- Autorização de transações no Nubank: Consumindo serviços anos 80 com tecnologias atuais, Dec 06, 2017.
- The Top 10 Adages in Continuous Deployment, by InfoQ on Sep 19, 2017
- Spotify Lessons: Learning to Let Go of Machines, by James Wen on Sep 19, 2017
- How we build microservices at Karma, Apr 4, 2016
- Building Products at SoundCloud — Part I: Dealing with the Monolith, By Phil Calçado on June 11th, 2014
- Building Products at SoundCloud—Part II: Breaking the Monolith, By Phil Calçado on June 12th, 2014
- Preparing the Netflix API for Deployment, by Netflix Technology Blog on Nov 18, 2013
- Continuous Deployment at IMVU: Doing the Impossible Fifty Times a Day, by Timothy Fitz on February 10, 2009
- CA Technologies’ report gives some insights into business’ different understanding of DevOps and can be found at http://www.ca.com/us/collateral/white-papers/na/techinsights-report-what-smart-businesses-know-about-devops.aspx
- XebiaLabs has a wide range of surveys and state of industry reports on DevOps-related topics that can be found at http://xebialabs.com/xl-resources/whitepapers/
- GitHub’s Journey from Monolith to Microservices, by Sha Ma -- Jul 28, 2021
- 2020
- Michael Desmond. Mapping the Journey from ITOps to AIOps. Blog, Gigaom, Dec 7, 2020.
- Leite, L., Rocha, C., Kon, F., Milojicic, D., & Meirelles, P. (2020). A Survey of DevOps Concepts and Challenges. ACM Computing Surveys, 52(6), 1–35.
- Debroy, V., & Miller, S. (2020). Overcoming Challenges With Continuous Integration and Deployment Pipelines: An Experience Report From a Small Company. IEEE Software, 37(3), 21–29.
- Mellegard, N., Burden, H., Levin, D., Lind, K., & Magazinius, A. (2020). Contrasting Big Bang With Continuous Integration Through Defect Reports. IEEE Software, 37(3), 14–20.
- 2019
- Soares de Toledo, S., Martini, A., Przybyszewska, A., & Sjoberg, D. I. K. (2019). Architectural Technical Debt in Microservices: A Case Study in a Large Company. 2019 IEEE/ACM International Conference on Technical Debt (TechDebt), 78–87.
- Shanbhag, N., & Pardede, E. (2019). A Metrics Framework for Product Development in Software Startups. Journal of Enterprising Culture, 27(03), 283–307.
- Kazanavicius, J., & Mazeika, D. (2019). Migrating Legacy Software to Microservices Architecture. 2019 Open Conference of Electrical, Electronic and Information Sciences (EStream), 1–5.
- Luis M. Vaquero, Felix Cuadrado, Yehia Elkhatib, Jorge Bernal-Bernabe, Satish N. Srirama, Mohamed Faten Zhani, Research challenges in nextgen service orchestration, Future Generation Computer Systems, Volume 90, 2019, Pages 20-38, ISSN 0167-739X, DOI: 10.1016/j.future.2018.07.039.
- Philipp Leitner, Erik Wittern, Josef Spillner, Waldemar Hummer, A mixed-method empirical study of Function-as-a-Service software development in industrial practice, Journal of Systems and Software, Volume 149, 2019, Pages 340-359, ISSN 0164-1212, DOI: 10.1016/j.jss.2018.12.013.
- Paolo Di Francesco, Patricia Lago, Ivano Malavolta, Architecting with microservices: A systematic mapping study, Journal of Systems and Software, Volume 150, 2019, Pages 77-97, ISSN 0164-1212, DOI: 10.1016/j.jss.2019.01.001.
- O’Reilly Publishes “The State of Microservices Maturity” Report, by Reda Hmeid, Feb 3, 2019
- Architecture and Design InfoQ Trends Report - January 2019, by Daniel Bryant & Thomas Betts & Charles Humble, Jan 24, 2019.
- 2018
- Steffens, A., Lichter, H., & Döring, J. S. (2018). Designing a next-generation continuous software delivery system. Proceedings of the 4th International Workshop on Rapid Continuous Software Engineering - RCoSE'18, 1–7.
- Carrasco, A., Bladel, B. van, & Demeyer, S. (2018). Migrating towards microservices: migration and architecture smells. In Proceedings of the 2nd International Workshop on Refactoring - IWoR 2018 (pp. 1–6). New York, New York, USA: ACM Press.
- Ren, Z., Wang, W., Wu, G., Gao, C., Chen, W., Wei, J., & Huang, T. (2018). Migrating Web Applications from Monolithic Structure to Microservices Architecture. In Proceedings of the Tenth Asia-Pacific Symposium on Internetware - Internetware ’18 (pp. 1–10). New York, New York, USA: ACM Press.
- Taibi, D., Lenarduzzi, V., & Pahl, C. (2018). Architectural Patterns for Microservices: A Systematic Mapping Study. In Proceedings of the 8th International Conference on Cloud Computing and Services Science (pp. 221–232). SCITEPRESS - Science and Technology Publications.
- Zhou, X., Peng, X., Xie, T., Sun, J., Xu, C., Ji, C., & Zhao, W. (2018). Benchmarking microservice systems for software engineering research. In Proceedings of the 40th International Conference on Software Engineering Companion Proceeedings - ICSE ’18 (pp. 323–324). New York, New York, USA: ACM Press.
- Forsgren, N., & Kersten, M. (2018). DevOps metrics. Communications of the ACM, 61(4), 44–48.
- Balalaie, A, Heydarnoori, A, Jamshidi, P, Tamburri, DA, Lynn, T. Microservices migration patterns. Softw Pract Exper. 2018; 48: 2019--2042.
- Mazzara M., Khanda K., Mustafin R., Rivera V., Safina L., Sillitti A. (2018) Microservices Science and Engineering. In: Ciancarini P., Litvinov S., Messina A., Sillitti A., Succi G. (eds) Proceedings of 5th International Conference in Software Engineering for Defence Applications. SEDA 2016. Advances in Intelligent Systems and Computing, vol 717. Springer, Cham
- Guerrero, C., Lera, I., & Juiz, C. (2018). Resource optimization of container orchestration: a case study in multi-cloud microservices-based applications. The Journal of Supercomputing, 74(7), 2956–2983, 2018.
- L. Chen, "Microservices: Architecting for Continuous Delivery and DevOps," 2018 IEEE International Conference on Software Architecture (ICSA), Seattle, WA, 2018, pp. 39-397. doi: 10.1109/ICSA.2018.00013
- D. Guaman, L. Yaguachi, C. C. Samanta, J. H. Danilo and F. Soto, "Performance evaluation in the migration process from a monolithic application to microservices," 2018 13th Iberian Conference on Information Systems and Technologies (CISTI), Caceres, 2018, pp. 1-8. doi: 10.23919/CISTI.2018.8399148
- Felipe Osses, Gastón Márquez, and Hernán Astudillo. 2018. Exploration of academic and industrial evidence about architectural tactics and patterns in microservices. In Proceedings of the 40th International Conference on Software Engineering: Companion Proceeedings (ICSE '18). ACM, New York, NY, USA, 256-257. DOI: 10.1145/3183440.3194958
- Xili Wan, Xinjie Guan, Tianjing Wang, Guangwei Bai, Baek-Yong Choi, Application deployment using Microservice and Docker containers: Framework and optimization, Journal of Network and Computer Applications, Volume 119, 2018, Pages 97-109, ISSN 1084-8045.
- Ricardo Colomo-Palacios, Eduardo Fernandes, Pedro Soto-Acosta, Xabier Larrucea, "A case analysis of enabling continuous software deployment through knowledge management", International Journal of Information Management, Volume 40, 2018, Pages 186-189, ISSN 0268-4012.
- G. Pallis, D. Trihinas, A. Tryfonos and M. Dikaiakos, "DevOps as a Service: Pushing the Boundaries of Microservice Adoption," in IEEE Internet Computing, vol. 22, no. 3, pp. 65-71, May./Jun. 2018. doi: 10.1109/MIC.2018.032501519
- D. Taibi and V. Lenarduzzi, "On the Definition of Microservice Bad Smells," in IEEE Software, vol. 35, no. 3, pp. 56-62, May/June 2018. doi: 10.1109/MS.2018.2141031
- Abdollahi Vayghan, L., Saied, M. A., Toeroe, M., & Khendek, F. (2018). Deploying Microservice Based Applications with Kubernetes: Experiments and Lessons Learned. 2018 IEEE 11th International Conference on Cloud Computing (CLOUD), 2018-July, 970–973.
- 2017
- Bogner, J., Wagner, S., & Zimmermann, A. (2017). Towards a practical maintainability quality model for service-and microservice-based systems. In Proceedings of the 11th European Conference on Software Architecture Companion Proceedings - ECSA ’17 (pp. 195–198). New York, New York, USA: ACM Press.
- Zdun, U., Navarro, E., & Leymann, F. (2017). Ensuring and Assessing Architecture Conformance to Microservice Decomposition Patterns. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 10601 LNCS, pp. 411–429).
- Bogner, J., Wagner, S., & Zimmermann, A. (2017). Automatically measuring the maintainability of service- and microservice-based systems. In Proceedings of the 27th International Workshop on Software Measurement and 12th International Conference on Software Process and Product Measurement on - IWSM Mensura ’17 (pp. 107–115). New York, New York, USA: ACM Press.
- Shadija, D., Rezai, M., & Hill, R. (2017). Towards an understanding of microservices. In 2017 23rd International Conference on Automation and Computing (ICAC) (pp. 1–6). IEEE.
- Selimi, M., Cerda-Alabern, L., Sanchez-Artigas, M., Freitag, F., & Veiga, L. (2017). Practical Service Placement Approach for Microservices Architecture. In 2017 17th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGRID) (pp. 401–410). IEEE.
- C. Pahl, A. Brogi, J. Soldani and P. Jamshidi, "Cloud Container Technologies: a State-of-the-Art Review," in IEEE Transactions on Cloud Computing, 2017. doi: 10.1109/TCC.2017.2702586
- S. Hassan, N. Ali and R. Bahsoon, "Microservice Ambients: An Architectural Meta-Modelling Approach for Microservice Granularity," 2017 IEEE International Conference on Software Architecture (ICSA), Gothenburg, 2017, pp. 1-10. doi: 10.1109/ICSA.2017.32
- Erich, FMA, Amrit, C, Daneva, M. A qualitative study of DevOps usage in practice. J Softw Evol Proc. 2017; 29: e1885. doi: 10.1002/smr.1885
- Chen, R., Li, S., & Li, Z. (2017). "From Monolith to Microservices: A Dataflow-Driven Approach". In 2017 24th Asia-Pacific Software Engineering Conference (APSEC) (Vol. 2017–Decem, pp. 466–475). IEEE. https://doi.org/10.1109/APSEC.2017.53
- Viral Gupta, P.K. Kapur, Deepak Kumar, "Modeling and measuring attributes influencing DevOps implementation in an enterprise using structural equation modeling", Information and Software Technology, Volume 92, 2017, Pages 75-91, ISSN 0950-5849, https://doi.org/10.1016/j.infsof.2017.07.010.
- C. Barna, H. Khazaei, M. Fokaefs and M. Litoiu, "Delivering Elastic Containerized Cloud Applications to Enable DevOps," 2017 IEEE/ACM 12th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS), Buenos Aires, 2017, pp. 65-75. doi: 10.1109/SEAMS.2017.12
- Nane Kratzke, Peter-Christian Quint, "Understanding cloud-native applications after 10 years of cloud computing - A systematic mapping study", Journal of Systems and Software, Volume 126, 2017, Pages 1-16, ISSN 0164-1212, https://doi.org/10.1016/j.jss.2017.01.001.
- O'Connor, RV, Elger, P, Clarke, PM. "Continuous software engineering—A microservices architecture perspective". J Softw Evol Proc. 2017; 29: e1866. DOI: 10.1002/smr.1866
- Garriga M. (2018) Towards a Taxonomy of Microservices Architectures. In: Cerone A., Roveri M. (eds) Software Engineering and Formal Methods. SEFM 2017. Lecture Notes in Computer Science, vol 10729. Springer, Cham
- M. Waseem and P. Liang, "Microservices Architecture in DevOps," 2017 24th Asia-Pacific Software Engineering Conference Workshops (APSECW), Nanjing, 2017, pp. 13-14. doi: 10.1109/APSECW.2017.18.
- Mazlami, G., Cito, J., & Leitner, P. (2017). "Extraction of Microservices from Monolithic Software Architectures". In 2017 IEEE International Conference on Web Services (ICWS) (pp. 524–531). IEEE. doi: 10.1109/ICWS.2017.61
- Koschel, A., Astrova, I., & Dotterl, J. (2017). "Making the move to microservice architecture". In 2017 International Conference on Information Society (i-Society) (Vol. 2018–Janua, pp. 74–79). IEEE. doi: 10.23919/i-Society.2017.8354675
- Bakshi, K. (2017). "Microservices-based software architecture and approaches". In 2017 IEEE Aerospace Conference (pp. 1–8). IEEE. doi: 10.1109/AERO.2017.7943959
- M. Kassab, J. F. DeFranco and P. A. Laplante, "Software Testing: The State of the Practice," in IEEE Software, vol. 34, no. 5, pp. 46-52, 2017. doi: 10.1109/MS.2017.3571582
- R. Valerdi, "Why Software Is Like Baseball," in IEEE Software, vol. 34, no. 5, pp. 7-9, 2017. doi: 10.1109/MS.2017.3571583
- M. Kersten, "Value Stream Architecture," in IEEE Software, vol. 34, no. 5, pp. 10-12, 2017. doi: 10.1109/MS.2017.3571573
- E. Woods, "Should Architects Code?," in IEEE Software, vol. 34, no. 5, pp. 20-21, 2017. doi: 10.1109/MS.2017.3571574
- J. C. Carver, B. Penzenstadler, A. Serebrenik and A. Yamashita, "The Human Factor," in IEEE Software, vol. 34, no. 5, pp. 90-92, 2017. doi: 10.1109/MS.2017.3571580
- K. Carter, "Francois Raynaud on DevSecOps," in IEEE Software, vol. 34, no. 5, pp. 93-96, 2017. doi: 10.1109/MS.2017.3571578
- 2016
- Riungu-Kalliosaari, L., Mäkinen, S., Lwakatare, L. E., Tiihonen, J., & Männistö, T. (2016). DevOps Adoption Benefits and Challenges in Practice: A Case Study. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 10027 LNCS, pp. 590–597).
- Leitner, P., Cito, J., & Stöckli, E. (2016). Modelling and managing deployment costs of microservice-based cloud applications. In Proceedings of the 9th International Conference on Utility and Cloud Computing - UCC ’16 (pp. 165–174). New York, New York, USA: ACM Press.
- Pahl, C., & Jamshidi, P. (2016). Microservices: A Systematic Mapping Study. In Proceedings of the 6th International Conference on Cloud Computing and Services Science (pp. 137–146). SCITEPRESS - Science and and Technology Publications.
- L. Zhu, L. Bass and G. Champlin-Scharff, "DevOps and Its Practices," in IEEE Software, vol. 33, no. 3, pp. 32-34, May-June 2016. doi: 10.1109/MS.2016.81
- D. Jaramillo, D. V. Nguyen and R. Smart, "Leveraging microservices architecture by using Docker technology," SoutheastCon 2016, Norfolk, VA, 2016, pp. 1-5. doi: 10.1109/SECON.2016.7506647
- T. Salah, M. Jamal Zemerly, Chan Yeob Yeun, M. Al-Qutayri and Y. Al-Hammadi, "The evolution of distributed systems towards microservices architecture," 2016 11th International Conference for Internet Technology and Secured Transactions (ICITST), Barcelona, 2016, pp. 318-325. doi: 10.1109/ICITST.2016.7856721.
- N. Alshuqayran, N. Ali and R. Evans, "A Systematic Mapping Study in Microservice Architecture," 2016 IEEE 9th International Conference on Service-Oriented Computing and Applications (SOCA), Macau, 2016, pp. 44-51. doi: 10.1109/SOCA.2016.15.
- Lin, J., Lin, L. C., & Huang, S. (2016). "Migrating web applications to clouds with microservice architectures". In 2016 International Conference on Applied System Innovation (ICASI) (pp. 1–4). IEEE. https://doi.org/10.1109/ICASI.2016.7539733 doi: 10.1109/SOCA.2016.15.
- H. Kang, M. Le and S. Tao, "Container and Microservice Driven Design for Cloud Infrastructure DevOps," 2016 IEEE International Conference on Cloud Engineering (IC2E), Berlin, 2016, pp. 202-211. doi: 10.1109/IC2E.2016.26
- A. Balalaie, A. Heydarnoori and P. Jamshidi, "Microservices Architecture Enables DevOps: Migration to a Cloud-Native Architecture," in IEEE Software, vol. 33, no. 3, pp. 42-52, 2016. doi:10.1109/MS.2016.64
- Schermann G, Cito J, Leitner P, Zdun U, Gall H. 2016. An empirical study on principles and practices of continuous delivery and deployment. PeerJ Preprints 4:e1889v1. DOI: 10.7287/peerj.preprints.1889v1.
- 2015
- Balalaie A., Heydarnoori A., Jamshidi P. (2016) Migrating to Cloud-Native Architectures Using Microservices: An Experience Report. In: Celesti A., Leitner P. (eds) Advances in Service-Oriented and Cloud Computing. ESOCC 2015. Communications in Computer and Information Science, vol 567. Springer, Cham
- Lwakatare L.E., Kuvaja P., Oivo M. (2015) "Dimensions of DevOps". In: Lassenius C., Dingsøyr T., Paasivaara M. (eds) Agile Processes in Software Engineering and Extreme Programming. XP 2015. Lecture Notes in Business Information Processing, vol 212. Springer, Cham
- 2014
- Böhmann, T., Leimeister, J. M., & Möslein, K. (2014). Service Systems Engineering. Business & Information Systems Engineering, 6(2), 73–79.
Espera-se que os alunos vivenciem exposição prática a ferramentas, processos e princípios do desenvolvimento de aplicações baseadas na arquitetura de microservices, juntamente com as boas práticas e técnicas de implantação nos princípios de DevOps e as vantagens e desafios do uso e imersão na Computação em Nuvem através de projetos práticos, enquanto compreendem modelos e ideias de pesquisa por trás das ferramentas e processos. As aulas incluirão experiências de aprendizagem no estilo de workshops, onde os alunos irão trabalhar em um problema e receberão comentários do professor, colaboradores convidados e outros colegas de classe. Quando possível, palestras convidadas da indústria ajudarão a ilustrar exemplos de como a tecnologia é implantada na prática.
Na disciplina, será utilizada uma mistura de aulas tradicionais com atividades e workshops em sala de aula. Durante as aulas, abordaremos conceitos básicos relacionados aos tópicos a serem tratados na disciplina. Durante os workshops em sala de aula, realizaremos exemplos de exercícios com ferramentas relevantes que reforçam o material de aula. As avaliações serão baseadas nas aulas, exercícios dirigidos, workshops e o projeto final.
Para participar deste curso é desejável que os participantes tenham:
- Conhecimento básico de inglês técnico para leitura, estudo e acompanhamento das atividades propostas, uma vez que a maior parte do material disponível está em inglês.
- Conhecimento básico de arquitetura de computador, sistemas operacionais, redes, engenharia de software e banco de dados.
- Conhecimento de modelos de processo de desenvolvimento de software, em especial Metodologias Ágeis, testes de software. Conhecimento em TDD e BDD serão uma vantagem. Maiores informações podem ser consultadas no site da disciplina de Engenharia de Software (IF977).
- Experiência em sistemas de computação, armazenamento, infraestruturas de rede e computação em nuvem será uma vantagem.
- Projeto em equipe com até 3 membros [70%]
- Caráter puramente acadêmico e educacional. O projeto vai tratar de diversos aspectos do desenvolvimento de uma aplicação simples com arquitetura de microsserviços.
- Observações:
- Entrega fora do prazo: redutor de 1 ponto por dia de atraso.
- Atraso máximo: 1 (uma) semana. Após esse prazo, será dada nota zero para a respectiva atividade de avaliação.
- Trabalhos com referências bibliográficas inconsistentes terão um redutor no conteúdo técnico.
- Trabalhos “CTRL-C + CTRL-V” terão nota zero (vale tanto para cópia de colegas, como para trabalhos copiados da internet).
- Exercício Escolar Teórico Individual e/ou Atividades Práticas Individuais [30%]
- Exercício com questões objetivas
- Como atividade de recuperação é proposta a aplicação de um Exercício Escolar abordando os temas apresentados e discutidos em classe.
- 2020.3
- Equipe microservices-communication
- Equipe Stackprior
- Equipe Logs, mô?
- Equipe observable-api-gateway
- Equipe Microsservices Logs Management
- Equipe Saga orchestrator microservice
- Equipe MicroServices-Guide
- 2020.1*
- Equipe MLog
- Equipe Flogi
- Equipe MicroObs
- Equipe KubeKepam
- Equipe Cloud Walker Toolkit
- Equipe observability_microservices
- Equipe Vacation Rental Analyzer
- 2019.1
- Equipe Hangry
- Equipe Face Detection System
- Equipe Logs efetivos: um impacto direto na observabilidade de microsserviços
- Equipe Shared Sessions
- Equipe Construindo Microservices com Spring Cloud Netflix: Agenda & Configuração
- Equipe DCM - Data Centering Middleware
- Equipe Automatizando a Implantação de aplicações Baseadas em Microsserviços
- Equipe Greenhouse Delivery On Minikube
- Equipe MoreHealth
- Equipe Uma Arquitetura Micros Serviços com Ênfase em CQRS – Um Relatório Técnico
- Equipe A Microservice Refactor on Open Source Project Vitaes
- Equipe Iudex private project, sorry :)
- Equipe A demo application based on microservices architecture
- Equipe Estufa Collection
- 2018.1
- Equipe Porquin
- Equipe Scale
- Equipe CSD (Catalog Series and Drama) Service
- Equipe Horários acadêmicos
- Equipe Wyatt
- Equipe SWAN
- Equipe Hygieia Dashboard Clusterized on Kubernetes
- Equipe Cartola-MicroServices
- Equipe Greenhouse delivery
- Equipe HAUL-AWS
- Play with Docker: A simple, interactive and fun playground to learn Docker
- Play with Kubernetes: A simple, interactive and fun playground to learn Kubernetes
- Envoy Proxy: An Open Source Edge and Service Proxy, Designed for Cloud-Native Applications
- 5 Best API Documentation Tools, by Susanna Bouse -- July 7, 2020
- Sock Shop: A Microservices Demo Application
- Hispter Shop (Online Boutique): A cloud-native microservices demo application form Google (10 microservices)
- Stan's Robot Shop: A sample microservice application you can use as a sandbox to test and learn containerised application orchestration and monitoring techniques
- TrainTicket: A Benchmark Microservice System (41 microservices)
- DeathStarBench: Open-source benchmark suite for cloud microservices (5 microservices)
- TeaStore: A microservice reference and test application to be used in benchmarks and tests (5 microservices)
- A curated list of Open Source projects developed with a microservices architectural style
- Welcome, Methodology, Course Introduction (Core Topics)
- Introduction to Microservices Concepts
- Demystifying Microservices
- Building Microservices with Spring Boot
- Applying Microservices Concepts
- Microservices Evolution – A Case Study
- Scaling Microservices with Spring Cloud
- Autoscaling Microservices
- Logging and Monitoring Microservices
- Containerizing Microservices with Docker
- Managing Dockerized Microservices with Mesos and Marathon
- Kubernetes orquestration enviroment
- The Microservices Development Life Cycle
Após a iniciativa de construção desta disciplina, outras nasceram motivadas por este movimento ou inspiradas nos tópicos aqui cobertos. São elas:
- Desmistificando DevOps: Projetando Arquiteturas Efetivamente Escaláveis, Prof. Vinicius Garcia, Centro de Informática - UFPE
- Programação para a Web 2, Prof. Diego Pessoa, CST em Análise e Desenvolvimento de Sistemas, IFPB - Campus Cajazeiras