Apresentando StackQL – Gerencie seus serviços em nuvem e interaja com APIs usando SQL

No acelerado mundo digital, stacks de nuvem modernos se tornaram mais complexos, levando os usuários a aprender várias tecnologias e utilitários para gerenciá-los.

Cada provedor de nuvem oferece seu próprio conjunto de ferramentas, interfaces e APIs, resultando em uma experiência fragmentada, que agrava a curva de aprendizado e limita a eficiência.

StackQL foi criado para ajudar desenvolvedores a padronizar seus fluxos de trabalho em nuvem, introduzindo um ambiente unificado para o gerenciamento de recursos em nuvem.

0*FgVkuFB-xU2JPtHF Apresentando StackQL - Gerencie seus serviços em nuvem e interaja com APIs usando SQL

Neste artigo, listaremos os benefícios do StackQL, exploraremos seus princípios de funcionamento, aprenderemos a configurá-lo e executar consultas práticas para ver como funciona na prática.

Veremos como os usuários podem navegar pelos serviços em nuvem, realizar operações CRUD e outras operações práticas na nuvem.

Agradecimentos à equipe StackQL por patrocinar este artigo.


O que é o StackQL e suas principais características

StackQL é uma estrutura baseada em SQL que permite aos usuários consultar, provisionar e gerenciar recursos em nuvem e SaaS usando sintaxe SQL familiar.

É um projeto de código aberto, não se esqueça de ⭐ seu repositório do GitHub se você gosta do projeto.

0*Txh_d0MwSgAWWYmR Apresentando StackQL - Gerencie seus serviços em nuvem e interaja com APIs usando SQL

Os usuários podem começar facilmente com vários provedores de nuvem comumente usados, como Google Cloud, AWS, Microsoft Azure, Digital Ocean, entre muitos outros.

O StackQL suporta vários modos de uso, incluindo o shell interativo REPL, utilitário de linha de comando ou a execução de instruções StackQL por meio de um arquivo de entrada (arquivo IQL).

Pode ser utilizado em muitos cenários práticos, como realizar consultas ao vivo contra recursos em nuvem, fazer alterações de configuração, gerenciar a infraestrutura em nuvem e muito mais.

O StackQL está disponível para download para Windows, MacOS e Linux.


Explicando a hierarquia de recursos

O StackQL organiza os objetos em uma hierarquia estruturada, espelhando a estrutura interna dos provedores de serviços em nuvem.

Essa disposição permite que os usuários naveguem e gerenciem os recursos em nuvem de forma fácil e compreensível, usando consultas SQL familiares.

Veja os princípios operacionais do StackQL para o serviço Google Cloud Compute:

0*ajEzYE-cOOAtI9RM Apresentando StackQL - Gerencie seus serviços em nuvem e interaja com APIs usando SQL

No nível superior, ele categoriza os recursos pelo provedor específico, como Google Cloud ou AWS.

Dentro de cada provedor, os recursos são ainda divididos em serviços disponíveis para cada provedor, como Computação, Armazenamento e Rede.

Cada serviço contém então tipos de recursos específicos, como Máquinas virtuais, Buckets de armazenamento, Rotas, Firewalls e Licenças.

Por fim, cada recurso tem métodos suportados que os usuários podem utilizar para criar, ler, atualizar, excluir e realizar outras operações, dependendo do recurso.


Instalando o StackQL na sua máquina

Primeiro, navegue até a seção de Downloads, onde os usuários podem encontrar detalhes sobre instalação, configuração e utilização em diferentes plataformas.

Para fins deste tutorial, usaremos o instalador MSI. Siga as instruções no assistente de configuração e a instalação não deve levar mais de um minuto.

0*4TBDepug4Bp8D-Wj Apresentando StackQL - Gerencie seus serviços em nuvem e interaja com APIs usando SQL

Isso instalará o StackQL globalmente, para que possamos acessá-lo de qualquer lugar no sistema.

Após a conclusão da instalação, abra seu terminal e execute o comando stackql --version. Se a instalação foi bem-sucedida, o terminal retornará a versão do StackQL.

