Heim > Technologie-Peripheriegeräte > IT Industrie > Beschleunigung der Cloud: Die letzten Schritte

Beschleunigung der Cloud: Die letzten Schritte

Jennifer Aniston
Freigeben: 2025-02-08 10:32:09
Original
859 Leute haben es durchsucht

Accelerating the Cloud: The Final Steps

(Dieser Artikel ist der fünfte Teil der "Accelerating Cloud Computing" -Serie von Ampere Computing. Sie können alle Artikel auf SitePoint lesen.)

Der letzte Schritt bei der Entwicklung von Cloud-nativen Anwendungen besteht darin, zu entscheiden, wo Sie beginnen sollen. Als endgültige Ausgabe dieser Serie werden wir untersuchen, wie die Cloud-native Anwendung entwickelt wird, wo der Prozess in Ihrem Unternehmen gestartet wird, und in den verschiedenen Situationen, denen Sie im Prozess begegnen können.

Wie in anderen Teilen dieser Serie gezeigt, werden native Cloud-Plattformen schnell zu einer leistungsstarken Alternative zu X86-basiertem Computing. Wie wir in Teil IV gezeigt haben, gibt es einen großen Unterschied zwischen dem VCPU-Vollkernverstärker und dem Semi-Core-X86-VCPU in Bezug auf Leistung, Vorhersehbarkeit und Energieeffizienz.

So entwickeln Sie Cloud-native Anwendung

Die natürliche Methode zum Entwerfen, Implementieren und Bereitstellen verteilter Anwendungen für Cloud-native Computerumgebungen besteht darin, die Anwendung in kleinere Komponenten oder Microservices zu unterteilen, die jeweils für eine bestimmte Aufgabe verantwortlich sind. In diesen Microservices verfügen Sie normalerweise über mehrere technische Elemente, um die Funktionalität gemeinsam zu liefern. Beispielsweise kann Ihr Bestellverwaltungssystem einen privaten Datenspeicher (mit dem möglicherweise Bestellungen und Kundeninformationen im Speicher zwischengespeichert werden kann) und einen Sitzungsmanager enthalten, um die Beschäftigung von Kunden von Kunden zu bewältigen, zusätzlich zu einem API-Manager, um Front-End-Dienste zu aktivieren mit ihm interagieren zu können. Darüber hinaus kann es mit einem Bestandsdienst angeschlossen werden, um die Verfügbarkeit von Waren, möglicherweise ein Liefermodul zur Bestimmung der Versand- und Liefertermine sowie einen Zahlungsdienst zum Sammeln von Zahlungen zu bestimmen.

Die verteilte Art des Cloud -Computing ermöglicht es Anwendungen, die Anforderungen zu skalieren und Anwendungskomponenten unabhängig voneinander zu verwalten, die von einer einzelnen Software nicht erreicht werden kann. Wenn Sie viel Datenverkehr auf Ihrer E-Commerce-Website haben, können Sie das Frontend unabhängig vom Bestandsdienst oder der Zahlungsmaschine erweitern oder weitere Arbeiterprogramme hinzufügen, um das Bestellmanagement zu verarbeiten. Das Entwurfsziel von Cloud-nativen Anwendungen besteht darin, zu vermeiden, dass andere Komponenten durch Isolieren von Ausfällen in einer Komponente und nicht durch eine einzige große Anwendung, bei der einer der Fehler zu globalen Systemfehlern führen kann, beeinträchtigt wird.

Darüber hinaus ermöglicht der Cloud-native Ansatz die Software, die verfügbaren Hardwarefunktionen in vollem Umfang zu nutzen, indem einfach die Server erstellt werden, die für die aktuelle Last und das Abschalten von Ressourcen während der Absendungszeiten erforderlich sind. Modern Cloud native CPUs wie Ampere bietet eine große Anzahl schneller CPU -Kerne und schnelle Verbindungen, sodass Softwarearchitekten ihre Anwendungen effektiv skalieren können.

