Baixe o app para aproveitar ainda mais
Prévia do material em texto
______ Valparaíso de Goiás, GO 2021 TANÍVIA PINHEIRO TIMBÓ SUPERIOR DE TECONOLOGIA EM DEVOPS PROJETO INTEGRADO III — 3.º Semestre ______ Valparaíso de Goiás, GO 2.º Semestre/2021 PROJETO INTEGRADO III — 3.º Semestre Trabalho de Tanívia Pinheiro Timbó apresentado como requisito parcial para a obtenção de média bimestral nas disciplinas — Projeto de Software, Entrega e Implantação Contínua, Integração Contínua, Redes e Sistemas Distribuídos, Infraestrutura Ágil, Ed- Design Thinking para o curso de Superior em Tecnologia de DevOps – Unidade Valparaíso de Goiás (GO). Orientador: Prof.ª Tutora Luana Gomes de Souza. TANÍVIA PINHEIRO TIMBÓ ______ SUMÁRIO 1 INTRODUÇÃO ..................................................................................................... 3 2 DESENVOLVIMENTO ......................................................................................... 4 2.1 Modelo de Projeto de Software (tarefa 1) ..................................................... 4 2.1.1 Spotify ........................................................................................................... 4 2.1.2 NuBank ......................................................................................................... 6 2.2 Plataformas e Orquestradores de Containers (tarefas 2 e 4) ..................... 7 2.3 Versionamento (tarefa 3) ................................................................................ 8 2.4 Infraestrutura Ágil (tarefa 5) .......................................................................... 9 3 CONCLUSÃO .................................................................................................... 10 REFERÊNCIAS ......................................................................................................... 11 ______ 3 1 INTRODUÇÃO Este trabalho foi produzido como requisito para a aprovação da disciplina Projeto Integrado III que compreende a aplicação das demais disciplinas ofertadas no 3.º semestre do curso Superior de Tecnologia em Devops, a saber: Projeto de Software, Entrega e Implantação Contínua, Integração Contínua, Redes e Sistemas Distribuídos e Infraestrutura Ágil. A disciplina Projeto de Software se faz necessária no sentido de nortear o desenvolvedor/operador sobre quais demandas deverão ser atendidas pelo sistema/programa a ser desenvolvido e que tipo de manutenção ou desenvolvimento deverá ser feito de acordo com as condições: tempo, custo, benefício, obsolescência, etc. No que tange a área de Entrega e Implantação Contínua, critérios mais específicos como qualidade e confiabilidade do produto/serviço são elencados para a adoção de práticas que possam garantir a segurança e a usabilidade do sistema/programa proposto ou adotado. Na área de Integração Contínua diferentemente da disciplina anterior já diz respeito ao uso de uma única fonte para a utilização de vários códigos o que vem a facilitar a identificação de falhas e aplicação de testes. Com relação a Redes e Sistemas Distribuídos têm-se a complementação de como garantir que sistemas possam ser acessados e distribuídos por qualquer equipamento, o que possibilita a melhoria não só de um sistema corporativo como de uma instituição financeira, como, por exemplo, a automação de rotinas manuais em uma residência (casas inteligentes) Por fim, a Infraestrutura Ágil veio como uma forma de conceber a realização das diversas tarefas e subprojetos dentro de um projeto, de maneira a tornar mais rápida a entrega e menos dispendiosa para a equipe de produção sem perder a qualidade e o valor final. ______ 4 2 DESENVOLVIMENTO 2.1 Modelo de Projeto de Software (tarefa 1) O modelo de qualidade de desenvolvimento de software se origina com os avanços da época da primeira guerra no que tange à melhoria dos processos com aumento do desempenho, redução do tempo de entrega e garantia da qualidade. Com o processo de globalização intensificado com o advento da internet e das constantes demandas advindas da ampla utilização de recursos tecnológicos, foi necessário adaptar os modelos de produção convencionais para o contexto do desenvolvimento de software. Cada vez mais são adotadas metodologias ágeis (serão tratadas no tópico 2.5 deste trabalho) para o desenvolvimento de software por vantagens que dizem respeito a um modelo menos engessado de gestão, com considerável velocidade na entrega sem perda do valor do produto/serviço. 2.1.1 Spotify A Spotify é uma plataforma de streaming de conteúdo audiovisual (músicas, podcasts e vídeos) de grande prospecção e consideravelmente consolidada no setor. Segundo Tebet (2018), a Spotify declara não fazer uso de modelo devido à flexibilidade do processo de desenvolvimento que se tratar de alto extremamente flexível e adaptável. O Scrumban (Duarte, 2019) que é um híbrido entre framework Scrum e o método Kanban, surgiu, originalmente, como uma forma de transição do Scrum para o Kanban. ______ 5 Contudo, conforme observação de Duarte (2019), na própria documentação do Scrum (2018) é possível verificar orientações para as práticas Kanban em consonância com o Scrum. A adoção do Scrumban permitiu a junção das qualidades seguintes que permitiram as seguintes vantagens: • Diminuição do tempo de espera; • avanço no processo de melhoria contínua; • melhoria do monitoramento de processos e tarefas. • obtenção de melhores dados quantificáveis. Para tanto, as pessoas passaram a trocar informação entre si de maneira a nivelar o conhecimento entre as equipes. Também, com foco na eficácia, a filosofia ágil de se experimentar rápido, errar cedo e corrigir logo é amplamente utilizada. A seguir (COUTINHO, 2021), uma breve descrição de como funciona o Scrumban: • equipes enxutas que tendem a ser especializadas (Kanban), mas admite multidisciplinares (Scrumban); • foco no que está sendo realizado e no progresso do fluxo de trabalho de maneira a reduzir/evitar tarefas simultâneas nas etapas do fluxo (TO DO, DOING e DONE); • realização de sprints planejadas; • flexibilidade na distribuição/definição de papéis entre os envolvidos. Os preceitos da elencados pela Spotify se misturam com a cultura DevOps e as tendências sociais contemporâneas, a saber: • Colaboração; • autonomia; • potencial; https://scrumorg-website-prod.s3.amazonaws.com/drupal/2018-04/2018%20Kanban%20Guide%20for%20Scrum%20Teams_0.pdf ______ 6 • diversidade; • aprendizado; • pensar a longo prazo. 2.1.2 NuBank Segundo NuBank (2021), a utilização de uma combinação de diversas metodologias ágeis é realizada pela instituição que é uma startup do segmento das fintechs e considerada um dos melhores bancos durante dois anos consecutivos: 2020 e 2021, segundo ranking da Forbes (2021). Basicamente, o Agile ou Método Ágil reúne todas as metodologias ágeis e seu foco é a flexibilidade nas práticas de desenvolvimento e gestão de projeto visando a redução do tempo investido na conclusão do produto/serviço e com consequente aumento da satisfação do usuário/cliente. Contudo, assim como no caso Spotify, se verificou a necessidade de um sistema híbrido com adoção de outros métodos complementares e mais específicos para o preenchimento de algumas lacunas. Por isso foi adotada a cultura Lean que se trata mais de princípios do que de práticas em si, o que torna sua flexibilização ainda mais viável para o preenchimento de lacunas na implantação Agile em alguns contextos. Pela descrição da própria NuBank, é possível identificar a utilização deScrum no que diz respeito à Engenharia de Software, a seguir: Aqui, nos baseamos na metodologia Agile, muito conhecida entre empresas digitais. Por isso, buscamos organizar nossa estrutura para dar mais flexibilidade e autonomia aos times ao dividir as pessoas em squads, chapters, tribes e guilds. (NUBANK, 2021) A valorização do aprendizado e a constante experimentação com foco do cliente são descritos também no final do artigo da referida startup falando sobre a https://blog.nubank.com.br/nubank-metodologia-agil/ ______ 7 adoção sobre a adoção de metodologias ágeis. Ainda, no mesmo artigo, são enumerados alguns princípios da instituição: • as interações e os indivíduos são mais valorizados que processos e ferramentas; • o software/produto ou serviço se sobrepõe à documentação; • o foco na colaboração com o cliente; • a resposta às mudanças está acima de um plano. 2.2 Plataformas e Orquestradores de Containers (tarefas 2 e 4) O termo orquestrador de contêiner se refere a gestores de serviços e aplicações dentro de um sistema. Normalmente, esse conceito também está ligado ao conceito de microsserviços que são disponibilizados conforme são requisitados pelo usuário. Isso permite, por exemplo, que uma aplicação seja testada em um contêiner (ambiente isolado) enquanto os usuários/operadores utilizam outras aplicações e serviços sem interrupções ou queda de desempenho em outro contêiner). Suas principais vantagens são: • segurança; • escalonamento; • alocação de recursos; • alto desempenho. O conceito desse tipo de arquitetura se popularizou com o desenvolvimento do Docker, em 2013, pela dotCloud que viria a se tornar a atual Docker Inc. ______ 8 Atualmente, os principais orquestradores de contêineres são: NOME AUTOR/DESENVOLVEDOR VANTAGEM DESVANTAGEM DOCKER SWARM Docker • estabilidade; • fácil instalação • escalonagem automática limitada; • novas migrações comprometidas KUBERNETES (K8S) Google • Open source; • flexibilidade • considerável Complexidade de instalação/manutenção OPENSHIFT RedHat • Open source; • monitoramento de integração e entrega contínua • custo alto para instituições de pequeno porte AWS ECS Amazon • melhor custo/benefício; • integração de serviços da plataforma (DNS, balanceamento, segurança, etc) Tabela 1. Quadro comparativo - orquestradores Docker (CL9, 2020) 2.3 Versionamento (tarefa 3) O versionamento de código diz respeito a uma metodologia de controle de versões produzidas por programadores com o propósito de ter um histórico das alterações de um software. A importância dessa prática diz respeito aos benefícios no que tange o processo de desenvolvimento de software. Ao se desenvolver uma versão entregável, ao invés de começar do zero, é possível ir realizando atualizações e implementações do produto ou mesmo corrigir inconsistências de versões anteriores. Tal prática ainda permite o controle do fluxo de trabalho/desenvolvimento entre membros de um time de desenvolvedores o qual é possível ter uma melhor avaliação do estado da versão e das atividades (GAEA, c2020). A seguir, um quadro com as principais ferramentas de controle de versões: ______ 9 NOME CARACTERÍSTICAS GIT Bastante popular, o GIT traz um modelo de versionamento descentralizado/distribuído. Suas vantagens dizem respeito ao design interno e interface e apesar ter alto desempenho, apresenta a necessidade de considerável conhecimento de controles se comparado com outras soluções. CVS Desenvolvida em 1968, como desvantagem trata-se de uma ferramenta muito antiga, contudo, bastante simples o que permite rápido aprendizado. É um sistema centralizado. Ainda é muito utilizada. SUBVERSION (SVN) Muito difundida em ambientes corporativos e apesar de possuir alta velocidade de execução ainda agrega a simplicidade no uso. Apresentou falhas em versões passadas e, apesar de terem sido corrigidas, a reputação de sua eficácia ficou marcada. Além disso, não é recomendada para todos os modelos de equipe de desenvolvedores uma vez que se trata de uma solução centralizada e limitada a espaço físico. Tabela 2. Principais ferramentas de versionamento (GAEA, c2020) 2.4 Infraestrutura Ágil (tarefa 5) A infraestrutura ágil vai além da nomenclatura ou de uma reorganização organizacional. Trata-se da mudança de toda uma cultura dentro de uma instituição. Princípios como trabalho colaborativo e trocas constantes de informações e conhecimento entre equipes são práticas comuns, bem como, a forma de como as tarefas e processos são realizadas. O foco passa a ser na entrega em menor tempo com racionalização de recursos sem comprometimento do valor final da entrega e com satisfação máxima do cliente/usuário. Os principais benefícios possíveis de serem verificados são: • melhoria do fluxo de trabalhos; • redução do tempo de entrega; • aumento da satisfação do usuário/cliente. ______ 10 3 CONCLUSÃO Por meio do estudo dos conceitos de metodologias ágeis e cultura devops, bem como, da arquitetura de contêineres e serviços em nuvem foi possível verificar que a mudança de paradigma no que diz respeito à entrega e o foco na satisfação do cliente/usuário permitiu a evolução e a inovação. Esses aspectos tornaram possíveis serviços digitais com variadas possibilidades de execução de tarefas eficazes e que agradam e até mesmo modificam a forma como as pessoas se relacionam e executam tarefas cotidianas como ouvir música, ver um conteúdo ou acessar operações bancárias. ______ 11 REFERÊNCIAS BUCHANAN, Ian. O que é contêiner como serviço? Atlassian, c2021. Disponível em: <https://www.atlassian.com/br/continuous-delivery/microservices/containers-as-a- service>. Acesso em: 24 out. 2021. COMO funciona a engenharia de software no Nubank? Nubank, 2021. Disponível em: <https://blog.nubank.com.br/engenharia-de-software-como-funciona-no-nubank/>. Acesso em: 23 out. 2021. COMO o Nubank usa a metodologia ágil para ser mais eficiente. NuBank, 2021. Disponível em: <https://blog.nubank.com.br/nubank-metodologia-agil/>. Acesso em: 23 out. 2021. CONHEÇA 5 ferramentas de controle de versão de software. GAEA, c2020. Disponível em: <https://gaea.com.br/conheca-5-ferramentas-de-controle-de-versao- de-software/>. Acesso em: 24 out. 2021. CONTAINER docker: o que é e quais são as vantagens de usar? Positivo Tecnologia, 2017. Disponível em: <https://www.meupositivo.com.br/panoramapositivo/container- docker/>. Acesso em: 24 out. 2021. CONTEINERS Linux: o que é Docker? RedHat, 2021. Disponível em: < https://www.redhat.com/pt-br/topics/containers/what-is-docker>. Acesso em: 24 out. 2021. CONTEINERS: o que é orquestração de containers? RedHat, c2021. Disponível em: <https://www.redhat.com/pt-br/topics/containers/what-is-container-orchestration>. Acesso em: 24 out. 2021. COUTINHO, Thiago. Como o Scrumban pode ser a melhor metodologia ágil para o dia a dia? Voitto, 2021. Disponível em: < https://www.voitto.com.br/blog/artigo/o-que- e-scrumban>. Acesso em: 23 out. 2021. COUTINHO, Thiago. O que é Gerenciamento de Projetos e qual a sua importância? Voitto, 2020. Disponível em: <https://www.voitto.com.br/blog/artigo/gerenciamento- de-projetos-o-que-e>. Acesso em: 23 out. 2021. DUARTE, Luiz. LuizTools, 2019. Scrumban: como usar Scrum com Kanban corretamente. Disponível em: <https://www.luiztools.com.br/post/scrumban-como- usar-scrum-com-kanban-corretamente/>. Acesso em: 23 out. 2021. ENTENDA a importância do versionamento de software. IPSense, 2020. Disponível em: <https://www.ipsense.com.br/blog/entenda-a-importancia-do-versionamento-de- software/>. Acesso em: 24 out. 2021. GARA, Antoine. Os melhores bancos do Brasil: Nubank mantém liderança. Forbes, 2021. Disponível em: <https://forbes.com.br/forbes-money/2021/04/os-melhores-bancos-do-brasil-nubank-mantem-lideranca/>. Acesso em: 23 out. 2021. GROSSO, Carlos. Principais Tendências em Modelos de Qualidade. Sinfic, 2005. ______ 12 Disponível em: <http://www.sinfic.pt/SinficWeb/displayconteudo.do2?numero=24340>. Acesso em: 23 out. 2021. MENDES, Guilherme. Lean-Agile: Semelhanças, Diferenças e Aplicações. FM2S, 2019. Disponível em: <https://www.fm2s.com.br/lean-e-agile-semelhancas- diferencas/>. Acesso em: 23 out. 2021. MORAIS, Leonildo. Qualidade de software – engenharia de software 29. Devmedia, 2010. Disponível em: <https://www.devmedia.com.br/qualidade-de-software- engenharia-de-software-29/18209>. Acesso em: 11 out. 2021. O QUE é Docker? 4Linux, c2021. Disponível em: <https://4linux.com.br/o-que-e- docker/>. Acesso em: 24 out. 2021. QUAIS são os orquestradores de containers mais conhecidos e utilizados? CL9, 2020. Disponível em: <https://cl9.com.br/quais-sao-os-orquestradores-de-containers-mais- conhecidos-e-utilizados/>. Acesso em: 23 out. 2021. TABELINI, Jeferson. Descomplicando: IaaS, SaaS, PaaS e CaaS. LinuxPlace, c2020. Disponível em: <https://www.linuxplace.com.br/o-que-e-iaas-saas-paas-caas/>. Acesso em: 24 out. 2021. Tebet, Isabella. Gestão de Projetos: Desmistificando o “Não-Modelo” do Spotify. Objective, 2018. Disponível em: <https://www.objective.com.br/insights/gestao-de- projetos-desmistificando-o-nao-modelo-do-spotify/>. Acesso em: 23 out. 2021. THE KANBAN guide for Scrum teams. SCRUM, 2018. Disponível em: <https://scrumorg-website-prod.s3.amazonaws.com/drupal/2018- 04/2018%20Kanban%20Guide%20for%20Scrum%20Teams_0.pdf>. Acesso em: 23 out. 2021. THORNS, Fabian. Introdução às ferramentas do devops #07: orquestração de contêineres. Linux Professional Institute, 2018. Disponível em: <https://www.lpi.org/pt/blog/2018/02/20/devops-tools-introduction-07-container- orchestration?gclid=CjwKCAjw5c6LBhBdEiwAP9ejG0jpPGt8nSxKA4w- bMsnAN2eMft6CG6WbapSImQ6Y6ydzJ-P7RlZUxoCZHIQAvD_BwE>. Acesso em: 24 out. 2021.
Compartilhar