Vorwort
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
In den PHP-MySQL-Gruppen der NodeSchool San Francisco und Ann Arbor habe ich mehrere Jahre meines Lebens damit verbracht, anderen das Programmieren beizubringen. Inzwischen habe ich mit Hunderten von Schülern gearbeitet. Oft fängt es damit an, dass wir die benötigte Software installieren und konfigurieren. Danach kommen wir mit ein bisschen Code und einer Menge Erklärungen zu dem Punkt, an dem das Programm des Schülers/der Schülerin läuft und es einfach "klick" macht. Ich erkenne das immer daran, dass die Schülerin oder der Schüler lächelt und über die Möglichkeiten ihrer oder seiner neu erworbenen Fähigkeiten diskutiert, als wäre es ein Power-Up in einem Videospiel.
Mein Ziel ist es, dieses Kribbeln für dich, den Leser, in diesem Buch wieder zu erzeugen. Auf diesen Seiten findest du viele praktische Beispiele, in denen du verschiedene Backing-Dienste auf deinem Entwicklungsrechner ausführst und dann mit ihnen über Node.js-Beispielanwendungen interagierst. Dazu gibt es jede Menge Erklärungen und kleine Abschweifungen, um die Neugierigen zu beruhigen.
Wenn du mit diesem Buch fertig bist, wirst du viele verschiedene Dienste installiert und ausgeführt haben und mit jedem dieser Dienste hast du Node.js-Anwendungscode geschrieben, um mit ihnen zu interagieren. Dieses Buch legt mehr Wert auf diese Interaktionen als auf die Untersuchung von Node.js-Anwendungscode.
JavaScript ist eine mächtige Sprache, mit der du sowohl Frontend- als auch Backend-Anwendungen entwickeln kannst. Das macht es zu einfach, sich nur auf das Erlernen der Sprache zu konzentrieren und die peripheren Technologien zu vernachlässigen. Die These dieses Buches ist, dass wir JavaScript-Ingenieure sehr davon profitieren, wenn wir aus erster Hand Erfahrungen mit Technologien sammeln, von denen viele annehmen, dass nur Ingenieure, die traditionellere Unternehmensplattformen wie Java oder .NET verwenden, damit vertraut sind.
Zielpublikum
Dieses Buch wird dir nicht beibringen, wie du Node.js verwendest. Um am meisten davon zu profitieren,solltest du bereits mehrere Node.js-Anwendungen geschrieben haben und ein konkretes Verständnis von JavaScript haben. Allerdings werden in diesem Buch auch einige fortgeschrittene undweniger bekannte Konzepte von Node.js und JavaScript behandelt, z. B. "Die Single-Threaded-Natur von JavaScript" und "Die Node.js-Ereignisschleife". Außerdem solltest du mit den Grundlagen von HTTP vertraut sein, mindestens eine Datenbank zum Speichern von Zuständen verwendet haben und wissen, wie einfach und gefährlich es ist, Zustände innerhalb eines laufenden Node.js-Prozesses zu erhalten.
Vielleicht arbeitest du bereits in einem Unternehmen, das über eine Infrastruktur für Backend-Dienste verfügt, und du möchtest unbedingt lernen, wie diese funktioniert und wie deine Node.js-Anwendungen davon profitieren können. Oder du hast eine Node.js-Anwendung, die du als Nebenprojekt betreibst und bist es leid, dass sie immer wieder abstürzt. Vielleicht bist du auch der CTO eines jungen Startups und willst die Anforderungen deiner wachsenden Nutzerschaft erfüllen. Wenn dir eine dieser Situationen bekannt vorkommt, dann ist dieses Buch genau das Richtige für dich.
Ziele
Node.js wird oft für die Entwicklung von Frontend-Webanwendungen verwendet. Dieses Buch deckt keine Themen ab, die mit der Frontend-Entwicklung oder Browserbelangen zu tun haben. Es gibt bereits eine Vielzahl von Büchern, die solche Inhalte abdecken. Stattdessen ist das Ziel dieses Buches, dass du Node.js-Dienste im Backend mit verschiedenen Diensten integrierst, die moderne verteilte Systeme unterstützen.
Wenn du dieses Buch fertig gelesen hast, wirst du viele Technologien verstehen, die für den Betrieb von Node.js-Diensten in einer Produktionsumgebung erforderlich sind. Zum Beispiel, was es braucht, um eine Anwendung zu implementieren und zu skalieren, wie man sie redundant und ausfallsicher macht, wie man zuverlässig mit anderen verteilten Prozessen kommuniziert und wie man den Zustand der Anwendung überwacht.
Durch die Lektüre dieses Buches wirst du nicht zum Experten für diese Systeme. Die operative Arbeit, die erforderlich ist, um skalierbare ELK-Dienste zu tunen, zu splitten und in der Produktion einzusetzen, wird zum Beispiel nicht behandelt. Du wirst jedoch verstehen, wie du eine lokale ELK-Instanz betreibst, ihr Logs von deinem Node.js-Dienst sendest und ein Dashboard erstellst, um den Zustand des Dienstes zu visualisieren (dies wird in "Logging mit ELK" behandelt ).
Dieses Buch deckt sicher nicht alle Technologien ab, die dein Arbeitgeber einsetzt. Obwohl in Kapitel 7 Kubernetes, eine Technologie zur Orchestrierung von Anwendungscode, behandelt wird, kann es sein, dass dein Arbeitgeber stattdessen eine andere Lösung wie Apache Mesos einsetzt. Oder vielleicht nutzt du eine Version von Kubernetes in einer Cloud-Umgebung, deren zugrunde liegende Implementierung vor dir verborgen ist. In jedem Fall wirst du durch das Kennenlernen der Tools in den verschiedenen Schichten eines verteilten Backend-Service-Stacks andere Technologie-Stacks, denen du begegnen könntest, leichter verstehen.
In diesem Buch verwendete Konventionen
In diesem Buch werden die folgenden typografischen Konventionen verwendet:
- Kursiv
-
Weist auf neue Begriffe, URLs, E-Mail-Adressen, Dateinamen und Dateierweiterungen hin.
Constant width
-
Wird für Programmlistings sowie innerhalb von Absätzen verwendet, um auf Programmelemente wie Variablen- oder Funktionsnamen, Datenbanken, Datentypen, Umgebungsvariablen, Anweisungen und Schlüsselwörter hinzuweisen.
Constant width bold
-
Zeigt Befehle oder anderen Text an, der vom Benutzer wortwörtlich eingetippt werden sollte.
Constant width italic
-
Zeigt Text an, der durch vom Benutzer eingegebene Werte oder durch kontextabhängige Werte ersetzt werden soll.
Tipp
Dieses Element steht für einen Tipp oder eine Anregung.
Hinweis
Dieses Element steht für einen allgemeinen Hinweis.
Warnung
Dieses Element weist auf eine Warnung oder einen Warnhinweis hin.
Code-Beispiele verwenden
Zusätzliches Material (Code-Beispiele, Übungen usw.) steht unter https://github.com/tlhunter/distributed-node zum Download bereit .
Wenn du eine technische Frage oder ein Problem mit den Codebeispielen hast, schreibe bitte eine E-Mail an bookquestions@oreilly.com.
Dieses Buch soll dir helfen, deine Arbeit zu erledigen. Wenn in diesem Buch Beispielcode angeboten wird, darfst du ihn in deinen Programmen und deiner Dokumentation verwenden. Du musst uns nicht um Erlaubnis fragen, es sei denn, du reproduzierst einen großen Teil des Codes. Wenn du zum Beispiel ein Programm schreibst, das mehrere Teile des Codes aus diesem Buch verwendet, brauchst du keine Erlaubnis. Der Verkauf oder die Verbreitung von Beispielen aus O'Reilly-Büchern erfordert jedoch eine Genehmigung. Die Beantwortung einer Frage mit einem Zitat aus diesem Buch und einem Beispielcode erfordert keine Genehmigung. Wenn du einen großen Teil des Beispielcodes aus diesem Buch in die Dokumentation deines Produkts aufnimmst, ist eineGenehmigung erforderlich.
Wir freuen uns über eine Namensnennung, verlangen sie aber in der Regel nicht. Eine Quellenangabe umfasst normalerweise den Titel, den Autor, den Verlag und die ISBN. Zum Beispiel: "Verteilte Systeme mit Node.js von Thomas Hunter II (O'Reilly). Copyright 2020 Thomas Hunter II, 978-1-492-07729-9."
Wenn du der Meinung bist, dass die Verwendung von Code-Beispielen nicht unter die Fair-Use-Regelung oder die oben genannte Erlaubnis fällt, kannst du uns gerne unter permissions@oreilly.com kontaktieren .
O'Reilly Online Learning
Hinweis
Seit mehr als 40 Jahren bietet O'Reilly Media Schulungen, Wissen und Einblicke in Technologie und Wirtschaft, um Unternehmen zum Erfolg zu verhelfen.
Unser einzigartiges Netzwerk von Experten und Innovatoren teilt sein Wissen und seine Erfahrung durch Bücher, Artikel und unsere Online-Lernplattform. Die Online-Lernplattform von O'Reilly bietet dir On-Demand-Zugang zu Live-Trainingskursen, ausführlichen Lernpfaden, interaktiven Programmierumgebungen und einer umfangreichen Text- und Videosammlung von O'Reilly und über 200 anderen Verlagen. Weitere Informationen erhältst du unter http://oreilly.com.
Wie du uns kontaktierst
Bitte richte Kommentare und Fragen zu diesem Buch an den Verlag:
- O'Reilly Media, Inc.
- 1005 Gravenstein Highway Nord
- Sebastopol, CA 95472
- 800-998-9938 (in den Vereinigten Staaten oder Kanada)
- 707-829-0515 (international oder lokal)
- 707-829-0104 (Fax)
Wir haben eine Webseite für dieses Buch, auf der wir Errata, Beispiele und zusätzliche Informationen auflisten. Du kannst diese Seite unter https://oreil.ly/dist-nodejs aufrufen .
Schreib eine E-Mail an bookquestions@oreilly.com, um Kommentare oder technische Fragen zu diesem Buch zu stellen.
Neuigkeiten und Informationen über unsere Bücher und Kurse findest du unter http://oreilly.com.
Finde uns auf Facebook: http://facebook.com/oreilly
Folge uns auf Twitter: http://twitter.com/oreillymedia
Schau uns auf YouTube: http://youtube.com/oreillymedia
Danksagungen
Dieses Buch wurde dank der ausführlichen technischen Berichte der folgenden Personen möglich:
- Fernando Larrañaga(@xabadu)
-
Fernando ist Ingenieur, Open-Source-Mitarbeiter und leitet seit mehreren Jahren JavaScript- und Node.js-Communities in Südamerika und in den USA. Er ist derzeit Senior Software Engineer bei Square und hat zuvor bei anderen großen Tech-Unternehmen wie Twilio und Groupon gearbeitet. Seit mehr als sieben Jahren entwickelt er Node.js-Anwendungen auf Unternehmensebene und skaliert Webanwendungen, die von Millionen von Nutzern verwendet werden.
- Bryan English(@bengl)
-
Bryan ist Open Source JavaScript- und Rust-Programmierer und -Enthusiast und hat an großen Unternehmenssystemen, Instrumentierung und Anwendungssicherheit gearbeitet. Derzeit ist er Senior Open Source Softwareentwicklung bei Datadog. Er nutzt Node.js sowohl beruflich als auch in privaten Projekten schon kurz nach dessen Einführung. Er ist auch ein Mitarbeiter der Node.js-Kerngruppe und hat in den verschiedenen Arbeitsgruppen auf vielfältige Weise zu Node.js beigetragen.
- Julián Duque(@julian_duque)
-
Julián Duque ist ein Community Leader, öffentlicher Redner, JavaScript/Node.js Evangelist und ein offizieller Node.js Mitarbeiter (Emeritus). Derzeit arbeitet er bei Salesforce Heroku als Senior Developer Advocate und organisiert die JSConf und die NodeConf Colombia. Außerdem hilft er bei der Organisation der JSConf México und der MedellinJS, der größten JavaScript-Benutzergruppe in Kolumbien mit über 5.000 registrierten Mitgliedern. Seine Leidenschaft gilt auch der Bildung. Er unterrichtet Grundlagen der Softwareentwicklung, JavaScript und Node.js in verschiedenen Community-Workshops, bei professionellen Schulungen und auf Online-Plattformen wie Platzi.
Mein besonderer Dank gilt auch denjenigen, die mich beraten und mir Feedback gegeben haben: Dan Shaw(@dshaw), Brad Vogel(@BradVogel), Matteo Collina(@matteocollina), Matt Ranney(@mranney), und Rich Trott(@trott).
Get Verteilte Systeme mit Node.js now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.