In der zweiten und dritten Teile dieser Serie zeigen wir, dass migrierende Anwendungen auf ARM-basierte Cloud-native Plattformen relativ einfach sind. In diesem Artikel werden wir die Schritte beschreiben, die normalerweise unternommen werden müssen, um diese Migration erfolgreich zu machen.

wo Sie in Ihrer Organisation beginnen

Der erste Schritt bei der Migration zum Cloud-nativen ARM64-Prozessor von Ampere besteht darin, die richtige Anwendung auszuwählen. Einige Anwendungen, die eng mit anderen CPU -Architekturen gekoppelt sind, sind möglicherweise schwieriger zu migrieren, da sie Quellcodeabhängigkeiten zu bestimmten Anweisungssätzen oder aufgrund von Leistung oder funktionalen Einschränkungen aufweisen, die den Anweisungssätzen zugeordnet sind. Ampere -Prozessoren sind jedoch häufig gut für viele Cloud -Anwendungen ausgelegt, darunter:

  • MicroServices -Anwendungen, staatenlose Dienste: Wenn Ihre Anwendung in Komponenten unterteilt ist, die bei Bedarf unabhängig erweitert werden können, ist der Ampere -Prozessor perfekt dafür. Der Hauptbestandteil des Aufschlusses von Anwendungen und der Nutzung der von der Cloud bereitgestellten Vorteile besteht darin, die staatlichen und staatenlosen Dienste zu trennen. Staatlose Anwendungskomponenten können horizontal skaliert werden und bieten bei Bedarf höhere Kapazitäten, während staatliche Dienste wie Datenbanken zum Speichern nicht transsitorischer Daten verwendet werden. Das skalierende staatenlose Dienste ist einfach, da Sie einen Ausgleich zwischen vielen Diensten laden und mehr Kerne zu Ihrer Recheninfrastruktur hinzufügen können, um mit der Erhöhung der Nachfrage umzugehen. Dank des einsthread-CPU-Designs von Ampere können Sie diese Kerne bei höheren Lasten ausführen, ohne die Anwendungslatenz zu beeinträchtigen, wodurch der Gesamtpreis/die Gesamtleistung verringert wird.
  • Audio- oder Video -Transkodierung: Das Konvertieren von Daten von einem Codec in einen anderen (z. B. in einer Video -Wiedergabe -Anwendung oder als Teil eines IP -Telefonsystems) ist rechnerisch intensiv, aber normalerweise nicht schwimmend Punkt intensiv und kann auf viele Sitzungen gut ausgeweitet werden durch Hinzufügen weiterer Arbeiterprogramme. Daher funktioniert diese Art von Last auf der Ampere -Plattform sehr gut und kann einen Preis-/Leistungsvorteil über 30% höher als andere Plattformen bieten.
  • AI -Inferenz: Während Schulungs -KI -Modelle von der Verfügbarkeit von sehr schnellen GPUs für das Training profitieren, ist die Anwendung des Modells auf Daten nicht sehr schwebend Punkt intensiv, wenn sie in einer Produktionsumgebung eingesetzt werden. Tatsächlich kann 16-Bit-Floating-Punkt-Operationen mit niedriger Präzision verwendet werden, um die Leistung und die Qualitäts-SLA der KI-Modellinferenz zu erfüllen und bei einem allgemeinen Prozessor gut zu laufen. Darüber hinaus kann KI -Inferenz davon profitieren, mehr Arbeiter und Kernel hinzuzufügen, um auf Änderungen des Transaktionsvolumens zu reagieren. Insgesamt bedeutet dies, dass moderne native Plattformen wie Ampere einen hervorragenden Preis/eine hervorragende Leistung bieten.
  • In-Memory-Datenbank: Da Ampere-Kernel für große L2-Caches pro Kernel ausgelegt sind, funktionieren sie normalerweise sehr gut in Speicher-intensiven Workloads wie Objekt- und Abfrage-Caches sowie In-Memory-Datenbanken. Datenbank Workloads wie Redis, Memcached, MongoDB und MySQL können große Caches pro Kern nutzen, um die Leistung zu verbessern. - kontinuierliche Integration Build Farm : Build-Software kann sehr rechenintensiv und parallelisierbar sein. Ausführen von Builds- und Integrationstests im Rahmen einer kontinuierlichen Integrationspraxis und die Verwendung kontinuierlicher Lieferpraktiken zur Validierung neuer Versionen, die in die Produktion eintreten sollen, kann vom Ausführen von Ampere -CPUs profitieren. Im Rahmen der Migration zur ARM64 -Architektur ist das Erstellen und Testen Ihrer Software auf dieser Architektur eine Voraussetzung, und die Durchführung dieser Arbeit an der Hardware für native ARM64 -Hardware erhöht die Leistung des Builds und erhöht den Durchsatz des Entwicklungsteams.

