
Heute ist Yandex.Cloud
für alle
verfügbar . Jetzt kann jeder Benutzer in die Cloud gehen und die benötigten Ressourcen bereitstellen, um Zugriff auf Yandex-Technologien zu erhalten. Zum Beispiel zur maschinellen Übersetzung und Spracherkennung und -synthese.
Heute möchte ich Ihnen Yandex.Cloud vorstellen und erzählen, wie es im Inneren angeordnet ist. Unter dem Schnitt erfahren Sie etwas über die Geschichte, das Team und die Architektur unserer Plattform.
Ein bisschen Geschichte
Trotz der Tatsache, dass die Yandex-Cloud-Plattform vor nicht allzu langer Zeit erstmals öffentlich gezeigt wurde, hat sich das Projekt innerhalb des Unternehmens seit langer Zeit entwickelt und mehrere Phasen überstanden. Viele der Technologien, auf denen es basiert, haben den Test der Zeit in der internen Infrastruktur von Yandex bestanden. Die Entwicklung begann im vergangenen Jahr und die ersten externen Benutzer begannen im April 2018 mit dem Testen der Plattform. Es war ein geschlossener Modus, an dem etwa 100 Unternehmen teilnahmen - Webdienste verschiedener Größen, SaaS-Entwickler und Unternehmen. Im September haben wir eine öffentliche Website eröffnet, aber Sie konnten nur über die Warteliste in die Cloud gelangen, und jetzt, im Dezember, ist der Zugriff für alle zugänglich.
Zu Beginn der Erstellung eines Produktentwicklungsplans mussten mehrere strategische Entscheidungen darüber getroffen werden, welche Merkmale die Cloud aufweisen sollte und auf welchen Technologien sie basieren sollte: Welche Open-Source-Lösungen sollten empfohlen werden, die aus dem internen Technologie-Stack von Yandex Yandex entnommen werden können, und was muss speziell für die öffentliche Plattform entwickelt werden. Eines der wichtigsten Probleme betraf OpenStack.

Zu diesem Zeitpunkt war in Yandex seit mehreren Jahren ein OpenStack-Cluster mit mehreren tausend Hosts erfolgreich in Betrieb. Eine der möglichen Lösungen wäre die Verwendung dieser Technologie zur Erstellung der Cloud, zumal dies den Markteintritt der Plattform erheblich beschleunigen würde. Nach vielen Diskussionen und hitzigen Debatten wurde jedoch eine Entscheidung zugunsten unserer eigenen Entwicklung getroffen. Die Vor- und Nachteile wurden zum Ausdruck gebracht, aber die folgenden Argumente wurden entscheidend.
Zunächst einmal ist OpenStack eine Lösung für private Clouds mit einem Mandanten. Es wurde in der Vergangenheit nicht für die Erstellung skalierbarer
mandantenfähiger Plattformen entwickelt. Der zweite Punkt: Diese Technologie ist schlecht kompatibel mit
hyperkonvergenter Architektur (wenn alle Hardwareressourcen einen großen Pool bilden und bereits eine virtuelle Infrastruktur darauf aufgebaut ist). Nun, das dritte - wir hatten alle Schwierigkeiten mit der Unterstützung und Änderung von OpenStack, die während des Betriebs des Clusters festgestellt wurden, und wollten die Kundenerfahrung unserer zukünftigen Benutzer nicht gefährden. Natürlich gab es keine eindeutigen Antworten auf die von uns gestellten Fragen, aber es war erforderlich, eine fundierte Entscheidung zu treffen. Die Wahl wurde getroffen und die Plattform ging ihren eigenen Weg.
Erwähnenswert sind die begleitenden architektonischen Ansätze, die ebenfalls zu Beginn festgelegt wurden. Die Verwendung eines einzigen Pools einheitlicher Hardwareressourcen ist eine der grundlegenden Entscheidungen. Mit diesem Ansatz können Sie die Plattform einfach skalieren und die Menge der verfügbaren Ressourcen problemlos erhöhen. Darüber hinaus haben wir festgelegt, dass die Plattform auf dem Prinzip des Selbsthostings basiert. Das heißt, alle Cloud-Dienste, einschließlich der Dienstdienste, müssen auf einer einzigen hyperkonvergenten Infrastruktur "leben". Dies bedeutet, dass Yandex.Cloud keine dedizierten Verwaltungsserver hat. Alle Plattformdienste werden auf denselben virtuellen Maschinen wie externe Benutzer bereitgestellt.

Mit Self-Hosting können Sie die Struktur der Cloud sehr flexibel verwalten und automatisch zusätzliche Infrastrukturen mit minimalen Kosten verbinden - von einem Server bis zu einem gesamten Rechenzentrum mit Tausenden von Computern. Darüber hinaus arbeiten wir unter den gleichen Bedingungen wie unsere Benutzer, sodass wir das gesamte Kundenerlebnis erleben können.
Und das dritte Prinzip, das der Plattform zugrunde liegt: die Verfügbarkeit eines einzigen Repositorys mit Metadaten und Systeminformationen für alle Dienste. Hierfür wird die interne Entwicklung verwendet - die Yandex-Datenbank (YDB, nicht zu verwechseln mit ClickHouse), mit der Sie Daten sehr zuverlässig, effizient und flexibel platzieren können. Somit ist das Metadaten-Repository zum grundlegenden internen Dienst für alle anderen Yandex.Cloud-Dienste geworden.
Sie haben wahrscheinlich bemerkt, dass die Grundprinzipien der Organisation der Plattform eng miteinander verbunden sind und weitgehend die Architektur und viele nachfolgende technologische Lösungen bestimmen. Dies gab uns die Möglichkeit, eine skalierbare Plattform zu schaffen, mit der wir die Entwicklung aller vorhandenen und zukünftigen Cloud-Dienste langfristig planen können.
Architektur
Im Allgemeinen sieht die Architektur folgendermaßen aus:

