Seidor
Personas hablando

30 de janeiro de 2023

O que é Heroku? Para que serve? Como se integra com Salesforce?

Dentro do Salesforce: poderia ter uma integração utilizando fila de mensagens? E se eu precisar abrir um WebSocket para a comunicação? E poderia ser realizado reconhecimento facial? Sim, sim e sim! E tudo isso sem sair do ecossistema Salesforce, já que o Heroku faz parte dele desde 2010.

O que é Heroku?

Heroku é uma solução de Plataforma como Serviço (PaaS) baseada na nuvem para que o cliente se preocupe apenas em desenvolver sua aplicação enquanto a Heroku cuida da infraestrutura por trás.

Para fornecer este serviço, são disponibilizados contêineres virtuais que são responsáveis por manter e executar as aplicações. Esses contêineres virtuais são totalmente escaláveis sob demanda, tanto em número quanto em capacidades.

Uma vantagem de escolher Heroku é sua capacidade de suportar múltiplas linguagens de programação. As principais a serem utilizadas são: Node.js, Ruby, Python, Java, PHP, Go, Scala e Clojure. Embora essa quantidade de linguagens possa aumentar no caso de utilizar Heroku Buildpacks, que permitem compilar as aplicações em muitas outras.

lenguas de java

Características a tutiplén (Dynos, CLI…)

Heroku é mais profundo do que se pode imaginar antes de conhecê-lo. No início, só se vê a ponta do iceberg. Mas é possível destacar algumas de suas características que são mais curiosas ou chamativas:

comandos
  • Git

Em qualquer projeto ou desenvolvimento, Git deveria ser indispensável, mas com Heroku é ainda mais. Git não é apenas utilizado como controle de versões, mas também serve como conexão entre o desenvolvimento local e a nuvem do Heroku. A forma de implantar a aplicação no Heroku é com o famoso comando git push.

  • Dynos

Os dynos (não vale fazer piadas com dinossauros) são como se denominam os contêineres virtuais encarregados de manter a aplicação em funcionamento. Existem de diferentes tipos, conforme a capacidade de processamento, e podem ser combinados em quantidade e tipo conforme desejado. São totalmente escaláveis sob demanda, uma vantagem para aquelas aplicações que recebem picos de solicitações em datas específicas (Black Friday, Natal...). É importante ter sob controle quando e quantos dynos estão ativos, já que o Heroku cobra por segundo de processamento.

  • CLI

Para os amantes dos terminais, o Heroku disponibiliza os comandos de sua Command Line Interface personalizada. É tão potente que com ela é possível realizar rapidamente qualquer tarefa que seria feita acessando a interface web.

  • Add-ons

Os Add-ons são ferramentas que complementam a aplicação, não aplicações em si, com o que têm a capacidade de se adaptar e aportar utilidade independentemente da aplicação. Embora existam alguns Add-ons disponibilizados pelo próprio Heroku, muitos deles foram desenvolvidos por parceiros ou outras empresas. Eles obtêm um benefício, pois têm a capacidade de vender esses desenvolvimentos na loja sob várias tarifas, dependendo das capacidades contratadas. Muito parecido com o que ocorre com Salesforce e AppExchange.

pasos
  • Botões

Os botões são componentes, bibliotecas ou modelos de aplicativos que são implantados no Heroku com um único clique. Uma vez implantado, o aplicativo do botão pode ser modificado para se adaptar às necessidades. Aqui entra em jogo o Open Source (pelo menos em alguns botões que assim o especificam), já que clicar em um botão do Heroku equivaleria, por exemplo, a fazer um fork no Github.

4 pasos para deploy

Como criar um app com Heroku?

Realmente, passar de zero a 'Olá mundo' é bastante rápido no Heroku. A complexidade residirá principalmente na aplicação que se deseja desenvolver, já que o resto é disponibilizado pelo Heroku de uma maneira simples.

As aplicações são executadas a partir de um servidor Heroku, usando o Heroku DNS Server para apontar para o domínio da aplicação (geralmente nome.herokuapp.com).

Vamos ver esses passos simples:

  • Instalar Heroku, fazer login e criar o app

O Heroku pode ser instalado em Linux, Windows ou MacOs. Primeiro, será necessário criar uma conta (por enquanto gratuita) e fazer login com "heroku login". Para criar o app, é tão instantâneo quanto escrever "heroku create <nome do app>".

  • Desenvolver a aplicação

