Muitas pessoas evitam o componente “cultural” associado ao DevOps. Mas ligada à “cultura” está a “comunicação”, e a comunicação é crítica para o sucesso não apenas do DevOps, mas para qualquer esforço de automação e orquestração na empresa.
Não sabíamos que você precisava… da porta 7243 aberta.
Não sabíamos que você precisava de… novas entradas de DNS.
Não sabíamos que você precisava… do endereço IP do cliente.
Não sabíamos que você precisava…
Nós não sabíamos.
Essas três pequenas palavras ilustram, talvez de forma mais pungente do que qualquer outra, o desafio de comunicação que existe em muitas empresas hoje em dia. Frameworks e scripts só podem automatizar o que você diz para eles automatizarem, e isso significa que em algum momento você precisa saber. Como você sabe? Isso é comunicação.
É um clichê em TI que os profissionais de rede não falam com os desenvolvedores, e que as operações não gostam de segurança, mas a realidade é que, a menos que cada um dos domínios operacionais que governam o ambiente de produção saiba o que é necessário para implantar um aplicativo em produção, ele não pode ser orquestrado.
Ah, tarefas individuais como configurar um firewall ou balanceador de carga podem ser realizadas facilmente, mas cada uma delas requer informações específicas do aplicativo para ser útil. Você não pode abrir uma porta se não souber qual o aplicativo está usando. Nossos dados do iHealth de janeiro de 2017 mostram que, em mais de 6.000 clientes, há 36.731 portas distintas (únicas) em uso. Não há muitos protocolos em uso na empresa (há muitos, mas não tantos), o que significa que vários sites estão usando protocolos que não estão em suas portas "nativas". Até mesmo aplicativos da web são distribuídos em várias portas. Há aqueles que sem dúvida me vêm à mente quando digo HTTP/S: portas 80 e 443. E também há portas alternativas frequentemente usadas para esses protocolos: portas 8080 e 8443. Depois, há 8081 (usado por 4605 servidores virtuais diferentes, que representam aproximadamente aplicativos) e 8082. E há, é claro, muitas portas acima do intervalo privilegiado (0-1024) que estão em uso sem nenhum aplicativo relacionado discernível (para mim, a partir dos meus dados). Porque a porta 10203 não tem um protocolo “padrão” atribuído a ela.
O ponto aqui é que não podemos simplesmente assumir uma porta específica para qualquer implantação de aplicativo. Essa informação precisa ser comunicada, caso alguém queira executar o back-end de sua API pública em uma porta diferente. Segurança por ofuscação ainda é uma coisa, pessoal.
Além de um dado tão simples, você não pode configurar um balanceador de carga se não souber qual endereço IP público ou nome de host ele está usando ou quais serviços de back-end devem ser incluídos em cada cluster. Essas são as informações que você precisa, e essas informações precisam fluir do desenvolvimento ou das operações para as pessoas que gerenciam os sistemas, geralmente em netops.
Isso significa comunicações. Não é que você não possa criar uma ferramenta ou um formulário para coletar essas informações. A economia de (Outras) APIs e os esforços internos de transformação digital quase sempre exigem que tais trocas sejam de natureza digital. Mas para criar um formulário ou API para coletá-los, você precisa saber quais dados deseja coletar.
Você tem que sentar e discutir isso. Com pizza e café. Com cerveja e asas de frango. Por e-mail ou por telefone. De alguma forma, você precisa se comunicar com todos os grupos responsáveis pela implantação de um aplicativo e garantir que você saiba o que precisa saber.
Quando as pessoas falam sobre cultura e comunicações no contexto do DevOps, essa é uma das coisas que elas estão tentando transmitir.
É claro que há mais, mas não podemos ignorar que no cerne da aceleração das coisas para atender às demandas das empresas e dos consumidores está a premissa simples da comunicação. De saber o que um aplicativo precisa para ser mais rápido, inteligente e seguro. Porque o que você não sabe não pode ser automatizado, e o que você não pode automatizar requer intervenção manual, o que pode introduzir atrasos e desafios no processo de implantação. Se você quer que os aplicativos sejam mais rápidos e seguros, você precisa trabalhar de forma mais inteligente, não mais difícil, e tudo começa com a comunicação entre todas as partes interessadas para que você saiba o que é necessário.
Em um mundo passando por uma transformação digital, saber realmente é metade da batalha. A outra metade é tecnologia. Você não pode executar com sucesso uma estratégia digital que inclua, em parte, uma abordagem DevOps para desenvolvimento e implantação, sem ambos.