Warum Entwickler mit Serverless nicht befreundet sind



Ich habe mir kürzlich ein Video von einem guten Entwickler und youtuber mit dem Titel "Serverless Senselessness" angesehen. Ich mochte die Gedanken des Autors, aber ich bin mit einigen seiner Aussagen nicht einverstanden und möchte sie in diesem Artikel diskutieren.



Das Video beginnt mit einem Witz: "Es gibt zwei Dinge auf der Welt, die ich nicht verstehe - Mädchen und Serverless Computing." Ich weiß nichts über die Beziehung dieses Entwicklers zu Mädchen, aber hat er Recht mit Serverless? Werfen wir einen Blick auf seine wichtigsten kritischen Punkte und diskutieren mögliche Argumente, die für serverloses Computing sprechen.



Spoiler- Alarm : Ich glaube an Serverless. Sie müssen nur wissen, wann und wie Sie diese Technologie einsetzen können.




Serverlose Kritik



Das Hauptargument gegen Serverless Computing ist die Geschwindigkeit. Oder das bekannte Kaltstartproblem. Kaltstart ist eine Verzögerung bei der Codeausführung (kann für Sprachen wie JavaScript, Python, Go, Java, Ruby bis zu 1 Sekunde betragen), die aufgrund der Notwendigkeit auftritt, Rechenressourcen zuzuweisen, den Code abzurufen und den Container zu starten von der Anbieterseite.



Manchmal geht es wirklich um Millisekunden. Dies wirft die Frage auf: Ist es wirklich so schnell, wie der Code seine Aufgabe als primäre Erfolgsmetrik für das Application Lifecycle Management erfüllt?



Als Person, die in der IT gearbeitet hat und mit der Entwicklung relevanter Technologien konfrontiert war, bin ich mir nicht sicher, welche Geschwindigkeitsmetrik der Schlüssel ist. Schließlich gibt es andere Kriterien wie die Geschwindigkeit der Entwicklungszyklen, die einfache Wartung, die Amortisationszeit des Produkts, niedrige Kosten für den Endbenutzer und ein geringeres Risiko von Störungen durch Sicherstellung eines unterbrechungsfreien IT-Betriebs. Schließlich sparen Entwickler Zeit. Wenn Sie darüber nachdenken, erfüllt Serverless Computing alle diese Kriterien.



Was fehlen Entwickler? Die wirklichen Vorteile von Serverless



Wenn Ihnen die Geschwindigkeit der Codeausführung so wichtig ist, dass die mögliche Latenz von 200 Millisekunden (bis zu einer Sekunde) für Ihre Arbeit nicht akzeptabel ist, funktioniert Serverless Computing möglicherweise nicht wirklich für Sie, und dies ist völlig normal. Dies ist jedoch kein Grund, Serverless als nutzlos zu bezeichnen. Jeder muss entscheiden, wie inakzeptabel solche Verzögerungen für ihn sind.



Serverless Computing ist eine leistungsstarke Methode zur Verwaltung der IT-Infrastruktur, insbesondere für Unternehmen, die möglicherweise nicht über die Ressourcen verfügen, um ihre eigene Infrastruktur zu kaufen und Spezialisten für die Wartung von Servern rund um die Uhr einzustellen.



- Serverless . « ». Serverless, .




In den meisten Fällen ist die Verwendung von Serverless Computing um eine Größenordnung billiger als die Verwendung von selbst gehosteten Ressourcen. Dies gilt nicht nur für die Kosten der Rechenleistung als solche. Was Serverless billiger macht, ist, dass die Lösung die Zeit spart, die für den Betrieb, die Skalierung und die Wartung der Infrastruktur erforderlich ist. Sie werden echte Kosteneinsparungen erzielen, da Sie kein Team von internen Systemingenieuren einstellen müssen. Gutes Talent kostet deutlich mehr als Serverless Computing.



Ich sage nicht, dass Serverless Computing ein Allheilmittel ist und für jeden geeignet ist. Wenn Ihre Workloads stabil sind und Sie über genügend Fachwissen verfügen, um Ihre Infrastruktur zu verwalten, ist es möglicherweise besser, auf klassischen Servern zu arbeiten.



Kaltstart kann ausgeglichen werden



Zurück zur Frage der Codeausführungszeit: Das Problem des Kaltstarts hängt stark davon ab, wie Sie Serverless codieren und konfigurieren.



Im Allgemeinen gibt es viele Möglichkeiten, einen Kaltstart durch „Aufheizen“ zu mildern. Sie können also Funktionen mit einer bestimmten Häufigkeit ausführen, den Dienst häufiger starten oder einige der Container ständig ausführen (sofern der Anbieter dies zulässt). Diese Aktionen bieten die erforderliche „warme Umgebung“ für den Start der Funktionen.



Einige Anbieter ohne Server bieten außerdem integrierte Überwachungssysteme an, die Sie über Kaltstartfunktionen informieren, damit Sie den Prozess optimieren können. Sie können sogar mit E-Mails oder Arbeitsbereichen wie Slack synchronisieren - Kaltstartnachrichten werden in Ihrem Posteingang eingehen.



Wie viel Latenz ist für Ihre Workloads akzeptabel?



