# Google Cloud Platform

Implantar infraestrutura utilizando a solução Navixy on-premise requer uma seleção inicial de local bem pensada. Se decidir favorecer uma plataforma em nuvem, uma das soluções mais populares é o Google Cloud Platform (GCP). É uma plataforma confiável, comprovada e amplamente reconhecida que permite lançar máquinas virtuais com facilidade e mínimo esforço. No entanto, ela ainda oferece tanta flexibilidade de personalização, segurança e tolerância a falhas quanto outras plataformas populares.

<div align="center"><img src="https://645322942-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-89980904f1f72e0f2727cbd8486c528bf9bba0d6%2Fimage-20231228-134130.png?alt=media" alt="GCP"></div>

Abaixo estão os passos bem básicos para implantar uma máquina virtual em funcionamento na qual você poderá instalar a solução Navixy On-premise. Se precisar ajustar finamente seu ambiente em nuvem e realizar configurações mais sofisticadas, será necessário consultar a [documentação do Google Cloud](https://cloud.google.com/docs/).

## Primeiros passos

A primeira coisa que você precisa fazer é inscrever-se no serviço, escolhendo uma conta individual ou empresarial dependendo de seus objetivos. Se estiver se registrando pela primeira vez, terá a oportunidade de aproveitar um período de avaliação de 90 dias e créditos de US$300, para que possa continuar o trabalho sem pressa. Porém, lembre-se de que, quando estiver pronto para lançar sua instância como uma solução pronta para negócios, você precisa converter sua conta de avaliação gratuita para uma conta completa; caso contrário, corre o risco de perder sua instância após o término dos 90 dias.

Uma vez concluído o registro, será necessário selecionar ou criar seu projeto. Por padrão, um novo projeto já é criado, mas você pode renomeá-lo ou criar outro.

![](https://645322942-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-9b025ae44ab45e6e4d1be105339fe7d2ebd84e31%2Fimage-20231228-141628.png?alt=media)

![GCP - projeto](https://645322942-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-152858fd37eafdea872a115307ce65d95c1a613d%2Fimage-20231228-141659.png?alt=media)

Depois que o projeto for criado, você pode prosseguir para criar sua nova máquina virtual na nuvem.

## Máquina Virtual

Para criar uma nova máquina virtual, selecione a opção “Create a VM” no painel do seu projeto, na seção “Products”.

![máquina virtual GCP](https://645322942-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-1d5cbfbea15edd498286798e4b113ba36904ee77%2Fimage-20231228-145129.png?alt=media)

Outra forma é ir em “Compute Engine” - “VM instances” no menu de navegação.

![máquina virtual GCP](https://645322942-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-db36e184f714abd6d8c0617968bbcbce30085c73%2Fimage-20231228-145315.png?alt=media)

Em seguida, será solicitado que você habilite a Compute Engine API - este é um passo obrigatório para trabalhar com máquinas virtuais.

![compute engine GCP](https://645322942-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-0b7d4bef28857e2e3648f4dfc4e6d8f1a120275e%2Fimage-20231228-145643.png?alt=media)

Após a API ser habilitada, você será encaminhado para **VM instances** menu - é aqui que você pode criar suas máquinas virtuais.

Clique **CREATE INSTANCE**.

![criar instância GCP](https://645322942-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-383891b7969a4f6255537cf7019b430c54a816d5%2Fimage-20240116-123112.png?alt=media)

Aqui você precisa fazer o seguinte.

1. Escolha um nome - pode ser qualquer nome, mas é desejável que indique a finalidade da máquina. Opcionalmente, você pode atribuir rótulos e tags para organizar seu espaço de trabalho.\ <img src="https://645322942-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-86834db07de00d6f95eff8570428876f4e6739b5%2Fimage-20240117-131953.png?alt=media" alt="GCP create instance" data-size="original">
2. Selecione uma região e zona - isto indica onde o data center que hospedará seu futuro servidor estará fisicamente localizado. É preferível escolher uma região o mais próxima possível de seus clientes. Esta configuração afeta ligeiramente o custo.\ <img src="https://645322942-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-36a024a52d54a665382c74b535888982a7dfaf72%2Fimage-20240117-132016.png?alt=media" alt="GCP instance region" data-size="original">
3. Selecione a configuração da máquina. Nesta seção você escolhe a configuração do servidor dependendo das tarefas e das cargas planejadas. Você pode encontrar mais informações sobre as possíveis configurações de instância na [documentação do Google Cloud Platform](https://cloud.google.com/compute/docs/instances). Para instâncias de grande carga e muito grandes, recomenda-se selecionar configuração otimizada para computação. O tipo e a configuração da instância afetam muito o custo.\
   ![GCP instance configuration](https://645322942-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-9bde40c4fbd25548e14a9b0020c4b19e15af6e15%2Fimage-20240117-132153.png?alt=media)
4. Configure o disco de inicialização. Aqui você seleciona a versão do sistema operacional (recomenda-se Ubuntu 20 ou mais recente), tipo de disco (recomenda-se SSD) e capacidade do disco (deve ser calculada de acordo com [requisitos de hardware do servidor](https://www.navixy.com/docs/on-premise/pt-br/on-premise/how-to-guide/requirements/server-hardware)).\
   ![GCP disk](https://645322942-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-bf4876f2b41278c9caffae72d0f7c7a77a131d5c%2Fimage-20240117-132329.png?alt=media)
5. Configure as regras do firewall. Basicamente, é necessário permitir tráfego HTTP e HTTPS.\
   ![GCP firewall settings](https://645322942-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-7d7124d761046472c6f9449153d8699306eef221%2Fimage-20240117-132502.png?alt=media)
6. Faça quaisquer outras configurações com base em seus requisitos específicos.
7. Clique **CREATE**. Sua nova instância em nuvem será criada.

## Conexão

Uma vez que a máquina virtual é criada, ela receberá um endereço IP interno e externo. Mas, mesmo tendo um endereço externo, você não poderá usá-lo para conexão SSH imediatamente.

A instância em nuvem suporta conexão usando chaves SSH, e a maneira mais fácil de configurar a conexão é fornecer ao servidor uma chave que você possua localmente.

{% hint style="info" %}
Se você não possui chaves SSH localmente, precisa criar uma nova chave usando OpenSSH (Linux/MacOS) ou PuTTYgen (Windows).
{% endhint %}

Primeiro, é necessário estabelecer a conexão SSH no navegador fornecida no Console do Google. Clique no botão “SSH” à direita da instância recém-criada.

![conexão SSH GCP](https://645322942-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-6dff259a4cf5abad98e1324be09ce3909f5430df%2Fimage-20240117-133809.png?alt=media)

Uma nova janela do navegador será aberta, onde uma conexão com o servidor será estabelecida. Siga as instruções na tela - em algum momento o console realizará a autorização. Após isso, você estará logado no sistema Linux com seu nome de usuário do Google.

![SSH no navegador GCP](https://645322942-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-753dfa9bebe5410cc080019ee6fc60366bf1a9e0%2Fimage-20240117-134819.png?alt=media)

Seu novo usuário é sudoer e possui privilégios de root, portanto você pode fazer as configurações necessárias em seu nome, ou executar `sudo -i` e realizar todas as ações subsequentes como root.

Agora você precisa selecionar um usuário para acesso SSH remoto. O sistema possui um usuário padrão `ubuntu`, vamos configurá‑lo usando este exemplo, mas você pode criar qualquer usuário de sua escolha para isso.

Vá para o arquivo `/home/ubuntu/.ssh/authorized_keys`. Se não existir tal arquivo ou diretório, você precisa criá‑lo primeiro. Abra o arquivo para edição. Copie a parte pública da sua chave SSH para este arquivo - ela deve ser precedida por `ssh-rsa` e finalizada por qualquer nome de identificação.

![chave SSH GCP](https://645322942-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-95484ffcd11ecc082c2dc6b39e7140f6a0d0f0d1%2Fimage-20240117-141222.png?alt=media)

Salve o arquivo.

Reinicie o serviço SSH: `sudo systemctl restart ssh`

Agora você pode usar qualquer cliente SSH (por exemplo, PuTTY) para conectar-se à sua instância em nuvem recém-criada - lembre-se de usar sua chave privada para autenticação.

## Implantação da plataforma Navixy

Agora você tem um servidor em nuvem em funcionamento ao qual pode acessar remotamente.

Prossiga para a seção relevante das instruções e execute [instalação da plataforma Navixy On-premise](https://www.navixy.com/docs/on-premise/pt-br/on-premise/how-to-guide/installation/advanced-installation).
