Der Weg eines leitenden Betriebs- und Wartungsingenieurs, um Monster zu bekämpfen und zu verbessern

Betriebs- und Wartungsingenieure sind in der Anfangsphase eine sehr schwere Aufgabe. Während dieser Zeit erledigen sie möglicherweise die Arbeit, den Computer zu reparieren, das Netzwerkkabel einzuklemmen und die Maschine zu bewegen, die anscheinend keinen Status hat! Die Zeit ist auch sehr fragmentiert, alle Arten von trivialen Dingen umgeben Sie, es ist schwierig, den persönlichen Wert zu reflektieren, und Sie werden allmählich sehr verwirrt über die Branche, das Gefühl, dass es keine Zukunft für die Entwicklung gibt.

Diese langweiligen und langweiligen Aufgaben machen die Menschen knapp. Aus technischer Sicht sind dies eigentlich grundlegende Fähigkeiten, die unsichtbar Hilfe für die späteren Betriebs- und Wartungsarbeiten bringen, da ich auch hierher gekommen bin und sie tief verstehen kann. Daher müssen wir in dieser Zeit eine positive Einstellung beibehalten und weiter lernen. Ich glaube, es wird Ihnen eines Tages in der Zukunft zurückgegeben!

Okay, kommen wir zum Thema. Aufgrund meiner jahrelangen Erfahrung in Betrieb und Wartung werde ich Ihnen den Lernweg für leitende Betriebs- und Wartungsingenieure erläutern.

primär

1. Linux-Grundlagen

Zu Beginn müssen Sie mit der Installation des Linux / Windows-Betriebssystems, der Verzeichnisstruktur, dem Startvorgang usw. vertraut sein.

2. Systemverwaltung

Studieren Sie hauptsächlich das Linux-System. In der Produktionsumgebung wird die Arbeit im Wesentlichen in der Zeichenoberfläche ausgeführt. Daher müssen Dutzende häufig verwendeter grundlegender Verwaltungsbefehle beherrscht werden, einschließlich Benutzerverwaltung, Festplattenpartitionierung, Softwarepaketverwaltung, Dateiberechtigungen und Textverarbeitung Tools für Prozessmanagement und Leistungsanalyse usw.

3. Netzwerkgrundlage

OSI- und TCP / IP-Modelle müssen vertraut sein. Die grundlegenden Konzepte und Implementierungsprinzipien von Switches und Routern müssen bekannt sein.

4. Grundlagen der Shell-Skriptprogrammierung

Beherrschen Sie die grundlegende grammatikalische Struktur von Shell und können Sie einfache Skripte schreiben.

mittlere

1. Netzwerkdienst

Die am häufigsten verwendeten Netzwerkdienste müssen bereitgestellt werden, z. B. vsftp, nfs, samba, bind, dhcp usw.

Das Code-Versionsverwaltungssystem ist unverzichtbar. Sie können die gängigen SVN und GIT erlernen, die bereitgestellt und einfach verwendet werden können.

Daten werden häufig zwischen Servern übertragen. Verwenden Sie daher: rsync und scp.

Datensynchronisation: inotify / sersync.

Der wiederholte Abschluss einiger Arbeiten kann als Skript geschrieben werden, das zu einer festgelegten Zeit ausgeführt wird. Daher müssen Sie den zeitgesteuerten Task-Service crond unter Linux konfigurieren.

2. Webdienste

Grundsätzlich verfügt jedes Unternehmen über eine Website. Damit die Website ausgeführt werden kann, muss eine Webdienstplattform erstellt werden.

Wenn es in PHP-Sprache entwickelt wurde, werden normalerweise LAMP- und LNMP-Website-Plattformen erstellt. Dies ist eine Schreibweise einer Kombination von Fachbegriffen. Unabhängig davon ist es erforderlich, Apache, Nginx, MySQL und PHP bereitzustellen.

