top of page

INTEGRAÇÃO E ENTREGA CONTÍNUA (DevOps)

Integração e Entrega Contínua são práticas fundamentais no desenvolvimento de software moderno. A Integração Contínua foca na integração frequente do código, garantindo sua coesão. A Entrega Contínua automatiza a entrega do software, permitindo lançamentos rápidos e confiáveis. Juntas, promovem colaboração, feedback rápido e eficiência, acelerando a entrega de valor ao cliente e aumentando a qualidade do produto.

Aula 1 - Integração e Entrega Contínua (DEVOps)

INTEGRAÇÃO E ENTREGA CONTÍNUA
cic-cd-explained.jpg

A Integração Contínua e a Entrega Contínua são práticas essenciais para equipes de desenvolvimento de software que buscam melhorar a qualidade, a velocidade e a confiabilidade de seus processos de desenvolvimento. Ao implementar essas práticas e utilizar ferramentas adequadas, as equipes podem aumentar a eficiência do desenvolvimento e fornecer software de alta qualidade de forma consistente.

GCS
1587383824190.png

A Gerência de Configuração de Software desempenha um papel fundamental na garantia da qualidade, consistência e rastreabilidade do software ao longo de seu ciclo de vida. Ao integrar práticas de GCS com processos de Integração Contínua e Entrega Contínua, as equipes de desenvolvimento podem criar uma base sólida para desenvolver, testar e implantar software de forma eficiente e confiável.

FERRAMENTAS DE GCS
Subversion_Logo.svg-down.jpg

Git: Sistema de controle de versão distribuído amplamente utilizado. Subversion (SVN): Sistema de controle de versão centralizado, ainda comum em muitos projetos. Jira: Ferramenta de gerenciamento de projetos que inclui recursos de rastreamento de problemas e gerência de mudanças. Ansible: Ferramenta de automação de infraestrutura que também pode ser utilizada para gerenciar configurações de software.

Aula 2 - Pipeline

PIPELINE
pipeline-as-code.png

Um pipeline é uma sequência de processos automatizados que são executados em uma ordem específica para construir, testar e implantar um software. É uma abordagem fundamental na prática de Integração e Entrega Contínua (CI/CD), permitindo a automação de todo o processo de desenvolvimento de software, desde a integração do código até a entrega do produto final aos usuários.

PIPELINE NA AUTOMAÇÃO DE CI/CD
Containers1-Keyart2_0.png

Os pipelines são uma peça fundamental na implementação bem-sucedida de práticas de CI/CD, proporcionando automação, padronização, feedback rápido, aceleração do time-to-market, redução de erros e riscos e entrega rápida de software de alta qualidade.

FASES DE UM PIPELINE
pipeline-ci-cd-em-softwares.png

1- Checkout do Código: Recuperação do código-fonte; 2- Compilação e Build: Conversão do código em executável; 3- Testes Automatizados: Verificação da integridade do código; 4- Análise de Código Estática: Identificação de problemas no código; 5- Implantação (Deploy): Distribuição em ambientes de teste ou produção; 6- Testes de Aceitação e Integração: Validação da funcionalidade; 7- Entrega (Release): Liberação para usuários finais.

Aula 3 - Fundamentos DEVOps

AUTOMAÇÃO
Untitled.jpg

A automação é um dos pilares centrais do DevOps. Ela envolve a automatização de tarefas repetitivas e manuais ao longo do ciclo de vida de desenvolvimento e operações de software. A automação reduz o tempo gasto em processos manuais, minimiza erros humanos e aumenta a consistência e confiabilidade das operações.

COLABORAÇÃO
colaboracao-corporativa.png

O DevOps promove uma cultura de colaboração estreita entre equipes de desenvolvimento, operações e outras partes interessadas envolvidas no processo de entrega de software. A colaboração eficaz incentiva a comunicação transparente, compartilhamento de conhecimento e trabalho em equipe para alcançar objetivos comuns. A colaboração ajuda a quebrar silos organizacionais e promove um ambiente de trabalho mais integrado e ágil.

INTEGRAÇÃO CONTÍNUA
Destacada-Diferencas-entre-Integracao-Entrega-e-Implantacao-Continuas.png

É uma prática que envolve integrar alterações de código ao repositório compartilhado com frequência e automaticamente. Com a CI, os desenvolvedores mesclam suas alterações no repositório várias vezes ao dia, o que desencadeia automaticamente a execução de compilações automatizadas, testes e outras verificações. Ajuda a detectar e corrigir problemas de integração de código mais cedo no ciclo de desenvolvimento, resultando em entregas mais rápidas e de maior qualidade.

GERÊNCIA DE CONFIGURAÇÃO
imagem_post_210.jpg

