Skala web vs. hyperconverged: Pahami perbedaannya

Baru-baru ini, banyak vendor memperjuangkan arsitektur hyperconverged dengan menyatakan bahwa raksasa skala Web, seperti Google dan Facebook, mengambil pendekatan serupa. Ini salah Mungkin ada kesamaan antara arsitektur skala Web dan hyperconverged, tetapi ada juga perbedaan yang sangat besar.

Sekarang, hanya karena perusahaan skala Web tidak menggunakan sistem hyperconverged tidak berarti Anda tidak perlu mempertimbangkan pendekatan tersebut. Bahkan Anda mungkin tidak menginginkan pusat data skala Web kecuali Anda perlu mencapai skala itu. Namun, Anda harus mendekati arsitektur hyperconverged dengan alasan teknis yang cermat - daripada melihat ke Google atau Facebook untuk panduan.

Sebelum membahas arsitektur skala Web, kita harus ingat bahwa karena desain yang tepat untuk lingkungan kecil jelas tidak akan berfungsi di lingkungan besar, kebalikannya sering kali benar. Sistem yang dirancang untuk lingkungan skala besar seringkali tidak berfungsi dengan baik di lingkungan skala kecil. Sistem yang Anda rancang harus sesuai dengan tugas yang Anda butuhkan. Banyak teknik yang digunakan oleh vendor skala Web akan menjadi tidak efisien jika dicoba oleh mereka yang memiliki lingkungan lebih kecil. Apa yang optimal untuk Google mungkin tidak bisa dijalankan untuk perusahaan besar.

Sistem hyperconverged ditandai dengan beberapa keputusan arsitektur utama. Mereka menyediakan abstraksi perangkat keras yang andal (disk virtual) dengan mereplikasi antar mesin. Mereka menggabungkan penyimpanan dan menghitung pada mesin yang sama. Mereka merancang untuk lingkungan yang bebas dari perangkat keras khusus. Mereka merancang untuk memisahkan perangkat lunak dan perangkat keras.

Seperti yang saya uraikan di bawah ini, raksasa skala web tidak membuat keputusan arsitektur apa pun.

Perusahaan skala web tidak menggunakan abstraksi perangkat keras yang andal

Sistem hyperconverged menyediakan abstraksi perangkat keras yang andal (disk virtual melalui SCSI atau SATA) menggunakan replikasi lintas sistem. Lapisan perangkat keras yang andal ini berada di bawah perangkat lunak aplikasi.

Sebaliknya, vendor skala Web menyediakan abstraksi perangkat lunak yang andal: objek, sistem file, dan sebagainya. Mereka melakukan ini karena abstraksi perangkat keras, yang dibangun untuk lingkungan terpusat, sangat sulit untuk diskalakan, karena menerapkan persyaratan konsistensi yang kuat. Sementara itu, vendor skala Web dapat membuat abstraksi perangkat lunak yang mengurangi konsistensi yang disesuaikan untuk beban kerja tertentu dan dengan demikian menskalakan sambil mempertahankan kinerja dan ketersediaan. Amazon S3, Google File System, dan HDFS adalah contoh sistem penyimpanan terdistribusi yang menyediakan antarmuka yang secara khusus disesuaikan untuk jenis beban kerja tertentu. Misalnya, S3 memberikan konsistensi akhir untuk data sebagian besar baca, sementara HDFS disetel untuk kerangka kerja komputasi pemrosesan berurutan seperti MapReduce.

Database NoSQL menyediakan salah satu contoh paling terkenal dari trade-off ini. Database NoSQL (seperti MongoDB, HBase, dan Cassandra) melonggarkan konsistensi untuk menyediakan sistem skala besar yang sangat tersedia dan mengharapkan node individu yang tidak dapat diandalkan. Sebaliknya, sebagian besar database SQL tradisional (seperti Oracle atau MySQL) memberikan konsistensi ACID yang kuat tetapi sering kali mengalami masalah penskalaan di luar titik tertentu.

Penggunaan abstraksi perangkat keras yang tidak dapat diandalkan untuk menyediakan abstraksi perangkat lunak yang andal mengarah pada desain aplikasi yang sering disebut "aplikasi ternak". Dalam aplikasi seperti itu, abstraksi perangkat keras yang disediakan oleh mesin virtual (atau kontainer) tidak dapat diandalkan. Untuk memberikan keandalan, layanan ternak membangun keandalan ke dalam lapisan aplikasi itu sendiri. Misalnya, HDFS menyimpan banyak salinan dari setiap bagian data, tetapi datanya dipisahkan pada lapisan sistem file, bukan pada lapisan drive.

Perusahaan skala web terkadang menggabungkan komputasi dan penyimpanan ...

... tetapi sering kali memisahkannya menjadi layanan yang berbeda.