Wenn es in der JAVA-Sprache entwickelt wurde, wird Tomcat normalerweise zum Ausführen des Projekts verwendet. Um die Zugriffsgeschwindigkeit zu verbessern, können Sie Nginx verwenden, um Proxy-Tomcat umzukehren, Nginx verarbeitet statische Seiten und Tomcat verarbeitet dynamische Seiten, um eine dynamische und statische Trennung zu erreichen .

Es ist nicht so einfach bereitzustellen, sondern auch das Funktionsprinzip des HTTP-Protokolls und die einfache Leistungsoptimierung zu kennen.

3. Datenbank

Die Datenbank ist MySQL, die weltweit am häufigsten verwendete Open Source-Datenbank. Seien Sie sicher, es zu lernen!

Einige einfache SQL-Anweisungen, Benutzerverwaltung, häufig verwendete Speicher-Engines, Datenbanksicherung und -wiederherstellung sind ebenfalls erforderlich.

Wenn Sie tiefer gehen möchten, müssen Sie die Master-Slave-Replikation, die Leistungsoptimierung und die gängigen Clusterlösungen anwenden: MHA, MGR usw.

Natürlich ist NoSQL so beliebt. Lernen Sie einfach Redis und MongoDB.

4. Sicherheit

Sicherheit ist sehr wichtig. Warten Sie nicht, bis das System gehackt ist, und erstellen Sie dann eine Sicherheitsstrategie. Es ist zu spät! Wenn ein Server online geht, sollten daher sofort Richtlinien für die Sicherheitszugriffskontrolle implementiert werden, z. B. die Verwendung von iptables, um den Zugriff nur auf vertrauenswürdige Quell-IPs zu beschränken, und das Schließen einiger nutzloser Dienste und Ports.

Einige gängige Arten von *** müssen bekannt sein, sonst wie man das richtige Medikament verschreibt! Wie CC, DDOS, ARP usw.

5. Überwachungssystem

Die Überwachung ist unverzichtbar und ein lebensrettender Strohhalm, um Probleme rechtzeitig zu erkennen und zu verfolgen. Sie können sich für das Mainstream-Open-Source-Überwachungssystem Zabbix entscheiden, das über umfangreiche Funktionen verfügt und grundlegende Überwachungsanforderungen erfüllt. Zu den Überwachungspunkten gehören grundlegende Serverressourcen, Schnittstellenstatus, Serviceleistung, PV / UV, Protokolle usw.

Sie können auch ein Dashboard erstellen, um mehrere Echtzeit-Schlüsseldaten anzuzeigen, z. B. Grafana, was sehr cool sein wird.

6. Erweiterte Shell-Skriptprogrammierung

Das Shell-Skript ist ein leistungsstarkes Tool für Linux, mit dem Aufgaben automatisch erledigt werden können. Es muss kompetent geschrieben sein, damit Sie mehr über Funktionen, Arrays, Signale und das Senden von E-Mails erfahren können.

Die Textverarbeitung drei Schwertkämpfer (grep, sed, awk) muss 6 spielen, und die Textverarbeitung unter Linux hängt von ihnen ab.

7, Python-Entwicklungsgrundlage

Shell-Skripte können nur einige grundlegende Aufgaben ausführen, möchten jedoch komplexere Aufgaben ausführen, z. B. das Aufrufen von APIs, Multiprozessen usw. Sie müssen Hochsprachen lernen.

Python ist die am häufigsten verwendete Sprache im Bereich Betrieb und Wartung. Es ist einfach und benutzerfreundlich, sodass Sie es lernen können! In dieser Phase reicht es aus, die Grundlagen wie grundlegende grammatikalische Struktur, Dateiobjektoperationen, Funktionen, Iterationsobjekte, Ausnahmebehandlung, Mailing, Datenbankprogrammierung usw. zu beherrschen.

fortgeschritten

1. Web statischer Cache

Benutzer schreien immer, dass der Zugriff auf die Website langsam ist, und prüfen, ob die Serverressourcen noch sehr umfangreich sind! Ein langsamer Website-Zugriff wird möglicherweise nicht durch die Sättigung der Serverressourcen verursacht. Es gibt viele Einflussfaktoren, wie z. B. das Netzwerk und die Anzahl der Weiterleitungsebenen.

