Panduan Pusat Data Paling Tidak Efisien di Dunia
Rancang pusat data hipotetis dengan PUE 4.0 atau lebih: satu server kesayangan, RAID 0, panas sebagai strategi, dan monitor yang memantau dirinya sendiri.
Yang sedang Anda bangun
Setiap panduan di situs ini mengajarkan cara melakukan sesuatu dengan benar: urutan perintah, tampilan hasil yang benar, dan mode kegagalan yang disebutkan secara jelas. Panduan ini berbeda. Hari ini, sepenuhnya secara hipotetis, kita akan merancang pusat data yang paling tidak efisien yang dapat dihasilkan oleh uang, listrik, dan kesombongan.
Kita memerlukan metrik, jadi kita akan menggunakan metrik milik industri itu sendiri: PUE, Power Usage Effectiveness, yaitu total daya fasilitas dibagi dengan daya yang benar-benar mencapai peralatan komputasi. Pusat data hyperscale memiliki nilai sekitar 1.1: hampir setiap watt digunakan untuk pekerjaan yang bermanfaat. Ruang server perusahaan yang layak mencapai 1.5. Target kita adalah 4.0 atau lebih, yang berarti bahwa untuk setiap watt komputasi, tiga watt tambahan terbuang percuma. Kita akan sering merujuk pada angka ini, seperti panduan serius merujuk pada backup.
Pemilihan lokasi: panas adalah tujuannya
Pendinginan merupakan biaya operasional terbesar dalam datacenter sungguhan. Karena itu, datacenter kita akan melawan termodinamika di tempat asalnya. Lokasi idealnya adalah loteng. Menghadap ke selatan. Idealnya, terdapat skylight yang posisinya tepat untuk menyinari server, sehingga mesin menerima panas buang dari dirinya sendiri sekaligus panas matahari—kolaborasi antara tagihan listrik Anda dan sebuah bintang.
Pada musim dingin, pendinginan dilakukan dengan membuka jendela. Datacenter sungguhan memang menggunakan udara luar. Teknik ini disebut free cooling dan direkayasa dengan filtrasi serta pengendalian kelembapan. Kita akan menggunakannya secara tidak sengaja melalui jendela yang juga memasukkan hujan, serbuk sari, dan setidaknya seekor burung yang kebingungan setiap tiga bulan.
Untuk mencapai tingkat keahlian yang sebenarnya, pasang AC, lalu letakkan pemanas ruangan dua kaki dari termostatnya. Atur pemanas tersebut dua derajat lebih hangat daripada target AC. Kedua mesin akan terus menyala tanpa henti, selamanya, dalam ketidaksepakatan sempurna. Perusahaan listrik akan mengirimkan kartu kepada Anda saat Natal.
Satu server, besar dan disayangi
Redundansi mengurangi komitmen. Datacenter kami hanya memiliki satu server, dan server itu sangat besar, karena satu mesin dengan RAM 512 GB terasa seperti infrastruktur, sedangkan empat mesin kecil terasa seperti daftar tugas.
Server itu memiliki nama. Bukan hostname, melainkan nama. Biasanya Gandalf atau Odin. Odin tidak dapat dipensiunkan. Odin sudah aktif selama lima tahun:
$ uptime
09:14:02 up 1847 days, 3:22, 1 user, load average: 6.41, 6.38, 6.40Angka itu menjadi kebanggaan, sehingga Anda mengambil tangkapan layarnya dan mengunggahnya. Setiap penyerang yang melihat tangkapan layar itu juga akan menganggapnya mengesankan: uptime selama 1,847 hari berarti 1,847 hari kerentanan kernel yang tidak ditambal siapa pun. Reboot juga tidak mungkin dilakukan, karena reboot akan mengungkap service mana yang dijalankan secara manual pada 2021 dan tidak pernah ditulis ke dalam unit systemd. Tidak ada yang mengingatnya. Kini server tersebut menjadi komponen penting dalam struktur organisasi.
Penyimpanan: kecepatan dan cara lain kehilangan data
Disk dikonfigurasi dalam RAID 0 untuk meningkatkan performa. Angka nol mengacu pada jumlah disk yang dapat gagal. Untuk efek maksimal, lakukan striping array pada media penyimpanan dengan asal-usul yang beragam: dua SSD yang layak, satu hard disk yang mulai menua, dan satu USB flash drive dari konferensi. Keandalan array sama persis dengan keandalan USB flash drive tersebut. Itulah desainnya.
Pencadangan ditangani oleh direktori pada array yang sama bernama backup_final_v2_REAL, yang berisi tarball dari skema penamaan sebelumnya. Pencadangan di luar lokasi direpresentasikan oleh catatan tempel bertuliskan "siapkan pencadangan di luar lokasi". Secara teknis, catatan itu tersimpan di luar lokasi saat Anda membawanya pulang di penutup laptop.
Hasil yang benar terlihat seperti ini: df melaporkan penggunaan 97%, disertai rencana untuk menanganinya pada sprint berikutnya.
Jaringan: satu rangkaian yang menghubungkan semuanya
Server DNS berjalan pada mesin itu sendiri. Akibatnya, saat server mati, server tersebut juga membawa serta catatan DNS yang akan digunakan untuk mencari tahu penyebabnya. Ini disebut konsolidasi.
Firewall dinonaktifkan pada 2021 untuk sementara waktu guna men-debug sesuatu. Proses debugging telah selesai, tetapi firewall tidak diaktifkan kembali. Semua port pada router diteruskan ke server "untuk menghemat waktu nanti". Panel admin router dapat diakses dari sisi WAN dengan kata sandi bawaan pabrik untuk memudahkan pengelolaan jarak jauh. Baik oleh Anda maupun orang lain.
Server belakangan ini berjalan lebih panas dari biasanya, bahkan menurut standar loteng. top menunjukkan bahwa proses tersibuk adalah sesuatu yang bernama xmrig. Kami menganggapnya sebagai alat pemantauan yang sedang digunakan. Kami tidak memasangnya. Alat tersebut muncul sendiri tidak lama setelah port diteruskan, dan kami menganggapnya sebagai tanda bahwa ekosistem berjalan baik. Alat ini melakukan pemantauan sepanjang waktu.
Daya listrik mengalir melalui rangkaian power strip konsumen yang panjang gabungannya melebihi jarak berjalan kaki ke panel pemutus arus. Dalam arti tertentu, ini efisien karena Anda akan sering mengunjungi panel pemutus arus.
Redundansi melalui kompleksitas
Setelah menolak redundansi pada bagian yang penting, kini kita menambahkannya pada bagian yang tidak penting. Halaman utama perusahaan, yang hanya terdiri dari satu file HTML statis, disajikan oleh cluster Kubernetes dengan dua belas node. Ini menghasilkan apa yang disebut para engineer sebagai arsitektur yang didorong oleh resume: halaman dimuat dalam empat puluh milidetik, sama seperti jika disajikan oleh nginx, tetapi kini dapat gagal dengan cara yang memerlukan konsultan.
Untuk isolasi, cluster tersebut sendiri berjalan di dalam mesin virtual di dalam mesin virtual di dalam mesin virtual, dan setiap lapisan menambahkan keamanan seperti setiap lapisan turducken menambahkan unggas. Formulir kontak terdiri dari sembilan microservice. Dua di antaranya belum pernah dipanggil. Salah satunya menopang sistem, tetapi tidak ada yang tahu yang mana.
Pemanasan sebagai layanan
Server modern mengubah listrik menjadi komputasi dan panas, dan kami bermaksud memaksimalkan keluaran kedua. Pilihan klasiknya adalah media server tanpa GPU: transcoding CPU untuk satu stream 4K akan membebani enam belas core dan menghangatkan kamar tidur kecil, seperti pemanas ruangan yang juga memutar film. Operator yang lebih ambisius beralih ke menjalankan large language model pada CPU, yaitu pemanas ruangan dengan 70 miliar parameter dan API, yang menghasilkan token dengan laju yang lebih tepat diukur berdasarkan musim.
Monitor memantau dirinya sendiri
Observabilitas penting, sehingga kami men-deploy monitor uptime self-hosted pada server yang sama dengan server yang dipantaunya. Ketika Odin mati, monitor tersebut ikut mati, dan di situlah letak keanggunannya: tidak ada alert yang dipicu. Tidak ada alert berarti tidak ada insiden. Tidak ada insiden berarti uptime sempurna, berdasarkan hasil pengukuran. Laporan bulanan belum pernah terlihat sebaik ini.
Sebagai informasi tambahan, email alert diteruskan melalui mail server yang juga berjalan di Odin. Dengan demikian, pipeline alerting sepenuhnya berjalan mandiri, seperti ular yang memakan ekornya sendiri dan dengan demikian sepenuhnya kenyang.
Bagian yang tidak nyaman
Berikut bagian yang terus saya tunda. Semua ini bukan fiksi. Server kesayangan yang tidak tergantikan, RAID 0 dengan backup pada volume yang sama, firewall yang dinonaktifkan “sementara”, cluster Kubernetes yang menyajikan satu halaman, serta monitor yang memantau dirinya sendiri, semuanya pernah saya lihat di lingkungan produksi. Beberapa di antaranya saya lihat tahun ini. Satu atau dua di antaranya pernah saya bangun pada masa awal karier saya.
Efisiensi yang sebenarnya terlihat membosankan. Karena itu, efisiensi sering kalah dalam perdebatan saat itu, tetapi terbukti unggul dalam jangka waktu satu dekade: PUE yang tidak pernah perlu Anda pikirkan karena telah dirancang oleh pihak lain. Mesin yang kapasitasnya disesuaikan dengan beban kerja, bukan dengan citra diri pemiliknya. Blast radius yang dipertimbangkan sebelum ledakan terjadi. Backup yang diuji dengan memulihkannya sesuai jadwal, menggunakan pengingat kalender, tanpa mengandalkan aksi heroik. Redundansi yang membosankan: dua komponen murah selalu lebih baik daripada satu komponen luar biasa, dalam setiap kegagalan yang pernah membuat saya dipanggil.
Dan datacenter paling efisien yang dapat Anda operasikan adalah datacenter yang tidak Anda operasikan. VPS menyerahkan urusan daya, pendinginan, redundansi, dan kegagalan hardware pada pukul 3 pagi kepada pihak yang menanganinya dalam skala besar dan secara rutin. Itulah pujian tertinggi yang dapat diterima infrastruktur. Anda dapat berfokus pada bagian yang benar-benar menarik, yaitu menjalankan service Anda sendiri di atasnya, pada mesin yang sanggup Anda kehilangan. Hanya pada mesin seperti itulah Anda boleh bereksperimen.
FAQ
Apakah saya benar-benar harus melakukan semua ini?
Tidak. Setiap bagian dalam panduan ini adalah anti-pattern terdokumentasi yang telah menghabiskan banyak akhir pekan. Jika konfigurasi Anda saat ini menyerupai lebih dari dua bagian, langsung buka pertanyaan terakhir dalam FAQ ini dan ikuti urutannya, karena urutan tersebut adalah triase.
Berapa PUE yang sebenarnya tergolong baik?
Datacenter hyperscale biasanya berada di sekitar 1.1, ruang server perusahaan yang dikelola dengan baik mencapai 1.4 hingga 1.6, sedangkan lemari tanpa pendingin yang berkonflik dengan pemanas ruangan dapat benar-benar melampaui 3. Di rumah, Anda tidak dapat bersaing secara berarti dengan angka 1.1. Ini menjadi alasan ekonomi yang jelas untuk menyewa compute dari pihak yang mampu menyediakannya.
Apakah memanaskan gedung dengan server benar-benar dilakukan?
Ya, jika dilakukan dengan benar. Proyek district heating di beberapa negara menangkap panas buangan datacenter melalui heat exchanger lalu menyalurkannya ke rumah-rumah menggunakan pipa, berdasarkan perencanaan, rekayasa, dan kontrak. Satire di atas bukan menyatakan bahwa panas server tidak dapat menghangatkan ruangan. Masalahnya adalah melakukannya secara tidak sengaja lalu menyebut ketidaksengajaan tersebut sebagai strategi.
Server saya sudah terlihat seperti ini. Apa yang harus saya lakukan terlebih dahulu?
Buat backup malam ini ke lokasi yang bukan server tersebut, lalu lakukan test restore. Backup yang belum pernah diuji hanyalah rumor. Kedua, pasang patch dan lakukan reboot yang selama ini Anda hindari, dalam maintenance window yang terencana, sehingga Anda dapat mengetahui apa yang rusak saat masih memantaunya. Ketiga, pisahkan single point of failure: pindahkan DNS dan monitoring dari server tersebut. Hal lain dapat menunggu hingga minggu yang lebih tenang. Ketiga hal ini tidak dapat ditunda.