Seidor
Personas hablando

30 janvier 2023

Qu'est-ce que Heroku ? À quoi sert-il ? Comment s'intègre-t-il avec Salesforce ?

Dans Salesforce : pourrais-je avoir une intégration utilisant une file de messages ? Et si j'ai besoin d'ouvrir un WebSocket pour la communication ? Et pourrait-on réaliser la reconnaissance faciale ? Oui, oui et oui ! Et tout cela sans quitter l'écosystème Salesforce, car Heroku en fait partie depuis 2010.

Qu'est-ce que Heroku ?

Heroku est une solution de Plateforme en tant que Service (PaaS) basée sur le cloud, permettant au client de se concentrer uniquement sur le développement de son application tandis que Heroku s'occupe de l'infrastructure sous-jacente.

Pour fournir ce service, des conteneurs virtuels sont utilisés pour maintenir et exécuter les applications. Ces conteneurs virtuels sont entièrement évolutifs à la demande, tant en nombre qu'en capacités.

Un avantage de choisir Heroku est sa capacité à supporter plusieurs langages de programmation. Les principaux langages utilisés sont : Node.js, Ruby, Python, Java, PHP, Go, Scala et Clojure. Cependant, ce nombre de langages peut augmenter en utilisant les Heroku Buildpacks, qui permettent de compiler les applications dans de nombreux autres langages.

lenguas de java

Caractéristiques à gogo (Dynos, CLI…)

Heroku est plus profond que ce que l'on peut imaginer avant de le connaître. Au début, on ne voit que la pointe de l'iceberg. Mais on peut souligner certaines de ses caractéristiques qui sont les plus curieuses ou remarquables :

comandos
  • Git

Dans tout projet ou développement, Git devrait être indispensable, mais avec Heroku, il l'est encore plus. Git n'est pas seulement utilisé comme contrôle de version, mais il sert également de connexion entre le développement local et le cloud de Heroku. La façon de déployer l'application sur Heroku est avec la fameuse commande git push.

  • Dynos

Les dynos (pas de blagues avec les dinosaures) sont les conteneurs virtuels chargés de maintenir l'application en fonctionnement. Il en existe de différents types selon la capacité de traitement, et ils peuvent être combinés en quantité et en type comme souhaité. Ils sont totalement évolutifs à la demande, un avantage pour les applications qui reçoivent des pics de demandes à des dates précises (Black Friday, Noël…). Il est important de contrôler quand et combien de dynos sont actifs car Heroku facture à la seconde de traitement.

  • CLI

Pour les amateurs de terminaux, Heroku met à leur disposition les commandes de son interface en ligne de commande personnalisée. Elle est si puissante qu'avec elle, on peut rapidement effectuer toute tâche qui serait réalisée en accédant à l'interface web.

  • Add-ons

Les Add-ons sont des outils qui complètent l'application, pas des applications en soi, ce qui leur permet de s'adapter et d'apporter de l'utilité indépendamment de l'application. Bien que certains Add-ons soient mis à disposition par Heroku lui-même, beaucoup d'entre eux ont été développés par des partenaires ou d'autres entreprises. Ils en tirent un bénéfice car ils ont la capacité de vendre ces développements dans la boutique sous différentes tarifications en fonction des capacités à souscrire. Très similaire à ce qui se passe avec Salesforce et AppExchange.

pasos
  • Boutons

Les boutons sont des composants, des bibliothèques ou des modèles d'applications qui se déploient sur Heroku en un seul clic. Une fois l'application du bouton déployée, elle peut être modifiée pour l'adapter aux besoins. C'est là que l'Open Source entre en jeu (du moins pour certains boutons qui le spécifient), car cliquer sur un bouton Heroku équivaudrait, par exemple, à faire un fork sur Github.

4 pasos para deploy

Comment créer une application avec Heroku ?

Passer de zéro à 'Bonjour le monde' est assez rapide avec Heroku. La complexité résidera principalement dans l'application que vous souhaitez développer, car le reste est déjà fourni par Heroku de manière simple.

Les applications sont exécutées depuis un serveur Heroku, en utilisant le serveur DNS de Heroku pour pointer vers le domaine de l'application (généralement nom.herokuapp.com).

Voyons ces étapes simples :

  • Installer Heroku, se connecter et créer l'application

Heroku peut être installé sur Linux, Windows ou MacOs. Tout d'abord, vous devrez créer un compte (pour l'instant gratuit) et vous connecter avec "heroku login". Pour créer l'application, il suffit d'écrire "heroku create <nom de l'application>".

  • Développer l'application

Avant tout, vous devez choisir le langage de programmation avec lequel vous allez développer, et bien sûr, programmer cette application. Par exemple, une application qui dit "Bonjour le monde".

  • Procfile