Der Kern der Cloud ist der bereits erwähnte gemeinsam genutzte Metadatenspeicher (Speicherschicht). YDB verwendet einen speziellen Replikationsmechanismus und deckt den gesamten Hardwarespeicher ab, der der Cloud zur Verfügung steht. Ein ähnlicher Mechanismus gilt für Network Block Storage (NBS). Zusammen mit YDB bilden sie ein gemeinsames Datenspeichersystem, das von allen anderen Diensten in der Cloud verwendet wird.

Der
Yandex Compute Cloud- Dienst basiert auf dem Store. Sie können damit virtuelle Maschinen verwalten, die sowohl von externen Benutzern als auch von internen Komponenten der Plattform verwendet werden. Der Hypervisor ist
KVM und der Emulator ist
QEMU . Aus diesem Grund wurden
VirtIO-Treiber für die
Gerätevirtualisierung ausgewählt. Ein wichtiger Bestandteil der Kombination von virtuellen Maschinen und Hardware-Infrastruktur ist der Scheduler. Er bestimmt, auf welchem physischen Server die nächste virtuelle Maschine bereitgestellt wird.

Zusammen bilden diese Komponenten den IaaS-Teil der Plattform, zu der auch der
Yandex Virtual Private Cloud-Dienst gehört . Der Netzwerkdienst basiert auf dem Open Source
OpenContrail- Projekt.
Eine weitere wichtige Komponente dieser Ebene ist der Snapshot-Mechanismus. Sie können damit
Bilder und Diskettenbilder aufnehmen.

Eine höhere Ebene sind Plattformdienste, auf die größtenteils alle Yandex.Cloud-Benutzer zugreifen können. Hierbei handelt es sich um Dienste zum Verwalten von Datenbanken in der Cloud, deren Cluster auf virtuellen Maschinen bereitgestellt werden (ClickHouse, Managed Databases für MongoDB und PostgreSQL). S3-kompatibler
Objektspeicher sowie
Übersetzungs- und
Synthese- und Spracherkennungsdienste .
Es gibt zwei weitere wichtige Dienste, die alle Ebenen der Cloud abdecken. Dies sind
Billing und
Identity and Access Management (IAM). Der erste ist für alle Vorgänge mit dem Aufladen und Bezahlen der verbrauchten Ressourcen verantwortlich. Die zweite implementiert eine rollenbasierte Zugriffssteuerung:
Zugriff auf Ressourcen : Jedem Benutzer kann die eine oder andere Rolle zugewiesen werden, die die zulässigen Vorgänge beschreibt. Mit der Editor-Rolle können Sie beispielsweise Ressourcen erstellen, löschen und bearbeiten, den Zugriff darauf jedoch nicht steuern.
Dies ist eine ziemlich allgemeine Beschreibung des Yandex.Cloud-Geräts, mit der Sie jedoch verstehen können, wie die verschiedenen Teile einer großen Plattform miteinander interagieren. Wenn Sie tiefer in die Struktur der Plattform eintauchen möchten, empfehlen wir Ihnen, sich die
Informationen zu: Cloud- Konferenzaufzeichnung anzusehen. Besonderes Augenmerk wurde bei dieser Veranstaltung auf Netzwerke und die Yandex-Datenbank gelegt.
Das Team
Zum Schluss noch ein paar Worte zum Team. Im vergangenen Jahr hat es deutlich zugenommen und
wächst weiter . Jetzt besteht es bereits aus mehr als 150 Personen, ohne die große Anzahl von Gruppen zu zählen, die nicht direkt Teil von Yandex.Cloud sind, deren Erfolge jedoch auch auf der Plattform genutzt werden. Ein wesentlicher Teil der Spezialisten sind natürlich Entwickler. Sie sind in Einheiten unterteilt, die in dem einen oder anderen Bereich tätig sind: virtuelle Maschinen, Cloud-Datenbanken, Abrechnungen, Netzwerke usw. Es gibt eine separate Gruppe, die sich auf Fragen der Cloud-Sicherheit und alles, was darin gespeichert ist, spezialisiert hat. Nun, und natürlich Support, bereit, Fragen der Benutzer schnell zu beantworten.
Das ist alles für mich. In naher Zukunft werden wir mehrere Artikel über die Details der Arbeit mit verschiedenen Diensten unserer Plattform veröffentlichen. In der Zwischenzeit können Sie Yandex.Cloud kostenlos kennenlernen. Jeder neue Benutzer erhält 4000 Rubel, um sich mit der Plattform vertraut zu machen. Dieser Betrag reicht aus, um ein mittelgroßes Webprojekt innerhalb eines Monats auf der Grundlage eines Standard-LAMP-Bundles mit einem Objektdateispeicher von 1 Terabyte in der Cloud zu platzieren. oder um ein Array von Daten mit mehr als 9 Millionen Zeichen zu übersetzen, indem Sie die maschinelle Übersetzung mit Ihrer mobilen Anwendung oder Website verbinden.