Yandex membuka Cloud. Arsitektur platform baru

gambar

Hari ini Yandex.Cloud telah tersedia untuk semua orang. Sekarang setiap pengguna dapat pergi ke Cloud dan menggunakan sumber daya yang dibutuhkannya, mendapatkan akses ke teknologi Yandex. Misalnya, untuk mesin terjemahan dan pengenalan suara dan sintesis.

Hari ini saya ingin memperkenalkan Anda ke Yandex.Cloud dan memberi tahu cara mengaturnya di dalam. Di bawah potongan Anda akan belajar sedikit tentang sejarah, tim, dan arsitektur platform kami.

Sedikit sejarah


Terlepas dari kenyataan bahwa platform cloud Yandex pertama kali diperlihatkan kepada publik belum lama ini, proyek ini telah berkembang di dalam perusahaan untuk waktu yang lama dan berhasil bertahan beberapa fase, dan banyak teknologi yang membentuk basisnya telah melewati ujian waktu dalam infrastruktur internal Yandex. Pengembangan dimulai tahun lalu, dan pengguna eksternal pertama mulai menguji platform pada April 2018. Itu adalah mode tertutup, di mana sekitar 100 perusahaan berpartisipasi - layanan web dari berbagai ukuran, pengembang SaaS dan perusahaan. Pada bulan September, kami membuka situs publik, tetapi Anda bisa masuk ke Cloud itu sendiri hanya melalui daftar tunggu, dan sekarang, pada bulan Desember, akses telah menjadi terbuka untuk semua orang.

Pada awalnya, ketika rencana pengembangan produk sedang dirumuskan, perlu untuk membuat beberapa keputusan strategis tentang karakteristik apa yang harus dimiliki cloud dan teknologi mana yang harus didasarkan: solusi open-source apa yang akan disarankan untuk digunakan, yang dapat diambil dari tumpukan teknologi internal Yandex Yandex, dan apa yang harus dikembangkan secara khusus untuk platform publik. Salah satu masalah paling penting terkait dengan OpenStack.



Pada saat ini, sebuah cluster di OpenStack dari beberapa ribu host telah berhasil beroperasi di Yandex selama beberapa tahun. Salah satu solusi yang mungkin adalah menggunakan teknologi ini untuk membuat Cloud, terutama karena itu secara signifikan akan mempercepat masuknya platform ke pasar. Namun, setelah banyak diskusi dan perdebatan sengit, sebuah keputusan dibuat untuk pengembangan kita sendiri. Pro dan kontra diungkapkan, tetapi argumen berikut menjadi menentukan.

Pertama-tama, OpenStack adalah solusi untuk cloud penyewa tunggal pribadi. Ini secara historis tidak dirancang untuk membangun platform multi-penyewa yang dapat diskalakan. Poin kedua: teknologi ini tidak kompatibel dengan arsitektur hyperconverged (ketika semua sumber daya perangkat keras membentuk satu kumpulan besar, dan infrastruktur virtual sudah dibangun di atasnya). Yang ketiga - kami mengalami semua kesulitan dengan dukungan dan modifikasi OpenStack yang diidentifikasi selama operasi cluster, dan tidak ingin mengambil risiko pengalaman klien dari pengguna masa depan kami. Tentu saja, tidak ada jawaban tegas untuk pertanyaan yang diajukan oleh kami, tetapi itu diperlukan untuk mengambil keputusan. Pilihan dibuat, dan platform berjalan dengan caranya sendiri.

Perlu diperhatikan pendekatan arsitektur yang menyertainya, yang juga diletakkan di awal. Menggunakan kumpulan sumber daya perangkat keras tunggal adalah salah satu keputusan mendasar. Pendekatan ini memungkinkan Anda untuk skala platform dengan mudah dan tanpa rasa sakit meningkatkan jumlah sumber daya yang tersedia. Selain itu, kami memutuskan bahwa platform akan dibangun berdasarkan prinsip self-hosting. Artinya, semua layanan cloud, termasuk layanan cloud, harus "hidup" di atas satu infrastruktur hyperconverged. Ini berarti bahwa Yandex.Cloud tidak memiliki server manajemen khusus. Semua layanan platform dikerahkan pada mesin virtual yang sama dengan pengguna eksternal.



Hosting mandiri memungkinkan Anda mengelola struktur cloud dengan sangat fleksibel dan secara otomatis menghubungkan infrastruktur tambahan dengan biaya minimal - dari satu server ke pusat data keseluruhan dengan ribuan mesin. Selain itu, kami bekerja dalam kondisi yang sama dengan pengguna kami, yang berarti bahwa kami dapat mengalami seluruh pengalaman pelanggan.

Dan prinsip ketiga yang mendasari platform: ketersediaan repositori tunggal metadata dan informasi sistem untuk semua layanan. Untuk ini, pengembangan internal digunakan - Yandex Database (YDB, jangan bingung dengan ClickHouse), yang memungkinkan Anda untuk menempatkan data yang sangat andal, efisien, dan fleksibel. Dengan demikian, repositori metadata telah menjadi layanan internal dasar untuk semua layanan Yandex.Cloud lainnya.