Ce fichier est important. Il est chargé de dire à chaque dyno (et à chaque type de dyno) ce qu'il va exécuter. C'est une liste d'instructions. Par exemple, si vous avez écrit une application en Python et que vous souhaitez démarrer un serveur d'applications Gunicorn pour, par exemple, servir une application Django ou Flask, le Procfile contiendrait "web: gunicorn main:app".

  • Dépendances

Les dynos ont besoin de savoir quelles autres bibliothèques (et leurs versions spécifiques) doivent être installées conjointement avec l'application. Par exemple, si vous utilisez Python, il suffit de générer un fichier de dépendances avec "pip freeze > requirements.txt".

  • Relier le Git

Une fois que Git est initialisé localement, vous devez le relier à celui de Heroku de manière distante, où il stockera sa version cloud de l'application : "heroku git:remote -a <nom de l'application>".

  • (Optionnel) Utiliser une base de données

Si l'application nécessite une base de données externe, il existe un Add-on, Heroku Postgres, que vous pouvez commencer à utiliser gratuitement pour l'essayer.

  • Et déployer !

Voilà ! Il ne reste plus qu'une dernière étape : exécuter la commande "git push heroku master".
Comment Heroku et Salesforce s'intègrent-ils ?

L'un des points forts de Heroku est sa multitude de possibilités d'intégration avec Salesforce. Étant dans le même écosystème, cela aurait été regrettable si ce n'était pas le cas.

tabla

Les plus intéressantes sont :

  • Heroku Connect

Il s'agit d'une synchronisation bidirectionnelle des données entre Salesforce et une autre base de données externe. Toute modification des données effectuée à la fois à l'intérieur et à l'extérieur de Salesforce est reflétée comme dans un miroir. Le délai d'attente minimum, cependant, serait de 10 minutes. Si quelque chose de plus instantané est nécessaire, il faudrait utiliser l'API Salesforce Streaming pour obtenir un 'polling on demand'.

  • Objets externes

Cette méthode d'intégration n'est pas exclusive à Heroku, car les Objets Externes de Salesforce peuvent être utilisés avec d'autres bases de données externes. Mais avec Heroku, c'est vraiment simple et rapide à configurer. C'est une solution intéressante pour économiser de l'espace dans Salesforce et stocker les données de manière externe. Les données sont exposées dans Salesforce et peuvent être visualisées, recherchées et reliées.

  • Appel Apex

Parfois, la simplicité est ce qui correspond le mieux à nos besoins. Un simple appel HTTP POST depuis Apex vers le point de terminaison fourni par Heroku peut être suffisant si nous avons besoin du service fourni par Heroku de manière ponctuelle.

Cas d'utilisation

Le principal argument pour promouvoir l'utilisation de Heroku est la tranquillité d'esprit qu'il procure en prenant en charge toute l'infrastructure nécessaire pour qu'un service cloud soit toujours disponible, permettant ainsi de se concentrer sur le développement de l'application dont on a besoin.

Communes

Quelques-unes des utilisations les plus courantes de Heroku seraient :

  • Intégrations pour Salesforce avec des bases de données externes

Nous avons déjà évalué auparavant la multitude de possibilités qu'offre Heroku pour s'intégrer avec Salesforce. La simplicité de configuration, la rapidité et la confiance de ne pas avoir à quitter l'écosystème Salesforce, sont de bonnes raisons de choisir Heroku en cas de besoin.

  • Passerelle entre Salesforce et une application mobile

Les applications mobiles disposent généralement d'un service API RESTful qui s'intègre parfaitement avec les intégrations Heroku-Salesforce.

  • Intégrer dans Salesforce une application web ou une interface utilisateur externe

Si l'application existe déjà, pourquoi la refaire ? Grâce à Heroku, il est possible de charger l'application dans un canvas via un iframe. Heroku garantit un protocole de communication sécurisé.

  • Exposer une API REST aux dispositifs IoT

Les dispositifs de l'Internet des objets sont à l'ordre du jour et les informations qu'ils collectent sont très utiles. Heroku offre la possibilité d'avoir ces données dans Salesforce pour les exploiter.

Au-delà

Mais dans ce blog, nous allons aller plus loin et penser à apporter à Salesforce ces besoins atypiques, mais qui pourraient être nécessaires à un moment donné, et dans lesquels Apex faiblit, comme pourraient être :

  • S'intégrer avec des files d'attente de messages

