PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Projekt Centauri - Release Management



fsxto
11.04.2018, 23:11
Was ist Projekt Centauri?
Projekt Centauri ist schon lange ein Wunsch von mir. Dieses soll alle Programme die man einmal benötigt hat ersetzen und vereinfachen. Es soll Informationen zu Releases zusammentragen, diese herunterladen und wieder hochladen können. Verbreiten und bei Abuse erneut zur Verfügung stellen gehört auch hinzu. Es soll auch alle bezogenen Releases verschlüsseln und an einem sicheren Ort aufbewahren können oder aber auch die eigene Sammlung vervollständigen und einfachen Zugriff ermöglichen. Kurz um, das Rundum Sorglos Paket für jeden der sich hier rumtreibt.

Aus welchen Quellen wird man die Releases beziehen können?
Centauri soll einmal alle gängigen Schnittstellen unterstützen können. Darunter File- und Streamhoster inkl. Premium Dienstleistungen, Usenet alt.binaries, Torrent und Tracker über libtorrent (damit die Regeln eingehalten werden können), sowie FTP (inkl. announce bot) und sogar IRC XDCC. Das ganze soll nicht nur in der Download Richtung funktionieren, sondern wenn möglich auch umgekehrt. Dinge die man sich heruntergeladen hat, soll man auf allen Wegen auch wieder verbreiten können.

Was möchte ich von Euch?
Ich benötige eure Unterstützung mit Ideen und Vorschlägen. Das Projekt kann nur gelingen, wenn ihr mich tatkräftig unterstützt.

Wie sieht dein Plan aus?
Das Projekt wird aus mehreren Microservices bestehen, die man über Docker verwaltet und starten kann. Darüber kann auch jeder einzelne Microservice unabhängig vom anderen aktualisiert werden. Verbunden werden diese über eine RPC Schnittstelle. Somit kann jeder Nutzer sich schnell und einfach die Teile aus dem Projekt installieren, die ihn interessieren. Auch Docker Swarm wird unterstützt werden, sodass eine Aufteilung aller Microservices auf mehrere Server kein Problem darstellt.

Wie kann man das dann bedienen?
Herzstück des Projektes wird ein Webserver sein, an welchen alle anderen Microservices angeschlossen werden und der alle Teile verwaltet. Man hat also eine schön übersichtliche Webplattform, mit der man interagieren kann.

Wie willst du das anbieten?
Das ganze Projekt wird über Lizenzen abgewickelt. Dies ermöglicht es mir Zeit zu investieren und einen durchgehenden Support zu gewährleisten. Ob es Lifetime Lizenzen geben wird, bin ich mir noch nicht sicher. Aber je nach Features wird der Preis variieren.

Ich bin auf Eure Kommentare und Vorschläge gespannt. Den ersten Teil hoffe ich in etwa einer Woche präsentieren zu können. Je nachdem wie gut ich vorran komme.

–fsxto

rdculouz
12.04.2018, 00:59
Der Post hier lässt mich an die Idee des JDownloader im damaligen Gulli Board denken! Der damalige Thread las sich (wenn mich meine Erinnerung nicht trügt) ähnlich ...

Der erste Schritt ist oft schon der halbe Weg, aber bei dem was du vor hast bin ich mir nicht so sicher ob das Sprichwort zutrifft :p

greetz rd :emoji36:

Gollum
12.04.2018, 09:02
Ab dm Punkt "Wie sieht dein Plan aus?" hab ich es nicht mehr verstanden. :emoji46:

fsxto
12.04.2018, 09:40
Dann versuche ich das mal kurz zu erklären. Microservices sind Programme die über eine Schnittstelle ihre Dienste zur Verfügung stellen. Diese sind so gebaut, dass sie einen Aufgabenbereich abdecken und von anderen Programmen verwendet werden können. Kann man sich in ungefähr so vorstellen wie Webserver <-> MySQL, Webserver <-> Redis / Memcache. Microservices sind das Gegenteil von Monolithen, die alles im selben Programm lösen. Diese lose Verbindung der einzelnen Programme bringt die Möglichkeit mit sich, dass nicht nur skaliert werden kann, wenn ich einen größeren Server miete sondern ich kann auch mehrere kleine Server verwenden um das selbe zu erreichen.

