Sistemas de Informação, Centro de Informática, (UFPE)
- Professor Vinicius Cardoso Garcia ([email protected])
- Professor Colaborador Vanilson Burégio ([email protected]), UFRPE
- Professor Colaborador Rodrigo Elia Assad ([email protected]), UFRPE
- Pós-Graduação: IN0980 - Tópicos Avançados em Engenharia de Software 3
- Graduação: IF1004 - Seminários em Sistemas de Informação 3
Centro de Informática, horários: segunda (17:00-18:40) e quarta (18:50-20:30), sala D004.
Aulas práticas, quando ocorreram, serão no Lab G2.
- Temos um canal no Telegram para uma comunicação mais dinâmica: Reliability Engineering Group Channel
As modernas organizações de desenvolvimento de software exigem equipes inteiras de DevOps para automatizar e manter processos de engenharia de software e infraestrutura vitais para a organização. Nesta disciplina, os alunos terão exposição prática às habilidades, ferramentas e conhecimentos necessários para automatizar processos e infraestruturas de engenharia de software. Os alunos terão a chance de criar novas, ou ampliar, ferramentas existentes de engenharia de software e projetar um pipeline DevOps.
Não há livro texto obrigatório. Entretanto, a seguir estão alguns livros que podem ser recomendados:
- The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations, by Gene Kim, Patrick Debois, John Willis, Jez Humble. IT Revolution Press, 2016.
- DevOps: A Software Architect's Perspective (SEI Series in Software Engineering), by Len Bass, Ingo Weber, Liming Zhu. Addison-Wesley Professional; 1 edition (May 28, 2015).
- Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation, by Jez Humble, David Farley. Addison-Wesley Professional; Edição: 1, 2010.
- Continuous Integration: Improving Software Quality and Reducing Risk, by Paul M. Duvall, Steve Matyas, Andrew Glover. Addison-Wesley Professional, 2007.
- Site Reliability Engineering: How Google runs Production Systems. Edited by Betsy Beyer, Chris Jones, Jennifer Petoff and Niall Richard Murphy. O'Reilly Media, Incorporated, 2016.
- DevOps na prática: entrega de software confiável e automatizada, by Danilo Sato. Casa do Código, 2013.
- The Site Reliability Workbook, Edited by Betsy Beyer, Niall Richard Murphy, David K. Rensin, Kent Kawahara and Stephen Thorne. O'Reilly Media, Inc., 2018.
- The evolution of DevOps
- Continous Integration
- The Practice of Cloud System Administration
- Building Microservices: Designing Fine-Grained Systems
- Entrega contínua em Android: Como automatizar a distribuição de apps
- Continuous Delivery with Docker and Jenkins, by Rafał Leszko. Packt Publishing, 2017.
- Architecting and Designing
- Designing Data-Intensive Applications
- Caixa de Ferramentas DevOps: Um guia para construção, administração e arquitetura de sistemas modernos
- The Architecture of Open Source Applications
- Pattern: Monolithic Architecture
- Pattern: Microservice Architecture
- Pattern API Gateway - APIs em uma arquitetura de microservices, by Petterson Andrade -- Jun 30, 2016
- How to Write Great API Documentation Every Time
- Layering Microservices
- From MVC to Modern Web Frameworks, by Robert Zhu -- Dec 6, 2018
- Principles of Container-based Application Design
- Simon Brown on the Role of the Software Architect in a Continuous Delivery Environment
- Ansible
- AWS
- Cloud Computing and other Technologies
- The Future of Cloud Providers in Kubernetes, Authors: Andrew Sy Kim (VMware), Mike Crute (AWS), Walter Fender (Google) -- April 17, 2019
- Cloud Computing: Concepts, Technology & Architecture
- Four Layers of TCP/IP model, Comparison and Difference between TCP/IP and OSI models
- The Google Cloud Developer Cheat Sheet
- Public Cloud Services Comparison
- VMs vs. Containers for Microservices, by Spruha Pandya -- Mar 19, 2019
- Public Cloud Services Comparison
- Package Management Basics: apt, yum, dnf, pkg (by Digital Ocean
- Continuous Integration, Deployment or Delivery
- Anti Patterns of Continuous Integration, Mritunjay Dubey -- Apr 23, 2019
- Continuous Delivery Metrics: Part 1: Why measure your CD process, Part 2: How often do you deploy to production?, Part 3: How long does it take to get from committing code to production?, Aravind S.V and Suzie Prince.
- 2018 CONTAINER ADOPTION BENCHMARK SURVEY, by Diamanti -- July 31, 2018
- CI/CD with Angular 6 & Firebase & GitLab: Automate build, test and deployment using GitLab CI/CD, by Kai Niklas -- Dec 23 - 2018.
- DevOps101: How To Provide Infrastructure To Your Startup In 7 Easy Steps, by Rafael Belchior -- Dec 2018
- Practical DevOps, by Joakim Verona. Packt Publishing Limited -- 2016.
- Implementing DevOps on AWS, by Veselin Kantsev. Packt Publishing Limited -- 2017.
- Package Management Basics: apt, yum, dnf, pkg (by Digital Ocean
- Continous Delivery
- Best Jenkins alternatives. Top CI/CD Tools for your Android and iOS projects
- Continous Integration
- Culture, Methods, Processes and Paradigms
- What Is Containerization?, by Shaan RayFollow, Feb 5 - 2019.
- The 2018 DevOps RoadMap: An illustrated guide to becoming a DevOps Engineer with links to relevant courses, by javinpaul -- Oct 7, 2018
- Why DevOps and Security Should Go Hand in Hand?
- SRE vs. DevOps — The Dilemma
- 10deploys (Podcast) - Site Reliability Engineering no Google
- 10deploys (Podcast) - DevOps e Continuous Delivery na Leroy Merlin
- Is DevOps leaving developers behind?
- DevOps Team Roles And Responsibilities
- The Evolution of DevSecOps Revisited
- Why companies need a container strategy now
- Demystified: 5 Myths of DevOps Services
- Systems Performance: Enterprise and the Cloud
- Roadmap to becoming a web developer in 2018
- Desenvolvendo, expandindo e amadurecendo a prática de Engenharia de Caos
- Docker
- WTF is Docker?, A brief explanation of Docker and Docker compose in English
- Docker In A Nutshell
- What You Need to Know about Docker, by Scott Gallagher. Packt Publishing Limited.
- Docker Cookbook, by Neependra Khare. Packt Publishing Limited -- 2015.
- Docker on Windows, by Elton Stoneman. Packt Publishing Limited -- 2017.
- Learning Docker - Second Edition, by Jeeva S. Chelladhurai, Vinod Singh, Pethuru Raj. Packt Publishing Limited -- 2017.
- Mastering Docker - Second Edition, by Russ McKendrick, Scott Gallagher. Packt Publishing Limited -- 2017.
- Como Construir Imagens Docker e Hospedar um Repositório de Imagens Docker com o GitLab
- 10 Free Courses to Learn Docker for Programmers and DevOps Engineers
- The Future of Docker Swarm -- Sep 06, 2018
- Docker Commands — The Ultimate Cheat Sheet
- Docker Tutorial Series Part 1: Images, Layers and Dockerfile
- Docker Tutorial Series Part 2: Microservice Architecture
- Mike Coleman (Docker Employee) "Docker for the Virtualization Admin" eBook
- Containers com Docker: Do desenvolvimento à produção
- Docker Tutorials and Labs (This repo contains Docker labs and tutorials authored both by Docker, and by members of the community)
- Tupperware: Containerized Deployment at FB
- Docker Cloud Fleet Management and Collaboration (YouTube)
- Journey to Docker Production: Evolving Your Infrastructure and Processes, Bret Fisher: Independent Docker and DevOps Consultant, DockerCon17 in Austin
- Taking Docker to Production: What You Need to Know and Decide, Bret Fisher: Independent Docker and DevOps Consultant, DockerCon Europe 2017
- 7 best practices for building containers
- Rodando aplicações GUI em Docker (Youtube)
- 8 Tips for Containerizing Django Apps
- Google Cloud
- Jenkins
- Kubernetes
- Kubernetes Failure Stories, a compiled list of links to public failure stories related to Kubernetes.
- Você sabe qual a origem do Kubernetes do Google Cloud?, bt Renê Fraga -- May 28, 2019
- Jérôme Petazzoni - Talk about Kubernetes | ContainerWeek, by Jérôme Petazzoni -- April 8, 2019.
- KUBECTL PARA PREGUIÇOSOS, by Wellington Bastos -- March 17, 2019.
- Instalando e configurando kubernetes localmente com o minikube no Mac OSX, by Vinicius Garcia -- Jan 03, 2019
- Solving the Kubernetes and Storage Challenge -- Dec 5, 2018
- Kubernetes vs Docker Swarm — A Comprehensive Comparison, by Harsh Binani -- Dec 4, 2018.
- Kubernetes Cookbook, by Hideto Saito, Hui-Chuan Chloe Lee, Ke-Jou Carol Hsu. Packt Publishing Limited -- 2017.
- [Mastering Kubernetes], by Gigi Sayfan. Packt Publishing Limited -- 2017.
- Como Criar um Cluster Kubernetes 1.10 Usando Kubeadm no CentOS 7
- Como Criar um Cluster Kubernetes 1.11 Usando Kubeadm no Ubuntu 18.04
- From open source to sustainable success: the Kubernetes graduation story
- Top 10 Kubernetes tips and tricks
- Criando um cluster simples em cloud com o kubeadm
- 11 Ways (Not) to Get Hacked - Kubernetes
- Kubernetes Ingress: NodePort, Load Balancers, and Ingress Controllers
- Kubernetes best practices: Resource requests and limits
- Kubernetes: dicas e truques na orquestração de containers Parte 1, Parte 2, Parte 3, Parte 4, by Renato Groffe
- Microservices
- 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
- 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
- The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win
- 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
- Developing Microservices with Behavior Driven Development and Interface Oriented Design, by Kenneth Pugh -- Jan 26, 2019
- LinuxFoundationX: LFS132x Introduction to Cloud Foundry and Cloud Native Software Architecture
- Architecting Distributed Cloud Applications
- Rancher
- Serverless
- Building a Serverless Microservice CRUD RESTful API with MongoDB, Richard Freeman, PhD, Jan 29 - 2019.
- What is Serverless and What it Means for You - Part 1, Part 2, Part 3, Part 4, Part 5
- Why you should consider Serverless for your startup -- Dec 4, 2018
- 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.
- Spring IO
- Spring Boot: Acelere o desenvolvimento de microsserviços
- Getting Started with Feign Client in Spring
- Microservices and Cloud-Native Applications with Spring 5.0
- Advanced Spring Boot
- Source code from "Learning Spring Boot" (original and upgrades)
- 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
- Swarm
- Docker 1.12 Swarm Mode Deep Dive Part 1: Topology
- Docker 1.12 Swarm Mode Deep Dive Part 2: Orchestration
- Heart of the SwarmKit: Topology Management by Andrea Luzzardi
- Everything You Thought You Already Knew About Orchestration, Laura Frank from DockerCon 2017
- Using Prune to Keep Your Docker System Clean (YouTube)
- Terraform
- HashiCorp Terraform Associate Certification Study Course – Pass the Exam With This Free 12+ Hour Course, by Andrew Brown -- Oct 5, 2021
- Testes
- Travis CI
- Travis CI, Test and Deploy with Confidence
- Learn how to automate deployment on GitHub-pages with Travis CI, by Dhruv BarochiyaFollow -- Jun 21, 2019
- DevOps - p de Podcast, 11 de Setembro de 2020, Neste episódio discutimos a Cultura DevOps, partindo do significado de termos como Integração Contínua e Entrega Contínua, passando pela automação necessária no desenvolvimento e na infraestrutura até como começar a praticar em contextos diferentes. Contamos com a participação especial do Leonardo Leite, pesquisador/doutorando da USP.
- Introduction to DevOps: Transforming and Improving Operations, Learn how to transform your organization using the principles and practices of DevOps.
- A biblioteca do Desenvolvedor de Software dos dias de hoje
- Cinco coisas que todo desenvolvedor de software deve saber sobre Arquitetura de Software
- 12 Fractured Apps
- The twelve-factor app
- The Google Cloud Developer Cheat Sheet
- LFS158x: Introduction to Kubernetes
- Introduction to Cloud Infrastructure Technologies
- Fundamentals of Containers, Kubernetes, and Red Hat OpenShift
- Architecting Distributed Cloud Applications
- #5 Certificações do Docker (DCA) e Kubernetes (CKA e CKAD) | ContainerWeek, by LINUXtips -- Transmitido ao vivo em 12 de abr de 2019
- An introduction to immutable infrastructure
- Is DevOps driving enterprise cloud adoption or vice versa?
- Kubernetes Ingress: NodePort, Load Balancers, and Ingress Controllers
- Deploying Java Applications with Docker and Kubernetes & oreilly-docker-java-shopping
- Deploying Java Applications with Kubernetes and an API Gateway
- Where to Start with DevOps Series, October 17, 2016 by Gene Kim (must read!)
- Simon Brown on the Role of the Software Architect in a Continuous Delivery Environment
- IF1006 - TÓPICOS AVANÇADOS EM SISTEMAS DE INFORMAÇÃO 3 (SERVIÇOS E INFRAESTRUTURA DE NUVEM) - 2017.1
- IF1007 - Desenvolvimento de Aplicações com Arquitetura Baseada em Microservices
- Google Cloud Platform Blog
- DevOps | AWS Cloud | Cloud Tutorials for Beginners
- Containers Patterns: There are a thousand ways to use containers
- Principles of Container-based Application Design
- Docker, FROM scratch - Aaron Powell [YouTube], NDC Conferences, Publicado em 25 de set de 2017
- Hands on Lab Overview: DevOps Cloud Native Microservices Development - YouTube
- Spotify: An Early Adopter of Containers, Spotify Is Migrating from Homegrown Orchestration to Kubernetes
- DevOps in Healthcare: Benefits & Case Studies -- Sep 17, 2018.
- Monitoring containerized microservices with a centralized logging architecture. A case study of Project Horus -- Sep 12, 2018.
- DevOps in Financial Services: Benefits, Myths, Case studies -- Sep 11, 2018
- Forced Evolution: Shopify's Journey to Kubernetes -- June 25-26, 2018
- The Secret to Amazons Success Internal APIs -- Jan 12, 2012
- SOA done right: the Amazon strategy -- Jun 26, 2007
- Building Products at SoundCloud — Part I: Dealing with the Monolith, By Phil Calçado -- June 11th, 2014
- Building Products at SoundCloud—Part II: Breaking the Monolith, By Phil Calçado -- June 12th, 2014
- MicroServices at Netflix, August 8, 2014
- How we build microservices at Karma -- Apr 4, 2016
- The Top 10 Adages in Continuous Deployment, by InfoQ -- Sep 19, 2017
- Spotify Lessons: Learning to Let Go of Machines, by James Wen -- Sep 19, 2017
- 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.
- 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/
- 2021
- N. C. Mendonça, C. Box, C. Manolache and L. Ryan, "The Monolith Strikes Back: Why Istio Migrated From Microservices to a Monolithic Architecture," in IEEE Software, vol. 38, no. 5, pp. 17-22, Sept.-Oct. 2021, doi: https://doi.org/10.1109/MS.2021.3080335.
- 2019
- Leonardo Leite, Carla Rocha, Fabio Kon, Dejan Milojicic, and Paulo Meirelles. 2019. A Survey of DevOps Concepts and Challenges. ACM Comput. Surv. 52, 6, Article 127 (January 2020), 35 pages. DOI: https://doi.org/10.1145/3359981
- Welder Pinheiro Luz, Gustavo Pinto, Rodrigo Bonifácio, Adopting DevOps in the real world: A theory, a model, and a case study, Journal of Systems and Software, Volume 157, 2019, 110384, ISSN 0164-1212, doi: https://doi.org/10.1016/j.jss.2019.07.083.
- 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.
- Architecture and Design InfoQ Trends Report - January 2019, by Daniel Bryant & Thomas Betts & Charles Humble, Jan 24, 2019.
- 2018
- Forsgren, N., & Kersten, M. (2018). DevOps metrics. Communications of the ACM, 61(4), 44–48.
- 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
- 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
- H. Zhu and I. Bayley, "If Docker is the Answer, What is the Question?," 2018 IEEE Symposium on Service-Oriented System Engineering (SOSE), Bamberg, 2018, pp. 152-163. doi: 10.1109/SOSE.2018.00027
- Jez Humble. 2018. Continuous delivery sounds great, but will it work here?. Commun. ACM 61, 4 (March 2018), 34-39. DOI: https://doi.org/10.1145/3173553.
- 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
- 2017
- 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.
- Bass, L. (2017). The Software Architect and DevOps. IEEE Software, 35(1), 8–10. https://doi.org/10.1109/MS.2017.4541051.
- Jaemyoun Lee and Kyungtae Kang. 2017. Poster: A Lightweight Live Migration Platform with Container-based Virtualization for System Resilience. In Proceedings of the 15th Annual International Conference on Mobile Systems, Applications, and Services (MobiSys '17). ACM, New York, NY, USA, 158-158. DOI: 10.1145/3081333.3089302.
- Eddie Antonio Santos, Carson McLean, Christopher Solinas, Abram Hindle, How does Docker affect energy consumption? Evaluating workloads in and out of Docker containers, 2 May 2017.
- 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
- 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.
- 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
- Y. Zhao, A. Serebrenik, Y. Zhou, V. Filkov and B. Vasilescu, "The impact of continuous integration on other software development practices: A large-scale empirical study," 2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE), Urbana, IL, 2017, pp. 60-71.
- Lianping Chen, Continuous Delivery: Overcoming adoption challenges, Journal of Systems and Software, Volume 128, 2017, Pages 72-86, ISSN 0164-1212, https://doi.org/10.1016/j.jss.2017.02.013.
- 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. doi: 10.1016/j.jss.2017.01.001.
- Eero Laukkanen, Juha Itkonen, Casper Lassenius, Problems, causes and solutions when adopting continuous delivery—A systematic literature review, Information and Software Technology, Volume 82, 2017, Pages 55-79, ISSN 0950-5849, https://doi.org/10.1016/j.infsof.2016.10.001.
- Pilar Rodríguez, Alireza Haghighatkhah, Lucy Ellen Lwakatare, Susanna Teppola, Tanja Suomalainen, Juho Eskeli, Teemu Karvonen, Pasi Kuvaja, June M. Verner, Markku Oivo. Continuous deployment of software intensive products and services: A systematic mapping study. In: Journal of Systems and Software, Volume 123, 2017, Pages 263-291, ISSN 0164-1212. doi: 10.1016/j.jss.2015.12.015.
- Brian Fitzgerald, Klaas-Jan Stol, Continuous software engineering: A roadmap and agenda, Journal of Systems and Software, Volume 123, 2017, Pages 176-189, ISSN 0164-1212, https://doi.org/10.1016/j.jss.2015.06.063.
- 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
- 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
- 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
- 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
- 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.
- 2016
- 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
- Savor, T., Douglas, M., Gentili, M., Williams, L., Beck, K., & Stumm, M. (2016). Continuous deployment at Facebook and OANDA. In Proceedings of the 38th International Conference on Software Engineering Companion - ICSE ’16 (pp. 21–30). New York, New York, USA: ACM Press.
- M. Ficco, C. Esposito, H. Chang and K. R. Choo, "Live Migration in Emerging Cloud Paradigms," in IEEE Cloud Computing, vol. 3, no. 2, pp. 12-19, Mar.-Apr. 2016. doi: 10.1109/MCC.2016.48
- Spinellis, D. (2016). Being a DevOps Developer. IEEE Software, 33(3), 4–5. doi: 10.1109/MS.2016.76
- Brendan Burns, Brian Grant, David Oppenheimer, Eric Brewer, John Wilkes. Borg, Omega, and Kubernetes. Communications of the ACM, May 2016, Vol. 59 No. 5, Pages 50-57. doi: 10.1145/2890784.
- Sergei Arnautov, Bohdan Trach, Franz Gregor, Thomas Knauth, Andr ́e Martin, Christian Priebe, Joshua Lind, Divya Muthukumaran, Dan O’Keeffe, Mark Still- well, David Goltzsche, David M. Eyers, Ru ̈diger Kapitza, Peter R. Pietzuch, and Christof Fetzer. SCONE: Secure Linux Containers with Intel SGX. In 12th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2016, Savan- nah, GA, USA, November 2-4, 2016., pages 689–703, 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).
- 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
- 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.
- Ebert, C., Gallardo, G., Hernantes, J., & Serrano, N. (2016). DevOps. IEEE Software, 33(3), 94–100. https://doi.org/10.1109/MS.2016.68
- 2015
- C. Pahl, "Containerization and the PaaS Cloud," in IEEE Cloud Computing, vol. 2, no. 3, pp. 24-31, May-June 2015. doi: 10.1109/MCC.2015.51
- Gerry Gerard Claps, Richard Berntsson Svensson, Aybüke Aurum, On the journey to continuous deployment: Technical and social challenges along the way, Information and Software Technology, Volume 57, 2015, Pages 21-31, ISSN 0950-5849, https://doi.org/10.1016/j.infsof.2014.07.009.
- 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
Espera-se que os alunos vivenciem exposição prática a ferramentas, processos e princípios de engenharia de software 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.
- Play-with-docker: a simple, interactive and fun playground to learn Docker
- Play-with-k8s
- Spring Cloud Microservice Example
- An empirical study on principles and practices of continuous delivery and deployment
- The Difference between SOA and Microservices?
- Large-scale cluster management at Google with Borg
- DevOps: CSC 519, Prof. Chris Parnin, NC State University
- Desenvolvimento de Aplicações com Arquitetura Baseada em Microservices, 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
- 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, serviço ou solução de apoio ao paradigma DevOps no ciclo de vida de software.
- O projeto é constituído da solução e todos os artefatos que a compõem (i.e. código fonte, imagens, arquivos de configuração, scripts, documentações de apoio, entre outras), um relatório técnico final contendo a contextualização, escopo, tomadas de decisão, documentação da arquitetura da solução, projeto de implantação, etc.
- A apresentação oral do projeto também conta como uma parte da avaliação do mesmo, todos os membros do time devem estar presentes.
- 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.
Classes | Topics | Resources | Assignments |
---|---|---|---|
Aug-05 | Welcome, Methodology, Course Introduction (Core Topics) | Paper-01 & Post-01 | HW1 |
Aug-07 | Background: What is DevOps (Chapter 1 from Len Bass' book) | Paper-02 | HW2 |
Aug-12 | Background: The Cloud as a Platform (Chapter 2 from Len Bass' book) | Suggestion | Paper-03 |
Aug-14 | Background: Operations (Chapter 3 from Len Bass' book) | Paper-04 | HW3 |
Aug-19 | The Deployment Pipeline: Overall Architecture (Chapter 4 from Len Bass' book) | ||
Aug-21 | The Deployment Pipeline: Building and Testing (Chapter 5 from Len Bass' book) | HW4 | |
Aug-26 | The Deployment Pipeline: Deployment (Chapter 6 from Len Bass' book) | HW12 | |
Aug-28 | Containerizing with Docker | Docker CheatSheet Docker Commands — The Ultimate Cheat Sheet |
HW13 |
Sep-02 | Docker Fundamentals (exercises 1-18) | HW13 | |
Sep-04 | Docker Fundamentals (exercises 1-18) | HW13 | |
Sep-09 | Seminar "The Deployment Pipeline: Scalability Issues" | Paper-05 and Paper-06 | |
Sep-11 | Seminar "The Deployment Pipeline: Scalability Issues" | Paper-05 and Paper-06 | |
Sep-16 | Crosscutting Concerns: Monitoring (Chapter 7 from Len Bass' book) | ||
Sep-18 | Crosscutting Concerns: Monitoring | Exercises | |
Sep-23 | Crosscutting Concerns: Security and Security Audits (Chapter 8 from Len Bass' book) | ||
Sep-25 | Other *Ilities (Chapter 9 from Len Bass' book) | Paper-07 | HW6 |
Sep-30 | Managing Dockerized Microservices with Mesos and Marathon 1/2 | ||
Oct-02 | Managing Dockerized Microservices with Mesos and Marathon 2/2 | ||
Oct-07 | Introduction to Kubernetes 1/2 | ||
Oct-09 | Introduction to Kubernetes 2/2 | ||
Oct-14 | Presentation and project | PROJECT | |
Oct-16 | Read Architectural Design Decisions Papers | Paper-8 & Paper-9 | |
Oct-21 | Migrating Applications to Native Cloud Architectures | Post-02 | HW8 |
Oct-23 | Migrating Applications to Native Cloud Architectures | Post-03 | HW9 |
Oct-28 | Business Considerations (Chapter 10 from Len Bass' book) | HW10 | |
Oct-30 | Moving into the Future & The Future of DevOps (Chapters 14 & 15 from Len Bass' book) | ||
Nov-04 | DevOps Projects proposal presentation | ||
Nov-06 | DevOps Projects execution | ||
Nov-11 | DevOps Projects execution | ||
Nov-13 | DevOps Projects execution | ||
Nov-18 | DevOps Projects execution | ||
Nov-20 | DevOps Projects execution | ||
Nov-25 | DevOps Projects execution | ||
Nov-27 | DevOps Projects execution | ||
Dec-02 | DevOps Projects final presentation | ||
Dec-04 | 2a Chamada | ||
Dec-09 | Prova Final |