Serviços de Cloud
O Cronapp possui diversos serviços na nuvem em sua plataforma, permitindo a criação ou integração com o seu projeto em poucos cliques! Atualmente existem os serviços de Publicação, configuração de Domínios, geração de Certificados SSL, criação de Banco de dados, Armazenamento (bucket) e gerenciamento de Serviços de Cloud#Backup de banco de dados.
Os recursos do Serviços de Cloud são fornecidos pela Amazon AWS e foram integrados ao Cronapp para lhe proporcionar agilidade, comodidade e estabilidade ao utilizar uma infraestrutura de ótima qualidade. Os produtos da AWS são certificados a partir das normas ISO/IEC 27001:2013, 27017:2015, 27018:2019, 27701:2019, 22301:2019, 9001:2015 e CSA STAR CCM v4.0. Ainda assim, os recursos do Serviços de Cloud são opcionais e você pode utilizar outras plataformas para manter/hospedar suas aplicações, domínios, banco de dados, certificados e buckets.
Essa página possui a documentação de referência do Serviços de Cloud, caso tenha dúvidas de como realizar a publicação de projetos, acesse o tutorial Publicação de sistemas no Cronapp.
Visão geral
O Serviços de Cloud pode ser acessado pelo botão de atalho (item 1, Figura 1.1) ou através do menu Deploy > Serviços de Cloud. Sua janela possui seis abas, cada uma direciona para um serviço diferente.
Figura 1.1 - Exemplo de uma das abas da janela serviços de cloud
Botão de atalho: abre a janela dos Serviços de Cloud.
Aba dos serviços: alterna entre os serviços e exibe a lista de recursos do serviço selecionado:
Campo de pesquisa: filtra os itens de um serviço por seu nome.
Atualizar: atualiza a lista de itens de um serviço.
Ícones de status: os ícones que representam os serviços, enquanto sua cor representa, o status:
Verde: serviço ativo.
Vermelho: serviço parado ou aguardando uma ação.
Amarelo: serviço em transição de status: criando, iniciando, parando, destruindo ou atualizando.
Opções: opções de configurações possíveis para esse serviço.
Botão de criação: cria novo serviço.
Botão opções dos recursos
Os botões opções permitem configurar ou visualizar informações de cada recurso criado, eles se encontram sempre nas últimas colunas da lista de recursos (item 1, Figura 1.2). Também é possível acessá-las ao clicar com o botão de contexto do mouse sobre um item (item 2, Figura 1.3).
Figura 1.2 - Opções acessíveis nas últimas colunas ou através do menu de contexto
A quantidade de botões opção variam com o recurso visualizado, nos recursos que possuem mais de 4 opções, as colunas são substituídas por um menu de opções (Figura 1.3).
Figura 1.3 - Serviços com mais de 4 opções são exibidos em um menu ao invés de colunas
Abaixo listaremos as opções que são comuns para todos ou para a maioria dos serviços:
Agendamento de serviços
Essa opção permite que seja agendada ações de iniciar, parar, reiniciar ou destruir os serviços em determinadas datas, horas e dias da semana.
Disponibilidade
A funcionalidade de agendamento só está disponível para os serviços Aplicações e Banco de Dados.
Figura 1.4 - Janelas de agendamento de serviços
Ação do agendamento:
Iniciar serviço;
Parar serviço;
Reiniciar serviço;
Destruir: exclui o serviço e todos os dados contidos nele;
Data de Início: define uma data e hora para iniciar o período do agendamento;
Data de Fim: define uma data e hora para finalizar o período do agendamento;
Limpar: limpa os campos Data de início e Data de fim.
Calendário: abre janela para selecionar data e hora para início ou fim do ciclo de agendamento;
Hora: define a hora exata para a execução da ação do agendamento;
Dias da semana: define os dias da semana em que a ação do agendamento ocorrerá;
Editar: abre a janela para edição do agendamento.
Dica
Ao deixar os campos Data de início e Data de Fim (itens 2 e 3, Figura 1.4) em branco, o agendamento sempre repetirá sua ação na hora e nos dias definidos.
Excluir serviço
Para remover qualquer serviço na nuvem é necessário realizar confirmação em 2 etapas e, na segunda etapa é preciso digitar a palavra informada na janela (figura 1.5), dessa forma evitamos uma exclusão acidental.
Disponibilidade
A funcionalidade Remover está disponível para todos os serviços.
Figura 1.5 - Confirmação em 2 etapas para exclusão de serviços
Segurança
A opção Segurança libera o acesso para outros usuários Cronapp aos serviços de Cloud.
Disponibilidade
A funcionalidade de Segurança está disponível para os serviços: Aplicações, Domínio, Certificados SSL (HTTPS), Banco de Dados e Armazenamento.
Figura 1.6 - Janelas de segurança
Tipo: a permissão pode ser fornecida para um usuário ou um contrato;
Usuário: conta Cronapp para pessoas físicas, vinculada a um usuário;
Contrato: conta Cronapp para pessoa jurídica, vinculada a um conjunto de usuários.
Objeto (Usuário / Contrato): e-mail do usuário ou identificador do contrato, acesse o tópico Aba Geral da documentação Configurações do projeto para saber como obter o "Id do Contrato";
Permitido: retira a permissão de acesso para um usuário pertencente a um contrato;
Remover: exclui o registro;
Editar: abre a tela para editar o registro.
Custo dos serviços
Esses serviços são fornecidos por empresas terceiras e integrado ao Cronapp, dessa forma, o uso desses recursos gerará cobranças extras e seus preços podem variar.
Ao abrir uma janela para criar ou editar um serviço, você poderá visualizar o seu preço na parte inferior (área destacada na Figura 2.1). Essa estimativa de preço varia com as configurações selecionadas, ou seja, quanto mais recursos de infraestrutura selecionadas (ex.: número de instâncias e espaços) maior o preço.
Figura 2.1 - Exemplo de estimativa de custo de um serviço
A estimativa de custo informado na parte debaixo das janelas se refere ao uso dos serviços de forma ininterrupta durante 1 mês. A cobrança é feita por minuto de uso do serviço, ou seja, supondo que seu projeto não necessite ficar ativo aos domingos, o custo mensal será menor que o estimado.
Serviços como banco de dados, mesmo após interrompidos ainda gerarão custos devido a criação de um backup automático gerado pelo Cronapp para armazenamento dos dados, esse custo é referente a quantidade de GB/mês de dados armazenados.
Versões com suporte
Utilizar versões de banco de dados sem suporte do fabricante pode gerar custos adicionais. Recomenda-se sempre optar por versões mais recentes que ainda não estão próximas do fim do ciclo de vida do fabricante.
Agendamento de serviços
Para definir uma configuração adequada, é importante sempre analisar os padrões de comportamento referente ao uso da sua aplicação, podendo assim, definir quando ela não será utilizada e poupar gastos enquanto a aplicação estiver ociosa. Com o Serviços de Cloud#Agendamento é possível economizar o uso da sua aplicação configurando-a para que esteja ativa apenas quando necessário, assim, como por exemplo, agendando de segunda a sexta apenas no horário comercial, o uso estimado que antes era cobrado 24/7 cai drasticamente, pois não será cobrado após o horário informado que não será utilizado;
Serviços como DNS e armazenamento de objetos não podem ser provisionados constantemente ou alterados, por cota disso, não contam com o recurso do agendamento, então esse método é eficiente apenas para valores da aplicação, banco de dados e balanceamento de carga.
Verifique sempre se o tipo de Instância escolhido é o mais adequado à sua aplicação, lembre-se que a quantidade de instância escolhida multiplica o custo da publicação.
Spot
Ativar a opção Spot nas configurações da Nova publicação permite reduzir muito os custos. Isso é possível graças ao compartilhamento do processamento do servidor.
Backups desnecessários
Organize e utilize somente o que for necessário. Dessa forma, não esqueça de apagar os backups que você não irá mais utilizar, reduzindo os custos com espaço. Quando maior o tempo configurado para armazenar o backup automático, mesmo que o impacto não seja muito grande, maior será o custo.
Para mais detalhes acesse o tópico sobre Serviços de Cloud#Backup.
Armazenamento
Nunca utilizar o espaço do sistema para armazenar conteúdo enviado pelo usuário, ao invés disso usar o serviço Armazenamento ;
Instâncias
Fique atento à instâncias do tipo burst, na qual possui créditos de CPU e uso de linha de base. Se uma instância "X" ganha como por exemplo "Y" créditos por hora de acordo com a porcentagem de uso máximo da CPU, os créditos podem acumular, e caso precise usar uma porcentagem maior, os créditos acumulados serão utilizados.
Se precisar de jobs que necessitem de muita computação, faça uma nova publicação que possua um processamento alto e fique ligada somente durante a execução do job. Por exemplo, um job precisa iniciar 01:00 da madrugada e dura em média 1h30, nesse caso, é recomendado que seja agendado para ligar às 00:30 e desligar às 03:00.
É preciso usar parâmetro de sistema, tipo:
myapp.job=false|trueno campo Variáveis de ambiente da janela Nova Publicação.
Em Parâmetros do sistema, é necessário configurar qual perfil irá ter acesso a determinado job, no exemplo abaixo, mostramos que somente o acesso de desenvolvimento terá acesso ao job que estará ligado ao total de uso de CPU. (Figura 2.2)
Figura 2.2 - Configurando Parâmetros do Sistema
Outro ponto que influência no preço é a marca do processador usado na instância. Uso dos tipos de instâncias mais novas, preferencialmente AMD, é mais barata do que Intel.
Publicações
A aba Aplicações permite realizar o deploy do seu projeto em servidores na nuvem de forma rápida e descomplicada. Durante a criação da publicação é possível configurar a infraestrutura dos servidores, como quantidade de instâncias, plataformas, variáveis de ambiente, esteira DevOps e outros recursos, como veremos mais abaixo.
As publicações do Serviços de Cloud do Cronapp funcionam com IP dinâmico e permanecerão com o mesmo IP enquanto a instância estiver construída, mudando de IP apenas ao ser destruída e reconstruída. Isso poderá ocorrer, por exemplo, ao utilizar um agendamento para desligar e ligar.
Figura 3.1 - Aba de publicações
Após a publicação, seu projeto será exibido na lista de publicações (Figura 3.1) com algumas colunas de informações:
Ícones de status: os ícones que representa o serviço, enquanto a sua cor representa o status:
Verde: pronto;
Amarelo: em processo;
Vermelho: parado.
Publicação: endereço URL da publicação;
Data de Atualização: data e hora da última atualização;
Plataforma do projeto;
Versão: informa o tipo de projeto e a versão atual
ícone monitor: sistema Java web;
ícone smartphone: sistema Java mobile ou web / mobile;
outro ícone: sistema em outra plataforma.
Status: informa o status atual do projeto: pronto, parado, criando, iniciando, parando, destruindo ou atualizando;
Menu Opções: menu de opções.
Opções da Aplicação
O menu de opções possui diversas funcionalidades que estão listadas abaixo, algumas são específicas para o serviço de publicação.
Figura 3.2 - Menu opções da Aplicação
Iniciar: inicia um serviço parado;
Parar: para um serviço em execução;
Reiniciar Aplicação: reinicia a aplicação;
Reiniciar Instâncias: reinicia todas as instâncias;
Terminal: abre o terminal Linux da primeira instância da publicação;
Logs: exibe os logs gerados pelo servidor da aplicação, ver mais em Logs da Aplicação;
Monitoramento: exibe a janela com os gráficos de monitoramento da Publicação;
Segurança: concede permissão de acesso a esse serviço para outros usuários Cronapp ou para todos os usuários que fazem parte de um contrato Cronapp, ver mais em Segurança;
Agendamento: permite agendar ações, ver mais em Agendamento de Serviços;
Reconstruir: cria um novo ambiente com o mesmo nome, ID e configuração;
Remover: exclui o serviço, ver mais em Serviços de Cloud#Excluir;
Editar: editar a publicação criada.
Log da Aplicação
Essa funcionalidade irá abrir uma janela para exibir os logs gerados pelo servidor da publicação.
Na janela de logs existem duas abas: Geral e Arquivos de Log.
Aba Geral
Em Geral (Figura 3.3) serão exibidas todas as ações ocorridas no servidor da aplicação, mostrando informações, avisos e erros. Ao clicar no botão Editar (item 1 da Figura 3.4) será aberta uma janela exibindo a mensagem completa.
Figura 3.3 - A aba geral exibe todas as ações ocorridas no servidor da aplicação
Ícones de status: os ícones que representa o serviço, enquanto a sua cor representa o status:
Verde: informação;
Vermelho: aviso;
Coluna Mensagem: ação ocorrida;
Coluna Data de criação: data e hora da ação;
Coluna Severidade: tipo da mensagem, podendo ser informação, aviso, erro;
Editar: abre janela que exibe a mensagem completa.
Aba Arquivos de Log
A segunda aba só estará disponível em publicações ativas e exibirá os logs gerados pela instância da publicação. Caso a publicação possua mais de uma instância, é possível filtrar os logs usando a caixa de seleção instâncias (item 1, Figura 3.4).
Figura 3.4 - A aba Arquivos de Log exibe os logs gerados pela instância selecionada
Instâncias: caixa de seleção com as instâncias da publicação, selecione uma para exibir os logs referentes a ela;
Terminal: coluna que exibe o log completo através do terminal;
Baixar: coluna que gera o download de um arquivo com extensão .log;
Coluna Arquivo: título do log;
Coluna Data de criação: data e hora em que foi gerado o log.
Monitoramento da Aplicação e Instâncias
Essa funcionalidade abrirá uma janela para exibir dados sobre o uso dos recursos em formato de gráfico.
Figura 3.5 - Janela de monitoramento de uma Aplicação
Campos:
Data de início: define o período de início do gráfico;
Intervalo: determina o tempo para cada intervalo da linha do gráfico.
Gráficos da publicação
As métricas a seguir são visualizadas ao acessar o botão de opção Monitoramento de uma publicação, com isso é possível analisar o balanceamento de carga da aplicação.
Publicações configuradas somente com uma instância só exibirá o gráfico CPUUtilization.
Métrica | Descrição |
|---|---|
CPUUtilization | Percentual de utilização da CPU. |
RequestCount | Número de solicitações processadas via IPv4 e IPv6. Essa contagem inclui somente as solicitações com uma resposta gerada por um destino do load balancer. |
TargetResponseTime | Tempo decorrido, em segundos, depois que a solicitação deixa o load balancer até o momento em que uma resposta for recebida do destino. Isso equivale ao campo |
ProcessedBytes | Número total de bytes processados pelo load balancer via IPv6. |
ActiveConnectionCount | Número total de conexões TCP simultâneas ativas de clientes com o load balancer e do load balancer com destinos. |
NewConnectionCount | Total de novas conexões TCP estabelecidas de clientes com o load balancer e do load balancer com destinos. |
HTTPCode_Target_5XX_Count, HTTPCode_Target_2XX_Count | Número de códigos de resposta HTTP gerados pelos destinos. Isso não inclui códigos de resposta gerados pelo load balancer. |
Gráficos das instâncias
As métricas a seguir são visualizadas ao acessar o botão opção Monitoramento de uma instância, com isso é possível analisar o uso de recurso de cada instância separadamente.
Métrica | Descrição |
|---|---|
CPUUtilization | Percentual de utilização da CPU na instância. |
NetworkIn | Entrada de rede. |
NetworkOut | Saída de rede. |
DiskReadBytes | Operações de leitura em disco. |
DiskWriteBytes | Gravações em disco. |
NetworkPacketsOut | Quantidade de pacotes enviados. |
NetworkPacketsIn | Quantidade de pacotes recebidos. |
StatusCheckFailed_System | Falha na verificação de status (sistema). |
Nova Publicação
Ao clicar no botão Nova Publicação da aba Aplicações (Figura 3.1) será aberta a janela exibida abaixo, após sua configuração, clique no botão Nova Publicação para iniciar a criação do Servidor. Alguns campos são configuráveis apenas ao criar a publicação, por exemplo, os campos Mínimo de Instâncias, Máximo de Instâncias e Certificados SSL (HTTPS) não estão habilitados ao editar. Caso deseje alterá-los futuramente, será necessário publicar a aplicação novamente.
Atenção
Iniciar, atualizar ou parar uma aplicação costumar levar entre 8 e 15 minutos, tempo necessário para subir ou derrubar um servidor.
Figura 3.6 - Configuração da publicação
URL da Aplicação: nome do domínio ou subdomínio da aplicação.
Domínio: os itens da caixa de seleção gerados a partir da aba Domínio.
DNS: Nome Canônico (CNAME) único da publicação gerado pelo servidor de publicação.
Tipo de instância: tamanho de cada instância da publicação.
É recomendável escolher uma instância com capacidade suficiente para executar seu sistema sob carga, mas que não fique ocioso na maior parte do tempo.Spot: limita alguns recursos da publicação com o objetivo de reduzir custos.
Comprimir requisição com Gzip: permite comprimir os recursos da aplicação no formato gzip, reduzindo o tempo de carregamento e tamanho dos recursos transferidos.
Mínimo e máximo de instâncias: caso seu sistema necessite de alta disponibilidade e escalabilidade, recomenda-se adicionar mais de uma instância, evitando que o sistema fique inativo ao falhar uma das instâncias.
Quando os campos mínimo e máximo são configurados com valores distintos, o servidor é iniciado com o número mínimo de instâncias e aumenta automaticamente a medida que o número de requisições cresce, retornando ao número mínimo assim que as requisições diminuem.
O valor exibido no "Custo Estimado" sempre considera o uso do serviço com número máximo de instâncias em 100% do tempo durante todo o mês, porém o valor cobrado será menor caso o sistema não utilize o número máximo de instâncias durante todo o período.
Tempo limite para o balanceador de carga: o balanceador de carga possui um período de tempo limite de inatividade configurado que se aplica às suas conexões. Se nenhum dado tiver sido enviado ou recebido até o término do tempo limite de inatividade, o balanceador de carga fechará a conexão. Essa propriedade só será aplicada se a aplicação tiver mais de uma instância registrada. O intervalo de configuração pode variar entre 1 e 3600 segundos. Para mais informações acesse a documentação oficial.
Política de Atualização: define o percentual de instâncias que serão atualizadas por vez. Esse recurso só funcionará quando existir mais de uma instância.
Todas de vez: atualiza todas as instâncias imediatamente;
Gradual: as instâncias serão atualizadas em partes, de acordo ao percentual selecionado.
Plataforma: plataforma na qual seu sistema foi desenvolvido:
Projetos de desenvolvimento acelerado usará sempre a plataforma Tomcat + Java, enquanto projetos high code permite usar Tomcat + Java, NodeJS ou Python.
As plataformas exibidas nessa caixa de seleção refletirão a compatibilidade do projeto aberto no Cronapp no momento da configuração.
Certificado SSL (HTTPS): lista os certificados gerados na aba Certificados SSL (HTTPS).
Caso seu sistema não necessite de certificados de segurança, escolha a opção 'Sem Certificado'.Hora de Início Automático*: define a hora que o servidor da publicação será iniciado diariamente.
Hora de Término Automático*: define a hora que o servidor da publicação será interrompido diariamente.
Variáveis de Ambiente: cadastra as variáveis de ambiente no servidor da publicação. Além disso, este campo permite alterar os valores dos cabeçalhos das requisições REST da aplicação, criados a partir das Configurações do projeto. Utilize a expressão "
CRN_HEADER_<nome_do_cabeçalho>" e informe o novo valor.Perfil da VPN: define o perfil do banco de dados que será utilizado na VPN. Acesse as documentações Perfis da VPN [depreciado] e o tópico "Perfis da aplicação" da documentação Banco de Dados para mais detalhes.
Recomendável o uso das horas de início e término durante o período de implantação do sistema, evitando gastos durante período de inatividade. O agendamento pode ser alterado posteriormente na opção de Serviços de Cloud#Agendamento da publicação.
Economize com o Spot
Ao ativar a opção Spot nas configurações da Nova publicação (Figura 3.6), o cliente poderá publicar sua aplicação com um custo muito menor. Isso é possível graças ao compartilhamento do processamento com outras publicações do Serviços de Cloud.
Um servidor destinado apenas a uma aplicação costuma ficar a maior parte do seu tempo trabalhando de forma ociosa, utilizando, por exemplo, apenas 20% ou 30% da sua capacidade de processamento. A opção Spot permite que o Cloud Services utilize essa ociosidade de processamento em outros serviços que não tem relação com sua aplicação. Em outras palavras, podemos dizer que essa opção permite que você "alugue" o tempo ocioso do processamento do servidor para outros serviços.
As instâncias Spot podem baratear o custo de publicações criadas por nossos usuários em até 75% dos preços das instâncias comuns.
Quando uma instância se torna disponível ao preço ofertado, a instância do cliente é executada.
A instância é interrompida quando o preço Spot aumenta e excede o lance da plataforma.
As instâncias também podem ser encerradas quando o preço da oferta da plataforma for igual ao preço sob demanda (valor máximo).
A instância pode não ficar disponível quando a oferta de recurso estiver sendo totalmente consumida.
Se, em um caso raro, a aplicação cair, ela deverá retornar muito rapidamente sem que haja uma percepção por parte dos usuários.
Tipo de instância
Cada tipo de instância oferece recursos (memória, vCPU, rede, processador e tipo de processamento) diferentes. Veja as informações relacionadas a cada tipo e escolha uma com base nos requisitos do software que pretende publicar.
Figura 3.6.1 - Tipo de instância
Nano: é a instância de menor preço, possui 0,5GB de memória RAM e 1 vCPU disponível. É ideal para hospedagem de sites de baixo tráfego, microsserviços e ambientes de desenvolvimento que têm baixa necessidade de memória;