Menü

Wir haben die Zeit für die Bereitstellung in mehreren Umgebungen durch die Nutzung von Docker auf ein Zehntel reduziert und gleichzeitig zwei Wartungspositionen für ein Team von zehn Personen eingespart.

Letzten Monat wäre unser kleines SaaS-Team für E-Commerce in Singapur beinahe zusammengebrochen – kurz vor einer großen Verkaufsförderaktion haben wir die Funktion zur Lagerverwaltungssynchronisierung für drei Standorte in Südostasien aktualisiert. Die Tests auf lokalen Systemen verliefen ohne Probleme, aber sobald die Updates auf die Cloud-Server in Indonesien hochgeladen wurden, stellten sich plötzlich Abhängigkeitsprobleme ein. Zwei Backend-Systeme und ein Operations-Mitarbeiter mussten 18 Stunden lang daran arbeiten, um die Probleme zu beheben, was dazu führte, dass der geplante Stresstest drei Tage früher stattfinden musste.

Zuerst verstehen: Was genau bedeutet die Docker-Deinstallation?

Einfach ausgedrückt: Man packt den eigenen Anwendungskodex, die abhängigen Bibliotheken, die Konfigurationsdateien und sogar die Parameter des Betriebssystemkerns in ein standardisiertes „Container-Image“. Wie die Anwendung auf Ihrem lokalen Rechner funktioniert, funktioniert sie auch auf jedem Server, der den Docker-Engine installiert hat.Einfach ausgedrückt: Man packt den eigenen Anwendungscode, die abhängigen Bibliotheken, die Konfigurationsdateien und sogar die Parameter des Betriebssystemkerns in ein standardisiertes „Container-Image“. Wie die Anwendung auf Ihrem lokalen Rechner läuft, funktioniert sie auch auf jedem Server, der den Docker-Engine installiert hat. <<<MGSEG_EFD7B85388C7_SOURCE>>> Das kleinste Image kann die Größe von 20MB erreichen, und die Startzeit beträgt nicht mehr als 1 Sekunde. <<<MGSEG_EFD7B85388C7_END>>>。

Wir haben die tatsächlichen Erträge von 3 Monaten verwendet.

Shipping containers and cranes at Hamburg port showcasing global trade.

Zuerst wurde das Problem der inkonsistenten Umgebungen endgültig gelöst. Früher musste man mehr als einen halben Tag damit verbringen, für jede Website eine unterschiedliche Version von Node.js und Datenbanktreiber zu konfigurieren. Jetzt werden die fertig verpackten Images direkt in das Image-Repository übertragen, und alle drei Websites können mit nur einem Knopfdruck heruntergeladen und gestartet werden. Die Bereitstellungszeit ist dadurch von durchschnittlich 4 Stunden auf 24 Minuten gesunken. Vor großen Verkaufsaktionen muss man nicht mehr die ganze Nacht wach bleiben, um die Versionen zu aktualisieren.

Zweitens hat sich die Auslastung der Serverressourcen direkt verdoppelt. Früher mieteten wir für jeden Standort separat einen Cloud-Server mit 2 Kernen (4G), bei dem die CPU-Auslastung in Ruhezeiten unter 10 % lag. Jetzt haben wir mit Docker alle Anwendungen, Caches und Zeitpläne der drei Standorte auf einen Server mit 4 Kernen (8G) zusammengefasst, und die Ressourcen reichen genau aus.Direktes Einsparen von 620 USD pro Monat für die ServerkostenFür eine kleine Mannschaft mit weniger als zehn Personen ist das nicht so gering.

Zuletzt hat auch die Skalierungsrate vollständig mit dem plötzlichen Traffic Schritt gehalten. Letztes Jahr haben wir während des Black Friday-Sales kurzfristig Server hinzugefügt und es dauerte fast 2 Stunden, bis die Umgebung eingerichtet war. In diesem Jahr konnten wir 10 Minuten vor dem Höhepunkt 12 Container-Exemplare bereitstellen, die den dreifachen normalen Traffic bewältigen konnten, und es gab keine weiteren Fälle von Anfragezeitüberschreitungen mehr.

Keine Sorge, steigen Sie nicht zu schnell ins Auto – wir haben Ihnen bereits geholfen, all diese „Hindernisse“ zu umgehen.

Vibrant red and blue shipping containers under a clear sky, perfect for industrial themes.