0*nVkPFnDuMDGLVeyv Apresentando StackQL - Gerencie seus serviços em nuvem e interaja com APIs usando SQL

Usaremos o shell do StackQL, o que significa que interagiremos com o StackQL e ele nos fornecerá as saídas diretamente do terminal.


Configurando o provedor Google Cloud

O StackQL atualmente suporta mais de 20 provedores comumente usados, incluindo Google Cloud, AWS, Microsoft Azure, Digital Ocean, GitHub e muitos outros.

0*TMOu4OEZhSRrx3HL Apresentando StackQL - Gerencie seus serviços em nuvem e interaja com APIs usando SQL

Para fins deste tutorial, trabalharemos com o provedor Google Cloud.

Primeiro, você precisará criar uma conta no Google Cloud se ainda não tiver uma. Navegue até a página de inscrição do Google Cloud e você poderá criar uma gratuitamente.

0*N5bmIwAyJ0-miThp Apresentando StackQL - Gerencie seus serviços em nuvem e interaja com APIs usando SQL

Para começar, precisaremos criar credenciais de acesso, para que possamos autenticar sua identidade ao trabalhar com o Google Cloud pelo StackQL.

Faça login no Google Cloud e navegue até Contas de Serviço. Em seguida, vá para IAM e Admin.

0*1rt6trgV8RnXznnD Apresentando StackQL - Gerencie seus serviços em nuvem e interaja com APIs usando SQL

Em seguida, selecione Contas de Serviço na barra lateral esquerda. Crie uma Conta de Serviço. Insira o nome e ID da conta, e adicione uma descrição.

0*MbvZpB4RYWhmWdx2 Apresentando StackQL - Gerencie seus serviços em nuvem e interaja com APIs usando SQL

Adicione uma nova chave e escolha JSON como o tipo de chave. Clique em Criar para baixar o arquivo JSON, que conterá todas as credenciais necessárias.

0*1H1tF6vSO21zeFNk Apresentando StackQL - Gerencie seus serviços em nuvem e interaja com APIs usando SQL

Agora volte para o terminal e defina as variáveis para o sistema para que possamos usá-las, certifique-se de substituir o caminho onde você salvou o arquivo JSON das credenciais.

Execute o comando de autenticação: stackql shell --auth="{ 'google': { 'type': 'service_account', 'credentialsfilepath': 'creds/sa-key.json'}}".

Se a autorização for bem-sucedida, você deve entrar na linha de comando interativa do StackQL, onde executaremos os comandos para trabalhar com o Google Cloud.

0*X7c4fAX9L4Frq2xC Apresentando StackQL - Gerencie seus serviços em nuvem e interaja com APIs usando SQL

Para começar, precisaremos puxar a versão mais recente do provedor Google Cloud. Você pode fazer isso executando registry pull google;.

Após a instalação bem-sucedida, você receberá a versão instalada do provedor e a versão atual dele, conforme mostrado abaixo:

0*2HZ2fLvnBs3-Hdys Apresentando StackQL - Gerencie seus serviços em nuvem e interaja com APIs usando SQL

Para referência futura, você pode ver todos os provedores suportados e suas versões mais recentes executando um comando registry list; e ver os que estão atualmente instalados executando show providers;.


Navegando nas APIs da nuvem para serviços

Primeiro, vamos dar uma olhada em como podemos usar facilmente o StackQL para nos familiarizar com o provedor. Isso nos ajudará a explorar sua estrutura e capacidades.

1. Descobrir serviços e recursos disponíveis

Um caso de uso comum para iniciantes seria SHOW todos os serviços disponíveis em um provedor ou SHOW todos os recursos disponíveis em um determinado serviço.

Por exemplo, podemos listar todos os serviços com nomes contendo “compute” e recursos com nomes que incluem “instances” no recurso de Computação.

SHOW SERVICES IN google LIKE '%compute%';
SHOW RESOURCES IN google.compute LIKE '%instances%';

Agora, verifique seu terminal e você deve ter uma tabela organizada dos resultados.