Vendor hyperconverged berpendapat bahwa penyimpanan untuk aplikasi harus diinternalisasi dengan komputasi untuk aplikasi itu dan dijalankan bersama pada basis perangkat keras yang sama. Meskipun vendor skala Web menempatkan komputasi dan penyimpanan untuk layanan yang diberikan bersama-sama, mereka membagi aplikasi menjadi layanan mikro, yang dipisahkan oleh jaringan. Vendor skala web umumnya membuat perbedaan yang kuat antara layanan yang menyimpan status persisten dan layanan yang sangat berat dan lebih atau kurang tanpa kewarganegaraan.

Dalam banyak kasus, layanan yang berbeda mungkin memiliki perangkat keras yang sepenuhnya terpisah untuk menyesuaikan dengan aplikasi tertentu. Misalnya, Amazon membuat perbedaan yang jelas antara penyimpanan instans, yang disimpan sebagai bagian dari EC2 dan bersifat sementara, dan layanan penyimpanan. Baik EBS (layanan blok) dan S3 (layanan objek) adalah layanan terpisah yang diakses oleh instans EC2 melalui jaringan. Meskipun Amazon tidak secara eksplisit tentang perangkat keras yang digunakan untuk menjalankannya, jelas tidak ada upaya untuk menjalankan EBS dan EC2 pada node yang ditempatkan bersama.

Demikian pula, Facebook, Google, dan Amazon semuanya telah menyatakan secara publik bahwa mereka menggunakan perangkat keras heterogen untuk layanan mereka agar sesuai dengan perangkat keras yang sesuai dengan layanan yang sesuai.

Sementara vendor skala Web tentu saja menempatkan komputasi dan penyimpanan untuk setiap layanan, mereka menggunakan berbagai pendekatan untuk pembuatan aplikasi, sering kali menyesuaikan platform perangkat keras untuk satu jenis layanan yang terpisah dari yang lain.

Perusahaan skala web menggunakan perangkat keras khusus

Vendor hyperconverged berpendapat bahwa pelanggan hanya boleh membeli server yang diproduksi secara massal dari integrator perangkat keras untuk mengurangi biaya. Ini adalah pertukaran antara perolehan biaya dan kinerja dari penggunaan perangkat keras yang lebih disesuaikan. Hampir semua vendor, baik itu vendor peralatan, vendor hyperconverged, atau raksasa berskala Web, menggunakan komponen komoditas yang diproduksi secara massal - drive, CPU, RAM, dan sebagainya - untuk menurunkan biaya akuisisi dan desain.

Namun, raksasa skala Web sebenarnya yang paling mungkin menggunakan peralatan yang dibuat khusus atau sangat disesuaikan. Mereka cenderung menggunakan peralatan khusus karena memungkinkan mereka mengurangi biaya keseluruhan atau karena memenuhi kebutuhan tertentu. Karena mereka mengkonsumsi perangkat keras dalam jumlah besar, mereka dapat membayar biaya pengembangan awal.

Misalnya, Google telah mengungkapkan kepada publik bahwa ia membangun servernya sendiri dengan baterai yang terpasang di motherboard dan jam tersinkronisasi perangkat keras, dan ia membuat sakelar jaringan khusus sendiri.

Facebook telah melangkah lebih jauh dengan membuat proyek komputasi terbuka yang mengungkapkan desain perangkat keras khusus yang dijalankan perusahaan saat ini, dalam upaya untuk menciptakan komunitas perusahaan lain yang menggunakan dan memproduksi perangkat keras yang mereka butuhkan.

Amazon telah mengungkapkan bahwa ia menggunakan prosesor khusus, banyak konfigurasi perangkat keras, dan sakelar khusus untuk berintegrasi erat dengan lingkungan pusat datanya.

Perusahaan skala web sangat erat menggabungkan perangkat lunak dan perangkat keras

Vendor Hyperconverged berpendapat bahwa perangkat lunak infrastruktur (ditulis oleh vendor perangkat lunak) harus dipisahkan dari perangkat keras yang berjalan di bawahnya (dirancang oleh integrator), dan perangkat lunak aplikasi (ditulis oleh pengembang aplikasi) harus dipisahkan dari infrastruktur virtualisasi di bawahnya.

Ini adalah kebalikan dari kebanyakan perusahaan skala Web. Perusahaan skala Web tidak hanya menyesuaikan perangkat keras mereka, tetapi mereka membangun perangkat keras, infrastruktur, dan aplikasi yang sangat berpasangan dan dirancang khusus untuk lingkungan mereka.

Misalnya, Google Spanner dibuat dengan persyaratan khusus pada jam tersinkronisasi tingkat perangkat keras. Kubernetes mengasumsikan bahwa setiap node komputasi diberikan subnetnya sendiri. Alokasi sumber daya di Google Borg terkait dengan perencanaan kapasitas Google, sementara definisi cluster di Borg bergantung pada topologi jaringan Google, di antara faktor-faktor lainnya.

