O que é um DevOps

Até agora não entendi o que é um DevOps direito, podem me explicar forma simples sem muitos termos técnicos…

Mesmo que sua explicação não abranja tudo mas pelo menos preciso saber o básico

Olá! O DevOps é um conjunto de práticas que são feitas pelas equipes de desenvolvimento de software para que o serviço prestado tenha uma qualidade boa e seja feito rápido/na velocidade necessária e agradável para o cliente.

Para que você entenda melhor, antes é necessário que você entenda alguns conceitos de metodologia ágil.
O primeira é sobre os sistemas serem divididos em sprints, que é tipo pegar uma pizza e ao invés de entregar ela inteira, vamos entregando os pedaços.
Isso funciona bem para o desenvolvimento de software porque antigamente o software só era entregue depois de toooooodo ele pronto, isso ai demorava mais de um ano, porém até que isso aconteça muito provavelmente as necessidades do cliente mudaram e o mundo mudou.
Antes de poder joga ele no ar, ou em produção, o cliente teria que fazer testes e devolver os bugs para serem resolvidos. Logo, uma forma péssima de se desenvolver.
A divisão em sprints chegou para que o sistema pudesse ser entregue em partes, que são essas chamadas sprints (duram de 15 a 30 dias) e enquanto o cliente vai testando essas partes, as outras vão sendo desenvolvida.

Exemplo prático:
Tem um software que foi vendido para um determinado cliente, ao invés de simplesmente só chegar para a equipe de desenvolvedores e mandar eles irem fazendo, existe todo um processo de planejamento, divisão de tarefas e objetivos. Esse planejamento é onde fazemos as sprints, pegamos partes do sistema que são mais importantes e dividimos essa parte em pequenas tarefas e objetivos. Essa divisão vai depender do tamanho da equipe, do entrosamento e etc… por isso um gerente de projetos deve conhecer bem as limitações dos seus desenvolvedores e analistas.

Além de fazer essa divisão em sprints, colocamos as tarefas para que essa sprint seja cocluida em um board, que chamamos de kanbam (outra metodologia agil), esse board fica divididos em: Atividades que precisam ser feitas | Atividades que estão sendo feitas | Atividades Suspensas | Atividades em Teste | Atividades concluídas

E é isso ai! O devOps entrou em ação nesse exemplo prático… espero ter ajudado :slight_smile:

2 curtidas

De acordo com https://4linux.com.br/o-que-e-devops/ temos a seguinte definição:

Devops é um termo criado para descrever um conjunto de práticas para integração entre as equipes de desenvolvimento de softwares, operações (infraestrutura ou sysadmin) e de apoio envolvidas (como controle de qualidade) e a adoção de processos automatizados para produção rápida e segura de aplicações e serviços. O conceito propõe novos pensamentos sobre o trabalho para a valorização da diversidade de atividades e profissionais envolvidos e atitudes colaborativas. É um processo que torna possível o desenvolvimento ágil de aplicações em um modelo de gestão de infraestrutura definido sob regras rígidas e burocráticas.

Tradicionalmente Desenvolvimento e Operações são setores diferentes nas empresas e com motivações distintas. O setor de Desenvolvimento já evoluiu com adoção de metodologias ágeis e estão mais alinhadas ao negócio. O setor já consegue entregas rápidas e constantes para atender a expectativa dos clientes por novos recursos e assim valorizar o produto da empresa. A área de Operações, por sua vez, deseja o mínimo de alterações possíveis no ambiente de produção, pois podem gerar um novo ponto de instabilidade o que desvalorizará o produto da empresa. Assim há interesses contraditórios. Um setor quer evoluir e o outro garantir.

A cultura DevOps sustenta-se nos pilares:

  • Integração Contínua: fácil transferência de conhecimento e experiências entre as áreas de Desenvolvimento, Operações e Apoio.
  • Implantação Contínua: liberação rápida e continua de novas versões de software ou serviços.
  • Feedback contínuo: feedbacks frequentes das equipes envolvidas em todas as fases do ciclo de vida do software ou serviço.

E segundo a Wikipédia - https://pt.wikipedia.org/wiki/DevOps - encontramos:

Na Ciência da Computação o DevOps (contração de development e operations), é uma cultura na engenharia de software que aproxima os desenvolvedores de software (Dev) e os operadores do software / administradores do sistema (Ops), com característica principal de melhorar a comunicação dos dois papéis dentro de um projeto e defender a automação e monitoramento em todas as fases da construção de um software (desde a integração, teste, liberação para implantação, ao gerenciamento de infraestrutura), auxiliam empresas no gerenciamento de lançamento de novas versões, padronizando ambientes em ciclos de desenvolvimento menores, frequência de implantação aumentada, liberações mais seguras, em alinhamento próximo com os objetivos de negócio.