Analysieren Sie Ihre Anwendungsabhängigkeiten

Sobald Sie die Anwendung ausgewählt haben, die Ihrer Meinung nach für die Migration geeignet ist, besteht Ihr nächster Schritt darin, die Arbeiten zu bestimmen, die Sie für die Aktualisierung des Abhängigkeitsstapels benötigen. Der Abhängigkeitsstapel umfasst das Host- oder Gastbetriebssystem, die Programmiersprache und die Laufzeit sowie alle Anwendungsabhängigkeiten, die Ihr Service möglicherweise hat.Der im Ampere -CPUs verwendete ARM64 -Anweisungssatz ist in den letzten Jahren erst prominent geworden, und viele Projekte haben in den letzten Jahren hart daran gearbeitet, die Leistung von ARM64 zu verbessern. Ein gemeinsames Thema in diesem Abschnitt lautet daher "neuere Versionen werden besser".

  • Betriebssystem: Da die ARM64 -Architektur in den letzten Jahren große Fortschritte erzielt hat, möchten Sie möglicherweise ein aktualisiertes Betriebssystem durchführen, um die Leistungsverbesserungen zu nutzen. Für Linux -Verteilungen bietet Ihnen jede aktuelle Mainstream -Verteilung ein nationales ARM64 -Binärinstallationsmedium oder ein Docker -Basisbild. Wenn Ihre Anwendung derzeit ein älteres Betriebssystem wie Red Hat Enterprise Linux 6 oder 7 oder Ubuntu 16.04 oder 18.04 verwendet, sollten Sie in Betracht ziehen, das Basisbetriebssystem zu aktualisieren.
  • Sprachlaufzeit/Compiler: Alle modernen Programmiersprachen stehen für ARM64 zur Verfügung, aber die neuesten Versionen populärer Sprachen können zusätzliche Leistungsoptimierungen enthalten. Es ist erwähnenswert, dass die neuesten Versionen von Java, Go und .NET die Leistung bei ARM64 erheblich verbessert haben.
  • Anwendungsabhängigkeiten: Zusätzlich zum Betriebssystem und zur Programmiersprache müssen Sie andere Abhängigkeiten berücksichtigen. Dies bedeutet, die Bibliotheken von Drittanbietern zu überprüfen und zu modulieren, die Ihre Anwendung verwendet, um zu überprüfen, ob jede dieser Bibliotheken für ARM64 verfügbar und für Ihre Verteilung verpackt ist, wodurch externe Abhängigkeiten wie Datenbanken, Antivirensoftware und andere Anwendungen berücksichtigt werden. Die Abhängigkeitsanalyse sollte mehrere Faktoren umfassen, einschließlich der Verfügbarkeit von ARM64-Abhängigkeiten und aller Leistungsauswirkungen, die bei diesen Abhängigkeiten plattformspezifische Optimierungen haben würden. In einigen Fällen können Sie migrieren, wenn einige Funktionen verloren gehen, während in anderen die Migration erforderlich ist, um sich an die Optimierung der ARM64 -Architektur anzupassen.

Erstellen und Testsoftware auf ARM64

