dc.creator | Silva, José Weverton Barros da | |
dc.date.accessioned | 2025-07-02T21:12:39Z | |
dc.date.available | 2025-07-02T21:12:39Z | |
dc.date.issued | 2025-02-26 | |
dc.identifier.uri | https://repositorio.ifpe.edu.br/xmlui/handle/123456789/1743 | |
dc.description.abstract | This paper presents the implementation and analysis of a Canary Deployment strategy using Istio in a Kubernetes cluster. Canary Deployment is a gradual release technique that allows the controlled rollout of new software versions by initially directing a small portion of the traffic to the new version while the majority remains on the stable version. This approach reduces the risks associated with failures and enables the validation of the new version in production before full adoption (NEWMAN, 2015; RICHARDSON, 2018). The study was conducted based on Istio resource configuration, such as Destination Rules, Virtual Services, and Gateways, to manage traffic routing between two versions of an application (v1 and v2). Different traffic distribution scenarios were explored, starting with 90. To monitor and assess the performance of the versions, Prometheus and Kiali tools were used. Prometheus provided detailed metrics on error rates, latency, and throughput, while Kiali offered a graphical view of the application’s topology and traffic flow between services. These tools enabled early problem detection and data-driven decision-making, ensuring system stability.The results demonstrated that the Canary Deployment strategy, combined with Istio, is effective for the safe and gradual deployment of new versions in microservices envi- ronments. The ability to dynamically adjust traffic and perform rapid rollbacks proved crucial in minimizing negative impacts and ensuring system reliability. Additionally, the integration with monitoring tools provided visibility and control over the application’s behavior in real-time.Finally, the paper suggests future directions for improving the implementation, such as automating the Canary Deployment process, integrating with log analysis tools, con- ducting more extensive load testing, and expanding to multi-cluster environments. These improvements have the potential to further increase the efficiency, resilience, and scalabi- lity of the system, solidifying Canary Deployment as an essential practice for managing microservices in production. | pt_BR |
dc.format.extent | 59p. | pt_BR |
dc.language | pt_BR | pt_BR |
dc.relation | AMAZON. Blue/Green Deployments. s.d. Disponível em: https://aws.amazon.com/blogs/devops/blue-green-deployments-with-aws/. Acessado em: 15/10/2024.
AMAZON. What is Continuous Delivery?. 2021. Disponível em: https://aws.amaz on.com/devops/continuous-delivery/. Acessado em: 03/11/2024.
ATLASSIAN. Continuous Deployment. 2020. Disponível em: https://www.atlassia n.com/continuous-delivery/continuous-deployment. Acessado em: 20/12/2024.
AWS. Deployment Strategies. 2022. Disponível em: https://aws.amazon.com/devop s/deployment-strategies/. Acessado em: 05/01/2025.
AWS. What is DevOps?. 2021. Disponível em: https://aws.amazon.com/devops/wh at- is-devops/. Acessado em: 10/02/2025.
BASS, L. et al. DevOps: A Software Architect’s Perspective. Addison-Wesley Professional, 2015.
CHATTERJEE, S. DevOps: A Comprehensive Guide. 2021.
DOCKER INC. What is a Container?. 2020. Disponível em: https://www.docker.c om/resources/what-container. Acessado em: 12/10/2024.
EBERT, C. et al. DevOps. IEEE Software, v. 33, n. 3, p. 94-100, 2016.
ELASTIC. DevSecOps: Integrating Security into DevOps. 2023. Disponível em: https://www.elastic.co/what-is/devsecops. Acessado em: 18/11/2024.
FARADAY. Continuous Deployment: a practical guide. 2019. Disponível em: https://www.faraday.io/blog/continuous-deployment-practical-guide. Acessado em: 30/12/2024.
FOWLER, M. BlueGreenDeployment. 2010. Disponível em: https://martinfowler.com/bliki/BlueGreenDeployment.html. Acessado em: 22/01/2025.
FOWLER, M. Canary Release. 2023. Disponível em: https://martinfowler.com/bliki/CanaryRelease.html. Acessado em: 14/02/2025.
GHAHRAMANI, M.; ZHOU, M.; HON, C. Cloud Computing and Its Applications. In: Proceedings of the 2017 International Conference on Cloud Computing and Big Data Analysis, 2017.
GOOGLE CLOUD. Kubernetes Overview. s.d. Disponível em: https://cloud.google.com/kubernetes-engine/docs/concepts/kubernetes-engine-overview. Acessado em: 08/10/2024.
GOOGLE CLOUD. What is PaaS?. s.d. Disponível em: https://cloud.google.com/lea rn/what-is-paas. Acessado em: 17/11/2024.
HOLBROOK, J. What is a Virtual Machine. In: VMware Virtualization Fundamen- tals, 2022.
IBM. Kubernetes: Challenges and Benefits. s.d. Disponível em: https://www.ibm. com/cloud/learn/kubernetes. Acessado em: 29/12/2024.
IBM CLOUD TEAM. Containers vs Virtual Machines. 2021. Disponível em: https://www.ibm.com/cloud/blog/containers-vs-vms. Acessado em: 11/01/2025.
ISTIO. Istio Documentation. 2023. Disponível em: https://istio.io/latest/docs/. Acessado em: 19/02/2025.
KNORR, E.; GRUMAN, G. What Cloud Computing Really Means. InfoWorld, 2008. Disponível em: https://www.infoworld.com/article/2683784/what-cloud-com puting- really-means.html. Acessado em: 07/10/2024.
MARTIN, R. C. Continuous Deployment. 2011. Disponível em: https://blog.clean coder.com/uncle-bob/2011/04/25/ContinuousDeployment.html. Acessado em: 16/11/2024.
NEWMAN, S. Building Microservices. 1. ed. [S.l.]: O’Reilly Media, 2015.
RAVICHANDRAN, T. et al. DevOps: principles and Practices. In: Proceedings of the 2016 ACM SIGMIS Conference on Computers and People Research, 2016.
RED HAT. Deployment Strategies. 2022. Disponível em: https://www.redhat.com/e n/topics/devops/deployment-strategies. Acessado em: 04/01/2025.
RED HAT. Kubernetes e Canary Deployments. 2023. Disponível em: https://ww w.redhat.com/en/blog/simple-canary-deployments-using-kubernetes-statefulsets-o n- openshift. Acessado em: 13/02/2025.
RED HAT. Types of Cloud Computing. 2023. Disponível em: https://www.redhat
.com/en/topics/cloud-computing/public-cloud-vs-private-cloud-and-hybrid-cloud. Acessado em: 21/09/2024.
RED HAT. What is a Container?. 2022. Disponível em: https://www.redhat.com/e n/topics/containers/what-is-a-container. Acessado em: 06/11/2024.
RED HAT. What is Continuous Deployment?. 2020. Disponível em: https://www.redhat.com/en/topics/devops/what-is-continuous-deployment. Acessado em: 24/12/2024.
RED HAT. What is Continuous Integration?. 2020. Disponível em: https://ww w.redhat.com/en/topics/devops/what-is-continuous-integration. Acessado em: 09/01/2025.
RED HAT. What is DevSecOps?. 2023. Disponível em: https://www.redhat.com/e n/topics/devops/what-is-devsecops. Acessado em: 18/02/2025.
RED HAT. What is Istio?. 2022. Disponível em: https://www.redhat.com/en/topics/microservices/what-is-istio. Acessado em: 02/10/2024.
RICHARDSON, C. Microservices Patterns. 1. ed. [S.l.]: Manning Publications, 2018.
RITTINGHOUSE, J. W.; RANSOME, J. F. Cloud Computing:implementation, Management, and Security. CRC Press, 2017.
SENAPATHI, M.; BUCHAN, J. DevOps Capabilities, Practices, and Challenges. In: Proceedings of the 19th International Conference on Evaluation and Assessment in Software Engineering, 2018.
SHAHIN, M.; ALI BABAR, M.; ZHU, L. Continuous Integration, Delivery and Deployment: a Systematic Review. In: Proceedings of the 2017 International Conference on Software and System Process, 2017.
TOTVS. What is SaaS?. s.d. Disponível em: https://www.totvs.com/blog/saas/o-q ue- e-saas/. Acessado em: 26/09/2024.
WIEDEMANN, A. et al. DevOps: A Systematic Literature Review. In: Proce- edings of the 2019 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, 2019.
YOUNG, J. Canary Deployments: A Practical Guide. 2020. Disponível em: https://www.youngtech.com/blog/canary-deployments-practical-guide. Acessado em: 22/02/2025. | pt_BR |
dc.rights | Acesso Aberto | pt_BR |
dc.rights | An error occurred on the license name. | * |
dc.rights.uri | An error occurred getting the license - uri. | * |
dc.subject | Canary Deployment | pt_BR |
dc.subject | Istio | pt_BR |
dc.subject | Kubernetes | pt_BR |
dc.subject | Roteamento de Tráfego | pt_BR |
dc.subject | Microsserviços | pt_BR |
dc.subject | Prometheus | pt_BR |
dc.subject | Kiali | pt_BR |
dc.subject | Monitoramento | pt_BR |
dc.subject | Mecanismo de Rollback | pt_BR |
dc.subject | Estabilidade do Sistema | pt_BR |
dc.title | Canary deployment em kubernetes com istio: um estudo de caso sobre implantações graduais e gerenciamento de tráfego | pt_BR |
dc.type | TCC | pt_BR |
dc.creator.Lattes | http://lattes.cnpq.br/4375422374094000 | pt_BR |
dc.contributor.advisor1 | Torres, Elton Bezerra | |
dc.contributor.advisor1Lattes | http://lattes.cnpq.br/0943345989607946 | pt_BR |
dc.contributor.referee1 | Torres, Elton Bezerra | |
dc.contributor.referee2 | Silva, Guilherme Cavalcanti da | |
dc.contributor.referee3 | Viana, Daniel Leite | |
dc.contributor.referee1Lattes | http://lattes.cnpq.br/0943345989607946 | pt_BR |
dc.contributor.referee3Lattes | http://lattes.cnpq.br/7880134393452607 | pt_BR |
dc.publisher.department | Belo Jardim | pt_BR |
dc.publisher.country | Brasil | pt_BR |
dc.subject.cnpq | ENGENHARIAS | pt_BR |
dc.description.resumo | Este trabalho apresenta a implementação e análise de uma estratégia de Canary Deploy- ment utilizando o Istio em um cluster Kubernetes. O Canary Deployment é uma técnica de implantação gradual que permite a liberação de novas versões de software de forma controlada, direcionando inicialmente uma pequena parcela do tráfego para a nova versão enquanto a maior parte permanece na versão estável. Essa abordagem reduz riscos asso- ciados a falhas e permite a validação da nova versão em produção antes de sua adoção completa (NEWMAN, 2015; RICHARDSON, 2018). O estudo foi conduzido com base na configuração de recursos do Istio, como Desti- nation Rules, Virtual Services e Gateways, para gerenciar o roteamento de tráfego entre duas versões de uma aplicação (v1 e v2). Foram explorados diferentes cenários de distri- buição de tráfego, iniciando com 90% para a versão estável (v1) e 10% para a nova versão (v2), evoluindo para uma divisão equilibrada de 50% para cada versão e, finalmente, di- recionando 100% do tráfego para a v2 após sua validação. Em caso de problemas, foi implementado um mecanismo de rollback rápido, redirecionando o tráfego de volta para a versão estável. Para monitorar e avaliar o desempenho das versões, foram utilizadas as ferramentas Prometheus e Kiali. O Prometheus forneceu métricas detalhadas sobre taxa de erro, latên- cia e throughput, enquanto o Kiali ofereceu uma visão gráfica da topologia da aplicação e do fluxo de tráfego entre os serviços. Essas ferramentas permitiram a detecção precoce de problemas e a tomada de decisões baseadas em dados, garantindo a estabilidade do sistema. Os resultados demonstraram que a estratégia de Canary Deployment, aliada ao uso do Istio, é eficaz para a implantação segura e gradual de novas versões em ambientes de mi- crosserviços. A capacidade de ajustar dinamicamente o tráfego e realizar rollbacks rápidos mostrou-se fundamental para minimizar impactos negativos e garantir a confiabilidade do sistema. Além disso, a integração com ferramentas de monitoramento proporcionou visi- bilidade e controle sobre o comportamento da aplicação em tempo real. Por fim, o trabalho sugere direções futuras para aprimorar a implementação, como a automação do processo de Canary Deployment, a integração com ferramentas de análise de logs, a realização de testes de carga mais abrangentes e a expansão para ambientes multi- cluster. Essas melhorias têm o potencial de aumentar ainda mais a eficiência, resiliência e escalabilidade do sistema, consolidando o Canary Deployment como uma prática essencial para a gestão de microsserviços em produção. | pt_BR |