Se apresentando no Hackaton Magalu
Ideia Principal:
Portais de Configuração:
Iremos criar um módulo que funcione como uma entrada para usuários sem experiência em Terraform. Esse módulo funcionará como um template para configurações básicas, onde o usuário responde perguntas (com variáveis) e obtém, ao final, a configuração completa da infraestrutura, como uma instância de banco de dados, uma rede segura e volumes de armazenamento.
Caffeine Witchery
Ideia Inicial
Criar um módulo que funcione como uma entrada para usuários sem experiência em Terraform. Esse módulo funcionará como um template para configurações básicas, onde o usuário responde perguntas (com variáveis) e obtém, ao final, a configuração completa da infraestrutura, como uma instância de banco de dados, uma rede segura e volumes de armazenamento.
Início
Primeiramente, o grupo buscou entender melhor o que é o terraform e os produtos que ele oferece, buscando aprender e conhecer a aplicação para desenvolver algo em cima disso. Dessa forma, nossa primeira atividade foi a construção de uma Virtual Machine para conhecer o funcionamento e desenvolvimento em si dos produtos fornecidos pela plataforma.
Tivemos dificuldade nesse primeiro contato, e isso influenciou diretamente na escolha do projeto final.
Decisão
Decidimos criar uma plataforma com objetivo de facilitar esse primeiro contato com os produtos Terraform, de forma a conseguir gerar scripts com toda configuração necessária para a infraestrutura escolhida através dela. Focando no usuário leigo que estaria no primeiro contato com a aplicação (assim como nós). A ideia é de fornecer scripts simples, para o primeiro contato do usuário com o produto.
Desafios
Nosso maior desafio foi justamente o aprendizado e compreensão sobre o Terraform, por ser uma tecnologia desconhecida por todos os membros do grupo, tivemos dificuldades para compreender o que era, como funcionava e quais passos deveríamos tomar para obter sucesso na execução da aplicação escolhida.
Além disso, uma vez definido o projeto, buscamos entender como ele seria construído, e a integração das partes feitas foi outro desafio encontrado.
Construção do projeto
O grupo se dividiu a fim de melhor definir as tarefas que iríamos realizar
- Desenvolvimento e construção da estrutura responsável por gerar o script que será utilizado no Terraform
- Desenvolvimento da interface que procura ser de fácil utilização pelo usuário
Projeto Final
O usuário consegue gerar o script que será utilizado por ele através de um formulário, onde ele define quais são os parâmetros necessários.
Repositório
O projeto se encontra disponível no seguinte repositório: GitHub - Annalicefs/Hackathon-Magalu
O Terraform foi utilizado para instanciar o bucket que armazena os sites que geram Terraforms de acordo com o requisitado pelo usuário.
Nesse sentido, foi muito importante entender o funcionamento do Terraform para fazer a base do código que era gerado, assim como os produtos disponíveis na MagaluCloud. Infelizmente o nosso desconhecimento com HTML impediu que nós terminassemos o que propomos.
Com certeza essa experiência agregara bastante nossa jornada academica/profissional, quem diria que a gente que não sabia nada de Terraform consegueriamos fazer uma aplicação como essa?
Oi gente!
Gostei muito de acompanhar a evolução do time de vocês ontem, desde criar a ideia, até discutirmos qual seria uma maneira de implementar (em poucas horas rs) e mesmo assim conseguiram sair com um v0 para mostrar.
Daqui para baixo vai ser igual o tópico para a outra equipe, mas é uma informação legal para vocês saberem como evoluir o front, mesmo sendo estático.
E para complementar a info sobre o nosso sitezinho em object-storage, fui atrás e nós conseguimos sim referenciar nossos arquivos css
e js
dentro do index.html
utilizando a path relativa, como se estivéssemos rodando na nossa máquina.
Eu criei um exemplo bem simples para exemplificar para vocês, podem conferir em:
https://br-se1.magaluobjects.com/hackaton-thg/index.html
Na path do bucket vocês conseguem ver os arquivos que utilizei (style.css
e script.js
) → https://br-se1.magaluobjects.com/hackaton-thg/
E na prática vocês podem subir os arquivos para o bucket exatamente como rodam local, referenciando os arquivos dentro do index.html
dessa forma:
<link rel="stylesheet" href="style.css">
<script src="script.js"></script>
Ah, e um ponto importante!
Para essa abordagem funcionar é importante que todos os arquivos estejam públicos.
Vocês podem setar o acl dos arquivos individualmente como mostrei ontem com
mgc object-storage objects acl set --public-read my-bucket/index.html
Mas também, um próximo passo seria criarem uma bucket policy que torna todos os objetos dentro do seu bucket públicos, sem a necessidade de passar um por um!
Se tiverem interesse vou deixar o link para a documentação sobre bucket policy aqui no fim.
E claro quando quiserem podem me chamar para tirar dúvidas, trocar ideias, e no que eu puder ajudar estou disponível.
Foi muito legal ter a presença de vocês com a gente, e nos vemos por aí