Die Verfügbarkeit von ARM64 -Computing -Ressourcen für Cloud -Dienstanbieter (CSPs) hat in letzter Zeit erweitert und immer noch wächst. Wie Sie von dem Versuch erkennen können und wo Sie Seiten auf der Ampere Computing -Website kaufen können, ist die Verfügbarkeit von ARM64 -Hardware kein Problem, sei es in Ihrem Rechenzentrum oder auf einer Cloud -Plattform.

Sobald Sie Zugriff auf eine Ampere -Instanz (Bare Metal oder Virtual Machine) haben, können Sie die Build- und Testphase der Migration starten. Wie oben erwähnt, unterstützen die meisten modernen Sprachen den ARM64 jetzt als erstklassige Plattform. Für viele Projekte ist der Build -Prozess so einfach wie die Neukompilierung Ihres binären Binären oder die Bereitstellung Ihres Java -Codes in einem ARM64 Native JVM.

Manchmal können Probleme im Softwareentwicklungsprozess zu einigen "technischen Schulden" führen, die das Team möglicherweise während des Migrationsprozesses zurückzahlen muss. Dies kann viele Formen annehmen. Beispielsweise können Entwickler Annahmen über die Verfügbarkeit bestimmter Hardwarefunktionen oder implementierungsspezifische Verhaltensweisen treffen, die im Standard nicht definiert sind. Beispielsweise kann der Zeichendatentyp als signierte oder nicht signierte Zeichen gemäß der Implementierung definiert werden, und unter Linux auf x86 ist er signiert (d. H. Er reicht von -128 bis 127). Bei ARM64 mit demselben Compiler ist es jedoch nicht signiert (Bereich 0 bis 255). Daher funktioniert der Code, der vom Symbol für Zeichendata -Typ abhängt, nicht ordnungsgemäß.

Insgesamt kann der Code, der Standards und Code entspricht, die nicht auf x86 spezifischen Hardwarefunktionen wie SSE beruhen, einfach auf Ampere -Prozessoren aufgebaut werden. Die meisten kontinuierlichen Integrationstools (Tools, die automatisierte Konstruktionen und Tests über die Stützplattform -Matrizen hinweg verwalten) wie Jenkins, Circleci, Travis, GitHub -Aktionen usw. unterstützen ARM64 -Gebäudeknoten.

Anwendungsbereitstellung in Produktion

verwalten

Wir können jetzt sehen, welche Änderungen an Ihrem Infrastrukturmanagement bei der Bereitstellung Ihrer Cloud-nativen Anwendungen für die Produktion geschehen werden. Das erste, was zu beachten ist, ist, dass Sie die gesamte App nicht gleichzeitig verschieben müssen. Sie können die Teile der App auswählen, die am besten von der Migration auf ARM64 profitieren und mit diesen Teilen beginnen. Die meisten verwalteten Kubernetes -Dienste unterstützen die heterogene Infrastruktur in einem einzigen Cluster. Ärgerlicherweise haben verschiedene CSPs unterschiedliche Namen für die Mechanismen zum Mischen verschiedener Arten von Rechenknoten in einem einzelnen Kubernetes -Cluster, aber alle wichtigen CSPs unterstützen diese Funktion nun. Sobald Sie einen Ampere -Computerpool in Ihrem Kubernetes -Cluster haben, können Sie "Blot" und "Toleranz" verwenden, um die Knotenaffinität des Containers zu definieren - sodass sie auf Knoten mit Arch = ARM64 laufen müssen.

Wenn Sie Projektbehälter für die ARM64-Architektur gebaut haben, ist es sehr einfach, ein Manifest zu erstellen, das ein Multi-Architektur-Container ist. Dies ist im Wesentlichen eine Manifestdatei, die einen Zeiger auf mehrere Containerbilder enthält, und der Container läuft bei der Auswahl des Bildes basierend auf der Hostarchitektur.

