Page d'accueil>Lié à la programmation>Autre code source
Une alternative à: Vercel, Netlify, CloudFlare, Amazon Lambda avec CloudFront, S3, Elasticache & Sqs, etc ...

Explorez les documents »
Guide de démarrage rapide · Essayez notre Sandbox Cloud · Rejoignez notre discorde



Tau est un cadre pour construire des plates-formes de cloud computing à faible maintenance et hautement évolutives que les développeurs de logiciels adoreront!

tau est un binaire unique sans dépendances externes à l'exception des bibliothèques système standard. En plus de cela, il nécessite une configuration minimale. Ce sont les étapes principales:

  1. Installer Tau

    curl https://get.tau.link/tau | sh
  2. Configurer

    tau config generate -n yourdomain.com -s compute --services all --ip your_public_ip --dv --swarm
  3. Lancement

    tau start -s compute

Pour un guide complet étape par étape, reportez-vous à Deploy Tau.

La construction tau vous-même est une go build étant donné que vous êtes installé.

Arrière-plan

Le coût et le temps requis pour créer des logiciels, le prendre de l'environnement de développement à la production, puis à faire évoluer efficacement pour répondre à la demande des utilisateurs finaux sont extrêmement élevés.

Les plates-formes adaptées aux développeurs, comme les principaux fournisseurs de cloud computing, coûtent cher, verrouillent les utilisateurs et négligent le développement local et les tests E2E.

C'est vraiment un problème bilatéral. Économisez-vous sur le coût de l'infrastructure ou réduisez-vous le temps de développement?

Si vous investissez dans votre propre plateforme, c'est une route rocheuse qui entrave la vitesse du développement et finit généralement par coûter plus cher. Nous savons tous que le conte de fées Kubernetes ne se termine pas bien!

Si vous investissez dans la vitesse de développement, vous êtes limité par les fonctionnalités et les coûts de votre fournisseur.

Pour nous, résoudre ce problème signifie:

tau résout pour la construction et le maintien d'une plate-forme de cloud computing, et fournit également les fondements d'une expérience de développeur incroyable.

Configuration minimale

L'une des raisons pour lesquelles tau nécessite une configuration minimale est qu'elle a une découverte automatique intégrée. Tout comme une voiture autonome collectant des informations via des capteurs, tau recueillera des informations et essaiera de trouver les meilleures façons d'être accessibles, disponibles, etc.

Cela dit, une configuration comme les pairs bootstrap est nécessaire. À moins que vous exécutiez un nuage à un nœud, chaque nœud devra connaître au moins un autre homologue.

Un nuage construit avec tau est très dynamique; À un niveau bas, les nœuds communiquent des actifs, des itinéraires et des services, et ils échangent également des informations sur d'autres pairs. Enrichi par des services distribués comme seer et gateway , le cloud peut équilibrer les demandes entrantes pour garantir des performances et une fiabilité optimales.

Ce comportement est également intégré aux ressources cloud. Par exemple, un protocole que nous appelons hoarder garantit que les stockages d'objets et les bases de données sont reproduites; Tout ce que vous avez à faire est de l'activer sur quelques nœuds.

Le codage local est égal à la production mondiale

Dans votre configuration traditionnelle, la plate-forme est un ensemble complexe de modèles, de pipelines et d'intégations qui aident finalement à transformer la configuration en appels API et en code en actifs. En raison de cette complexité, et aussi du fait que de nombreux composants doivent fonctionner dans un environnement très complexe qui leur est propre, il est impossible de satisfaire l'équation de la «production locale».

Certes, il existe des solutions qui se moquent ou relâchent les ressources Dev / Prod, permettant aux développeurs de construire ou de déboguer localement. Cependant, c'est toujours un service tiers que vous devez intégrer et gérer.

Afin de satisfaire l'équation, nous avons décidé de construire tau afin qu'il simplifie, ports et / ou bacs à sable tous les aspects du nuage.

Git natif

Traditionnellement, vous vous interfacez avec l'infrastructure via des appels API. C'est le cas pour chaque fournisseur de cloud computing aux côtés de solutions d'orchestration comme Kubernetes.

Il y a quelques années, le concept de Gitops a commencé à faire des vagues, et c'était à peu près au moment où nous avons commencé à construire, nous avons donc décidé de couper les ordures inutiles entre la définition d'une ressource cloud, qui devrait être stockée dans Git, et son instanciation .