0*92xY_NAz3oqQkHCN Apresentando StackQL - Gerencie seus serviços em nuvem e interaja com APIs usando SQL

2. Mostrar atributos do recurso

Para uma descrição mais detalhada, os usuários podem utilizar a palavra-chave DESCRIBE, que fornecerá mais informações, incluindo todos os campos de saída para um recurso específico.

Por exemplo, podemos exibir os campos disponíveis do recurso ou incluir uma palavra-chave adicional EXTENDED em nossa consulta para obter metadados adicionais.

DESCRIBE google.compute.instances;
DESCRIBE EXTENDED google.compute.instances;

Se verificarmos o terminal, agora obtemos uma tabela de dados fácil de usar com informações mais detalhadas.

0*-0Ih8ciY-dxp0wIU Apresentando StackQL - Gerencie seus serviços em nuvem e interaja com APIs usando SQL

3. Mostrar métodos para o recurso

Se você gostaria de ver quais métodos poderíamos usar para realizar operações em cada recurso, também podemos receber os dados estruturados em formato de tabela para isso.

Nesse caso, executaríamos SHOW METHODS e forneceríamos o recurso específico com o qual queremos trabalhar para exibir todos os métodos disponíveis para ele.

SHOW METHODS IN google.compute.instances;

Se verificarmos a saída recebida da consulta, veremos que as colunas nos forneceram o nome do método, o verbo SQL respectivo e os parâmetros necessários para a consulta.

0*AXlMjN-YppDwk3yQ Apresentando StackQL - Gerencie seus serviços em nuvem e interaja com APIs usando SQL


Realizar operações CRUD na Nuvem

Graças ao poder do StackQL, podemos criar, ler, atualizar e excluir recursos nos provedores de nuvem mais comumente usados.

Agora, vamos tentar algumas operações práticas na nuvem.

Criar uma nova instância

Criar um novo recurso é tão simples quanto você faria em um banco de dados, criando uma nova linha de dados usando a familiar instrução INSERT.

Vamos tentar criar um novo recurso de Disco do Google Compute Engine com um nome e tamanho específicos e dentro de um projeto e zona específicos.

INSERT INTO google.compute.disks (project, zone, name, sizeGb)
SELECT 'stackql-demo',
'europe-north1-a',
'disk-1', 16;

Para verificar o resultado, navegue até a seção de Discos e note que a nova instância de Disco foi criada com os parâmetros específicos que fornecemos.

0*BLSJT_bJYwSe4uQo Apresentando StackQL - Gerencie seus serviços em nuvem e interaja com APIs usando SQL

Ler uma instância

Vamos também testar se é possível acessar o recurso recém-criado diretamente via StackQL.

Execute a instrução SELECT para listar todos ou recursos específicos implantados dentro de um serviço particular. Vamos listar o tamanho do Disco do recurso que criamos anteriormente.

SELECT sizeGB FROM google.compute.disks
WHERE project = 'stackql-demo'
AND zone = 'europe-north1-a';

Note que o StackQL nos fornece a saída esperada, conforme desejamos.

0*DStnPLW-xpONwAVi Apresentando StackQL - Gerencie seus serviços em nuvem e interaja com APIs usando SQL

Atualizar a instância

O StackQL também pode fazer alterações nos recursos existentes, tudo que você precisa saber é o recurso a ser atualizado e a propriedade a ser definida.

Vamos tentar executar a instrução UPDATE para modificar o tamanho do Disco do Google Compute Engine e usar a instrução SET para definir o novo valor de sua capacidade.

UPDATE google.compute.disks
SET sizeGb = 32
WHERE project = 'stackql-demo'
AND zone = 'europe-north1-a'
AND name = 'disk-1';

Se verificarmos o painel do Google Cloud Compute, podemos ver que o tamanho do disco agora está definido em 32GB, que é a nova quantidade que definimos em nossa consulta.

0*Pgg1Dr-1cmzqSrap Apresentando StackQL - Gerencie seus serviços em nuvem e interaja com APIs usando SQL

Excluir a instância

Finalmente, se não precisarmos mais de alguns dos recursos, também é possível excluí-los diretamente pela interface do StackQL. É útil para garantir que os recursos estejam sendo usados de forma eficiente.

