A fim de ensinar como utilizar os recursos do Google Cloud para fazer o deploy de uma aplicação, o GDSC UFBA preparou um workshop onde serão exibidos alguns conceitos sobre Cloud, modelos de computação em nuvem e, um momento prático composto das seguintes etapas:
- Escolha do projeto
- Instalação de ferramentas e preparação do ambiente
- Configurações
- Deploy do projeto
- gcloud
- Clonar o projeto
Utilizaremos para o deploy uma imagem docker com a aplicação de uma página construída em ReactJs.
A criação da página não é o foco do projeto entretanto, abaixo você encontrará a descrição básica do processo para elaboração da mesma.
- Editor de código: VS Code
- NodeJs + NPM
- DOCKER
- gcloud
1 - Crie o projeto com: npx create-react-app nome-do-projeto
2 - Na pasta SRC iremos divir o nosso projeto em componetes, são eles:
- Header
- Main
- Footer
- Carrossel (opcional)
Cada componente possui seu próprio arquivo index.js e style.css.
Além de ser padrão de mercado, ter a possibilidade de transformar uma aplicação em imagem docker permite que ela seja alocada
como container em ambientes diferentes, fazendo com que ela possa ser utilizada tanto no computador do desenvolvedor quanto
no servidor da produção, por exemplo.
Outra vantagem é que o grupo de máquinas físicas ou virtuais onde os containers são executados (cluster) permite maior
facilidade de gerenciamento uma vez que é possível monitorar constantemente.
Com sua conta já criada, siga os passos:
- Selecione My first project > novo projeto > escolha um nome > confirme a criação > abra o projeto
Habilitando alguns serviços:
- Criar instância > renomei (opcional) > selecione a região > configure a máquina > selecione o disco de inicialização (Sistema operacional) >
- Em firewall selecione "Permitir tráfego HTTP" > Clique em "CRIAR"
* Deixamos as configurações padrões tanto da máquina quanto do SO pois, são mais que suficiente para o projeto em questão
Terminadas as configurações, iremos agora nos conectar à máquina criada. Em seguida, seguiremos uma série de comandos para enfim fazer o deploy da aplicação:
Será aberto um terminal e, a partir dele precisaremos digitar os seguintes comandos para instalar as dependências necessárias:
- sudo apt update
- sudo apt install git
- git clone "repositório do projeto"
- cd "pasta-do-projeto"
- curl -fsSl https://deb.nodesource.com/setup_14.x | sudo -E bash -
- sudo apt-get install -y nodejs
- npm i
- npm run-script build
- sudo npm install -g serve
- sudo serve -l 80 -s build
Ao retornar para página do Google Cloud, você poderá observar a informação IP externo preenchida. Pode pegar esse link e enviar pra seus amigos que eles conseguirão visualizar seu projeto.
* Vamos seguir as seguintes orientações após ter excluído o projeto anterior
* O procedimento incial é semelhante ao anterior.
- Crie uma nova Instância de VM
- Escolha um nome para seu projeto e faça as configurações da máquina
- <strong> Procure por Contêiner e selecione 'Deploy Contêiner' </strong>
- Selecione a imagem do contêiner (Neste caso utilize jonathanbisp/workshop-cloud)
- Escolha a política de reinicialização (sugestão: "em caso de falha")
- pronto, já pode confirmar
- Mantenha o restante das configuração iguais a da primeira VM
- Crie a máquina
- Seu IP externo já está disponível
Agora, faremos a entrega do nosso projeto de forma ainda mais otimizada com o Kubernetes. Para isso, é necessário seguir os seguintes passos:
- De volta na págine do Google Cloud Platform, utilize o menu lateral para procurar por Kubernetes Engine, selecione está opção.
- Ative a API do Kubernetes Engine
- Clone o repositório do projeto, dentro dele existe um arquivo chamado deployment.yaml com as configurações necessárias
- Assim que ativada a API do kubernetes engine, será exibido em tela o Cluster do Kubernetes com alguas opções. Selecione a opção 'CRIAR'
- Autopilot do GKE > 'CONFIGURAR'
- Escolha Nome, Região e selecione 'CRIAR'
- Agora vá até o terminal do projeto e faça login no gcloud. Utilize os seguintes comandos:
* gcloud auth login
- instale o plugin do Kubernets
* gcloud components install kubectl
- Após a conclusão da criação do cluster volte ao terminal e digite o seguinte comando fazendo as devidas substituições:
* gcloud container clusters get-credentials <nome-docluster> --zone=<local-do-cluster> --project=<id-projeto>
- Quando conectado execute:
* kubectl apply -f deployment.yaml
- Aguarde a criação na página do Google Cloud Platform, quando disponível será exibida a informação 'Pontos de Extremidade'. Pronto, já foi feito o deploy do seu projeto.
Link da Gravação: https://drive.google.com/file/d/1ux5h5xBvDmPmlsanoF5fw_EtbxKP1G6I/view?usp=sharing
baixe isso: https://cloud.google.com/sdk/docs/install