Empresas que liberam novas versões de software frequentemente podem precisar das considerações ou orientações de um SysAdmin (Administrador do sistema). O Flickr desenvolveu a cultura de DevOps para suprir uma necessidade do negócio de realizar dez implantações por dia, este ciclo diário de implantações será muito maior em organizações que produzem aplicações multi-foco ou multi-funções. É conhecido como implantação contínua ou entrega contínua. Grupos de trabalho, associações de profissionais e blogs estão tratando do tema desde 2009.

A cultura DevOps auxilia empresas no gerenciamento de lançamento de novas versões, estimular a comunicação entre os dois papéis. Eventos podem ser acompanhados com maior facilidade, assim como o controle de processos documentados e emissão de relatórios granulares. Empresas com problemas no processo de liberação/implantação de novas versões, normalmente possuem automação, mas querem maior flexibilidade para gerenciar e conduzir esse processo - sem precisar editar tudo na linha de comando. Idealmente, essa automação deve ser disparada por recursos não operacionais, em ambientes específicos que não estejam “em produção”. O desenvolvedor ganha maior controle sobre o ambiente, e o administrador do sistema maior entendimento sobre os aplicativos.

Processos simples se tornam claramente articuláveis, através do DevOps. O objetivo é automatizar a maior quantidade possível de processos operacionais.

Integrações DevOps visam a entrega de produtos, testes de qualidade, desenvolvimento de características e releases de manutenção, de modo a incrementar a confiança e segurança, desenvolvimento rápido e ciclos de desenvolvimento. Muitas das ideias (e pessoas) envolvidas com a cultura DevOps vieram dos movimentos de Gerenciamento de sistemas empresariais e Desenvolvimento ágil de software.

Etimologia

O termo DevOps deriva da junção das palavras development e operations, onde em português une o desenvolvimento de software com as operações das tecnologias.

Sugiro abrir os dois links e aprofundar a leitura. Tem muito mais neles, e a leitura completa pode lhe ajudar ainda mais.

Ficou alguma dúvida? Se sim, pergunte aí.

2 curtidas

Ah sim, agora tô começando a entender, resumindo é uma ideologia usada por programadores para o desenvolvimento do código ser mais limpo e produtivo pra evitar o maximo de problemas, alem disso também deve ser feita uma interatividade significativa com o cliente, obrigado por ajudar aí, vô estudar mais sobre esses termos que são usados.

Tenho mais uma dúvida sim, entendi o que é DevOps, mas tipo já que ela é uma ideologia de produtividade e interação

Então se eu sou um profissional backend e pratico esta ideologia, posso dizer que sou um Programador Back-end DevOps ?/Ou uma Pessoa pode estudar principalmente pra ser um DevOps?/Se sim, então essa seria a pessoa que planeja e dá todas as tarefas pra equipe ou deixa a equipe mais produtiva ?

(Digo isso porque vejo alguns vídeos sobre desenvolvimento e sempre é citado que existem certos ramos que são back-end - front-end e DevOps, oq me faz pensar que uma pessoa pode ser um DevOps assim como alguém pode ser um Dev Back-End certo?)

Tentar te passar meu entendimento de forma bem superficial.

Quando uma equipe de desenvolvimento está trabalhando num sistema, esse sistema, para ser utilizado, precisa está rodando em alguma infra, e essa infra precisa garantir a qualidade de uso desse sistema. Imagine um sistema que cai toda hora, por exemplo.

Para isso, além da equipe de desenvolvimento trabalhando no sistema, há também a equipe responsável por manter a infraestrutura onde o sistema estará funcionando.

Porém, com o aumento no nível de complexidade para manter sistemas funcionando hoje em dia (arquitetura de microservicos, alta disponibilidade, tolerância à falhas, resposta rápida para incidentes e correções de bugs), várias práticas precisam ser adotadas para contornar todos os possíveis problemas de um sistema, e essas práticas aparecem junto com um conjunto de ferramentas.

Saber essas práticas e manusear todo o ambiente utilizando tais ferramentas é o que faz um profissional DevOps. Acaba que o cara atua no desenvolvimento (DEV) da infra (OPS) para manter uma ótima experiência da aplicação para seus usuários.


Tentei abordar de uma forma que fique mais simples de entender (do que entrar nos aspectos das práticas, ferramentas e conceitos). Apesar de entender um pouco o devops, confesso que tive uma certa dificuldade de escrever essa resposta pra sua dúvida, mas espero ter conseguido ajudar um pouco.

1 curtida

Opa, ajudou muito, agora entendo como é aplicável na prática, vlw man