Precisaremos executar uma instrução básica DELETE fornecendo o nome da instância, o nome do projeto e a zona. Vamos remover o recurso de Disco que criamos para fins de teste.

DELETE FROM google.compute.disks
WHERE disk = 'disk-1'
AND project = 'stackql-demo'
AND zone = 'europe-north1-a';

Assim como antes, volte para a plataforma Google Cloud e veja que a instância do Compute Engine foi removida da lista de recursos.

0*pv-lNiXnVTlFhosL Apresentando StackQL - Gerencie seus serviços em nuvem e interaja com APIs usando SQL


Realizar operações em recursos da Nuvem

Podemos utilizar ainda mais o poder do StackQL. Por exemplo, podemos mudar os estados dos recursos executando comandos semelhantes ao SQL para controlar quando eles iniciam e param.

Essa funcionalidade pode ser muito valiosa para desenvolvedores que buscam automatizar o gerenciamento da infraestrutura e otimizar custos por meio do controle programático dos recursos em nuvem.

0*IyCzzEY7ptzjkeL5 Apresentando StackQL - Gerencie seus serviços em nuvem e interaja com APIs usando SQL

Para fins deste tutorial, criamos uma instância de máquina virtual “instance-1”. Todas as suas máquinas virtuais serão listadas na seção “Instâncias de VM”.

Parar operações em recursos da nuvem

Após criar a instância, ela será iniciada por padrão, então vamos tentar usar o comando EXEC para parar a instância do Google Cloud Compute primeiro.

Forneça o nome da instância, o nome do projeto e a zona e o StackQL deverá ser capaz de pará-la.

EXEC google.compute.instances.stop
  @instance = 'instance-1',
  @project = 'stackql-demo',
  @zone = 'europe-north1-a';

Se agora visitarmos a lista de instâncias do Google Cloud Compute e verificarmos o status do recurso criado anteriormente, veremos que a instância está realmente parada.

0*baKWwILoarK_s3UN Apresentando StackQL - Gerencie seus serviços em nuvem e interaja com APIs usando SQL

Iniciar operações em recursos da nuvem

Se quisermos iniciar novamente uma instância do Google Compute Engine inativa, precisaremos executar uma consulta similar, apenas desta vez usando o método start.

Edite a consulta anterior para a seguinte e execute-a em seu terminal:

EXEC google.compute.instances.start
  @instance = 'instance-1',
  @project = 'stackql-demo',
  @zone = 'europe-north1-a';

Verifique no Google Cloud para ver que a operação foi concluída. Você notará que a instância foi iniciada novamente e está pronta para uso.

0*uXtZfG8qpKsr02q7 Apresentando StackQL - Gerencie seus serviços em nuvem e interaja com APIs usando SQL


Conclusão

Neste tutorial, aprendemos que a abordagem do StackQL é única e direcionada aos desenvolvedores para padronizar os processos de trabalho com operações em nuvem.

A hierarquia de objetos e o fluxo de trabalho do StackQL são muito intuitivos. A ferramenta basicamente preenche a lacuna entre a linguagem de consulta tradicional e os modernos stacks de computação em nuvem.

Também testamos o StackQL na prática usando vários casos de uso práticos, desde navegar pelas APIs em nuvem até realizar operações CRUD e mudar o estado das instâncias.

Você poderia usá-lo ainda mais para áreas como inventário e relatórios de ativos em nuvem, otimização de custos, integração CI/CD para validação de implantação e muito mais.

Espero que o StackQL seja útil para você melhorar seu conjunto de ferramentas e que ele seja útil em projetos futuros sempre que você estiver trabalhando com recursos em nuvem.

Compartilhe

No Guia da Internet, simplificamos o que parece complicado! Compartilhamos conteúdos sobre tecnologia, finanças, criptomoedas e as tendências do momento de forma clara e objetiva. Seja para aprender sobre investimentos, explorar novas tecnologias ou descobrir curiosidades incríveis, aqui você sempre encontra informação confiável e acessível!

Publicar comentário