Wenn Menschen verletzt werden, erholen sich ihre Körper von selbst. Was wäre, wenn Technologie dasselbe tun könnte? Was wäre, wenn wir dir sagen würden, dass es das kann?
Unternehmen bemühen sich darum, selbstheilende Systeme zu entwickeln, die das Potenzial haben, die Qualität zu verbessern, Kosten zu sparen und das Vertrauen der Verbraucher zu stärken. Zum Beispiel IBM experimentiert mit sich selbst konfigurierenden, sich selbst schützenden und selbstheilenden Geräten genau aus diesem Grund.
Eine selbstheilende Software kann Fehlfunktionen in ihrem Betrieb erkennen und sich ohne menschliches Zutun anpassen, sodass sie wieder in einen funktionaleren Zustand versetzt wird.
Selbstheilende Anwendungen basieren auf den folgenden Mechanismen:
Selbstheilende Systeme sind in drei Stufen unterteilt, von denen jede ihre eigene Größe und ihren eigenen Ressourcenbedarf hat:
Probleme werden häufig in einem „Ausnahmenprotokoll“ für zukünftige Untersuchungen vermerkt. Die meisten Probleme sind klein und können übersehen werden. Schwerwiegende Probleme können dazu führen, dass die Anwendung beendet wird (z. B. weil keine Verbindung zu einer Datenbank hergestellt werden kann, die offline geschaltet wurde).
Selbstheilende Apps enthalten dagegen Designaspekte, die bei der Behebung von Problemen helfen. Anwendungen, die Folgendes verwenden Akka, ordnen Sie beispielsweise Elemente in einer Hierarchie an und weisen Sie die Angelegenheiten eines Akteurs seinem Vorgesetzten zu. Viele dieser Tools und Frameworks unterstützen Apps, die so konzipiert sind, dass sie sich selbst reparieren.
Die Selbstheilung auf Systemebene ist im Gegensatz zur Selbstheilung auf Anwendungsebene unabhängig von einer Programmiersprache oder einzelnen Komponenten. Vielmehr können sie unabhängig von den zugrunde liegenden Komponenten verallgemeinert und für alle Dienste und Anwendungen verwendet werden.
Prozessfehler (die in der Regel durch erneutes Bereitstellen oder Neustarten behoben werden) und Schwierigkeiten mit der Reaktionszeit sind die häufigsten Fehler auf Systemebene (die häufig durch Skalierung und Entkalkung behoben werden). Selbstheilende Systeme überwachen den Zustand verschiedener Komponenten und versuchen, sie durch Reparaturen (z. B. erneutes Bereitstellen) wieder in ihren Idealzustand zu versetzen.
Durch die Selbstheilung auf Hardwareebene werden Dienste von einem instabilen Knoten auf einen fehlerfreien Knoten neu bereitgestellt. Es führt auch Gesundheitsinspektionen an verschiedenen Komponenten durch. Bestehende Lösungen auf Hardwareebene sind in erster Linie Lösungen auf Systemebene, da es keine echte Selbstheilung auf Hardwareebene gibt (z. B. einen Computer, der Speicherprobleme beheben oder eine defekte Festplatte reparieren kann).
In Bezug auf Selbstheilung können wir von reaktiver und präventiver Heilung sprechen:
Die Heilung, die als Reaktion auf einen Fehler erfolgt, wird als reaktives Heilen bezeichnet und wird bereits angewendet. Bei der reaktiven Heilung wird beispielsweise eine Anwendung als Reaktion auf einen Fehler erneut auf einem neuen physischen Knoten bereitgestellt, wodurch Ausfallzeiten vermieden werden.
Das Ausmaß der Gefahr, der ein System ausgesetzt sein kann, bestimmt den Grad der reaktiven Heilung, der wünschenswert ist. Wenn ein System von einem einzigen Rechenzentrum abhängig ist, ist die Wahrscheinlichkeit, dass das gesamte Rechenzentrum an Strom verliert und alle Knoten ausfallen, so gering, dass die Schaffung eines Systems, das auf diese Möglichkeit reagiert, sowohl nutzlos als auch kostspielig ist. Wenn das System jedoch wichtig ist, kann es sinnvoll sein, es so aufzubauen, dass es im Falle eines Ausfalls automatisch wiederhergestellt wird.
In einem solchen Szenario werden Fehler proaktiv vermieden. Nehmen wir zum Beispiel die Verwendung von Echtzeitdaten, um Probleme mit der Verarbeitungszeit proaktiv zu verhindern. Um den Zustand des Dienstes zu überwachen und die Ressourcen besser zu nutzen, senden Sie eine HTTP-Anfrage. Sie erstellen das System so, dass es skaliert, wenn die Reaktion länger als 500 Millisekunden dauert, und Sie entwerfen das System so, dass es entskaliert, wenn es weniger als 100 Millisekunden benötigt, um zu reagieren.
Wenn die Reaktionszeiten jedoch häufig schwanken, kann die Verwendung von Echtzeitdaten problematisch sein, da das System kontinuierlich skaliert und entskaliert wird (dies kann in einer starren Architektur viele Ressourcen beanspruchen, in einer Microservice-Architektur eine geringere Menge an Ressourcen).
Neben vielen anderen sind dies die greifbaren Vorteile, die Selbstheilungs-Apps bieten:
Selbstheilende Systeme und Anwendungen (oder, noch besser, Systeme und Apps, die Fehler automatisch erkennen und vermeiden) können die Qualität verbessern, Kosten senken und das Vertrauen der Verbraucher stärken. Selbst die besten Systeme erfordern menschliche Interaktion, aber sie können so konzipiert sein, dass sie leicht zu bedienen sind und für den Menschen einfach zu handhaben sind. Das könnte es genauso gut sein Selbstheilungscode ist die Zukunft der Software.
Die Vorteile von Software zur Selbstheilung sind zwar beeindruckend, aber Sie müssen sich bewusst sein, dass die Implementierung dieser fortschrittlichen Systeme nicht ohne Herausforderungen ist. Aber SnapStack kann helfen!
In the world of IT recruitment, we often come across two fundamental types of candidates: active and passive. This distinction isn’t just theoretical—it has a real impact on outreach strategies, the speed of the hiring process, and expectations on both sides. If companies fail to recognize this difference, they risk losing top talent, not just due to poor timing but also because of the wrong approach.
Read MoreJede große Initiative war einmal nur eine Idee. Wenn du ein Rennen laufen würdest, reicht es nicht aus, schnell zu laufen. Die Ziellinie zu kennen hat Vorrang — andernfalls könntest du am falschen Ort landen. Es bedarf eines detaillierten Plans, um die Idee zum Leben zu erwecken. Im Kontext der digitalen Transformation gibt eine Strategie all Ihren Bemühungen Gestalt. Aber was ist eine Strategie für die digitale Transformation?
Read MoreWo auch immer Sie hinschauen, Sie werden überzeugende Argumente für Blockchain finden — die revolutionäre Technologie, die digitale Währungen wie Bitcoin und Ethereum antreibt. Trotzdem erhält Blockchain nicht die Aufmerksamkeit, die sie wirklich verdient. Es wirft die Frage auf: Warum steht Blockchain nicht im Vordergrund jedes Geschäftsgesprächs? Lassen Sie uns die Gründe untersuchen.
Read More