DevOps – Colaboração é a chave da questão

Em ambientes com cada vez mais necessidade de mudanças e atualizações constantes, os times de tecnologia enfrentam desafios entre a agilidade das entregas para atender demandas de negócios e a estabilidade dos ambientes operacionais.

A falta de cooperação entre os grupos de tecnologia resultam em conflitos e ineficiências e precisamos criar uma ponte entre as necessidades de desenvolvimento ágil e os requisitos técnicos dos ambientes de produção.

Um ponto importante da mudança de filosofia é acabar com os silos e a cultura do “finger point” e investir de forma séria em automação.

Ao buscar oportunidades para automação do ciclo de desenvolvimento e operações podemos olhar para itens como por exemplo:

  • Builds
  • Tenting
  • Monitoring
  • Deployments
  • System Configuration

A necessidade por simplificar processos entre os grupos e garantir a eficiências das entregas é pauta constante na agenda dos profissionais de tecnologia.

Normalmente todo fluxo de evolução de produtos e soluções dependem de tecnologia e sistemas complexos e com diversas partes dependentes, essa realidade introduz desafios de comunicação entre os times e deixa claro que para atender ao novo mundo precisamos de mudanças e novos modelos mentais.

Times de tecnologia devem ser cada vez mais responsáveis pelo sucesso dos seus grupos e ter o contexto claro do seu papel no sucesso dos negócios.

Todos os envolvidos existem por um motivo principal, viabilizar o negócio.

Velocidade no processo de entregas de novas funcionalidades e ambientes é uma necessidade e requisito básico para atingir os resultados, porém esse ponto não é mais importante que a segurança e a disponibilidade dos ambientes.

As mudanças não devem representar “incêndios” e dias intermináveis de crises e instabilidades.

Diminuir a distância entre os times que desenvolvem software e as equipes operacionais requer uma mudança de cultura. Uma abordagem muito mais colaborativa , com liberdade , times capacitados e grande responsabilidade.

Nessa cultura, a comunicação, transparência e as relações humanas são indispensáveis.

Para facilitar a vida dos times de desenvolvimento e operações existem diversas categorias de soluções que devem ser consideradas, entre elas podemos citar:

  • Source Control
  • Continuous Integration
  • Deployment
  • Cloud / Iaas / Paas
  • Monitoring & Data visualization
  • Database lifecycle management
  • Repository Management
  • Provisioning / Configuration Management
  • Release Management
  • Logging
  • Build
  • Testing
  • Containerization
  • Collaboration
  • Security

Diversas ferramentas também apoiam nessa jornada, entre elas:

Source Control

  • Git
  • GitHub

Continuous Integration

  • Jenkins
  • Continuum
  • Hudson

Deployment

  • Jenkins
  • Chef
  • Capistrano

Cloud / Iaas / Paas

Monitoring & Data visualization

  • Kibana
  • Graphite
  • Splunk
  • Nagios
  • Zabbix
  • Grafana
  • Elasticsearch

Database lifecycle management

  • DBmaestro
  • Datical
  • Liquibase

Repository Management

  • Artifactory
  • Nexus
  • Archiva
  • NuGet
  • npm
  • Docker Hub

Provisioning / Configuration Management

  • Chef
  • Ansible
  • Puppet
  • Consul

Release Management

  • Continuum

Logging

  • Splunk
  • Logstash
  • Graylog
  • Loggly

Build

  • Continuum
  • Maven
  • ANT
  • Hudson
  • Broccoli
  • Make

Testing

  • Cucumber
  • Selenium
  • Gatling
  • JUnit
  • TestNG
  • JMeter

Containerization

  • Docker
  • Kubernetes
  • Mesos
  • Linux Containers
  • Swarm
  • Marathon
  • OpenVZ

Collaboration

  • Jira
  • Trello
  • Slack
  • HipChat

Security

  • Snort
  • Cyberark
  • Tripwire
  • Fortify
  • Vault
  • SecureAssist

 

Tabela de DevOps

 

Um ponto fundamental dessa revolução é entender que não é apenas um conjunto de ferramentas é uma mudança de cultura , onde novas formas de trabalho são buscadas, testadas , discartadas ou adotadas.