Pendekatan load-balancing Facebook sangat terkait dengan serangkaian layanan khusus situs. Memcache (digunakan oleh Facebook dan lainnya) mengasumsikan perangkat keras dengan RAM dalam jumlah besar (atau yang terbaru, flash berperforma tinggi).

Desain keandalan Amazon dibangun di seputar replikasi sinkronis antara pusat data yang dekat secara geografis.

Jenis perangkat lunak ini adalah "instalasi" yang berbeda dengan model perusahaan (dan hyperconverged) yang menganggap perangkat keras dan perangkat lunak sebagai unit portabel yang dapat disusun. Saya meminjam istilah "instalasi" dari seni kontemporer, di mana beberapa seniman baru-baru ini merancang "karya seni instalasi" spesifik lokasi yang terkait erat dengan lokasi tempat seni itu berada.

Desain bergaya instalasi merupakan tantangan finansial bagi perusahaan tanpa skala yang besar. Namun, bagi mereka yang memiliki skala yang memungkinkan, pendekatan instalasi menyederhanakan manajemen perangkat lunak dan perangkat keras karena hal itu memberikan kemampuan bagi perancang perangkat lunak aplikasi dan infrastruktur untuk menyetel perangkat keras yang sempit. Hal ini memungkinkan perancang perangkat lunak untuk memeras kinerja maksimal dari perangkat keras yang mereka miliki dan memecahkan masalah perangkat lunak yang menantang dengan menggunakan perangkat keras khusus yang sesuai. Dengan menyesuaikan seluruh lingkungan mereka, perusahaan skala Web dapat membuat peralatan pusat data lengkap (juga disebut "pusat data sebagai komputer"), daripada menggunakan penyimpanan individu atau peralatan komputasi.

Misalnya, Google menyusun infrastrukturnya di sekitar kontainer pengiriman yang penuh dengan perangkat keras. Setiap penampung memiliki pendinginan, komputasi, penyimpanan, dan jaringan, semuanya dibangun untuk persyaratan khusus infrastruktur dan aplikasi Google. Perancang kerangka perangkat lunak Google, seperti Borg, dapat memengaruhi tata letak dan memanfaatkan perangkat keras yang disesuaikan untuk konfigurasi khusus tersebut.

Perusahaan skala web tidak hyperconverged

Kesimpulannya, desain skala Web berbeda dari desain hyperconverged dalam setidaknya empat aspek penting.

  1. Arsitektur hyperconverged menggunakan replikasi lintas node untuk menyediakan abstraksi perangkat keras yang andal, sementara arsitektur skala Web membangun keandalan ke dalam abstraksi perangkat lunak kustom yang disediakan oleh aplikasi.
  2. Arsitektur hyperconverged menempatkan penyimpanan dan komputasi secara bersamaan. Arsitektur skala web sering kali menempatkan sumber daya komputasi dan penyimpanan bersama, tetapi mereka menggunakan berbagai teknik untuk menggabungkan dan memisahkan penyimpanan dan sumber daya komputasi sebagaimana diperlukan.
  3. Arsitektur hyperconverged dibangun di sekitar perangkat keras komoditas, sementara arsitektur skala Web dibangun di sekitar perangkat keras yang sangat disesuaikan.
  4. Arsitektur hyperconverged memberikan pemisahan yang kuat antara perangkat lunak dan perangkat keras, sementara arsitektur skala Web secara agresif menyesuaikan perangkat lunak dengan desain pusat data tertentu.

Ini tidak berarti bahwa arsitektur hyperconverged adalah ide yang buruk, hanya saja mereka sangat berbeda dari arsitektur yang digunakan dalam lingkungan skala Web. Sistem yang digunakan di vendor skala Web juga memiliki kompromi. Dalam memutuskan jenis arsitektur yang Anda perlukan di pusat data, Anda perlu memikirkan dengan cermat apa yang Anda butuhkan, bukan hanya tentang apa yang dilakukan Google atau Facebook.

Brandon Salmon, Kantor CTO, telah berada di Tintri sejak 2009. Dia adalah pria sistem yang suka memikirkan pengalaman pengguna, yang dia dapatkan dari pekerjaan doktoralnya di Carnegie Mellon tentang sistem file terdistribusi untuk rumah. Dia merancang dan mengimplementasikan algoritme awal Tintri untuk memindahkan data antara flash dan disk, dan dia telah bekerja di sejumlah area sejak itu, teknologi cloud terkini.

Forum Teknologi Baru menyediakan tempat untuk mengeksplorasi dan mendiskusikan teknologi perusahaan yang sedang berkembang secara mendalam dan luas. Pemilihannya subjektif, berdasarkan pilihan teknologi yang kami yakini penting dan paling menarik bagi pembaca. tidak menerima jaminan pemasaran untuk publikasi dan berhak untuk mengedit semua konten yang dikontribusikan. Kirim semua pertanyaan ke [email protected]