De plus en plus, les intégrations basées sur des files de messages (MQTT, RabbitMQ…) sont renforcées car c'est une manière de ne pas perdre d'informations en cas de congestion ou de saturation, étant donné que les messages restent stockés jusqu'à ce qu'ils puissent être traités. Une idée possible serait d'utiliser Heroku pour transformer ces messages en événements de plateforme de Salesforce.

  • SDKs

Dans les environnements industriels ou les intégrations avec des machines anciennes, il est courant de s'intégrer avec des SDK et non avec des services. Heroku peut être une solution pour intégrer ce SDK et le transformer afin qu'il puisse être exploité par un service.

  • Ouvrir un Socket ou WebSocket

Il existe également des services modernes qui sont structurés autour des Sockets. Si cette tâche doit être effectuée depuis Apex, c'est actuellement une limitation, car il ne serait pas possible de laisser un socket en écoute des connexions dans Apex. En ce qui concerne les WebSockets, ils peuvent être utilisés depuis le frontend, mais que faire si nous devons les utiliser depuis le backend ? Depuis Apex, ce serait très compliqué. C'est là qu'intervient également Heroku.

  • Gestion de vidéo et d'image

Dans ce domaine, Apex est assez limité. C'est quelque chose que nous pardonnons, car Apex ne se concentre pas sur les images et les vidéos, et c'est un domaine de l'informatique où il faut se spécialiser pour être compétitif. Pour cela, il existe déjà de nombreuses bibliothèques, certaines en code source ouvert comme OpenCV ou FFMPEG, qui travaillent sur la vision artificielle pour détecter dans les images ou les vidéos, par exemple, le mouvement, des objets spécifiques, la distance, la reconnaissance faciale, etc. Avec Heroku, on est à un pas d'inclure ces fonctionnalités dans Salesforce.

  • Créer un proxy pour contourner le CORS

Les problèmes avec le CORS sont très typiques car actuellement les navigateurs bloquent les requêtes d'origine croisée si des en-têtes spécifiques ne sont pas inclus. Une solution possible serait de créer un serveur Proxy sur Heroku et de l'utiliser pour éviter ces erreurs car il fait office d'intermédiaire entre le navigateur et le serveur API.

  • Génération de graphiques scientifiques

Parfois, il peut être nécessaire d'utiliser des fonctions statistiques, mathématiques ou de génération de graphiques scientifiques. Bien que l'on puisse envisager des solutions comme Einstein Analytics, parfois leur puissance (et leur prix) sont excessifs. Il existe déjà des bibliothèques open source, comme NumPy ou MatPlotLib, qui peuvent être intégrées directement dans Salesforce en utilisant Heroku.

  • Web scraping

Bien qu'il puisse y avoir des solutions avec JavaScript, si la solution est nécessaire en Apex, Heroku pourrait y contribuer. Il existe déjà des bibliothèques open source spécialisées dans le web scraping comme Selenium ou ScraPy, qui seraient à un pas de l'intégration (un pas vraiment petit grâce à Heroku).

Documentation

Et jusqu'ici le tutoriel en espagnol sur la façon dont Heroku peut aider à étendre les fonctionnalités de Salesforce. Pour plus d'informations, il est fortement recommandé de consulter le Heroku Dev Center. Vous y trouverez toute la documentation technique sur la configuration et l'utilisation de Heroku. Et bien sûr, Trailhead propose toujours des petits modules pour en savoir plus sur Heroku ou des guides étape par étape pour arriver à 'Bonjour le monde' en quelques minutes.

Peut-être que cela pourrait vous intéresser

13 février 2023

Qu'est-ce que MuleSoft? Quels sont les composants de la plateforme Anypoint?

C'est la question que nous nous posons tous en entendant ce mot, dans cet article je vais analyser les principales caractéristiques et avantages de MuleSoft, le produit d'intégration de Salesforce, mais pour pouvoir comprendre ce qu'est MuleSoft, nous devons d'abord approfondir le problème que cet outil tente de résoudre, et ce n'est que de cette manière que nous pourrons connaître sa véritable signification.

SEIDOR
10 février 2023

Les 5 Meilleurs CRM de ventes 2023

Un outil CRM offre des informations pour créer des campagnes de marketing plus prometteuses et efficaces, ainsi que renforcer la productivité. Le résultat est de garantir la satisfaction des clients et leur fidélisation, tout en améliorant nos ventes.

SEIDOR
13 février 2023

Qu'est-ce que Microsoft Intune ? À quoi sert-il ?

Avec le temps, les entreprises ont pris conscience des avantages qu'il y a à offrir aux employés des environnements de travail flexibles, que ce soit sur des ordinateurs de bureau ou sur des appareils mobiles afin de pouvoir les utiliser dans différents environnements. Cela a conduit à rechercher des formules pour consolider la gestion du matériel en utilisant une seule console.

SEIDOR