
Der Zeitfaktor - die Aktualität der Ausführung von Aufträgen, Arbeiten, Vereinbarungen - ist im Geschäftsleben wichtig. Kunden und Partner erwarten eine vorhersehbare zeitaufwändige Zusammenarbeit. In einem traditionellen Unternehmen wird dies durch die Arbeit der Mitarbeiter, die Handlungen der Lieferanten, den geografischen Standort des Unternehmens, den Zustand der Ausrüstung und vieles mehr beeinflusst. All dies zu lokalisieren und zu steuern ist eine schwierige Aufgabe.
Etwas klarer ist alles im Bereich der IT. Ein wesentlicher Teil der Prozesse kann automatisiert und einem Programm oder Skript anvertraut werden. Noch besser, wenn das Produkt als Webdienst implementiert ist - die Hauptlektion besteht darin, die Verfügbarkeit und Entwicklung des Produkts zu unterstützen.
Eines der Hauptprodukte unseres Unternehmens ist ein Webservice. Alles begann mit der Umsetzung der Idee von zwei Personen, dann wuchs das Unternehmen: PM (er ist auch ein Webprogrammierer), ein Datenbankprogrammierer, ein Systemadministrator (mit wenig Entwicklererfahrung), ein Tester und zwei weitere Personen, die mit Vertrieb und SEO befasst sind. Das System ist als Webschnittstelle und zugehörige Datenbank implementiert. Die Nutzung des Dienstes umfasst das Ein- und Auszahlen von Geld, das in einer "virtuellen Währung" gespeichert ist. Aus Sicherheitsgründen werden der Webserver und die Datenbank auf ihren Servern bereitgestellt.
Da der Dienst mit Geld verbunden ist, ist das Vertrauen der Benutzer in das System wichtig. Zunächst geht es um Sicherheit und den Schutz des Systems vor Hacking. Für einen normalen Kunden (insbesondere nicht mit den Feinheiten der IT, sicheren Protokollen und Verschlüsselung vertraut) ist es jedoch schwierig, das Niveau der Systemsicherheit zu bewerten. Wenn keine negative Situation (Hacking) aufgetreten ist, ist die Arbeit nicht sichtbar.
Die Zugänglichkeit des Systems ist für den Client offensichtlicher: Wenn der Benutzer einen bestimmten Betrag auf das virtuelle Konto überwiesen hat und sich dann nicht mehrmals bei der Site anmelden kann, wird die Glaubwürdigkeit des Systems untergraben und der Client geht wahrscheinlich verloren (manchmal mehrere gleichzeitig - das Negativ breitet sich schnell aus). Und es ist unwahrscheinlich, dass die Benutzer mit großen Schwierigkeiten, die anstelle der Hauptseite der Website auf einen Fehler stoßen, zurückkehren.
Das Verständnis der Ernsthaftigkeit kam nicht sofort. Anfangs war die Anzahl der Benutzer gering, die Server- und Kanalkapazitäten waren reichlich vorhanden, und daher waren „Abstürze“ selten. Darüber hinaus wurde die Funktionalität häufig zunächst aus Gründen der Optimierung getestet und verfeinert, und der Entwickler selbst war für die Überwachung der mit dem Dienst verbundenen Server während der Arbeitszeit verantwortlich. Die Anzahl der Benutzer außerhalb der Geschäftszeiten war relativ gering - Kunden aus anderen Zeitzonen waren damals praktisch abwesend.

Allmählich wurde der Hauptteil des Dienstes abgeschlossen. Die Verbesserungen wurden klein und daher wurde die Hauptaufmerksamkeit der Entwickler auf ein anderes Projekt verlagert. Die Verantwortung für die Systemsteuerung wurde zusätzlich zu seinen anderen Verantwortlichkeiten an den Systemadministrator delegiert. Im Falle eines Serverabsturzes wurden Benachrichtigungen per E-Mail und SMS an den Administrator gesendet. Solche Maßnahmen schienen damals ausreichend.
Das Produkt gewann an Dynamik und die Anzahl der Benutzer stieg. Neue Ideen entstanden, einige wurden sofort umgesetzt, andere wurden für die Zukunft verschoben. Der Dienst wurde in andere Sprachen übersetzt und betrat nach und nach neue Märkte, was unter anderem zu einem Anstieg der nächtlichen Nutzerzahl führte. Die Serverlast nahm allmählich zu, obwohl sie noch weit von der technischen Grenze des Eisens entfernt war.
Einmal ging die Ruhe zu Ende. In der Nacht von Freitag auf Samstag traten bei Benutzern Probleme beim Zugriff auf die Hauptseite der Website auf. Oft trat der Fehler 503 auf. Das Problem war einfach, aber wie es sollte, war der Administrator am Freitagabend nicht verfügbar, und daher blieb die SMS ungelesen. Trotzdem wurde das Problem relativ schmerzlos gelöst. Der Entwickler erhielt auch eine SMS und konnte den Administrator durchstehen und wecken. Nach 3 Stunden war das Problem behoben. Die gesamte Ausfallzeit betrug 5 Stunden.