Antes de mais nada, é preciso escolher a linguagem de programação com a qual se vai desenvolver e, claro, programar essa aplicação. Por exemplo, uma que cumprimente com "Olá mundo".

  • Procfile

Este arquivo é importante. Ele é responsável por dizer a cada dyno (e a cada tipo de dyno) o que vai executar. É uma lista de instruções. Por exemplo, se uma aplicação foi escrita em Python e se deseja levantar um servidor de aplicações Gunicorn para, por exemplo, servir uma aplicação Django ou Flask, o Procfile conteria "web: gunicorn main:app".

  • Dependências

Os dynos precisam saber quais outras bibliotecas (e suas versões específicas) precisam ser instaladas juntamente com a aplicação. Se, por exemplo, se utiliza Python, seria suficiente gerar um arquivo de requisitos de ambiente com "pip freeze > requirements.txt".

  • Relacionar o Git

Uma vez iniciado o Git de maneira local, é necessário relacioná-lo com o que o Heroku possui de maneira remota e onde vai armazenar sua versão na nuvem da aplicação: "heroku git:remote -a <nome do app>".

  • (Opcional) Utilizar um BBDD

Caso a aplicação precise de um banco de dados externo, há um Add-on, Heroku Postgres, que pode ser utilizado de forma gratuita para testes.

  • E fazer o deploy!

Pronto! Só falta um último passo: executar o comando "git push heroku master".
Como o Heroku e o Salesforce se integram?

Um dos pontos fortes do Heroku é a sua multitude de possibilidades na hora de se integrar com o Salesforce. Estando no mesmo ecossistema, seria uma falta se não fosse assim.

tabla

As mais interessantes são:

  • Heroku Connect

É uma sincronização bidirecional dos dados entre o Salesforce e outro banco de dados externo. Qualquer modificação nos dados feita tanto dentro quanto fora do Salesforce é refletida como se fosse um espelho. O tempo de espera mínimo, no entanto, seria de 10 minutos. Se for necessário algo mais instantâneo, seria necessário utilizar a Salesforce Streaming API para obter um 'polling on demand'.

  • Objetos Externos

Esta forma de integração não é exclusiva do Heroku, pois os Objetos Externos do Salesforce podem ser utilizados com outros bancos de dados externos. Mas com o Heroku é realmente simples e rápido de configurar. É uma solução interessante para economizar espaço no Salesforce e armazenar os dados externamente. Os dados são expostos dentro do Salesforce e podem ser visualizados, pesquisados e relacionados.

  • Chamada Apex

Às vezes, a simplicidade é o que mais se ajusta ao que precisamos. Uma simples chamada HTTP POST a partir do Apex para o endpoint fornecido pelo Heroku pode ser suficiente se precisarmos do serviço disponibilizado pelo Heroku de maneira pontual.

Casos de uso

O principal motivo com o qual publicitam o uso do Heroku é a tranquilidade que dá ao cuidar de toda a infraestrutura que é necessária para que um serviço na nuvem esteja sempre disponível, enquanto você pode se concentrar em desenvolver a aplicação que precisar.

Comuns

Alguns dos usos mais comuns do Heroku seriam:

  • Integrações para Salesforce com bancos de dados externos

Já avaliamos anteriormente a multitude de possibilidades que o Heroku oferece para se integrar com o Salesforce. A simplicidade na configuração, rapidez e a confiança de não precisar sair do ecossistema Salesforce, são bons motivos para optar pelo Heroku, se necessário.

  • Ponte entre Salesforce e um aplicativo móvel

Os aplicativos móveis geralmente dispõem de um serviço API RESTful que se encaixa perfeitamente com as integrações Heroku-Salesforce.

  • Incorporar em Salesforce um aplicativo web ou interface de usuário externa

Se a aplicação já existe, por que refazê-la? Graças ao Heroku, é possível carregar a aplicação em um canvas através de um iframe. O Heroku garante um protocolo de comunicação seguro.

  • Expor uma API REST para dispositivos IoT

Os dispositivos de Internet of Things estão na ordem do dia e as informações que eles coletam são muito úteis. Heroku oferece a possibilidade de ter esses dados dentro do Salesforce para explorá-los.

Más allá

Mas neste blog vamos além e vamos pensar em trazer para o Salesforce aquelas necessidades atípicas, mas que poderiam ser necessárias alguma vez, e nas quais o Apex falha, como poderiam ser:

  • Integrar-se com Filas de mensagens