Für das Netzwerk besteht ein Problem der Nord-Süd-Kommunikation, und der Zugriff zwischen ihnen ist langsam. Dies kann mithilfe von CDN gelöst werden. Gleichzeitig werden statische Seiten zwischengespeichert und Anforderungen auf der obersten Ebene abgefangen, um zu antworten so weit wie möglich, um Back-End-Anforderungen und Antwortzeiten zu reduzieren.

Wenn Sie kein CDN verwenden, können Sie auch Cache-Dienste wie Squid, Varnish und Nginx verwenden, um statische Seiten zwischenzuspeichern und am Verkehrseingang zu platzieren.

2. Cluster

Schließlich verfügt ein einzelner Server nur über begrenzte Ressourcen, und es ist definitiv nicht unterstützbar, hohem Datenverkehr zu widerstehen. Die wichtigste Technologie zur Lösung dieses Problems ist die Verwendung eines Lastenausgleichs, um mehrere Webserver horizontal zu erweitern und Dienste für die Außenwelt bereitzustellen verdoppelt die Leistung. Zu den gängigen Open Source-Technologien für Load Balancer gehören LVS, HAProxy und Nginx. Muss mit einem oder zwei vertraut sein!

Der Leistungsengpass des Webservers wird behoben, und die Datenbank ist kritischer. Es werden Cluster verwendet. Nehmen Sie als Beispiel MySQL. Es kann sich um einen Master und mehrere Slaves handeln. Auf dieser Basis werden Lesen und Schreiben getrennt. Der Master ist verantwortlich Für das Schreiben sind viele Slaves für das Lesen verantwortlich. Es kann horizontal skaliert werden. Davor befindet sich ein vierschichtiger Load Balancer, der zig Millionen PVs aufnehmen kann. Es ist in Ordnung!

Hochverfügbare Software muss auch in der Lage sein, Einzelpunktwaffen zu vermeiden. Zu den Mainstream-Waffen gehören Keepalived und Heartbeat.

Warum gibt es so viele Website-Bilder! NFS Shared Storage kann dies nicht unterstützen, die Verarbeitung ist sehr langsam und einfach zu handhaben! Auf dem verteilten Dateisystem, Parallelverarbeitungsaufgaben, kein einzelner Punkt, hohe Zuverlässigkeit, hohe Leistung und andere Eigenschaften, Mainstream FastDFS, MFS, HDFS, Ceph, GFS usw. In der Anfangsphase schlage ich vor, FastDFS zu lernen, das die Anforderungen kleiner und mittlerer Unternehmen erfüllen kann.

3. Virtualisierung

Die Auslastung der Hardware-Server-Ressourcen ist sehr gering, was sehr verschwenderisch ist! Die inaktiven Server können in viele virtuelle Maschinen virtualisiert werden, und jede virtuelle Maschine ist ein vollständiges Betriebssystem. Kann die Ressourcennutzung erheblich verbessern. Es wird empfohlen, die Open Source-Cloud-Plattform KVM + OpenStack zu erlernen.

Virtuelle Maschinen sind als Basisplattform in Ordnung, aber die elastische Skalierung des Anwendungsgeschäfts ist zu schwer! Nach einigen Minuten des Bootens ist die Datei so groß, dass es zu anstrengend ist, sie schnell zu erweitern!

Es ist leicht zu sagen, dass das Hauptmerkmal des Containers die schnelle Bereitstellung und die Isolierung der Umgebung ist. Ein Dienst ist in einem Image gekapselt, und in wenigen Minuten können Hunderte von Containern erstellt werden.

Die Mainstream-Containertechnologie ist kein anderer als Docker.

Natürlich kann Docker mit einer Maschine in der Produktionsumgebung in den meisten Fällen die Geschäftsanforderungen nicht erfüllen. Kubernetes- und Swarm-Clusterverwaltungscontainer können bereitgestellt werden, um einen großen Ressourcenpool zu bilden, die Verwaltung zu zentralisieren und die Infrastruktur stark zu unterstützen.

