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!
Die Finanzwelt ist seit langem ein zentralisiertes System, in dem Kontrolle und Autorität bei einer bestimmten Stelle oder Organisation verbleiben. Betrug, Veruntreuung von Vermögenswerten und Manipulation sind Bedrohungen, die in einem solchen System eine große Rolle spielen. Eine Lösung für dieses Problem wurde wie immer in den Armen der Technologie gefunden — der Blockchain.
Read MoreHallo zusammen, ich hoffe ihr habt eine wundervolle Woche, da wir nur noch wenige Stunden davon entfernt sind, das Wochenende zu genießen. Mein Vorschlag ist, alles, was wir für diese Jahreszeit von der Sonne noch übrig haben, aufzusaugen, die Landschaft zu besuchen oder einen Berg zu besteigen, den Sie noch nicht besucht haben. Das ist Jordan von SnapStack Solutions, und diese Woche werde ich ein Thema aus der Welt der Desktop-Anwendungen vorstellen.
Read MoreAls Softwareingenieur ist es wichtig, dass Sie über Updates aus der Softwarebranche auf dem Laufenden bleiben. In diesem Beitrag werden wir 8 neue Entwicklungen besprechen, die die Softwarebranche im Jahr 2022 erleben wird. Hallo an Sie alle! Ich bin Jordan von SnapStack Solutions, und wie jede Woche werde ich mit Ihnen abhängen und über die wichtigsten Themen der IT-Branche sprechen.
Read More