Cada vez mais, estão sendo potencializadas as integrações baseadas em filas de mensagens (MQTT, RabbitMQ...) já que é uma forma de não perder informações em momentos de colapso ou saturação, pois as mensagens ficam armazenadas até que possam ser processadas. Uma possível ideia seria utilizar Heroku para transformar essas mensagens em Platform Events do Salesforce.

  • SDKs

Em ambientes industriais ou integrações com maquinário antigo, costuma ser comum integrar com SDKs e não com serviços. Heroku pode ser uma solução para integrar esse SDK e transformá-lo para que possa ser explorado por um serviço.

  • Abrir um Socket ou WebSocket

Também existem serviços modernos que se estruturam ao redor de Sockets. Se for necessário realizar essa tarefa a partir do Apex, por enquanto é uma limitação, já que não seria possível deixar um socket no Apex, por exemplo, ouvindo conexões. Quanto aos WebSockets, podem ser utilizados a partir do frontend, mas, e se precisarmos usá-los a partir do backend? A partir do Apex seria muito complicado. É aqui que entra em jogo também o Heroku.

  • Gerenciamento de vídeo e imagem

Neste âmbito, o Apex fica bastante aquém. É algo que perdoamos, o Apex não tem como foco de atenção as imagens e o vídeo, e é um âmbito da informática em que, para ser competitivo, é necessário especializar-se. Para isso, já existem várias bibliotecas, algumas de código aberto como OpenCV ou FFMPEG, que trabalham com visão artificial para detectar em imagens ou vídeo, por exemplo, movimento, objetos específicos, distância, reconhecimento facial, etc. Com o Heroku, está a um passo de incluir essas funcionalidades dentro do Salesforce.

  • Criar um proxy para contornar o CORS

Os problemas com o CORS são muito típicos, pois atualmente os navegadores bloqueiam as solicitações de origem cruzada se não incluírem alguns cabeçalhos específicos. Uma possível solução seria criar um servidor Proxy no Heroku e utilizá-lo para evitar esses erros, já que ele atua como intermediário entre o navegador e o servidor API.

  • Geração de gráficos científicos

Em algumas ocasiões pode ser necessário utilizar funções estatísticas, matemáticas ou de geração de gráficos científicos. Embora se possa pensar em soluções como o Einstein Analytics, às vezes seu poder (e seu preço) são excessivos. Já existem bibliotecas de código aberto, como NumPy ou MatPlotLib, que podem ser muito bem integradas ao Salesforce utilizando o Heroku.

  • Raspagem de dados

Embora possa haver soluções com JavaScript, se a solução for necessária em Apex, o Heroku poderia colaborar nisso. Já existem bibliotecas de código aberto especializadas em web scraping, como Selenium ou ScraPy, que estariam a um passo de integração (um passo realmente pequeno graças ao Heroku).

Documentação

E até aqui o tutorial em espanhol de como o Heroku pode ajudar a estender as funcionalidades do Salesforce. Para mais informações, recomenda-se enfaticamente visitar o Heroku Dev Center. Nele, você encontrará toda a documentação mais técnica sobre a configuração e uso do Heroku. E, claro, o Trailhead sempre oferece pequenos módulos de suporte onde você pode descobrir mais sobre o Heroku ou guias passo a passo para chegar ao 'Olá mundo' em alguns minutos.

Talvez você possa se interessar

13 de fevereiro de 2023

O que é MuleSoft? Componentes da Anypoint Platform?

É a pergunta que todos nós fazemos ao ouvir essa palavra, neste artigo vou analisar as principais características e vantagens do MuleSoft, o produto de integração da Salesforce, mas para poder entender o que é o MuleSoft, devemos primeiro aprofundar-nos na problemática que esta ferramenta tenta resolver, e só dessa maneira poderemos conhecer seu verdadeiro significado.

SEIDOR
10 de fevereiro de 2023

Os 5 Melhores CRM de vendas 2023

Uma ferramenta CRM oferece informações para criar campanhas de marketing mais promissoras e eficazes, assim como potencializar a produtividade. O resultado é garantir a satisfação dos clientes e sua fidelização, ao mesmo tempo que melhoramos nossas vendas.

SEIDOR
13 de fevereiro de 2023

O que é o Microsoft Intune? Para que serve?

Com o passar do tempo, as empresas perceberam as vantagens de oferecer aos funcionários ambientes de trabalho flexíveis, seja em computadores de mesa ou em dispositivos móveis para poder utilizá-los em diferentes ambientes. Isso levou à busca de fórmulas para consolidar a administração do hardware utilizando um único console.

SEIDOR