En conséquence, tau n'a pas d'appels API pour créer une fonction sans serveur, par exemple. Au lieu de cela, il adopte Git comme le seul moyen de modifier les infrastructures.

De plus, Git étant le noyau de tau signifie que les nœuds du cloud se connectent à une branche spécifique, par défaut principal ou maître. Par exemple, ce qu'il permet est un moyen facile de configurer des environnements de développement, par exemple.

Un cas d'utilisation spécifique est le développement local dans lequel les nœuds de rêve-CLI peuvent également être réglés sur la branche actuelle.

En plus des nœuds étant sur une branche, le registre des applications, géré par le protocole «TNS», utilise des ID de validation pour les entrées de version, permettant aux nœuds desservant les actifs pour détecter de nouvelles versions, ou un retour en arrière.

Réseautage

En interne, tau , utilisant LiBP2P, construit un réseau de superposition entre les nœuds, permettant des fonctionnalités assez cool comme:

Sauf si c'est absolument nécessaire, ce qui est extrêmement rare, aucun logiciel bien conçu ne devrait s'appuyer sur les adresses IP et les ports. C'est pourquoi chaque cloud tau est identifié avec un FQDN (c.-à-d. Enterprise.starhips.ws), donc aucune référence de réseau absolu n'est utilisée dans une application. Sous le capot, le nuage s'occupera de manière transparente de la résolution DNS et de l'équilibrage de la charge HTTP, éliminant la nécessité de les configurer.

Stockage

Dans toutes les autres implémentations du cloud computing, le stockage signifie un emplacement et généralement un chemin. Par exemple, https://tau.how/assets/logo-w.svg a deux composants principaux tau.how , qui se traduit par une adresse IP et un emplacement, et /assets/logo-w.svg , qui est un chemin par rapport à l'emplacement. Cette façon d'adresser, appelée «adresse basée sur la localisation», n'est tout simplement pas portable. Pourquoi? Vous pourriez demander. Eh bien, pour commencer, rien ne garantit que les données renvoyées sont un logo SVG dans ce cas. L'autre problème est l'hôte tau.how auquel nous nous sommes connectés pourrait ne pas l'avoir.

Pour résoudre ce problème, tau utilise l'addition de contenu, un concept introduit par Torrent Networks et popularisé par IPFS.

Ainsi, lorsque vous demandez https://tau.how/assets/logo-w.svg , qui est en fait hébergé par un nuage tau , l'hôte qui gère la demande résoudre ( host=tau.how, path=/assets/logo-w.svg ) à une adresse de contenu, ou CID, puis récupérez le lecteur de contenu, puis le transmettez-le via un écrivain HTTP à vous.

Quelques faits sympas sur cette approche:

Calcul

À ce jour, tau prend en charge WebAssembly pour l'informatique. La raison pour laquelle nous avons commencé avec elle est qu'il est très portable et sableux. Nous prenons en charge les conteneurs pour CI / CD mais pas pour l'informatique. Nous travaillons sur un moyen d'implémenter des conteneurs et des machines virtuelles tout en respectant nos principes de portabilité et de sable.

Le code, binaire, les images, ainsi que tous les actifs joints, sont stockés et récupérés en utilisant les mêmes principes décrits dans le stockage, ce qui réduit considérablement le temps de provisionING et rapproche les données (gravité des données) et / ou l'utilisateur (Computing Edge).

Test E2E

Si vous cherchez à créer des tests E2E pour des projets hébergés sur tau , vous pouvez utiliser dream , un sous-package dans tau . Nous n'avons pas encore de documentation pour cela, mais vous pouvez rapidement apprendre des tests comme Services / SEER / Tests / DNS_Test.go.

Exécuter un nuage local

Bien que vous ne puissiez pas pratiquement exécuter tau sur votre machine locale, vous pouvez le faire en utilisant Dream-Cli, qui est un wrapper CLI autour de dream . Il crée des environnements de nuages ​​locaux reflétant les paramètres de production. Contrairement à tau , il offre une API pour la configuration et les tests en temps réel.

Tau étendant

tau peut être étendu à l'aide d'un système de plugin que nous appelons l'orbite. Un exemple open source est Olllama-Cloud, qui montre comment ajouter des capacités LLM à votre cloud.

Documentation

Pour en savoir plus, vérifiez:

Pour une documentation complète, visitez notre documentation.

Soutien

Questions ou avez-vous besoin d'aide? Ping nous sur Discord!

Développer
Informations supplémentaires