Anda mungkin memperhatikan bahwa prinsip-prinsip dasar organisasi platform terkait erat satu sama lain dan sangat menentukan arsitektur dan banyak solusi teknologi selanjutnya. Inilah yang memberi kami kesempatan untuk membuat platform yang dapat diskalakan yang akan memungkinkan kami untuk merencanakan pengembangan semua layanan Cloud yang ada dan yang akan datang dalam jangka panjang.

Arsitektur


Secara umum, arsitekturnya terlihat seperti ini:



Inti dari cloud adalah penyimpanan metadata bersama yang sudah disebutkan (lapisan penyimpanan). YDB menggunakan mekanisme replikasi khusus mencakup semua penyimpanan perangkat keras yang tersedia untuk Cloud. Mekanisme serupa berlaku untuk penyimpanan blok jaringan (NBS). Bersama dengan YDB, mereka membentuk sistem penyimpanan data umum, yang digunakan oleh semua layanan lain di Cloud.



Layanan Yandex Compute Cloud dibangun di atas toko. Ini memungkinkan Anda untuk mengelola mesin virtual yang digunakan oleh pengguna eksternal dan komponen internal platform. Hypervisor adalah KVM , dan emulatornya adalah QEMU . Akibatnya, driver VirtIO dipilih untuk virtualisasi perangkat. Bagian penting dari kombinasi mesin virtual dan infrastruktur perangkat keras adalah Penjadwal. Dialah yang menentukan di server fisik mana mesin virtual berikutnya akan digunakan.



Bersama-sama, komponen-komponen ini adalah bagian IaaS dari platform, yang juga mencakup layanan Yandex Virtual Private Cloud . Layanan jaringan didasarkan pada proyek OpenContrail open source.

Komponen penting lain dari level ini adalah mekanisme Snapshot. Ini memungkinkan Anda untuk mengambil gambar dan gambar disk.



Level yang lebih tinggi adalah layanan platform, yang sebagian besar dapat diakses oleh semua pengguna Yandex.Cloud. Ini adalah layanan untuk mengelola basis data di Cloud, cluster yang digunakan pada mesin virtual (ClickHouse, Dikelola Database untuk MongoDB dan PostgreSQL); Penyimpanan objek yang kompatibel S3 serta layanan terjemahan dan sintesis dan pengenalan suara .

Ada dua layanan penting lainnya yang mencakup semua lapisan cloud. Ini adalah Penagihan dan Identitas dan Manajemen Akses (IAM). Yang pertama bertanggung jawab untuk semua operasi dengan pengisian dan pembayaran sumber daya yang dikonsumsi. Yang kedua mengimplementasikan kontrol akses berbasis peran: akses ke sumber daya : setiap pengguna dapat diberi satu atau peran lain yang menjelaskan operasi yang diizinkan. Misalnya, peran editor memungkinkan Anda untuk membuat, menghapus, dan mengedit sumber daya, tetapi tidak memungkinkan Anda untuk mengontrol akses ke sana.

Ini adalah deskripsi yang cukup umum tentang perangkat Yandex.Cloud, tetapi ini memungkinkan Anda untuk memahami bagaimana berbagai bagian dari platform besar saling berinteraksi. Jika Anda ingin mempelajari lebih dalam tentang struktur platform, saya sarankan Anda untuk melihat tentang: rekaman konferensi cloud . Perhatian khusus pada acara ini dibayarkan ke jaringan dan Basis Data Yandex.

Tim


Akhirnya - beberapa kata tentang tim. Selama tahun lalu, telah meningkat secara signifikan dan terus tumbuh . Sekarang sudah terdiri dari lebih dari 150 orang, belum termasuk sejumlah besar kelompok yang tidak secara langsung menjadi bagian dari Yandex.Cloud, tetapi yang prestasinya juga digunakan dalam platform. Sebagian besar spesialis, tentu saja, pengembang. Mereka dibagi menjadi beberapa unit yang terlibat dalam satu arah atau yang lain: mesin virtual, basis data cloud, penagihan, jaringan, dll. Ada kelompok terpisah yang mengkhususkan diri dalam masalah keamanan cloud dan segala sesuatu yang disimpan di dalamnya. Ya, dan, tentu saja, dukungan, siap untuk dengan cepat menjawab pertanyaan yang diajukan oleh pengguna.

Itu semua untuk saya. Dalam waktu dekat, kami akan menerbitkan beberapa artikel tentang detail bekerja dengan berbagai layanan platform kami. Sementara itu, Anda dapat berkenalan dengan Yandex.Cloud gratis. Setiap pengguna baru akan menerima 4000 rubel untuk berkenalan dengan platform. Jumlah ini cukup untuk menempatkan proyek web berukuran sedang di Cloud dalam waktu satu bulan berdasarkan bundel LAMP standar dengan penyimpanan file objek sebesar 1 terabyte; atau untuk menerjemahkan array data yang lebih besar dari 9 juta karakter dengan menghubungkan terjemahan mesin ke aplikasi seluler atau situs web Anda.

Source: https://habr.com/ru/post/id432042/


All Articles