Uma forma de trabalho colaborativa para o desenvolvimento de serviços de TI.
DevOps na Teoria – Uma nova cultura ou forma de trabalho nas empresas de TI. Existem muitas definições, segue uma:
wikipedia: https://en.wikipedia.org/wiki/DevOps
DevOps (a clipped compound of “software DEVelopment” and “information technology OPerationS“) is a term used to refer to a set of practices that emphasize the collaboration and communication of both software developers and information technology (IT) professionals while automating the process of software delivery and infrastructure changes. It aims at establishing a culture and environment, where building, testing, and releasing software can happen rapidly, frequently, and more reliably.
Um pouco da realidade: Infraestrutura X Desenvolvimento
Hoje em dia não existem as fronteiras entres estes dois mundos. Grandes empresas criavam barreiras dividindo as equipes em diretorias separadas que competiam entre si. A competição e concorrência ainda existem, mas vemos que mudou um pouco. As células de negócios agrupam profissionais de diversas disciplinas trabalhando para o negócio. A diretoria ou célula tem desde o PO, GP, DEV, QA, INFRA E DEVOPS.
Apesar de ser um termo recente, eu acredito que essa prática já acontecia há mais de 10 anos, onde todos faziam um pouco de cada coisa. Naquela época as empresas e os sistemas eram mais enxutos. Na minha opinião, somente voltamos no tempo e criamos um termo legal, onde aplicamos as lições aprendidas dos últimos tempos de TI.
Muita prática: Startups e pequenas empresas, para criarem e investirem em um empreendimento, precisam conhecer muito do negócio e saber da tecnologia, para pelo menos tirar o projeto do papel.
Com tudo que aprendi consegui realizar algumas entregas para o meu projeto pessoal.
Como exemplo, fiz um novo site usando muito do conhecimento que adquiri.
Infraestrutura – Precisamos saber muito sobre Cloud Computing.
Alguns conceitos sobre a Nuvem:
IAAS – Criei meus servidores Linux na Azure e AWS para hospedar meu sites. Tive que instalar o apache e fazer toda a configuração. Esse modelo exige um bom conhecimento de sistemas operacionais e suas aplicações.
PAAS – Usando um modelo WebApp, é possível criar um Blog em WordPress em poucos minutos. É criar o WebApp e sair “blogando”. Tudo vem pronto para você.
SAAS – Usando recursos como office 365 e Google Docs, entre outros recursos, nossa vida fica mais fácil e acessível de qualquer lugar.
Entender o negócio e dominar o sistema operacional e o software são essenciais para equipes DevOps. Existem muitos outros modelos de serviços na Nuvem.
Desenvolvimento rápido – entregas constantes
Criei um site bem simples em HTML, com pouco conteúdo, mas com o básico para ser disponibilizado. No modelo de desenvolvimento ágil, podemos fazer pequenas entregas.
Nosso trabalho nunca estará 100% pronto, sempre teremos algo a melhorar.
- Usando templates BootStrap, tudo fica mais fácil.
- Utilizar o Git Hub para armazenar, compartilhar e controlar o código.
- Continuous integration – Integração contínua com o Jenkins pegando o último código no reposítório. Usando o Jenkins também para facilitar a implantação e automação de scripts.
- Continuous deployment / delivery – Estabelecer desenvolvimento constante e pequenas entregas para diminuir falhas.
- Conhecer uma linguagem de programação é interessante. Conheci o C# e agora me aventurando no mundo Java.
- Shell scripts também é importante. As ferramentas de automação usam muito de linguagens interpretadas como o Shell, Ruby e Python.