Orion-Technologie
Solaris 11.4
DTrace —
ZFS —
Zonen —
node.js v21.6.1
- Da Editor.md awesome ist, haben wir es portiert.
node.js
—
Perl v5.38.2
- Jetzt mit mod_perl v2.0.13 w/ithreads und httpd v2.4.58 w/ event mpm.
Subversion v1.14.4
benutzerdefinierte ithread-safe
SVN::Client
.native python3-Bindings (v3.8.3).
python3-Ports mit Thread von svnpubsub und svnwcsub —
python3 ausgefüllt Viewvc.
Einige Bemerkungen auf den Straßen nicht (noch?) Akzeptiert…
SQL
Wir sind ein NoSQL-Shop für unsere gesamte Website-Infrastruktur, und wenn Sie mit einem riesigen Single-Point-of-Failure, einem RDBMS, das die Assets Ihrer Website steuert, sattelt, überlegen Sie sich bitte einen dezentraleren Ansatz, der auf der #Jamstack- und Serverless-Technologie basiert. Auch wenn es nicht unsere ist. Sie werden uns später danken!
Warum nicht Git?
Die
git svn
Bridge ist bereits vorhanden, wenn Sie lieber selbst mit Git arbeiten möchten, anstatt die Online-IDE für Orion zu verwenden ™. Sie haben Optionen! Möglicherweise erhalten Sie noch mehr Kilometer von GitHub-Aktionen, indem Sie Ihre Änderungen an GitHub verschieben (und sie in einer GitHub-Aktion oder einem Pre-Commit-Hook oder beidem z.B.) bevorgit svn dcommit
- sie zu unseren Subversion Repos für Live-Publikation. Hier.Website-Quellbäume sind nicht ganz wie Software-Quellbäume, in Bezug darauf, wie Sie sie ändern und verwalten. Sie sind stärker ausgerichtet auf Entwicklung auf Basis von Devops/Trunk als mit
Gitflow
. Darüber hinaus werden gigantische Websites SSI und vielleicht ein wenig CGI für ihre Verwendung benötigen: zumindest, um massive, nicht überprüfbare Website-Abwanderung von ebenso massiven Commit-Mailern zu vermeidenDiff.
.Zum Witz: Der Versuch, eine voll funktionsfähige SSI-Implementierung von einem lokalen “Webserver” zu bekommen, mit dem Sie Ihre Änderungen in einem anderen Build-System in der Vorschau anzeigen, ist nur ein wenig albern, wenn Sie aufhören und darüber nachdenken. Mit unserem Orion erstellen Sie einfach einen Zweig in svn und los geht’s: Bearbeiten, Festschreiben, Bauen, Surfen und iterieren, sofort, auf einer verzweigten, ephemeren Apache-Served-Website, die in Orion integriert ist ™
Wenn es an der Zeit ist, diese Änderungen auf den Stamm-basierten Produktionsstandort zu migrieren, können Sie wählen, so viel oder so wenig von der Branche zu fördern, wie Sie es für richtig halten, direkt zurück zum Stamm. Wenn sich der Stamm vorwärts bewegt hat, seit Ihre Verzweigungsänderungen letztendlich zur Prime Time bereit waren, klicken Sie einfach auf die Schaltfläche Synchronisieren, um den Stamm mit Ihrer Verzweigung zu synchronisieren. Nachdem Sie die Build-Ergebnisse Ihres Post-Sync-Merge-Commits auf der Website Ihrer Niederlassung geprüft haben, klicken Sie auf den Link Hochstufen, folgen Sie diesem Schritt mit einem Commit auf derselben Seite mit einer angemessenen Commit-Logmeldung, und voilà, Sie senden jetzt auf die Produktionserstellung des Stamms.
Wenn Sie die resultierenden Build-Bäume mithilfe der Versionskontrolle verteilen und bearbeiten müssen, werden Sie Git im großen Maßstab nicht mögen. Insbesondere bei der Integration von binären Artefakten (z. B. Software-Releases) oder (Legacy-)Produktdokumentationen (denken Sie an doxygen oder javadocs), die mit diesem System erstellt wurden oder einen Drittanbieter-Builder verwenden, den Sie lokal verwenden, um diese Build-Ergebnisse direkt in unsere Ziel-Repositorys hochzuladen. Mit unserem Ansatz können Sie unnötige Unordnung und Blähungen im Quellbaum Ihrer Website vermeiden, im Gegensatz zu der Arbeit mit Git, indem Sie Zweige in einem Repository verwenden, das sowohl Ihrer Quelle als auch dem Bau von Bäumen entspricht.
Subversion unterstützt fein granulierte Zugriffskontrolle und ermöglicht Teil-/Sparse-Checkouts von
Kopfzeile
.Für die IDE würden wir Read+Write Perl Bindings benötigen für
libgit2
(die nicht vom eigentlichen Git-Entwicklungsteam bereitgestellt wird und weitgehend von megalithischen Unternehmen unterstützt wird, die keine Online-IDE für Git als vergleichbares SaaS-Produkt bereitstellen; und nein, GitHubist es nicht), um das httpd-kompatible Speicherverwaltungssystem von svn und die Sicherheit des POSIX (+ Perl-ithreads)-Threads in einer persistenten Laufzeit und über mehrere serverseitige Git-Repositorys von Clientwebsitebäumen auf der Festplatte abzugleichen. Die Reife dieser Open-Source-Infrastruktur ist für 2020 nach unserer Einschätzung nicht bankfähig, aber wir werden die Entwicklungen in Zukunft im Auge behalten. Blick auf Sie,Git::Raw
.Ich weiß immer noch nicht, wie man ein posix-thread-sicheres Git Porzellan herstellt. Thread-Sicherheit über separate Repositorys hinweg, aber innerhalb des RAM eines gemeinsamen Prozesses, ist der Anwendungsfall, nicht Thread-Sicherheit innerhalb eines bestimmten Repositorys (was eine nussige Frage ist).
Warum nicht Python oder Ruby oder Javascript oder Go?
GIL-addled
mod_python
hat noch einen Weg zu gehen, bevor es die Reife dermod_perl
in einem Gewinde mpm. Darüber hinaus ist die aktuelle Implementierung unseres Produkts eng in die vollständige Modul-API des Apache HTTPd-Servers integriert, die nurmod_perl
.GIL-addled
mod_ruby
wurde von der Ruby-Community aus verschiedenen Gründen der Qualitätskontrolle weitgehend aufgegeben. Portierung der benutzerdefinierten 5K LOC Perl 5 Quellen von Orion ™
Sicher, hier ist ein Snapshot vom 19. Juli 2020 des Teils SunStar Systems des Produktionsquellbaums für das gesamte Orion (IDE+build). Es gibt nur wenig anderes über unsere Dotiac::DTL
.
joe@zeus:/x1/Orion% wc -l */lib/SunStarSys/**/*.pm
1 build/lib/SunStarSys/ASF.pm
128 build/lib/SunStarSys/SVNUtil.pm
270 build/lib/SunStarSys/Util.pm
36 build/lib/SunStarSys/Value.pm
82 build/lib/SunStarSys/Value/Blogs.pm
61 build/lib/SunStarSys/Value/Jira.pm
77 build/lib/SunStarSys/Value/Mail.pm
70 build/lib/SunStarSys/Value/SVN.pm
106 build/lib/SunStarSys/Value/Snippet.pm
85 build/lib/SunStarSys/Value/Twitter.pm
378 build/lib/SunStarSys/View.pm
1260 webgui/lib/SunStarSys/Orion.pm
112 webgui/lib/SunStarSys/Orion/Cookie.pm
183 webgui/lib/SunStarSys/Orion/Filter.pm
90 webgui/lib/SunStarSys/Orion/MapToStorage.pm
59 webgui/lib/SunStarSys/Orion/WC.pm
194 webgui/lib/SunStarSys/Orion/WC/Add.pm
97 webgui/lib/SunStarSys/Orion/WC/Browse.pm
133 webgui/lib/SunStarSys/Orion/WC/Commit.pm
79 webgui/lib/SunStarSys/Orion/WC/Copy.pm
66 webgui/lib/SunStarSys/Orion/WC/Delete.pm
47 webgui/lib/SunStarSys/Orion/WC/Diff.pm
182 webgui/lib/SunStarSys/Orion/WC/Edit.pm
116 webgui/lib/SunStarSys/Orion/WC/Mail.pm
70 webgui/lib/SunStarSys/Orion/WC/Merge.pm
67 webgui/lib/SunStarSys/Orion/WC/Move.pm
52 webgui/lib/SunStarSys/Orion/WC/Production.pm
47 webgui/lib/SunStarSys/Orion/WC/Promote.pm
60 webgui/lib/SunStarSys/Orion/WC/Resolve.pm
64 webgui/lib/SunStarSys/Orion/WC/Revert.pm
82 webgui/lib/SunStarSys/Orion/WC/Rollback.pm
123 webgui/lib/SunStarSys/Orion/WC/Search.pm
78 webgui/lib/SunStarSys/Orion/WC/Staged.pm
24 webgui/lib/SunStarSys/Orion/WC/Static.pm
49 webgui/lib/SunStarSys/Orion/WC/Update.pm
220 webgui/lib/SunStarSys/SVN/Client.pm
4848 total
Versuch, einzubetten
GoLang
.Was das Perl 5 Build-System betrifft, bleiben Sie dran! Kein Grund, warum es nicht in eine andere Programmiersprache portiert werden kann, da das Build-System vollständig von Orion isoliert ist ™’s Online-IDE (außerhalb des Markdown-Renderer-Daemons basierend auf
node.js
, das ein eigenständiges System selbst ist) aus einer Million Sicherheits- / architektonischen Designgründen. Wenn Sie einen Teaser über die Möglichkeiten benötigen, schauen Sie sich diebuild_external.pl
.Ja, Perls Popularitätspfad verfolgt ironisch die von COBOL oder sogar Common Lisp, trotz der Dominanz von Unix auf dem Servermarkt; aber einige Dinge altern besser als andere. Die solide (und einzigartig Perl)
ithread
Engineering ausp5p
, in Vorbereitung auf die Einführung von Perl 7, ist willkommen Nachrichten an mod_perl Entwickler immer noch an Doug MacEachern ursprünglichen Vision festhalten. Wenn Sie in über 100 LOC Perl-Quellen knietief sind, um das zu bekommen, was Sie von unserem aktuellen Perl-only-Build-System benötigen, lassen Sie uns chatten —
Warum nicht mit etwas, das auf der JVM basiert?
- Gerade so ausgearbeitet, angesichts meiner 20-jährigen Geschichte mit dem LAMP Stack und konstruktiven Beiträgen zur erweiterten Apache HTTPd Webserver-Community. Machbar, aber wieder ein massives Unterfangen mit vielen harten Engineering-Problemen auf dem Weg zu lösen.
Index
Orion-Funktionen — Dieselbe Javascript-Code-Rendering-Engine in Ihrem Browser und im (node.js-basierten) Build-Skript markdown.js…
SunStar Systemorion — Unternehmens-Wiki für das Erstellen, Verwalten und Bereitstellen statischer Webseiten mit der #Jamstack-Technologie für dynamische Features darin…
Orionreferenz — Diese Hot-Pink-Bleistift-Icons
oben rechts neben den Brotkrümeln wird Ihnen eine Live-Demonstration geben…
Orion-API — Auf dieser Seite werden die APIs Search, Online Editor, Django Template Library und Build System indexiert…
Orionspläne — Jährliche Vorabpreisrabatte verfügbar (bis zu 20% Rabatt auf monatliche Abrechnungskosten)…
Orion Datenschutzerklärung — Es handelt sich um ein DSGVO-konformes Opt-in-System. Beim ersten Besuch im Orion ™ CMS/IDE, Sie werden zu einer Google-Seite weitergeleitet, die Sie zur Autorisierung auffordert…
Orion-Sicherheit — “Sicherheit durch Dunkelheit ist überhaupt nicht viel Sicherheit.”…