A SaveinCloud Virtuozzo 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.
Neste artigo, você conhecerá as características distintivas da hospedagem Go e será apresentado às possibilidades relacionadas ao Go na SaveinCloud Virtuozzo PaaS.
Hospedagem Ambientes Go
Para hospedar seu aplicativo Go, você precisa criar o ambiente apropriado usando o Assistente de Topologia Virtuozzo.
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.
Todas as instâncias na Virtuozzo são containeres 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 site da Virtuozzo.
Versões GoLang na SaveinCloud
Atualmente, as seguintes versões:
- GoLang 1.9.1;
- GoLang 1.9.2;
- GoLang 1.9.4;
- GoLang 1.10.
Modelo de pilha de GoLang são suportadas pela SaveinCloud Virtuozzo.
Você pode escolher a versão durante a criação do ambiente e alterá-la posteriormente por meio da reimplantação do container. 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.
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 container:
- 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ção.
Durante a implementação, a Virtuozzo PaaS executa automaticamente as seguintes etapas:
- Analisa o URL do Git fornecido para obter um link para o projeto Go;
- Realiza 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 hierarquia do 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:
- Gerente de Implantação
- Guia de Implantação
- Visão geral da implantação automática
- Ganchos de Implantação
Gerenciamento de Domínios
Com a Virtuozzo 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).
Escala Vertical Automática
O dimensionamento vertical automático é garantido pela capacidade da Virtuozzo 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. Confira mais sobre o assunto no Blog da Virtuozzo, clique aqui.
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:
O 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.
O 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.
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 da Virtuozzo Go, entre eles:
- Custom ou Virtuozzo 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 está pronta para executar ambientes de desenvolvimento, teste e produção. O registro está disponível na Virtuozzo PaaS.
Conheça também a plataforma da SaveinCloud e teste gratuitamente por 14 dias!