Laravel est un framework PHP simple, évolutif et sécurisé, alimenté par une communauté dynamique et active. C'est le point de départ de nombreuses applications web et d'entreprises en ligne, conçu pour permettre aux développeurs de se concentrer sur la création de valeur pour leurs clients et utilisateurs, plutôt que de se battre avec un cadre rigide.
Upsun et Laravel partagent la même conviction que les développeurs devraient se concentrer davantage sur la création de fonctionnalités et l'exploration de nouvelles technologies et de nouveaux terrains, et moins sur la recréation des outils qui soutiennent leurs entreprises encore et encore. Avec autant d'ADN et de qualités partagés, on peut dire qu'Upsun est le PaaS parfait pour l'hébergement et la mise à l'échelle des applications Laravel.
Il s'agit de se concentrer sur ce qui compte le plus : être libre de créer de superbes applications sans se soucier des petits détails. Pour tous les artisans du web, Upsun vous aide à atteindre les étoiles avec vos applications Laravel, un déploiement à la fois.
Upsun donne aux équipes de développement la flexibilité nécessaire pour créer - et la puissance de feu nécessaire pour exécuter - des applications diverses sur un PaaS unique en libre-service. En automatisant la gestion de l'infrastructure et la sécurité, Upsun permet à chaque développeur d'expérimenter facilement, d'itérer rapidement et de déployer des applications à grande échelle de manière responsable. Mais comment ?
Quelle que soit la complexité de vos applications, Upsun vous permet de contrôler entièrement votre environnement via votre terminal et vos fichiers YAML. Nous sommes ici pour vous montrer les étapes à suivre pour exécuter vos applications Laravel sur Upsun - voir ladocumentation complète ici.
Tout d'abord, téléchargez et installez le CLI d'Upsun, où vous pouvez ensuite découvrir toutes les commandes d'Upsun avec upsun list - tout ce dont
vous aurez besoin pour coder audacieusement ce qu'aucun développeur n'a codé auparavant se trouve ici.
Une fois que vous avez le CLI Upsun, vous aurez besoin d'un projet. Vous pouvez cloner votre application Laravel à partir de son dépôt Git ou créer une nouvelle application Laravel à partir de zéro et initialiser un dépôt Git.
Nous vous recommandons d'initialiser un dépôt Git avant de créer un projet Upsun car celui-ci sera alors votre environnement principal
qui suivra votre branche principale. Sinon, l'environnement principal pourrait suivre une branche principale alors que votre branche par défaut pourrait être un master
et donc traitée comme un environnement secondaire.
Il est maintenant temps de créer un projet Upsun avec upsun project:create
. Alternativement, vous pouvez créer un projet avec l'interface utilisateur, et le récupérer localement avec upsun get PROJECT_ID
.
Le CLI d'Upsun dispose d'une commande project:init
pratique, conçue pour démarrer les configurations et vous aider à démarrer en un rien de temps. Cette commande a un raccourci sympa : upsun ify
. C'est aussi simple que cela, mais comment cela fonctionne-t-il ?
La commande upsun ify
détecte automatiquement le framework, le runtime et les gestionnaires de dépendances utilisés. C'est ensuite à vous de nommer votre projet Upsun et de sélectionner les différents services que vous avez l'intention d'utiliser.
La commande upsun ify
fournit une liste de services dont la configuration sera amorcée pour vous. Utilisez les flèches pour déplacer le sélecteur, l'espace pour sélectionner un service et le type pour filtrer la liste.
Vous pouvez ajouter autant de services à votre application que vous le souhaitez - jetez un coup d'œil à la documentation pour savoir tout ce dont vous avez besoin pour façonner votre projet Upsun à votre guise.
En fonction de la complexité de l'application, la commande upsun ify
peut ne pas générer l'ensemble des fichiers de configuration pour vous, mais vous permettra de démarrer avec 80-90% de ceux-ci prêts. Nos stack guides, notre documentation et notre communauté Discord sont également toujours à votre disposition pour vous aider à réaliser une configuration de premier ordre en un rien de temps.
Upsun est le PaaS conçu pour vous aider à faire évoluer vos applications Laravel dans n'importe quelle direction, quelle que soit la complexité apparente de votre application. Vous pouvez vouloir faire évoluer votre projet horizontalement en gérant plus de technologies. Votre projet peut ne pas être une simple application Laravel. Il peut être regroupé avec des travailleurs, des services web en NodeJS et Go, et une couche de données en Python. C'est l'écosystème technologique, avec Laravel au cœur, nécessaire pour faire fonctionner le produit ou le service de votre entreprise. Et Upsun peut vous aider à le gérer.
Notre documentation fournit un guide pour la construction de projets Uspun à applications multiples. Le fichier .upsun/config.yaml
contient la clé de premier niveau d'une application
classée avec la configuration de vos premières applications. Vous pouvez choisir d'ajouter d'autres entrées à ce fichier ou de diviser la configuration en plusieurs fichiers, un par application. Lors du provisionnement de l'infrastructure pour notre projet, Upsun globalise également tous les fichiers YAML dans le dossier .upsun
dans un fichier de méta-configuration.
Laravel exige que certains dossiers de cache soient accessibles en écriture. Upsun nous demande de définir explicitement quels dossiers sont accessibles en écriture après la construction - ces dossiers sont appelés des montages. Pour s'assurer que les répertoires bootstrap/cache
et storage
sont accessibles en écriture, vérifiez la définition mounts
de votre fichier .upsun/config.yaml
, comme indiqué ci-dessous. Un dossier de cache spécifique à Laravel doit être créé pendant le déploiement de l'application s'il n'y en a pas.
applications : app : ... mounts : ... "bootstrap/cache" : source : "storage" source_path : "cache" "storage" : source : "storage" source_path : "storage"
De nombreux hooks sont exécutés dans le cadre du processus de construction et de déploiement de votre application. Ce sont des endroits où vous pouvez exécuter des scripts personnalisés, comme ce hook de déploiement
qui s'assure que les caches sont correctement configurés et réchauffés :
applications : app : ... hooks :
deploy : | set -eux # s'assurer que les répertoires de cache sont disponibles mkdir -p storage/framework/cache/data mkdir -p storage/framework/views mkdir -p storage/framework/sessions # effacer tous les caches et fichiers dumpés php artisan optimize:clear # lancer toutes les migrations disponibles php artisan migrate --force
Les hooks fournissent encore plus de puissance d'automatisation puisque vous serez en mesure d'exécuter plusieurs commandes à un moment critique du cycle de vie du déploiement, y compris la construction
, le déploiement
et le post_déploiement
.
Laravel s'attend à ce que toutes les configurations arrivent par le biais de variables d'environnement avec des noms spécifiques, dans un format spécifique. Upsun fournit des informations de configuration sous forme de variables d'environnement dans un format spécifique différent.
La bibliothèque platformsh/laravel-bridge
fait correspondre les variables Upsun au format attendu par Laravel pour les valeurs communes et rend la vie de nos artisans beaucoup plus facile. Ajoutons-la avec :
composer require platformsh/laravel-bridge
À l'ère actuelle de la durabilité numérique, les développeurs doivent rester fermement aux commandes. Le fait d'avoir le contrôle garantit une allocation optimale des ressources, en corrélation directe avec le succès d'une application, et implique une plus grande responsabilité environnementale.
L'utilisation excessive des ressources n'est pas seulement une question de coûts gaspillés ; elle se traduit directement par des émissions de carbone inutiles. En ajustant méticuleusement les ressources en fonction de la trajectoire de croissance d'une application, les développeurs peuvent créer des applications efficaces et performantes sans le bagage écologique. Upsun vise à donner aux développeurs les moyens de remplir cette double mission : favoriser la croissance numérique tout en se faisant le champion de la gestion de l'environnement.
La commande upsunify et la documentation auraient dû vous permettre de décrire l'infrastructure nécessaire à votre application. Ensuite, dès le premier déploiement, l'allocation des ressources se fait par défaut avec des ressources par défaut qui peuvent être personnalisées à tout moment.
La définition de votre projet doit ensuite être prise en compte. Vous devez encore définir quelles ressources doivent être utilisées pour faire fonctionner votre application, ce qui constituera l'exigence finale. Il s'agit d'un processus en deux étapes qui consiste à décrire votre infrastructure dans un fichier YAML et à définir l'allocation des ressources afin de contrôler les coûts.
Disons que vous avez défini une application backend
propulsée par Laravel, un frontend
utilisant NodeJS ou Bun, et une base de données
MySQL. Nous devons maintenant nous assurer que chacun de ces conteneurs bénéficie de la quantité optimale de ressources.
Examinons ce qui se passe en coulisses pour bien comprendre les possibilités qui s'offrent à vous. Toutes les images disponibles ont un profil par défaut : BALANCED
, HIGH_CPU
, HIGH_MEMORY
, selon que vous souhaitez privilégier le CPU ou la mémoire, ou préférer un équilibre entre ces deux exigences. Cela se traduit par un ratio de mémoire par unité de CPU.
Les images sont livrées avec une valeur de profil par défaut optimisée qui sera le choix préféré dans la plupart des cas. Mais nous voulons que vous soyez aux commandes. Vous pouvez éventuellement remplacer la valeur par défaut et définir explicitement le profil que vous souhaitez utiliser en étendant la définition des services dans votre fichier .upsun/config.yaml
.
services : database : type : mysql:10.6 container_profile : HIGH_MEMORY
Une fois que ceci est défini, ou plus probablement laissé tel quel, nous allons dire combien de CPU, et donc de mémoire, nous voulons allouer à chaque conteneur. Cette taille de conteneur peut être de 0,1, 0,25, 0,5, 1, 2, 4. La quantité de mémoire associée à chaque niveau de CPU est disponible dans la documentation.
Notre frontend
node est super léger et ne nécessite que 0.1 CPU, le minimum. Nous avons fait beaucoup d'améliorations sur notre backend
(merci Blackfire!), et 0.25 est suffisant. Notre base de données est massive et a besoin de plus de ressources pour rester rapide :
upsun resources:set --size frontend:0.1,backend :.25,database:1
Notre backend a besoin de redondance. Donnons-lui 3 instances :
upsun resources:set --count backend:3
Terminons notre configuration en donnant 512 Mo de disque à l'application backend
et 2 Go au service de base de données
:
upsun resources:set --disk backend:512,database:2048
Il n'est pas nécessaire de redéployer(upsun redeploy
). Nos changements ont déjà été pris en compte. Cela signifie également qu'il suffit de quelques commandes CLI pour augmenter ou réduire les ressources allouées à l'avenir.
Imaginez que vous êtes sur le point de lancer un nouveau produit passionnant qui attirera une foule nombreuse sur votre site. Quelques commandes juste avant le moment "One more thing" de votre keynote garantiront que votre application reste à flot et continue de fonctionner même en cas de trafic intense et soutenu.
Chaque projet Upsun est livré avec une solution complète d'observabilité permettant aux développeurs et aux équipes opérationnelles de superviser leurs applications, de repérer les erreurs et les anomalies, et de traiter les problèmes de manière proactive avant qu'ils ne s'aggravent.
Les outils d'observabilité d'Upsun comprennent
Grâce à l'observabilité à tous les niveaux, les développeurs peuvent prendre des décisions basées sur des données et obtenir des informations précieuses sur le comportement de leurs applications, ce qui leur permet d'améliorer continuellement leurs systèmes pour une performance et une efficacité optimales.
Upsun ne se contente pas d'autonomiser les développeurs en leur permettant de décrire l'infrastructure dont ils ont besoin dans de simples fichiers YAML. Il fait également en sorte que Git soit la seule source de vérité. En particulier, chaque environnement créé sur votre projet est lié à des branches Git.
Imaginons que vous souhaitiez travailler sur une fonctionnalité spécifique de votre application. Vous allez créer un environnement basé sur votre environnement de production, et très probablement votre branche principale
. Upsun provisionnera automatiquement un clone de votre application, avec tous ses services et données basés sur la dernière sauvegarde disponible. Vous aurez même une URL de développement provisionnée également afin que vous puissiez expérimenter votre fonctionnalité et collaborer avec votre équipe.
Il existe une intégration avec GitHub et les principaux fournisseurs Git tiers que vous pouvez envisager. Cette intégration vous permet de provisionner automatiquement des environnements à chaque fois que vous créez des branches, des demandes d'extraction ou de fusion. La fusion d'une branche redéploie automatiquement l'environnement cible. C'est génial, non ?
Vous avez donc un contrôle total sur vos environnements de production et de non-production. Il en va de même pour l'allocation des ressources. Vous pouvez décider de réduire les ressources allouées aux différents conteneurs ou à votre environnement de non-production avec la même commande upsun resources:set
tout en gardant les besoins en ressources de votre environnement de production élevés.
En conclusion, Upsun est conçu pour offrir aux développeurs le meilleur des deux mondes : la possibilité de faire évoluer les ressources en fonction des besoins croissants de leur application Laravel, tout en respectant l'environnement. Le rôle du développeur n'a jamais été aussi critique ; vous ne vous contentez pas de coder une application, vous concevez l'avenir de la durabilité et de la performance numériques.
Nous comprenons qu'aucun projet de développement n'est entrepris seul. Il s'agit d'une entreprise collective qui se nourrit de connaissances partagées et de résolution de problèmes en collaboration. C'est pourquoi nous vous invitons à poursuivre la conversation et à partager vos expériences, vos questions ou vos idées sur nos canaux de médias sociaux dédiés.
Venez rejoindre un espace où les développeurs Laravel comme vous peuvent collaborer, apprendre et grandir ensemble en créant la prochaine génération d'applications évolutives, découplées et respectueuses de l'environnement. Nous sommes impatients de savoir sur quoi vous travaillez et comment nous pouvons mieux vous soutenir dans votre parcours de développement.
Construisons ensemble avec Laravel et Upsun, en tirant parti de toute la puissance de notre PaaS Laravel.