Es ist gut, wenn Sie die Antwort auf diese Frage kennen. Die Kaltstart-Latenz wird normalerweise als Millisekunden bezeichnet. In allen Anwendungsfällen, auf die ich in meiner Arbeit als Dateningenieur gestoßen bin, sind Verzögerungen bei der täglichen Arbeit nicht erkennbar.



Darüber hinaus können Sie mit erweiterten Anbietern eine Hybridinfrastruktur erstellen, die Serverless Computing und Server umfasst.



Beim Serverless Computing geht es um NoOps und Skalierbarkeit



Mit Serverless können Sie schneller Geschäftswert generieren, da der Cloud-Anbieter den größten Teil des IT-Betriebs übernimmt. Weist Rechenleistung zu, skaliert Cluster auf die erforderliche Last, überwacht Sicherheit und Aktualisierungen, sorgt für die Integrität der Geräte und so weiter. Da die mit dem Infrastrukturmanagement verbundenen Kopfschmerzen weg sind, können Sie sich auf die Arbeit mit Kunden konzentrieren. Ist das am Ende die Hauptsache?



Serverless spart hochqualifizierten Ingenieuren Zeit, damit sie sich auf die Lösung von Geschäftsproblemen konzentrieren können, anstatt Cluster zu verwalten.



Wann ist Serverless Computing besonders nützlich?



Stellen Sie sich vor, Sie starten ein Startup. Möglicherweise benötigen Sie zunächst keine signifikante Infrastruktur und haben möglicherweise nur einen Entwickler. Mit dem Serverless-Paradigma können Sie klein anfangen und automatisch skalieren, wenn Ihr Unternehmen mit einem Pay-as-you-go-Kostenmodell wächst.



Eine weitere Gruppe, die von Serverless Computing stark profitieren kann, sind kleine Unternehmen ohne große IT-Abteilung. Die Möglichkeit, den gesamten Lebenszyklus einer Anwendung mit nur einem DevOps-Techniker (nicht einem Team von Programmierern) zu verwalten, ist ein großer Vorteil von Serverless Computing.



Wenn Ihre Website oder App saisonal ausgelastet ist, ist Serverless ebenfalls eine hervorragende Option. Wenn Sie beispielsweise ein E-Commerce-Geschäft haben, werden Sie wahrscheinlich am Black Friday und Silvester Spitzenwerte erleben. Mit der serverlosen Infrastruktur können Sie den Kapazitätsverbrauch an solche Situationen anpassen.



Auch können nicht alle Ereignisse im Leben vorhergesagt werden. Stellen Sie sich vor, Sie verkaufen Händedesinfektionsmittel, andere Antiseptika, Gesichtsmasken und ähnliche Artikel in Ihrem Online-Shop. Damals gab es eine globale Pandemie, und jetzt braucht jeder Ihre Produkte. Mit einer serverlosen Infrastruktur sind Sie für jede Arbeitslast gerüstet.



Geschwindigkeit der Codeausführung im Vergleich zur Geschwindigkeit der Entwicklungszyklen



Die Geschwindigkeit der Produktentwicklung ist ebenfalls nützlich. In vielen Fällen unterstützt Serverless Computing eine Microservice-Architektur, was schnellere Entwicklungszyklen und relativ unabhängige Architekturkomponenten voneinander bedeutet.



Es stellt sich heraus, dass Serverless dabei hilft, im Entwicklungszyklus schneller zu iterieren und das Produkt schneller an den Endbenutzer zu liefern, wodurch nur die Millisekunden Latenz aufgrund periodischer Kaltstarts ausgeglichen werden.



Nachteile von Serverless, die im Video nicht erwähnt wurden



Einige der Nachteile von Serverless Computing wurden im Video nicht erwähnt, und ich möchte sie benennen, um Ihnen ein vollständiges Bild ohne Verzierung zu geben.



Während Serverless Computing in einigen Fällen hinsichtlich Kosten, Skalierbarkeit und Infrastrukturmanagement ideal ist, ist es nicht für jeden ein Allheilmittel.



  1. Es besteht die Gefahr einer Anbietersperre . Anbieter machen ihre Dienste so bequem und kostengünstig, dass Sie Gefahr laufen, an einen bestimmten Cloud-Anbieter gebunden zu sein.
  2. , , . , SSH , ​​ , .
  3. , .
  4. - , .




Im Allgemeinen ist es kaum eine gute Idee, neue Paradigmen in der IT wie Serverless Computing oder andere Cloud-Dienste in derselben Logik wie unsere bekannten lokalen „Home“ -Technologien zu verwenden. Wenn Sie Workflows direkt von der physischen Infrastruktur in die Cloud kopieren und einfügen, verlieren Sie viele der Vorteile von Cloud-Diensten, wenn nicht sogar.



Es gibt keinen Grund zu der Annahme, dass jede Technologie für alle Unternehmen anwendbar ist, keine Nachteile aufweist und billig ist.



Aus meiner Sicht sollten wir nicht kategorisch über Serverless (wie auch über andere IT-Lösungen) sprechen, sondern nur einen Aspekt der Arbeit berücksichtigen und den Rest ignorieren. Serverloses Computing macht Sinn. Wenn Sie wissen, wann und wie Sie sie verwenden sollen.






All Articles