O SaveniCloud Jelastic PaaS é uma plataforma de nuvem verdadeiramente multilíngüe, que atualmente fornece Java, PHP, Python, Ruby, Node.js, .NET e, a partir de agora, ambientes Golang para executar projetos de todos os tamanhos e naturezas diversas.

Neste artigo, você conhecerá as características distintivas da hospedagem Go e será apresentado às possibilidades relacionadas ao Go na SaveinCloud Jelastic PaaS.

Hospedagem Ambientes Go

Para hospedar seu aplicativo Go, você precisa criar o ambiente apropriado usando o Assistente de Topologia Jelastic .

Alterne para a guia Mecanismo Go , adicione Golang como seu servidor de aplicativos e qualquer outra pilha de software necessária para o seu projeto (por exemplo, balanceadores de carga, bancos de dados ou armazenamento compartilhado). Se necessário, ajuste a contagem de nós do ambiente, os limites do cloudlet para RAM e CPU, anexe IPs públicos, etc.

Nota: Todas as instâncias no Jelastic são contêineres completamente isolados , que são distribuídos uniformemente pelos nós de hardware disponíveis (servidores físicos ou VMs) usando regras de antiafinidade automáticas. Isso elimina o risco do tempo de inatividade do aplicativo, ou seja, garante alta disponibilidade .

Para obter mais informações sobre como configurar o ambiente, consulte o documento Criar Ambiente .

Versões Golang na SaveinCloud

Atualmente, as seguintes versões do modelo de pilha de Golang são suportadas pela SaveinCloud Jelastic:

  • golang 1.9.1
  • golang 1.9.2
  • golang 1.9.4
  • golang 1.10

Você pode escolher a versão preferida durante a criação do ambiente e alterá-la posteriormente por meio da reimplantação do contêiner . Com isso, todos os dados personalizados dentro do(s) nó(s) serão salvos, o que, por exemplo, permite atualizar facilmente a versão do software na nova versão do modelo de pilha.

Ir implantação de aplicativos

Após a criação do ambiente, você pode implantar seu projeto Go no repositório Git (a implantação do archive de aplicativo será implementada na próxima versão da plataforma).

É possível customizar o processo de implementação fornecendo ou ajustando as seguintes variáveis ​​do contêiner :

  • GO_RUN – define um nome do arquivo binário executável (se não for especificado, o script de implantação tentará localizar um baseado no nome do projeto Git)
  • GOPATH – define a pasta de implantação ( /home/jelastic/ webapp , por padrão)
  • GO_BUILD_OPTIONS – fornece opções adicionais para a operação de compilação ( -a , por padrão, para forçar a recriação de pacotes que já estão atualizados)
  • GO_RUN_OPTIONS  fornece opções adicionais para a operação de execuçãoimplantação aplicação golang

Durante a implementação, o Jelastic PaaS executa automaticamente as seguintes etapas:

  • analisa o URL do Git fornecido para obter um link para o projeto Go
  • faz o download do pacote com todas as dependências usando o comando go get
    • em caso de erro, executa o download como para o projeto Git comum e tenta novamente obter as dependências Go
  • constrói o projeto com o comando go build (usando as opções adicionais especificadas na variável GO_BUILD_OPTIONS )
  • executa o binário definido pela variável GO_RUN com o comando go run (usando as opções adicionais especificadas em GO_RUN_OPTIONS )

Após a implantação bem-sucedida, o projeto Go está localizado no diretório configurado com a variável GOPATH . Com isso, a hierarquiado espaço de trabalho é baseada nos requisitos da documentação oficial.

Você pode aprender mais sobre a implantação de aplicativos Go através dos documentos apropriados:

Gerenciamento de Domínios

Com o Jelastic PaaS, você pode facilmente vincular um nome de domínio externo (personalizado) ao seu aplicativo Go para ser usado em vez do domínio do ambiente padrão. Dependendo do ponto de entrada usado, existem duas opções:

  • Redirecionamento CNAME se estiver usando o Balanceador de Carga Compartilhado ; é recomendado para ambientes dev e test
  • DNS Um registro se estiver usando IP público ; pode lidar com alta carga de tráfego e é adequado para ambientes de produção

Além disso, você pode facilmente trocar domínios para redirecionar o tráfego de um ambiente para outro (por exemplo, para mudar para a versão mais recente do aplicativo sem tempo de inatividade).servidores de aplicação golang na nuvem

Dica: Para o acesso via IP Público, o tráfego pode ser redirecionado para outro ambiente com a ajuda do método da API SwapExtIps(também disponível via CLI ).

Escala Vertical Automática

O dimensionamento vertical automático é garantido pela capacidade do Jelastic de fornecer dinamicamente os recursos (RAM e CPU) para um servidor dentro de limites predefinidos de acordo com suas demandas atuais, sem necessidade de intervenção manual. Esse recurso garante que você nunca pague em excesso por recursos não utilizados e economiza seu tempo, pois elimina a necessidade de manipular os ajustes relacionados à carga ou as mudanças na arquitetura.

O processo de escalonamento é tratado por plataforma automaticamente, você só precisa especificar o inferior e superior limite de cloudlet (cada um é igual a 128 MiB de RAM e 400 MHz de CPU) para o seu servidor Go através do assistente de topologia:apoio golang na nuvemO aplicativo irá funcionar dentro destes limites com redução do consumo de recursos quando a carga está baixa ou aumenta quando a carga está em alta. Assim, você paga apenas pelos recursos que são realmente consumidos. Para mais informações, consulte a documentação de dimensionamento vertical automático .

Escala Horizontal Manual

Servidores Extra Golang podem ser facilmente adicionados através do assistente de topologia durante a criação ou ajuste do ambiente. Basta clicar no botão “ ” na seção Escala Horizontal e adicionar o número necessário de instâncias.usando o ambiente golang na nuvemO número máximo de servidores do mesmo tipo em uma única camada de ambiente depende de determinadas configurações do provedor de hospedagem (geralmente esse limite representa 16 nós e pode ser ampliado enviando a solicitação apropriada para suporte).

Além disso, você pode notar que, com o dimensionamento do servidor Golang, o nó de balanceamento de carga é automaticamente adicionado à topologia do ambiente (necessária para a distribuição de solicitações adequadas). Encontre mais detalhes sobre o dimensionamento horizontal manual na documentação.

Escala Horizontal Automática

A escala horizontal automática é implementada por meio de acionadores ajustáveis, que permitem aumentar ou diminuir o número de nós devido à carga do aplicativo. Para configurar o dimensionamento automático, abra o ambiente Configurações> Monitoramento> seção Escala automática horizontal e clique no botão Adicionar .

Aqui, você pode configurar os gatilhos para pilhas e recursos específicos ( CPU , RAM , Rede , Disco ) ajustando as condições de escala.ambiente de servidor de aplicativo golang

Saiba mais sobre o dimensionamento horizontal automático no documento correspondente.

Além disso, há um conjunto de outros recursos e funcionalidades fornecidos pela hospedagem do Jelastic Go, entre eles:

  • Custom ou Jelastic SSL
  • IPv4 público e IPv6
  • Ampla escolha de bancos de dados gerenciados
  • Firewalls de contêiner, terminais e isolamento de ambiente
  • UI amigável e acesso SSH direto para gerenciamento
  • API aberta e Cloud Scripting para automação
  • Modelo de precificação de pagamento conforme o uso
  • Funcionalidade de colaboração para trabalho em equipe
  • Distribuição multi-nuvem

A hospedagem em nuvem Go lançada está pronta para executar ambientes de desenvolvimento, teste e produção. O registro está disponível no Jelastic PaaS .