Um Docker zu lernen, sollten Sie sich dieses Video-Tutorial ansehen. Die Bewertung der Schüler ist immer noch gut: http://opsdev.ke.qq.com

4. Automatisierung

Wiederholte Arbeiten können nicht nur die Effizienz verbessern, sondern auch ihren Wert nicht widerspiegeln.

Alle Betriebs- und Wartungsarbeiten sind standardisiert, z. B. Version der einheitlichen Umgebung, Verzeichnisstruktur, Betriebssystem usw. Nur auf der Basis der Standardisierung können mehr Aspekte automatisiert werden. Eine komplexe Aufgabe kann mit nur wenigen Mausklicks oder wenigen Befehlen erledigt werden.

Daher sind alle Vorgänge so automatisiert wie möglich, um menschliches Versagen zu reduzieren und die Arbeitseffizienz zu verbessern.

Zentralisierte Verwaltungstools für Mainstream-Server: Ansible, Saltstack

Wählen Sie eine dieser beiden Optionen.

Kontinuierliches Integrationstool: Jenkins

5. Erweiterte Python-Entwicklung

Sie können die Python-Entwicklung weiter studieren und die objektorientierte Programmierung beherrschen.

Es ist am besten, eine Webframework-Entwicklungswebsite wie Django, Flask zu erlernen, um hauptsächlich Betriebs- und Wartungsmanagementsysteme zu entwickeln, einige komplexe Prozesse in die Plattform zu schreiben und zentralisierte Verwaltungstools zu integrieren, um eine Verwaltungsplattform zu erstellen, die zu Betrieb und Wartung gehört ...

Spezifische Lernideen finden Sie im historischen Artikel: "Apokalypse: Erstellen einer Plattform für die Automatisierung von Betrieb und Wartung".

6. Protokollanalysesystem

Protokolle sind ebenfalls sehr wichtig. Regelmäßige Analysen können potenzielle Gefahren erkennen und wertvolle Dinge extrahieren.

Ein Open-Source-Protokollsystem: ELK

Erfahren Sie, wie Sie die Anforderungen für die Entwicklung bereitstellen und verwenden und die Protokollanzeige bereitstellen.

7. Leistungsoptimierung

Nur die Bereitstellung ist bei weitem nicht ausreichend. Durch Leistungsoptimierung kann die Servicekapazität maximiert werden.

Dieser ist auch schwieriger und einer der wichtigsten Punkte für ein hohes Gehalt. Für das Geld muss man hart arbeiten, um zu lernen!

Denken Sie an die Dimensionen der Hardwareschicht, Betriebssystemschicht, Softwareschicht und Architekturschicht.

Zusammenfassung:

Der Weg eines leitenden Betriebs- und Wartungsingenieurs, um Monster zu bekämpfen und zu verbessern

Bewusstsein

1. Durchhalten

Lernen ist ein sehr langer Prozess und eine Karriere, die jeder von uns in seinem ganzen Leben bestehen muss.

Das Wichtigste ist Beharrlichkeit, die Schwierigkeit ist Beharrlichkeit, der Erfolg ist Beharrlichkeit!

2. Ziel

Diejenigen ohne Ziele werden nicht als Jobs bezeichnet, und diejenigen ohne Quantifizierung werden nicht als Ziele bezeichnet.

Setzen Sie sich in jeder Phase ein Ziel.

Zum Beispiel: Setzen Sie sich zuerst ein kleines Ziel, das erreicht werden kann, und verdienen Sie 100 Millionen!

3. Teilen

Lernen Sie zu teilen, der Wert von Technologie liegt in der Fähigkeit, Wissen effektiv nach außen zu übertragen und mehr Menschen darüber zu informieren.

Was wird daraus, solange sich jeder etwas einfallen lässt?

Wenn Sie in die richtige Richtung gehen, haben Sie keine Angst vor dem langen Weg!

Ich denke du magst

Origin blog.51cto.com/15127501/2657166
Empfohlen
Rangfolge