Cloud...precisamos falar de limites! (Parte 1/2)
Tags: cloudcustodian, complianceascode, cloud, aws
Published: 2021-07-15 13:50:16

_Olá, escrevi esse artigo para o Tech Journal GFT na edição de Jun/2020 e publicado no [Blog da GFT em Out/2020](https://blog.gft.com/br/2020/10/20/cloud-we-need-to-talk-about-limits) (em inglês)_

_Aqui vou trazer para vocês a versão em Português e divido em duas partes, onde na primeira vou explicar um pouco o que é Guardrails [e uma segunda parte mais técnica, explicando a ferramenta Cloud Custodian](https://dev.to/felipekiko/cloud-precisamos-falar-de-limites-parte-2-2-4m67)_

---

## Introdução

Ei! Como vocês estão nesses tempos difíceis que estamos passando? Você já está acostumado com a vida em casa, e SÓ em casa? Eu pelo menos falo que dia a dia estou aprendendo um pouco mais sobre como é estar no mesmo lugar o tempo todo, de uma forma mais "amigável" e até aproveitando um pouco da situação!

Como? Colocando alguns limites e barreiras...isso mesmo, não quer dizer que só porque estamos em casa podemos fazer tudo, principalmente quando temos várias reuniões durante o dia com crianças pequenas em casa!

E isso tem muito a ver com o que vamos falar aqui hoje...limites, ou também conhecidos como GuardRails (corrimão, trilho de segurança, etc.)!

Nos últimos dias, ouvi muito sobre esse termo "GuardRails" e, sinceramente, era um termo que não tinha muito a sua associação com tecnologia, muito menos na nuvem, mas depois que entendi, vejo que é essencial para a governança e a segurança correta para se trabalhar na nuvem, e é isso que quero compartilhar com vocês aqui, explorando um pouco mais sobre os conceitos e uma ferramenta que podemos usar para nos ajudar nessa jornada

##Conceito

Hoje em dia, criar servidores ficou muito mais fácil e rápido, tudo por causa da nuvem, onde podemos criar um servidor com alguns cliques e em questão de minutos (quem dirá segundos), e isso trouxe grandes benefícios para todas as empresas que o utilizam, aumentando seu "Time To Market"

Mas junto com isso, trouxe alguns perigos, tanto em termos de segurança quanto de custos, onde você também pode aumentar seus custos com a mesma agilidade que um servidor será criado ou até mesmo terá seus arquivos expostos com apenas um clique em um console, então mais do que nunca é necessário falar sobre alguns limites

Sei que você pode estar pensando algo como: _"Nossa, mas a agilidade que a nuvem trouxe para minha equipe, terei que retirar e definir limites, voltando ao que era antes?"_, e respondo que sim e não ao mesmo tempo!

É possível criar um catálogo de serviços que sua equipe possa usar ou não, porém pode ser um trabalho enorme e constante, já que as nuvens públicas lançam um novo serviço ou alteram eles o tempo todos e todos os dias (não na mesma proporção que novos frameworks são criados, mas é muito rápido também!), onde a equipe que mantém o gerenciamento da sua nuvem tem que "disponibilizar" produtos em nuvem para sua equipe, criando catálogos e produtos disponíveis, quase como "produtizar" os "produtos"

Tá, ok...mas o que podemos fazer então? Como podemos manter a equipe ágil trabalhando com sua nuvem favorita, mas também sem trazer riscos para o s eu negócio? Uma solução é aplicar GuardRails! Isso mesmo, coloque um limite sem "produtizar" produtos

Para explicar melhor, imagine que você leva sua filha de 8 anos para jogar boliche...jogar boliche acaba sendo mais fácil para você, porque você sabe como funciona o jogo e seu objetivo, sabe lidar com o peso da bola e como jogá-la, e mesmo que de uma forma desajeitada, você atinge os pinos (pelo menos boa parte das vezes)...mas do outro lado, é mesmo jogo, objetivos e a mesma bola que sua filha terá que enfrentar, então ela não tem tanta força como você, e aquela bola grande e pesada é muito desajeitada para sua mãozinha...sua força e pontaria dependem muito mais de um empurrão e improvisação, onde na maioria das vezes a bola passa pela valeta, não alcançando os pinos (seu objetivo) e frustrando ela, deixando a impressão que aquele jogo é muito chato

Então, como resolvemos isso? Guardrails! Subimos pelas valetas laterais as canaletas! E o que conseguimos? Um experiência totalmente diferente, onde agora ela pode atingir seu objetivo, mesmo que encoste na lateral, a bola é sempre colocada novamente no seu curso, e finalmente acertar os pinos! E quem sabe até conseguimos um sorriso com um strike!

Esse é o objetivo, não nos privarmos de jogar o jogo como deveria ser, e os GuardRails da nuvem funcionam da mesma forma, ou seja, vamos deixar nossa equipe de desenvolvimento usar seus recursos favoritos de sua nuvem pública favorita! Vamos apenas "Levantar as canaletas" para evitar qualquer desvio indesejável

Um exemplo prático...você pode liberar com segurança o uso de Buckets S3 da AWS para sua equipe, mas preocupado com a segurança, você coloca algumas limitações para, por exemplo, não deixar o bucket público, evitando o possível vazamento de dados

Outro exemplo, você pode deixar seu time criar instâncias EC2 em sua conta de desenvolvimento, mas vamos permitir apenas no máximo 5 instâncias e na família "T3", evitando criar um grande quantidade de servidores e/ou máquinas grandes e caras, economizando alguns bons dólares para nossa empresa

##Ferramenta

Nativamente, os grandes players de cloud pública têm seus serviços "Guardrails", cada um implementando da melhor maneira, por exemplo, na AWS temos meios para fazer isso juntando serviços como CloudTrail, EventBridge e AWS Config, ou até mesmo implementando o [AWS Budget Actions](https://aws.amazon.com/pt/about-aws/whats-new/2020/10/announcing-aws-budgets-actions/)...mas temos também outras ferramentas no mercado que têm uma abordagem mais "multi-cloud", e no próximo [post vou explicar um pouco melhor a ferramenta open source, nosso amigo Cloud Custodian](https://dev.to/felipekiko/cloud-precisamos-falar-de-limites-parte-2-2-4m67)!