Docker ist ein System, dass so ähnlich funktioniert wie eine Virtuelle Maschine. Der Unterschied ist jedoch, dass sich bei Docker das Host-System (Server) und das Gast-System (einzelner Container) einen Kernel teilen und man nicht zwingend ein ganzes Betriebsystem mitschleppen muss, um seine Programme laufen zu lassen. Die Programme die mit Docker in sogenannten Containern gestartet werden, sind vom Rest des Betriebsystems abgekapselt und laufen autark. Sie bekommen eine IP Adresse und können über Ports oder Links ihre Dienste anderen Containern / der Außenwelt bereitstellen. Dazu gibt es noch eine ganze Menge zu erzählen, jedoch reicht es erstmal um zu verstehen was gemeint ist.

Diese einzelnen Programme werde ich als Docker Container Image anbieten, sodass sie jeder, der eine Lizenz hat frei nach seinem Wunsch installieren kann. Man braucht für Docker auch nicht zwingend einen Server, sondern kann dies auch auf seinem lokalen Rechner starten. Genaue Anleitungen werde ich veröffentlichen, sobald ich den Unterbau für das Projekt gelegt habe.

Sollten noch Fragen sein, immer her damit :)

~fsxto

fritzi
12.04.2018, 10:36
Was ist Projekt Centauri?
Projekt Centauri ist schon lange ein Wunsch von mir. Dieses soll alle Programme die man einmal benötigt hat ersetzen und vereinfachen. Es soll Informationen zu Releases zusammentragen, diese herunterladen und wieder hochladen können. Verbreiten und bei Abuse erneut zur Verfügung stellen gehört auch hinzu. Es soll auch alle bezogenen Releases verschlüsseln und an einem sicheren Ort aufbewahren können oder aber auch die eigene Sammlung vervollständigen und einfachen Zugriff ermöglichen. Kurz um, das Rundum Sorglos Paket für jeden der sich hier rumtreibt.


Auch wenn ich deine Projektbeschreibung nicht komplett verstehe klingt das nach einer ähnlichen Idee von mir. Also kann sie ja nicht schlecht sein ^^

Aber was soll das nun konkret machen? Wirklich die Files sammeln oder nur die Informationen dazu? Das ist mir leider nicht ganz klar geworden.



Eine Anmerkung zu dem Docker/Microservices Kram. JA, es es ist neu und Hip, verursacht aber trotzdem eine Menge arbeit und insbesondere wenn man nicht jeden Tag damit Umgang hat ist es komplizierter zu handlen als mit klassischen skalierbaren Monolithen.

Wenn du das alleine machen willst, konzentriere dich erstmal auf die Kernaufgaben und bastel nicht ewig an der Infrastruktur rum.


Oder habe ich das falsch verstanden und das wird ein für jeden separat installierbarer Dienst? Also keine SaaS Plattform?

fsxto
12.04.2018, 11:38
Dieses Projekt soll Releases aus allen Quellen beschaffen und an andere Dienste auch weiterreichen können. Durch den Docker / Microservices Ansatz soll sich jeder Nutzer sein System individuell zusammen stellen können.
Wenn ich nur Daten von FTP Servern lade und einen Bot im IRC Channel haben möchte um die PRE Announces mitzulesen, dann kann ich das mit 2 Modulen lösen.
Wenn ich die Releases auf SceneFiles verfolgen will und nach bestimmten Kriterien herunterladen möchte, dann kann ich auch das mit 2 Modulen lösen. Es wird also eine Art Baukastensystem, das über eine Weboberfläche gesteuert werden kann.
Welche Module man schlussendlich benutzt ist einem selbst überlassen.

Zur Erstellung und Verteilung der Docker Images wird ein GitLab Server verwendet, der bei Änderungen am Quelltext automatisch die Updates baut und den Nutzern zur Verfügung stellt.
Jeder mit Lizenz bekommt einen Deploy-Key und kann so seine Updates ausrollen, wann er will. Wenn das einmal eingerichtet ist, brauche ich mich nur noch auf den Code konzentrieren und der Rest läuft automatisch. Zusätzlich werde ich auch noch Rancher unterstützen. Dies ermöglicht eine simple installation und meldet sich, wenn Updates verfügbar sind.
~fsxto