DEV Community

Sergio Lima
Sergio Lima

Posted on

Reapresentando o Hello World para faastRuby - A Plataforma Serverless para Ruby e Crystal - Parte I.

alt text

Olá amigos developers! Quero compartilhar com vocês uma das tecnologias mais emergentes para computação em nuvem. Estou falando de "Funções como Serviço" ou FaaS. Neste artigo, quero que vocês explorem comigo uma solução introdutória. Vamos construir uma função Serverless, passo a passo, usando a plataforma faastRuby, e disponibilizaremos a solução na nuvem.

Se você não estiver familiarizado com esses termos, não se preocupe, eu descrevi mais sobre faastRuby, FaaS e Serverless neste artigo em português e aqui em inglês.

A plataforma faastRuby é incrível e nos permite trabalhar de maneira fácil com funções sem servidor. A plataforma é intuitiva e muito parecida com o Heroku, onde toda a infraestrutura do servidor é abstraída.

Para saber mais sobre esta plataforma, visite o website da empresa criadora do faastRuby: https://www.faastruby.io

Vamos lá!

Introdução

A plataforma faastRuby foi atualizada e houve melhorias após a versão 0.5, portanto precisei reescrever o Hello World. Este artigo é uma atualização do artigo anterior. É um tutorial para construir um projeto básico usando os novos recursos.

Entendendo a Plataforma

faastRuby é uma plataforma de desenvolvimento de software serverless para Ruby e Crystal e é composta de dois componentes principais.

Componentes Principais

  1. faastRuby Cloud - é a plataforma para onde vão os deploys e onde ficam seus aplicativos e funções.
  2. faastRuby Local - um SDK (software development kit) que permite desenvolver e testar aplicativos web e APIs na máquina local e implantar um aplicativo como um conjunto de funções distribuídas na plataforma. Operações de deploy ou de infraestrutura não são requeridos.

Conceitos básicos: Account, Project, Function e Workspace

  1. Account - É necessário ter uma conta para usar a plataforma faastRuby. Cada conta pertence a uma pessoa ou uma empresa, que deve se identificar com seu email, senha e um token, que será gerado.
  2. Function - É onde fica a solução em forma de código fonte. As funções são independentes umas das outras. Para Ruby e Crystal usamos métodos como funções.
  3. Project - Projeto é onde fica a aplicação. O projeto terá uma pasta principal, terá subpastas, arquivos estáticos e funções.
  4. Workspace - São espaços ou ambientes isolados na nuvem. Os deploys tem como destino as Workspaces e é lá onde ficam as functions. Workspaces são representados por uma URL do tipo: https://projectName-environment-abs123.tor1.faast.cloud.

Detalhando uma URL de Workspace

Exemplo https://projectName-environment-abs123.tor1.faast.cloud.

  • projectName: Nome dado ao projeto.
  • environment: Stage é o ambiente default. Você pode escolher outro como prod, dev, etc.
  • abs123: Identificador único e gerado automaticamente para cada projeto. Não deve ser mudado.

O que vamos criar?

Usando a plataforma faastRuby, vamos criar duas funções em Ruby e disponibilizá-las rapidamente na internet.

Ferramentas que vamos precisar

  • ruby 2.6.0
  • gem faastruby

Passo a Passo da Criação do Projeto

Instalação

Crie uma pasta própria para projetos faastRuby e entre dentro dela. Isto não é obrigatório. Eu prefiro usar esta organização de pastas, assim todos projetos feitos em faastRuby ficam dentro desta pasta.

$ mkdir faastruby
$ cd faastruby
Enter fullscreen mode Exit fullscreen mode

Execute este passo se você usa o gerenciador de versões Ruby, RVM:

$ faastruby/> rvm use ruby-2.6.0@faastruby --ruby-version --create
Enter fullscreen mode Exit fullscreen mode

Instale a gem

Se você nao tem a gem instalada, faça:

$ faastruby/> gem install faastruby
Enter fullscreen mode Exit fullscreen mode

Se você já tem a gem faastruby instalada, apenas atualize:

$ faastruby/> faastruby update
Enter fullscreen mode Exit fullscreen mode

Para saber se a instalação funcionou, consulte a versão da gem faastruby. Sua versão pode ser mais nova, já que a gem está sendo atualizada com frequência.

$ faastruby/> faastruby -v
0.5.21
Enter fullscreen mode Exit fullscreen mode

Registrando-se na Plataforma

$ faastruby/> faastruby signup

Welcome to FaaStRuby! Please enter your email address:
Email: you@your-email.com

Enter fullscreen mode Exit fullscreen mode

Depois de entrar com seu email, será solicitada a senha.

Now type in a password. 
It must contain 8 to 50 characters and have at least 
one uppercase letter, one lowercase letter, 
one number and one special character @ $ ! % * ? &
************
✔ Creating your account...
Enter fullscreen mode Exit fullscreen mode

Em seguida, você receberá um email com um token para confirmação. Copie e cole o token no campo indicado abaixo.

You should have received an email with a confirmation token.
If you didn't receive an email:
- Make sure you sign up with the correct email address
- The system won't send an email if you account status is already 'confirmed'
Confirmation Token: <<< seu token aqui >>>
Enter fullscreen mode Exit fullscreen mode

Em sequência você estará registrado e logado na plataforma.

✔ Confirming your account...
Login successful!
Enter fullscreen mode Exit fullscreen mode

Da próxima vez que você precisar se logar use o comando:

$ faastruby/> faastruby login       
Email: you@your-email.com
Password: ***********
Login successful.
Enter fullscreen mode Exit fullscreen mode

E quando você precisar se deslogar pode usar:

$ faastruby/> faastruby logout ## use --all para deslogar de todas máquinas
Logout successful.
Enter fullscreen mode Exit fullscreen mode

Este artigo continua na Parte II onde começaremos com a criação do projeto.

Top comments (0)