Am Montag gab es eine Nachbesprechung darüber, was passiert ist. Die Analyse der Verkehrsdaten vor Ort ergab ein unangenehmes Bild: An einem „problematischen“ Freitag ging der Verkehr im Vergleich zum Vorjahr um ein Drittel zurück, doch am Samstag und Sonntag waren signifikante Rückgänge noch unangenehmer, obwohl heutzutage keine technischen Probleme auftraten. Der Verkehr ging um 15% zurück.
Dies stärkte das Verständnis für die Notwendigkeit einer Überwachung rund um die Uhr. Aus Sicht der Software haben wir uns für
Zabbix entschieden, das vom Systemadministrator installiert und konfiguriert werden sollte. Es dauerte ungefähr eine Woche - der Rest der Aufgaben ging nirgendwo hin und alles wurde parallel erledigt. Es gab eine organisatorische Frage - wer genau wird überwachen?

Zuerst musste ich eine solche Entscheidung treffen - die Arbeitszeit der vorhandenen Mitarbeiter (derjenigen, die dies verstanden haben - dh des Systemadministrators und Entwicklers) so verschieben, dass einer nach dem anderen nachts den Server kontrollierte.
Dies war eine erzwungene Entscheidung und hielt nicht lange an. Erstens bietet die Arbeit von zwei Personen immer noch keine Kontrolle rund um die Uhr - es gibt Zeitlücken, in denen auch ein Ausfall wahrscheinlich ist. Zweitens arbeiten nur wenige Menschen gerne nachts, und die Unzufriedenheit nahm zu. Darüber hinaus hat die Ablenkung des Programmierers die Entwicklung selbst fast gestoppt. Deshalb gaben sie nach einer Woche die Idee auf und begannen weiter nachzudenken.
Einstellung von zusätzlichem Personal zur ÜberwachungEine solche Entscheidung ist natürlich die kompromissloseste - die ständige Kontrolle der ausgewählten Personen führt zu einem guten Ergebnis. Das Arbeiten in diesem Modus würde jedoch die Suche nach drei weiteren Systemadministratoren erfordern. Darüber hinaus sollten sie qualifiziert genug sein, um Probleme zu lösen, aber die meiste Zeit würde sowieso verschwendet werden - das Unternehmen ist klein, es gibt nur wenige Server und es gibt fast nichts, was sie beschäftigen könnte. Darüber hinaus müssen so viele Menschen kontrolliert werden, was zusätzliche Kopfschmerzen verursachen würde.

Beide Optionen haben nicht funktioniert. Es war nicht möglich, Anstrengungen und Mittel auf sie zu konzentrieren. Die Notwendigkeit der Überwachung ist jedoch nicht verschwunden. Dies ist eines der Wachstumsprobleme - es gibt einen Bedarf, der allein nicht realisiert werden kann. Als Lösung kamen wir zu einer Auslagerung.
Während des Übergangs kamen Zweifel auf, vor allem die Sicherheit und Vertraulichkeit von Informationen, die jemand anderem zur Verfügung stehen, und die Servicequalität. Wird es nicht im Gegenteil schlimmer? Es geht vielmehr darum, einen verantwortlichen Testamentsvollstrecker zu finden und eine NDA zu unterzeichnen.
Also gingen wir weiter, von der technischen Seite war es nicht schwierig. Einen Monat später beschlossen wir, den Stand der Dinge zu überprüfen - indem wir die Protokolle auf den Servern überprüften. Wir sind mit den Ergebnissen zufrieden - im Laufe des Monats gab es drei schwerwiegende Fehler, die den Server möglicherweise wieder "ausschalten" konnten, aber die Partner lösten die Probleme innerhalb einer halben Stunde. Darüber hinaus traten alle Fehler in der Zeit von ein Uhr morgens bis vier Uhr morgens auf - ein allmähliches geografisches Wachstum des betroffenen Produkts.
Die Arbeit unseres Systemadministrators hat sich geändert und ist entspannter geworden. Ohne von der Überwachung abgelenkt zu werden, konzentrierte er sich auf DevOps. Wir haben unsere Bemühungen konzentriert und die Entwicklung beschleunigt. Es stellte sich heraus, dass dank unseres
Partners lange Zeit verschoben wurde.