Die erste Grube ist zu überwältigend für das Spiegelbild geschrieben. Zuerst haben wir direkt das offizielle Node.js voll funktionsfähige Spiegelpaket, ein App-Spiegel hat 1.2G, es dauert mehr als 20 Minuten, um das Spiegellager in Übersee zu übertragen, und später wechseln wir zum Alpine-Basis - Spiegel, um nutzlose Abhängigkeiten zu entfernen, schließlich nur 90MB, die Übertragungsgeschwindigkeit ist 10 - mal schneller.

Der zweite Fehler bestand darin, dass die Daten in einem Container gespeichert wurden. Anfangs haben wir das nicht bemerkt und die von den Nutzern hochgeladenen Produktbilder direkt im lokalen Verzeichnis des Containers abgelegt. Als der Container neu gestartet wurde, waren alle Bilder verschwunden, und es dauerte einen ganzen Tag, bis sie aus der Sicherung wiederhergestellt werden konnten. Danach wurden alle persistenten Daten entweder im lokalen Verzeichnis des Servers oder in der Objektspeicherung abgelegt, und seitdem gab es keine weiteren Probleme mehr.

Der dritte Fehler besteht darin, dass keine Ressourcenbeschränkungen eingeführt wurden. Bei der ersten Veröffentlichung wurden weder Obergrenzen für die CPU noch für den Speicher des Containers festgelegt. Einmal trat ein Bug bei einem Zeitplanvorgang auf einer Website auf, der die gesamte CPU-Leistung des Servers beanspruchte, wodurch die beiden anderen Websites nicht mehr funktionierten. Später wurden für jeden Container Ressourcenbegrenzungen eingeführt, sodass auch ein Problem mit einem einzelnen Dienst die Gesamtsystemleistung nicht beeinträchtigt.

Soll man Docker überhaupt verwenden? Unsere Kriterien dafür sind sehr einfach.

Anwendungsbereiche: Wenn Sie dieselbe Anwendung auf mehreren Servern bereitstellen müssen, häufig zwischen Entwicklungsumgebung, Testumgebung und Produktionsumgebung wechseln, und Ihr Team aus mehr als drei Personen besteht, wobei jede Person über eine unterschiedliche Entwicklungsumgebung verfügt, dann wird die Nutzung von Docker die Effizienz steigern.

Fälle, in denen Docker nicht verwendet werden sollte: Wenn Sie nur einen kleinen Blog haben, der auf einem einzigen Server läuft und der Code nur alle sechs Monate aktualisiert wird, gibt es wirklich keinen Grund, Zeit mit dem Lernen von Docker zu verschwenden. Es ist einfacher, direkt Baota zu verwenden oder die Installation manuell durchzuführen.

Drei konkrete Ratschläge für Anfänger

Blue and yellow shipping containers aligned on a sandy beach with the ocean and sky in the background.

  • Die ersten 3 Mal, wenn Sie Images verpacken, suchen Sie direkt nach den besten Praktikumsvorlagen der offiziellen Quellen. Schreiben Sie nicht selbst einen Dockerfile – so können Sie 80 % der Probleme mit aufgeblähten Images und Berechtigungsfehlern vermeiden.
  • Zuerst braucht man keine komplexen Orchestrierungstools wie K8s verwenden, sondern kann einfach mit Docker Compose drei oder weniger Dienste verwalten – das reicht völlig aus.
  • Für das Image-Repository verwenden Sie einfach die ausländischen Knotenpunkte der Cloud-Anbieter – bauen Sie es nicht selbst auf. Die eingesparte Zeit reicht aus, um noch einige weitere Funktionen zu entwickeln.

Häufige kleine Fragen – einheitliche Antworten

Frage: Verbraucht Docker zusätzlich viel Serverleistung? Unsere Tests haben gezeigt, dass der Leistungsverlust weniger als 5% beträgt, was für die überwiegende Mehrheit von kleinen und mittleren Teams völlig unmerklich ist.

Frage: Kann eine ältere Anwendung, die bereits existiert, in Docker migriert werden? Auf jeden Fall! Wir haben ein PHP-Projekt, das bereits seit 3 Jahren läuft, und es hat nur 2 Tage gedauert, das Image zu erstellen und die Migration abzuschließen – das ist viel schneller, als eine neue Umgebung einzurichten.

War das hilfreich?

Technischer SupportLive-Support
侧栏
Nach oben
简体中文ZH-CNDefault繁體中文ZH-TWEnglishEN日本語JA한국어KOภาษาไทยTHTiếng ViệtVIBahasa IndonesiaIDEspañolESFrançaisFRDeutschDEРусскийRUPortuguêsPTItalianoITالعربيةAR