Au cours des dernières semaines,
nous avons passé beaucoup de temps à apprendre comment
construire et déployer un serveur d'API REST à part entière en
maîtrisant des technologies comme Express Framework et la base de données INNOSQL comme MongoDB.
Cette approche vous donne un contrôle total sur la façon dont vous créez et déployez votre serveur principal.
Mais dans de nombreuses situations,
nous pouvons avoir très peu de temps pour configurer un serveur et le déployer rapidement.
Ainsi, par exemple, vous êtes une startup qui doit atteindre le marché très, très rapidement,
alors vous pouvez vouloir rapidement échafauder le serveur back-end avec
une application front-end et atteindre le marché très, très rapidement.
Dans ces circonstances, pouvons-nous fournir
le support back-end sous la forme d'
un service qui peut être rapidement configuré et déployé ?
C' est exactement ce que nous allons discuter plus en détail dans cette conférence et les
exercices suivants dans cette leçon et la leçon suivante.
Ainsi, comme nous l'avons appris dans ce cours,
nous avons maîtrisé les technologies,
les frameworks nécessaires pour construire un serveur d'API REST back-end à part entière.
Bien sûr, comme nous l'avons appris ces dernières semaines,
cette approche nous oblige à configurer notre propre serveur puis à configurer le serveur,
nous devons configurer notre base de données back-end puis
configurer les différents aspects de la base de données back-end.
Nous devons développer l'API REST et diverses routes pour notre API REST,
et aussi nous pouvons avoir besoin de construire des
services supplémentaires comme la fourniture de notifications push à l'
utilisateur, la gestion des utilisateurs, les services de réseaux sociaux, etc.
Donc, tout cela signifie que le développement d'une banque à part entière nécessite beaucoup d'efforts.
Maintenant, pouvons-nous emballer toute cette approche dans un service qui peut être
rapidement configuré et déployé sans avoir
à passer autant de temps à configurer notre serveur ?
Maintenant, vous me regardez étrangement et vous dites :
« Vous avez passé les trois dernières semaines à nous former à
toutes ces technologies et maintenant vous dites qu'il est très facile de
configurer un serveur en utilisant un back-end comme
service pour fournir toutes ces différentes fonctionnalités de notre back-end. »
Eh bien, chaque approche vient avec ses propres avantages et inconvénients.
Apprenons-en un peu plus sur le back-end en tant que service avant de décider
si l'approche de développement de serveur à part entière
que nous avons apprise jusqu'à présent est la bonne façon pour nous,
ou si la configuration et le déploiement rapides du back-end en
tant que service est l'approche qui répondra à nos besoins.
Alors, qu'est-ce que le back-end en tant que service ?
Le back-end est un service est conçu comme un modèle pour fournir
aux développeurs mobiles et web de lier leurs applications au cloud back-end.
Donc, généralement, le back-end en tant que service est hébergé dans le cloud, puis vous exposez
le back-end au front-end via
une interface bien conçue comme les points de terminaison de l'API REST.
Un back-end entièrement emballé comme nous le voyons dans cette leçon,
est un phénomène relativement récent et a pris le monde web d'assaut.
Nous allons examiner quelques exemples plus en détail.
Maintenant, cela fournit un pont entre le stockage de données front-end et back-end et
la gestion de la base de données back-end via une API unifiée. De
plus, beaucoup de ces fournisseurs de services back-end fournissent
leur propre kit de développement logiciel qui
vous permettra de commencer rapidement le développement frontal.
Cette approche libère bien sûr les développeurs d'avoir à se concentrer sur la
construction d'un back-end et à la place de se concentrer sur leur développement frontal,
ou d'essayer de concevoir et de déployer l'expérience utilisateur dans
le front-end que ce soit sous la forme d'
une application angulaire ou dans le d'une application mobile.
Maintenant, si vous êtes familier avec l'informatique en nuage,
je suis sûr que vous avez entendu des termes tels que l'infrastructure en tant que service, la
plate-forme en tant que service et le logiciel en tant que service.
Désormais, le back-end mobile en tant que service, ou BaaS,
s'appuie essentiellement sur cette approche et cible les développeurs mobiles et web
ayant accès à des services cloud back-end et à un environnement beaucoup plus emballé.
C' est ainsi que le back-end as a service vous permet de tirer
parti du back-end cloud pour prendre en charge votre application frontale.
Bien sûr, la question suivante qui se pose dans votre esprit est ce que
le back-end en tant que service vous fournit généralement ?
Un back-end standard en tant que service vous permet d'
envoyer automatiquement des notifications intégrées à la prise en charge du cloud back-end.
Il vous fournit le stockage de fichiers et le partage de fichiers.
Il vous fournit l'intégration des réseaux sociaux.
Beaucoup de ces fournisseurs de services back-end fournissent
automatiquement l'intégration des réseaux sociaux pour vous.
Il vous fournit des fonctionnalités de messagerie et de chat que vous pouvez
exploiter au sein de votre front-end pour offrir une meilleure expérience utilisateur.
Il vous fournit également la gestion des utilisateurs.
Comme nous l'avons vu lorsque nous avons construit notre prise en
charge de la gestion des utilisateurs et de l'authentification dans notre serveur Express plus MongoDB,
nous avons dû construire dans le serveur d'authentification
à part entière, nous devions construire dans les services back-end,
nous devions faire la gestion des jetons à la fois sur le back-end
et sur le front-end et l'authentification de l'utilisateur et ainsi de suite.
Tous ces éléments peuvent être emballés et livrés en tant qu'unité avec
le kit de développement logiciel fourni avec le back-end en tant que service.
De plus, le back-end étant donné qu'il s'agit d'un service de package,
ils ont également intégré de nombreux outils d'analyse d'utilisation qui vous permettent d'
obtenir un aperçu rapide de la façon dont les utilisateurs interagissent avec votre back-end.
Donc, ces outils d'utilisation vous donnent beaucoup d'
informations sur le comportement de l'utilisateur à partir de votre back-end.
De plus, beaucoup de ces services back-end vous fournissent une méthode de
création et de déploiement de votre propre logique personnalisée
dans le back-end pour répondre à vos besoins spécifiques.
Bien sûr, ils vous fournissent le cadre dans lequel vous pouvez
concevoir votre logique métier personnalisée pour répondre à vos besoins spécifiques.
Donc, pour résumer, un back-end typique fournit une API de stockage de données pour le
stockage cloud où vous pouvez télécharger et télécharger des fichiers et également accéder à ces fichiers,
une sorte de stockage binaire pour vos données,
peut-être la synchronisation de périphériques et les capacités de mise en cache.
Ainsi, par exemple, lorsque vous construisez votre front-end,
les données back-end seront automatiquement mises en cache dans le front-end.
Ils peuvent également prendre en charge le fonctionnement hors ligne de votre front-end.
Ainsi, même lorsque votre appareil utilisateur est déconnecté du réseau,
vous continuerez à fournir suffisamment d'
informations à l'utilisateur disposant de capacités hors connexion.
Ainsi, à la fois en ligne et hors ligne flux de travail de sorte que vous pouvez même autoriser l'utilisateur à
effectuer leurs activités hors ligne, puis plus tard synchroniser avec le back-end.
Intégration par des tiers.
Ainsi, plusieurs fois beaucoup de ces fournisseurs back-end en tant que fournisseurs de services
permettent aux développeurs tiers de développer des plugins qui peuvent ensuite
être exploités avec le back-end pour fournir des
extensions aux services que le back-end fournit déjà pour vous.
Connectivité sécurisée entre l'application frontale et le back-end,
et générez également plusieurs fois automatiquement les
points de terminaison de l'API REST pour vous en fonction des données que vous stockez dans le back-end.
Nous en verrons des exemples en particulier avec
LoopBack comme nous le verrons plus loin dans les exercices.
Et aussi, comme je l'ai mentionné,
beaucoup de ces fournisseurs de services back-end fournissent
leurs propres kits de développement logiciel afin que vous
puissiez facilement commencer avec votre développement frontal.
Le SDK est livré avec tout le code nécessaire pour que
votre application frontale interagisse automatiquement avec votre application back-end.
Ainsi, par exemple, le SDK peut déjà contenir des
services que votre application angulaire peut exploiter pour communiquer
automatiquement avec le back-end, de sorte que vous pouvez être laissé uniquement avec
l'implémentation des composants et des modèles frontaux de votre application.
Toute l'interaction avec le back-end est automatiquement
gérée par le package SDK qui vous est fourni.
Vous verrez des exemples de cela à la fois avec
Firebase que nous examinerons un peu plus tard,
et aussi avec LoopBack que nous discuterons dans la prochaine leçon.
Bien sûr, toute approche a deux côtés de la pièce.
Examinons donc quelques-uns des avantages et des inconvénients du back-end en tant que service.
Maintenant, un avantage bien sûr est qu'avec
le back-end, il vous fournit des composants testés et testés pré-construits.
Ainsi, le back-end est emballé pour vous de
sorte que le fournisseur de services back-end aurait veillé à ce que
l'ensemble du back-end soit bien testé et fournisse le service comme promis aux utilisateurs, aux
développeurs frontaux.
Ainsi, vous n'avez pas besoin de passer plus de temps
à vous soucier de tester et de vous assurer que votre back-end fonctionne correctement ou non.
Contrairement à lorsque vous créez votre propre
back-end personnalisé en utilisant les frameworks que nous avons vus précédemment,
vous êtes entièrement responsable de vous assurer que votre back-end fonctionne correctement.
Le deuxième avantage est bien sûr,
la réduction concomitante des efforts côté serveur que vous devez mettre en place.
Ainsi, puisque le côté serveur est livré sous forme d'unité packagée,
vous pouvez vous concentrer principalement sur le développement frontal et laisser
le serveur pour le backend en tant que fournisseur de services à traiter.
Et vous exploitez simplement la flexibilité qu'ils
vous offrent dans le développement du front-end.
Et le backend typique en tant que fournisseur de services
prendra soin d'intégrer tous les développements technologiques récents
dans leur backend et fournira des
versions mises à jour du backend au fur et à mesure que les nouvelles technologies seront disponibles.
Donc, de cette façon, vous en tant que développeur frontal est
complètement libéré de vous inquiéter de la façon dont le backend doit évoluer.
Cela est automatiquement pris en charge par le fournisseur BaaS pour vous.
Bien sûr, tout est livré avec le verso de la carte.
Examinons donc quels sont les inconvénients d'aller backend en tant que service.
Tout d'abord, la plupart des backends fonctionnent comme une boîte noire.
Vous ne savez pas exactement comment le backend est implémenté.
Si vous utilisez un backend open source comme LoopBack,
par exemple, vous avez accès à ce code backend entier,
mais pourquoi voulez-vous passer du temps à explorer les détails du backend,
alors que vous avez la garantie que le backend a été
bien construit et testé pour vous.
Ainsi, vous pouvez simplement le traiter comme une boîte noire aussi longtemps.
Comme vous avez confiance que cette boîte noire va
fournir les services que vous attendez qu'elle fournira,
vous pouvez simplement utiliser le backend sans
avoir à vous soucier de la façon dont il est réellement implémenté.
Le deuxième aspect est que,
si vous choisissez d'aller avec un backend en tant que fournisseur de services,
il y a le problème du verrouillage du fournisseur.
Donc, une fois que vous avez choisi l'un des fournisseurs
BaaS, vous serez verrouillé dans leur environnement et la façon dont ils stockent leurs données.
Souvent, une fois que vous adoptez l'un de ces backend en tant que fournisseurs de services,
toutes vos données sont verrouillées dans leur service et vous devrez peut-être
passer par un effort excessif pour
récupérer les données que vous avez déjà stockées dans le backend,
si vous choisissez de migrer à partir d'un en tant que fournisseur de services à un autre.
Déployer votre service en utilisant un seul backend est une tâche très simple,
mais si vous choisissez de changer votre fournisseur
BaaS, cela va être une bataille difficile pour vous.
C' est donc quelque chose que vous devriez être pleinement conscient avant de vous engager
à utiliser l'un des backend en tant que fournisseurs de services.
Ce problème ne devient pas un problème lorsque vous
faites votre développement backend complet par vous-même.
Encore une fois, votre victoire certains et vous perdez certains.
Donc, nous prenons toujours cela en pensant à toute leur image.
Ainsi, la perte de flexibilité que vous
entraînez en utilisant l'un des principaux fournisseurs de services peut être quelque chose
avec lequel vous êtes prêt à vivre en raison du fait que vous avez réduit le
temps de développement du backend et que vous pouvez vous concentrer
davantage sur la livraison de votre produit au marché.
Donc, si vous faites confiance au fournisseur
BaaS, vous pouvez simplement aller avec votre fournisseur BaaS sélectionné et
ne vous inquiétez pas trop de la perte de flexibilité qui en résulte.
Encore une fois, comme je l'ai dit, tout n'a pas seulement des
avantages, il y a toujours des avantages et des inconvénients à toute approche que vous
choisissez pour développer et déployer votre backend.
BaaS n'est qu'une alternative qui pourrait être l'approche
que vous choisissez pour répondre à vos besoins spécifiques.
Et enfin, bien sûr,
tous les BaaS ne sont pas sans leur propre ensemble d'exigences de formation supplémentaires.
Si vous devez utiliser l'un des fournisseurs BaaS,
au lieu de la boîte noire, vous devez apprendre l'API,
vous devez apprendre à la configurer,
vous devez apprendre à personnaliser des parties de celui-ci si vous choisissez de le faire, et ainsi de suite.
Donc, l'effort de formation que vous avez passé à apprendre
des frameworks spécifiques ou génériques comme Express et des bases de données comme MongoDB,
vous passerez plutôt du temps à apprendre
leurs spécificités de leur backend en tant que service que vous choisissez d'utiliser.
Donc, c'est une question de savoir où vous voulez passer votre temps.
La formation supplémentaire sera toujours impliquée,
sauf qu'avec un fournisseur BaaS, vous pourriez être en mesure de démarrer
plus rapidement que de créer votre propre backend personnalisé.
Le marché BaaS est plein de choix.
Et en effet, ces choix ne cessent d'augmenter de jour en jour.
Maintenant, quand vous allez sur le marché BaaS,
vous pourriez voir des fournisseurs commerciaux.
Voici une petite liste de fournisseurs commerciaux.
Encore une fois, il y a de plus en plus qui sont ajoutés d'ici le jour à cette liste,
et je viens de lister seulement un petit sous-ensemble d'entre eux.
Bien sûr, si votre fournisseur BaaS préféré n'est pas dans cette liste, ne me blâmez pas,
peut-être que je ne suis pas au courant d'eux ou peut-être qu'ils sont tout simplement trop
nouveaux sur le marché et donc je ne les ai pas rencontrés.
Mais voici une liste de certains des fournisseurs commerciaux qui fournissent des services BaaS pour nous.
En particulier, je vais me concentrer sur firebase,
qui est fourni par Google.
Dans cette leçon, nous allons explorer comment utiliser Firebase dans un
peu détaillé dans cette leçon dans les exercices qui suivent.
Maintenant, si vous voulez aller avec un fournisseur open source,
il y a beaucoup d'alternatives open source qui sont disponibles pour nous,
bien sûr là vous allez
acquérir ce logiciel open source, puis construire votre serveur et le déployer.
Sauf qu'il viendra sous la forme
d'une entité préempaquetée que vous pouvez rapidement configurer et déployer sur le backend.
Nous allons considérer LoopBack comme l'un des exemples d'un logiciel open source qui
peut être déployé très rapidement pour construire votre backend.
Et comme je l'ai dit, de plus en plus de choix arrivent sur le marché, jour après jour.
Alors, devriez-vous explorer le marché demain pour trouver de nouveaux fournisseurs de BaaS ?
Par tous les moyens, examinez ce qui est fourni par eux,
quel genre de services ils fournissent.
Est-ce que ces services qu'ils fournissent répondent à vos besoins et pouvez-vous
tirer parti rapidement du service qu'ils fournissent pour accéder rapidement au marché.
Ce sont donc des problèmes que je vous laisserai dans un jour.
Comme je l'ai dit, nous devrions examiner
toutes les alternatives possibles, puis prendre nos propres décisions indépendamment.
Mais si nous ne sommes pas conscients des alternatives, nous ne serons pas en mesure de faire des choix éclairés.
C' est pourquoi les dernières leçons de ce cours que je passe
sur l'exploration de quelques exemples de backend en tant que fournisseurs de services.