A gestão de configuração em DevOps refere-se à prática de gerenciar e controlar as configurações de software e infraestrutura de maneira eficiente e consistente ao longo do ciclo de vida de desenvolvimento e operações. Isso inclui ambientes de desenvolvimento, teste, preparo e produção. 

JENKINS
jenkins-409x300.png

Jenkins é uma ferramenta de automação de código aberto amplamente utilizada para facilitar a integração contínua (CI) e a entrega contínua (CD) de software. Ele é projetado para automatizar tarefas repetitivas associadas ao processo de desenvolvimento de software, como compilação de código, execução de testes automatizados, implantação de aplicativos e muito mais.

Aula 4 - Padrões de Desenvolvimento de Software

PADRÕES DE DESENVOLVIMENTO
20230725170243_fpdl.in_engrenagens-de-ouro-prateadas-mecanicas-fundo-generativo-ai_845977-

Padrões de desenvolvimento de sistemas são conjuntos de práticas e normas que guiam o processo de desenvolvimento de software. Eles fornecem estrutura para gerenciar complexidade, garantir consistência e melhorar a qualidade dos produtos finais. Esses padrões podem incluir desde técnicas de codificação específicas até abordagens mais amplas de gerenciamento de projetos e processos.

PDT
vf.PNG

Definição: O Process-Driven Development (PDT) é um método que modela, gerencia e melhora continuamente os processos no desenvolvimento de software. Ele visa estruturar e controlar cada etapa do desenvolvimento, proporcionando uma abordagem previsível e eficiente para garantir a gestão e aprimoramento constantes dos processos. Elementos Chave: Modelagem de Processos, Gestão de Processos, Melhoria de Processos.

VANTAGENS E DESAFIOS DO PDT
images.jpg

Vantagens do PDT - Previsibilidade dos resultados: Processos claros permitem prever os resultados; Eficiência: Estruturação reduz desperdícios de tempo e recursos; Capacidade de resposta: Processos definidos facilitam adaptações rápidas. Desafios do PDT - Percepção de rigidez: Pode parecer limitador à criatividade; Recursos: Implementação e manutenção demandam investimentos significativos.

DDT
ddt-2.jpg

Definição: Data-Driven Development (DDT) é uma abordagem que usa dados de várias fontes, como análises de uso, feedback e métricas de desempenho, para guiar o desenvolvimento de software. O objetivo é priorizar funcionalidades e correções com base em insights concretos, visando entregar maior valor aos usuários e ao negócio. Elementos Chaves: Coleta de Dados, Ánalise de Dados, Aplicação de Dados.

VANTAGENS E DESAFIOS DO DDT
images.jpg

Vantagens do DTT - Aumento da Satisfação do Usuário: Decisões alinhadas com as necessidades dos usuários aumentam sua satisfação; Relevância de Mercado: Produtos ajustados com dados reais são mais competitivos. Desafios do DTT -Dependência da Qualidade dos Dados: Decisões são tão boas quanto os dados utilizados; Privacidade e Segurança dos Dados: Coleta e análise de dados podem apresentar desafios nesse aspecto.

Aula 5 - Padrões para Desenvolvimento de Software

MVC
image1_edited.jpg

O Model-View-Controller é um padrão arquitetônico frequentemente utilizado para desenvolver interfaces de usuário que divide uma aplicação em três componentes interconectados. Isso ajuda a separar internamente a lógica de negócios, a interface do usuário e a entrada do usuário, o que facilita a manutenção e a escalabilidade.

REST
5da9a566-da20-4d88-a9f7-2f9e8ff7dbac.webp

Representational State Transfer é um estilo arquitetônico para sistemas distribuídos que enfatiza a comunicação stateless entre cliente e servidor, usando operações HTTP padrão para acessar e manipular recursos. Ele promove uma arquitetura sem estado, oferecendo melhor escalabilidade e visibilidade, e utiliza URLs padronizadas e métodos HTTP para operações, tornando-o intuitivo e fácil de usar.

OBSERVER
observer.png

O padrão Observer define uma dependência de um-para-muitos entre objetos, de modo que quando um objeto muda de estado, todos os seus dependentes são automaticamente notificados e atualizados. É amplamente usado em interfaces gráficas para implementar eventos e notificações. Promove baixo acoplamento entre a classe que envia a notificação e as classes que recebem a notificação.

MVP
Imagem5.jpg

O Model-View-Presenter é uma derivação do MVC projetada para frameworks de desenvolvimento de UI. Nele, a responsabilidade de manipulação da lógica de apresentação é transferida do Controller (em MVC) para o Presenter, com a intenção de tornar a lógica de apresentação mais testável.