Die Hauptprobleme, die Menschen normalerweise während der Einsatzphase begegnen, können wieder als "technische Schulden" eingestuft werden. Bereitstellungs- und Automatisierungsskripte können bestimmte plattformspezifische Pfadnamen annehmen oder sich auf X86-binäre Artefakte nur auf X86 verlassen. Zusätzlich können die von verschiedenen Linux -Verteilungen zurückgegebenen Schema -Zeichenfolgen je nach Verteilung variieren. Sie können X86, X86-64, x86_64, ARM64, AArch64 begegnen. Die Normalisierung dieser Plattformunterschiede ist möglicherweise etwas, das Sie in der Vergangenheit noch nie gemacht haben, aber es wird als Teil der Plattformtransformation sehr wichtig sein.

Die letzte Komponente der Plattformkonvertierung ist der Betrieb der Anwendung. Zu den Cloud-nativen Anwendungen gehören eine große Anzahl von Gerüsten in der Produktion, um sicherzustellen, dass sie ordnungsgemäß funktionieren. Dazu gehören die Protokollmanagement zur Zentralisierung von Ereignissen und die Überwachung, damit Administratoren überprüft werden können, dass die Dinge wie erwartet funktionieren, wachsamen sich auf die Warnung im Falle von Anomalien, Intrusionserkennungswerkzeugen, Anwendungsfeuerwalls oder anderen Sicherheitstools, um Ihre Anwendung vor böswilligen Absichten zu schützen aggression durch die Schauspieler. Es dauert einige Zeit, bis investiert wird, um sicherzustellen, dass die ordnungsgemäße Proxy und die Infrastruktur für Anwendungsknoten aktiviert werden. Da alle wichtigen Überwachungs- und Sicherheitsplattformen jetzt ARM64 als Plattform unterstützen . In der Tat migrieren viele der größten Plattformen der Software-AS-A-Service-Software für Beobachtbarkeit auf ihre Anwendungsplattformen zunehmend auf Ampere und andere ARM64-Plattformen, um die Kosteneinsparungen zu nutzen, die die Plattform bietet.

Verbessern Sie Ihr Endergebnis

Die Verschiebung zu Cloud-nativen Prozessoren kann enorm sein, was die Mühe lohnt. Mit diesem Ansatz können Sie auch die operativen Einsparungen bewerten und validieren, die Ihr Unternehmen im Laufe der Zeit erwarten kann.

Beachten Sie, dass eines der größten Hindernisse für die Verbesserung der Leistung Trägheit ist und die Tendenz der Organisationen, weiterhin das zu tun, was sie getan haben, auch wenn es nicht mehr die effizienteste oder kostengünstigste Art ist. Aus diesem Grund empfehlen wir den ersten Schritt, um den Wert der Cloud-nativen Technologie für Ihr Unternehmen zu beweisen. Auf diese Weise haben Sie echte Ergebnisse, die Sie mit den Stakeholdern teilen und ihnen zeigen können, wie Cloud-natives Computing die Anwendungsleistung und Reaktionsfähigkeit ohne wesentliche Investitionen oder Risiken verbessern kann.

Cloud native Prozessoren sind erschienen. Die Frage ist nicht, ob Sie auf Cloud Native wechseln, sondern wenn Sie konvertieren. Organisationen, die die Zukunft früher annehmen, werden von heute profitieren, was ihnen einen großen Vorteil gegenüber Konkurrenten verschafft, die mit der Tradition verbunden sind.

Erfahren Sie mehr über die Entwicklung der Cloud -Geschwindigkeit im Ampere Developer Center, das Ressourcen zum Entwerfen, Erstellen und Bereitstellen von Cloud -Anwendungen enthält. Wenn Sie bereit sind, die Vorteile des Cloud-nativen Computing für sich selbst zu erleben, bitten Sie Ihren CSP nach ihren Cloud-nativen Optionen basierend auf der Ampere Altra-Serie und der AmpereOne-Technologie.

Das obige ist der detaillierte Inhalt vonBeschleunigung der Cloud: Die letzten Schritte. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage