Der Guru für Informationstechnologie und technische Direktor des Ars Technica-Magazins Jason Marlin verfügt über mehr als zwanzig Jahre Erfahrung in der Unterstützung von Informationsinfrastrukturen - und seiner Meinung nach hat sich in diesem Bereich viel geändert

Das Pit-Spiel, das als BBS-Tür funktionierte. In diesem Screenshot greift Lee Hutchinson diese Typen an. Oder sie sind er.
In den 1980er Jahren bin ich als echter Nerd aufgewachsen - nicht im Hipster-Sinne, sondern in dem Sinne, dass ich immer eine fünf Kilogramm
schwere Ausgabe des
Computer Shopper- Magazins mit mir herumgetragen habe (ja, diese Veröffentlichungen waren wirklich groß). Mit zehn Jahren war ich von den Bulletin Board-Systemen begeistert. Es ist nicht verwunderlich, dass ich mich am Ende als technischer Direktor der Website herausstellte, der sich mit Fragen der Wissenschaft und Technologie befasste.
Ich kann klare Parallelen zwischen der Unterstützung meines BBS (dh der Arbeit des Sysops) und der Verwaltung der modernen Webinfrastruktur ziehen. Markieren wir diese Parallelen zu Ehren des 20-jährigen Jubiläums der Ars-Website. Dieser Artikel wird keine erschöpfende Geschichte von Websites sein. Hier werde ich meine eigenen Erfahrungen bei der Verwaltung von Websites beschreiben und wie sich diese in den letzten 20 Jahren entwickelt haben - sowie wie sich Tools und Denken geändert haben.
LOAD “*”, 8, 1
Meine erste Erfahrung als Sysop machte ich auf Commodore 128 (natürlich im 64-Bit-Modus), wo Greg Pfountz 'Color 64 funktionierte. Ich schickte Greg meinen Scheck (nun, er wurde von meiner Mutter signiert) und bekam eine 5,25-Zoll-Diskette mit eine handgenähte Anweisung, die auf einem Matrixdrucker gedruckt wurde, und dann begann sie.
Die Farbe 64 sah dank ASCII, das nach dem ANSI-Standard gemalt wurde, im Gegensatz zu den meisten anderen BBS-Programmen, die farblosen banalen Text produzierten, fantastisch aus. Mit Farbe 64 konnte eine Benutzererfahrung erstellt werden. Ich kann mich nicht mehr an die Namen meiner BBS erinnern, aber ich garantiere, dass das Hauptthema mit Drachen und / oder Kung Fu zu tun hatte. Ich schäme mich ein wenig zuzugeben, dass mein Spitzname DragonMaster war, aber ich habe nur die Stereotypen bestätigt, die mit Nerds verbunden sind.
Leider bestand meine Netzwerkinfrastruktur aus einer einzigen Telefonleitung, was bedeutete, dass ich alle anrufenden Geräte (dh ein an der Wand montiertes Festplattentelefon) trennen und zwischen 23 und 5 Stunden arbeiten musste. Es bedeutete auch wenig BBS-Interaktivität. Mit einer einzelnen Zeile und einem einzelnen Commodore 1571-Laufwerk konnten Benutzer nicht miteinander chatten oder mehr als ein Spiel gleichzeitig herunterladen.
Commodore 1670 lässt das Herz immer noch schneller schlagenIn meinen Träumen leitete ich in naher Zukunft das echte BBS, so etwas wie das damals berühmte Las Vegas Fear & Loathing, das ich oft besuchte. In meinen Träumen gab es 10 Telefonleitungen, über die Benutzer in Echtzeit miteinander kommunizieren und eine Verbindung zu 1200 Modems herstellen konnten - nein, nicht einmal 2400 Baud! Und auf einer mythischen Festplatte mit einem Volumen von bis zu 10 MB des
Lt- Systems.
Kernal hätte endlose Bestände an Spielen gehalten.
Leider war all dies für mich unzugänglich, aber ich war eindeutig mit einer neuen Krankheit infiziert, die den ungewöhnlichen Wunsch einer Person weckte, digitale Orte zu schaffen, an denen sich Benutzer versammeln konnten
1990er Jahre
Ich habe weiter mit BBS-Software herumgespielt, einschließlich eines sehr interessanten HTML-Vorgängers wie
Excalibur BBS . Sehen Sie sich die
Suchergebnisse für Google-
Bilder an, um zu sehen, wie diese Software ihrer Zeit voraus war.
$: cd ~ / public_html
Ich habe HTML Mitte der 90er Jahre zum ersten Mal im College kennengelernt. Dann habe ich meine Hausaufgaben gemacht und sie in das öffentliche Home-Verzeichnis hochgeladen, und die Lehrer konnten sie in ihrer Freizeit mit den Browsern Netscape oder Mosaic überprüfen. Ein ausgezeichneter Motivator zu dieser Zeit waren zusätzliche 10 Punkte für den "Einsatz von Technologie".
Apache + Perl + XML + Shared Hosting
Eine der ersten echten „Anwendungen“, die ich als Webentwickler erstellt habe, war die Nachrichtenabteilung eines Telekommunikationsunternehmens. All dies funktionierte auf einem damals weit verbreiteten Bundle: Apache als HTTP-Server, Perl als Serversprache und eine Datenbank als Textdatei. Zu dieser Zeit war ich nicht mit echten Datenbanken vertraut, aber ich wusste, wie man XML schreibt und analysiert. All dies wurde auf einer erstaunlich guten Plattform für die Zusammenarbeit gehostet, auf der ich alle Regeln für den Server in eine .htaccess-Datei schreiben konnte. Ich erfuhr bald, dass diese Datei meinen unerfahrenen Händen zu viel Kraft gab!
Kollaboratives Hosting löste meine Probleme, aber zu dieser Zeit waren die Entwickler in allem, was mit Softwareversionen und -erweiterungen zu tun hatte, auf Administratoren angewiesen. Sie mussten sich auch Gedanken darüber machen, was Ihre Nachbarn mit gemeinsam genutzten Ressourcen machen, einschließlich aller möglichen unangenehmen Dinge. Das Hacken einer Maschine kann Hunderte von Websites gefährden.
IIS, FrontPage-Erweiterungen und Zugriff
Infolgedessen hat die Agentur, in der ich gearbeitet habe, genügend Kunden gewonnen, um sich einen eigenen Server leisten zu können. Zu meinem Leidwesen stellte sich heraus, dass es sich um einen Windows-Computer handelte, auf dem IIS (Internet Information Services) ausgeführt wurde. Dieses Gebiet war mir völlig unbekannt, aber nach dem Start der Frontpage-IDE war ich erstaunt, wie einfach Microsoft die normalerweise schwierigen Aufgaben des Speicherns verifizierter Eingaben in der Datenbank erledigte. (Nein, im Ernst, einfach großartig). Infolgedessen suchte ich nach der perfekten grafischen IDE, einschließlich eines kurzen und frustrierenden Durcheinanders mit Macromedia Dreamweaver. Bald erfuhr ich, dass Werkzeuge, die automatisch Code erstellen, normalerweise eine große Menge an Nudeln produzieren, die dann nur dieselben Werkzeuge entwirren konnten.
Das Verwalten von IIS unter Windows NT 3.5 schien auch für jemanden mit Erfahrung unter Unix eine gefährliche und einfache Aufgabe zu sein. Gleichzeitig war es ein Gefühl strenger Einschränkungen - wo waren die .conf-Dateien, in denen es möglich war, Mikro-Tuning (und phänomenales Durcheinander) durchzuführen?
Diese Assembly wurde für eine Weile zu meiner Plattform. Wir haben mehrere CMS auf Bestellung für unsere Kunden erstellt, ohne daran zu denken, eine gemeinsame Codebasis, langfristigen Support oder Versionskontrolle beizubehalten. Was für ein Horror.
Anfang der 2000er Jahre, beginnend mit ColdFusion
Jetzt verstehe ich den Schrecken der Situation, aber dann hat mir die Allaire
ColdFusion- Umgebung sehr gut gefallen und ich habe sie mindestens vier Jahre lang verwendet, um ausreichend große Anwendungen und Unternehmensnetzwerke zu erstellen. Sie arbeitete auf der Basis von CFML (ColdFusion Markup Language). Es sah aus wie HTML, stellte jedoch triviale Abfragen an Datenbanken und deren Integration in externe Technologien wie Java Servlets oder CORBA. ColdFusion hatte viele Gegner, aber ich war nie ein Befürworter einer bestimmten Technologie und entschied mich nur dafür, was es mir ermöglichte, die Aufgabe am schnellsten zu erledigen.
Web-Frameworks werden angezeigt
Die sehr niedrige Eintrittsbarriere von ColdFusion hat ihm die Bekanntheit einer Narrensprache eingebracht, die Programmierer von geringer Qualität in diesen Bereich gelockt hat - ähnlich wie früher PHP. Ich kann dem nicht widersprechen, aber die Ironie ist, dass meine erste Bekanntschaft mit einem guten Webframework in Form von
Fusebox stattgefunden hat. Es begann mit dem Versuch, eine Anwendung mithilfe einfacher Dateinamen und Verzeichnissystemkonventionen zu organisieren. Es klang offensichtlich, aber wie die meisten Webentwickler der damaligen Zeit tendierte ich zu einem sich ständig weiterentwickelnden Ansatz für das App-Layout und kämpfte mit voneinander getrennten Dingen wie Datenbankabfragen und Ausgabekomponenten. Ich habe mit
Struts gespielt , aber da es unmöglich war, Java in der Hauptarbeit zu verwenden, habe ich es immer noch nicht verstanden. Aber Fusebox öffnete mir die Augen für Plattformen mit dem
MVC- Paradigma (Model View Controller), das über die Grenzen bestimmter Sprachen hinausgeht. Und das war viele Jahre vor dem Erscheinen dieser zerstörerischen
15-minütigen Präsentation von Ruby on Rails von
David Heinemeyer Hansson .
Heute würde ich niemals in Betracht ziehen, eine große Anwendung zu erstellen, ohne ein Framework auszuwählen, und heute haben wir viele interessante Möglichkeiten. Für PHP mag ich
Laravel am meisten.
Ja, dann hat es einfach das Dach gesprengt.
Clustered Web Hosting
Ich habe meine ersten Erfahrungen mit einer stark frequentierten Website im Jahr 2002 gemacht. Mit zunehmendem Datenverkehr nahmen auch die Verantwortung und die Anzahl der Anrufe mitten in der Nacht zu, die einen Neustart des Servers erforderten. Und schließlich habe ich mich entschlossen, alles über Load Balancing, Caching und Cluster-Hosting herauszufinden. Dies war eine weitere Offenbarung, da sie die Möglichkeiten einer nahezu unbegrenzten Skalierung eröffnete.
Wenn eine Maschine offline ging, hatten wir Safety-Cars, um sicherzustellen, dass alles funktionierte. Wir hatten Analysen und detaillierte Cluster-Metriken. Das Leben war schön wie mein Traum.
Aufstieg der virtuellen Maschinen: AWS, Vagrant
AWS (Amazon Web Services) erschien anscheinend aus dem Nichts und gab den Entwicklern genau das, was wir brauchten. Sie entfernten auch Zwischenhändler aus dem traditionellen Hosting. Wir mussten nicht fragen, welche Technologien wir verwenden durften. plötzlich war alles möglich. Möchten Sie versuchen, eine Bewerbung für Django oder NodeJS zu erstellen? Kein Problem. Starten Sie ein paar virtuelle Maschinen und gehen Sie. All dies kann mit AWS erreicht werden: virtuelle Firewalls, Load Balancer, spezielle Cluster für Datenbanken, CDN (Content Delivery Network) für statische Ressourcen und fast alles, was Sie sich vorstellen können. Es wurde zu einem Rechenzentrum für die Selbstherstellung - und es war sowohl ein Fluch als auch ein Segen. Beim Hinzufügen jedes neuen Dienstes musste dieser nachverfolgt werden, damit jemand wusste, wie er erhöht werden kann, nachdem alles kaputt gegangen ist (und alles kaputt gegangen ist). Zu scharf auf den Entwickler, war es sehr einfach, mehr abzubeißen, als er kauen konnte.
Was AWS in der Cloud ermöglichte, ermöglichte
Vagrant auf einer Produktionsmaschine. Vagrant gab uns einfachen und skriptfähigen Zugriff auf verschiedene VM-Anbieter. Ich konnte neue Linux-Typen und alle Arten von Softwarepaketen in einer Umgebung testen, die bei der Bereitstellung sehr einfach in der Cloud neu erstellt werden konnte. Wenn während der Installation ein Fehler aufgetreten ist, können Sie mit dem einfachsten Befehl zum Zerstören von Vagabunden von demselben Image aus neu beginnen. Dies machte die Entwicklung viel angenehmer als das Ausführen von Servern auf einem Heimbetriebssystem oder die direkte Verwendung von VMWare oder VirtualBox.
2010er Jahre - Von Webmastern zu DevOps
Lassen Sie uns etwas langsamer werden und darüber sprechen, wie ich den Begriff Webmaster immer gehasst habe.
Mann: Was machst du im Leben?
Ich: Ich erstelle coole Webanwendungen mit verschiedenen Programmiersprachen und arbeite mit der Infrastruktur ...
Mann: Ahhh, du bist also ein WEBMASTER!
Ich möchte dieses widerliche Wort aus dem Gebrauch entfernen.
Zusätzlich zur Zuordnung dieses Wortes zu einem 20-seitigen Spielwürfel beschreibt es überhaupt nicht die Rolle, die viele von uns bei der Programmierung und beim Infrastrukturmanagement spielen. Daher mag ich diese Verschiebung im letzten Jahrzehnt zu angeseheneren Begriffen wie
DevOps sehr . Die Ingenieure von DevOps verwenden die Programmierung, um eine reale Infrastruktur zu erstellen, zu verwalten und zu dokumentieren.
Chef + Ansible
Als ich bei Ars Technica anfing, wollten wir in der Lage sein, Webserver und Datenbankserver in einer virtualisierten Umgebung einfach hinzuzufügen oder zu entfernen. Nachdem wir verschiedene Ansätze untersucht hatten, entschieden wir uns für
Chef , der das Infrastrukturmanagement durch eine Hierarchie von Analogien vereinfacht, die sich hauptsächlich auf die Küche beziehen (Messer, Rezeptbuch, Rezepte usw.). Nachdem untersucht wurde, wie die Eigenschaften von Variablen oder „Attributen“, wie sie hier genannt werden, aus Rollen entstehen und auf separate Knoten herunterkommen, wird es sehr einfach, Serversoftware und -versionen von einer einzigen Plattform aus zu verwalten. Chefkoch erlaubte uns, das Mikromanagement einzelner Server in Clustern einzustellen, und erleichterte die Aufgabe des Massen-Upgrades.
Ich persönlich bevorzuge es heute, mit
Ansible zu arbeiten, einem Python-basierten System, das von Redhat entwickelt wurde. Es ist einfacher zu bearbeiten und bei der Arbeit in kleinen Organisationen etwas weniger anfällig. Im Gegensatz zu Chef, wo ein zentraler Server erforderlich ist, verwendet Ansible SSH vom Host-Computer (in unserem Fall von unseren Laptops, von denen wir entwickeln), aber für größere Unternehmen verfügt es noch über einen Server, Tower. Mit Ansible können Sie auch den größten Teil der Konfiguration in YAML schreiben, wodurch die Lesbarkeit erheblich verbessert wird.
Seit einigen Jahren sind wir Gastgeber der
ServerCentral Turing Group . Sie helfen uns dabei, die richtige Balance zwischen dem zu finden, was wir können (Code schreiben und VM einrichten) und dem, was wir nicht vollständig steuern können - dies sind Sicherheitsdieselgeneratoren, redundante Netzwerke oder das Kopieren von Daten in Echtzeit in ein entwickeltes Rechenzentrum Fehler zu umgehen.
Ab 2019
Ich werde immer nostalgisch sein für diese ruhigen Tage der manuellen Eingabe von Befehlen für das Modem, wenn wir irgendwo am Horizont von den Versprechungen von The
Lawnmower Man oder Hal 9000 angezogen wurden. Aber der aktuelle Moment bietet auch enorme Möglichkeiten für die nächste Phase der Entwicklung der Infrastruktur. Es gibt so viele vielversprechende Tools, die wir in Betrieb nehmen
möchten , zum Beispiel
Docker Swarm oder
Kubernetes . Es ist erstaunlich zu erkennen, wie weit wir gegangen sind und wie viel produktiver der heutige Entwickler im Vergleich zu den alten Zeiten mit dem mysteriösen Quietschen von BBS sein kann. Ich gehe davon aus, dass wir eine immer stärkere Abstraktion der komplexen Multilayer-Technologie beobachten werden, die für eine moderne Webpräsenz erforderlich ist.
Wir wünschen Ihnen viel Erfolg in den nächsten 20 Jahren!