Si vous suivez nos news régulières, vous avez probablement noté que nous ne parlons JAMAIS de technique ici, mais uniquement de fonctionnalités.
Cette fois, nous allons faire exception… donc, chers utilisateurs métiers, pardonnez-nous et sautez ce post car vous pourriez être effrayés par le jargon !
Utilisateurs techniques : restez, ça pourrait vous intéresser…
PickaForm a une arme secrète : derrière la scène, nous utilisons un serveur IBM Domino. Pour la grande majorité des développeurs, cela pourrait sembler un choix curieux !
En effet, bien que le serveur IBM Domino soit là depuis plus de 25 ans, beaucoup de jeunes développeurs n’ont aucune idée de ce que c’est. Ils utilisent des stacks Java, des stacks Php, des stacks Ruby, ou {nommez votre stack ici}, et plus récemment des stacks Node.js.
Alors, pourquoi diable utiliser une « vieille techno » comme le serveur IBM Domino ?
Je vais essayer d’être aussi court que possible, mais il y a beaucoup de choses à dire, et voici la réponse :
LE SERVEUR COUTEAU-SUISSE
La première raison évidente, c’est que IBM Domino Server est une pile 100% complète. Et quand je dis 100%, je pense 100%. Sérieusement. 100%.
Je ne connais aucune autre pile aussi complète sur le marché. Par complète, je veux dire que quand vous démarrez un serveur IBM Domino, vous avez immédiatement tous les services suivants :
- l’authentification, avec gestion des utilisateurs, des groupes, des sous-groupes sur plusieurs niveaux, et des rôles
- les services d’annuaires, natifs, LDAP, ou la possibilité de se synchroniser avec Active Directory
- les protocoles web de messagerie: SMTP, POP, IMAP
- le serveur de bases de données NoSQL
- un service de réplication des bases de données
- une JVM pour ceux qui veulent exécuter du code Java
- et bien sûr, un serveur HTTP
… plus d’autres services dédiés à l’administration, l’auto-réparation du serveur, l’indexation des bases de données, etc…
Tout ça en 10 secondes !
RUN & FORGET
10 secondes, ça vous paraît long ? Pas de problème, car à part pour faire des mises à jour système, vous n’aurez jamais à relancer votre serveur! Oui, même sur Windows…
Et c’est la seconde raison pour laquelle on choisit IBM Domino : sa stabilité ! Ce truc est stable comme un porte-avion propulsé au nucléaire.
INDESTRUCTIBLE
Mais au-delà de la stabilité, c’est aussi sa robustesse qui étonne. Vous voulez un exemple concret ? Pour mes développements, j’utilise un ordinateur portable d’entrée de gamme qui a maintenant plus de 5 ans. Seulement 2Gb de mémoire, un simple disque dur un peu poussif… et un serveur IBM Domino qui ronronne dessus depuis le début.
J’ai absolument tout testé sur ce pauvre serveur Domino qui m’a servi de cobbaye ! Des tas de paramétrages, des add-ons, des librairies Java, des codes trouvés sur Internet plus ou moins dangeureux… et malgré tout cela et plusieurs dizaines de milliers de commits à modifier la structure des bases de données, le résultat est sans équivoque :
ZERO INCIDENT.
Je n’ai pas réussi à tuer la bête. Bien sûr, il ne fait aucun doute que c’est possible si on en fait son objectif principal !… mais en usage quotidien, IBM Domino est comme un train lancé à grande vitesse : inarrétable.
NO-SQL AVANT L’HEURE
Mais ce n’est que le début… car maintenant, on va parler de sa base de données native NoSQL, et fournie out-of-the-box.
Au milieu des années 2000, la concurrence se moquait un peu de ce concept étrange et complètement has-been de NoSQL, qu’on appelait d’ailleurs « Séquentiel indexé ».
Echange typique entre développeurs :
– Tom (développeur non Domino) : « C’est quoi la base de données, là-dessus ? »
– Jerry (développeur Domino) : « Une base de données IBM. »
– Tom : « Ah. Mais quoi exactement ? Oracle ? MySQL ? »
– Jerry : « Non non, IBM… C’est un format propriétaire, et c’est une base séquentielle indexée. »
– Tom : « Séquentielle indexée ? Quel est l’avantage ? »
– Jerry : « La rapidité du développement, car la base de données n’a pas de structure figée. Et également le moteur de recherche, très adapté aux projets orientés documents. »
– Tom : « Mmmh ok. Et quel est l’inconvénient ? »
– Jerry : « On ne peut pas faire de jointures entre tables, mais bien souvent… »
– Tom : « …. Quoi ! On ne peut pas faire de jointures ?!! Mais alors on peut faire quoi avec ? Okay, merci pour les infos ! »
Fin de la discusion…
En 2018, le paysage technologique a complètement changé, avec beaucoup d’acteurs puissants dans le monde du NoSQL, comme Cassandra, Redis, MongoDb, Amazon DynamoDb, Couchbase… et c’est quasiment le virage inverse qui s’est opérée !
La même discussion aujourd’hui prendrait sûrement la tournure suivante :
– Tom (développeur non Domino) : « C’est quoi la base de données, là-dessus ? »
– Jerry (développeur Domino) : « Une base NoSQL, ultra-robuste, ultra-sécurisée, et qui se réplique super bien ! »
– Tom : « Wow, cooooool ! »
MATURE
Le NoSQL est devenu un quasi-standard du marché depuis que les développeurs ont enfin réalisé tous les avantages à utiliser cette technologie. Dans le domaine, Domino est un précurseur, et IBM affûte son outil depuis 25 ans.
Les autres ne peuvent pas en dire autant, et il en ressort les points suivants :
- de vrais outils d’administration pour vos bases de données NoSQL
- une vraie couche de réplication fiable, de serveur à serveur, mais aussi de client à serveur
- des paramètres de réplication évolués : on peut répliquer toute ou partie des données en décrivant des règles
- et surtout… la sécurité est directement intégrée à la base de données, ce qui permet par un mécanisme simple et ingénieux de sécuriser vos données à plusieurs niveaux :
- niveau base de données (LCA)
- niveau document (authors/readers fields)
- niveau champ (encryption)
SECURITE
Lorsque l’on doit développer soi-même un tel niveau de sécurité sur une base NoSQL classique (type MongoDb), on doit faire cela au nivau logiciel, avec tout ce que cela implique de risques associés : un simple bug dans le code mettra les données des clients en risque opérationnel !
En clair, la sécurité est laissée à la compétence du développeur de l’application, ce qui très honnêtement ne semble pas bien prudent…
Cela ne peut pas se produire avec IBM Domino, puisque la sécurité est gérée au plus bas niveau par le serveur, et l’on ne fait qu’utiliser très simplement l’API pour sécuriser les données.
Et là, on ne parle QUE de la sécurité au niveau de la base de données, mais le serveur Domino fournit nativement beaucoup d’autres niveaux de sécurité pour accéder aux données, et aussi pour décider de ce que l’on peut exécuter ou pas dans l’environnement du serveur.
Cela fait au final tellement de soucis de sécurité en moins, que les nuits en sont plus douces !
FULL-TEXT
Comme cadeau de bienvenue, les bases de données de IBM Domino vous offrent en plus nativement le stockage de fichiers, et un indexeur full-text qui vous permettra de faire de la recherche non seulement dans vos données, mais également dans le contenu des fichiers stockés.
Oui, quand il faut faire tout ça chez les concurrents, il faut pas mal se gratter la tête, et parfois même doubler le volume de données (mongodb + elactic-search).
Avec IBM Domino, c’est déjà dans la boîte, et c’est utilisable très facilement avec l’API.
REPLICATION
On ne peut pas sérieusement parler de IBM Domino sans parler de sa réplication de bases de données top niveau.
Aussi bien accessible par une ligne de commande, que depuis le client desktop, ou encore via l’API, la réplication est parfaitement intégrée, et surtout : elle fonctionne !
Mieux : vous pouvez même arracher un câble réseau en plein milieu de la réplication sans aucune crainte pour l’intégrité de vos données. Et ça, on a beau dire, ça rassure.
HOT UPDATE
Ce sera la conclusion de ce post déjà long, mais qui est selon moi le Nirvana du développeur : la mise à jour de la structure de vos applications est transparente pour vos utilisateurs en production.
Je ne sais pas si cette phrase est claire pour vous, mais ce point est remarquablement puissant : cela signifie que vous pouvez intervenir sur votre serveur en production avec 5000 utilisateurs actifs, et envoyer votre mise à jour de code à chaud en plein milieu de l’après-midi, sans le moindre risque pour vos applications et leurs données, et sans crainte de perturber le moindre utilisateur dans son travail…
Eteindre et relancer le serveur ? … Non. Pas la peine !
Prévenir les utilisateurs ? … Non. Pas la peine !
Evidemment, vous aurez eu le bon goût de tester votre code dans un environnement de développement avant l’envoyer en production, mais ensuite, tout le reste sera géré par votre serveur IBM Domino. Zéro soucis.
Et dans le cas où votre nouveau code ne fait pas ce qui était prévu, là encore, il n’y a aucun problème, car vous pourrez faire un rollback dans la foulée en revenant à la version N-1 de votre application. Tout cela à chaud. Détendez-vous, c’est IBM qui gère !
EN ROUTE VERS LE FUTUR
… car l’histoire ne s’arrête pas là !
La version IBM Domino 10 va sortir à la fin de l’année et intégrer un grand nombre d’améliorations, parmi lesquelles un serveur Node.js embarqué afin d’ouvrir la plateforme à cet énorme écosystème de développeurs. IBM Domino 11 et IBM Domino 12 ont déjà été annoncés par IBM, et il n’y a pas de date de fin annoncée pour l’amélioration continue du produit!
En parallèle, IBM propose maintenant ce serveur sur le Cloud dans sa nouvelle offre « DAC » : Domino Applications on Cloud, le tout avec un prix très raisonnable :
22$/application/mois
Impossible de manquer cela !
PickaForm ?
Maintenant que vous savez que PickaForm fonctionne avec serveur IBM Domino, et que IBM Domino est disponible sur DAC, il n’en faut pas plus pour arriver à la conclusion que PickaForm aura bientôt une version hébergée directement sur l’infrastructure IBM.
Vous pourrez alors soit utiliser une instance partagée de PickaForm (intéressante pour mutualiser le prix des NSF et éviter d’avoir à installer PickaForm vous-même), soit louer votre propre instance de IBM Domino, et dans ce cas installer PickaForm comme une version on-premise que vous pourriez avoir chez vous.
A très bientôt sur DAC !