(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.
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.
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:
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".
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.
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.
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!