SINGLETON
singleton.png

O padrão Singleton garante que uma classe tenha apenas uma instância, com um ponto global de acesso. É comum em situações onde é necessário um controle rigoroso sobre como e quando o acesso é concedido a um recurso compartilhado. É implementado fornecendo um método global que retorna a instância exclusiva, criando a instância quando necessário e garantindo que nenhuma outra instância possa ser criada.

STRATEGY
strategy-3x.png

O padrão Strategy permite definir uma família de algoritmos, encapsulá-los como objetos e torná-los intercambiáveis. Isso permite que o algoritmo varie independentemente dos clientes que o utilizam, promovendo flexibilidade e opções de escolha dinâmica. Muito útil em sistemas onde os requisitos de algoritmos podem variar dinamicamente em diferentes condições.

MVVM
1_2NGNfHTV2wn_-IUc-_BKiw.jpg

O Model-View-ViewModel é outro padrão arquitetônico que facilita a separação da lógica de desenvolvimento da interface gráfica do usuário da lógica de negócios, através da introdução de uma camada intermediária conhecida como ViewModel (atua como um abstrato da View, expondo métodos e comandos para manter o estado da View, sem necessidade de referência direta a componentes da View, facilitando testes e manutenção).

FACTORY METHOD
factory-method-en-3x.png

O padrão Factory Method é um padrão de criação que define uma interface para criar um objeto, mas deixa a escolha das classes concretas a serem criadas para as subclasses. Isso desacopla o código que gera o objeto das classes concretas que implementam esses objetos:
Facilita a adição de novas classes ao programa sem alterar o código que usa os objetos.

DEPENDENCY INJECTION
1_M2PGKJfDO01v7z8zi_nzRg.jpg

Dependency Injection é um padrão de design em que um objeto recebe outras instâncias de objetos dos quais depende, facilitando modularidade e testabilidade. É comum em frameworks modernos, onde a gestão de dependências é centralizada e configurações são abstraídas do código. Esses padrões são cruciais para criar software robusto e manutenível, permitindo sistemas mais organizados e eficientes.

Aula 6 - DEVOps e Desenvolvimento Multiplataforma

AUTOMAÇÃO DE IMPLANTAÇÃO E TESTES
Automacao-de-Testes.jpg

A automação de implantação e testes desempenha um papel crucial em ambientes multiplataforma e no DevOps, garantindo consistência, eficiência e integridade nos processos. Ela inclui a execução de testes automatizados, implantação contínua e gestão de configuração, permitindo escalabilidade e adaptação rápida a mudanças. A integração da automação em DevOps reduz o tempo de ciclo de desenvolvimento, liberando mais tempo para inovação e menos para tarefas manuais.

GERENCIAMENTO DE CONFIGURAÇÃO
imagem_post_210.jpg

O Gerenciamento de Configuração em DevOps promove a consistência e eficiência em ambientes multiplataforma. Padronização, controle de alterações e automação são fundamentais para garantir estabilidade e conformidade. Essa prática permite adaptação a diferentes ambientes e facilita a colaboração entre equipes, reduzindo tempo de inatividade e garantindo sistemas estáveis e seguros.

CONTROLE DE VERSÃO E COLABORAÇÃO
HERO_edited_edited.jpg

Utilizando ferramentas como Git e Jenkins, equipes colaboram eficientemente, gerenciam alterações e garantem implantações precisas. Revisões de código melhoram qualidade e reduzem erros. Integração Contínua automatiza testes, enquanto Implantação Contínua garante versões estáveis em produção. Controle de versão fornece histórico detalhado de mudanças, essencial para rastreamento de problemas e evolução do projeto.

PROVISIONAMENTO DE INFRAESTRUTURA
1_JjvN7h4RouT3JBZXjBuyNQ.png

Provisionamento de Infraestrutura em DevOps é otimizado por ferramentas como Ansible, Terraform e Docker. Essas ferramentas combinadas simplificam a criação de ambientes replicáveis, aceleram o desenvolvimento e reduzem erros, melhorando a estabilidade e segurança do software.

FEEDBACK RÁPIDO E ITERATIVO
iterative-development_edited.jpg

DevOps prioriza feedback rápido e iterativo, com automação de testes para correções instantâneas e ajustes ágeis. Ferramentas de monitoramento oferecem visibilidade em tempo real, essencial para consistência na experiência do usuário. A colaboração entre equipes facilita a resolução eficiente de problemas, acelerando o desenvolvimento e a entrega de funcionalidades, enquanto melhora a qualidade do software em diversas plataformas.

© 2035 por Emelly Yasmin. Orgulhosamente criado com Wix.com

bottom of page