[Bagian 1 dari 2]

Blog Kenaikan muncul pada 12 Desember 2012, dan ada sangat sedikit pembaca saat itu. Hingga 2016, kami telah mencapai 100 juta pengguna terdaftar dan 40 miliar posting bulanan. Namun pertumbuhan tersebut telah menyoroti masalah peningkatan infrastruktur kami. Untuk menghilangkannya, kami membutuhkan platform berkinerja tinggi dengan harga terjangkau. Pada 2016 dan 2017, kami menghadapi banyak gangguan dalam pekerjaan, kami harus segera melakukan sesuatu dengan ini, jadi kami mulai mempertimbangkan berbagai opsi.
Kami membutuhkan platform cloud yang dapat dengan cepat membuat, menguji, dan menyebarkan aplikasi dalam lingkungan cloud yang dapat diskalakan dan andal. Sekilas, mungkin tampak bahwa semua platform cloud besar serupa dalam banyak hal, tetapi mereka memiliki beberapa perbedaan mendasar.
Kami akan membagi publikasi ini menjadi 2 bagian:
- Alasan memilih GCP
- Beralih ke GCP tanpa downtime
Bukti konsep
Kami mulai dengan membuktikan kebenaran konsep tersebut, di mana kami memeriksa kompatibilitas infrastruktur yang ada dengan layanan yang ditawarkan oleh platform cloud Google Cloud, dan juga elemen yang direncanakan untuk pengembangan di masa mendatang.
Bidang utama untuk validasi konsep:
⊹ load balancer
⊹ Mesin komputer
⊹ Jaringan dan firewall
⊹ Keamanan
⊹ Ketersediaan Cloud
⊹ Data besar
⊹ Tagihan
Konfirmasi konsep mencakup pengujian dan pengecekan bandwidth mesin virtual / jaringan / penyeimbang beban, serta stabilitas, skalabilitas, keamanan, pemantauan, pengisian, data besar, dan layanan pembelajaran mesin. Pada Juni 2017, kami membuat keputusan penting untuk memigrasikan seluruh infrastruktur ke platform cloud Google Cloud.
Kami ingin memilih platform cloud yang dapat mengatasi banyak tantangan yang kami temui:
⊹ load balancer:
Kami memiliki banyak masalah yang terkait dengan pengelolaan cluster HAProxy lokal untuk menangani puluhan juta koneksi pengguna aktif setiap hari. Global Load Balancer (GLB) telah menyelesaikan banyak masalah kami.

Dengan menggunakan penyeimbangan beban GCP global, satu alamat IP broadcast mana pun dapat meneruskan hingga 1 juta permintaan per detik ke berbagai server GCP, seperti Managed Instance Groups (MIGs), tanpa perlu “pra-pemanasan”. Waktu respons keseluruhan kami telah meningkat 1,7–2 kali sejak GLB menggunakan implementasi kumpulan yang memungkinkan Anda untuk mendistribusikan lalu lintas di berbagai sumber.

⊹ Mesin komputer:
Tidak ada masalah besar di komputer itu sendiri, tetapi kami membutuhkan platform berkinerja tinggi dengan harga terjangkau. Total throughput mesin virtual Google meningkat sebesar 1,3-1,5 kali, yang memungkinkan untuk mengurangi jumlah total proses mesin virtual yang berjalan.
Tes redis dilakukan dengan sekelompok 6 salinan (masing-masing 8 core, 30 GB). Berdasarkan hasil di bawah ini, kami menyimpulkan bahwa GCP memberikan peningkatan kinerja hingga 48% (rata-rata) untuk sebagian besar operasi REDIS dan hingga 77% untuk operasi REDIS tertentu.
redis-benchmark-h -p 6379 -d 2048 -r 15 -q -n 10000000 -c 100

Layanan komputasi awan Google Compute Engine (GCE) telah memberikan manfaat tambahan dalam mengelola infrastruktur kami dengan menggunakan yang berikut:
● Managed Instance Group (MIG): MIG membantu kami mempertahankan layanan aplikasi dalam lingkungan yang kuat dengan fitur multi-zona, alih-alih mengalokasikan sumber daya untuk setiap zona. MIG secara otomatis mengidentifikasi dan memperbaiki instance yang tidak beroperasi dalam suatu kelompok untuk memastikan operasi yang optimal dari semua instance.
● Migrasi dinamis: Migrasi dinamis membantu menjaga mesin virtual bahkan ketika sistem host gagal, seperti ketika memperbarui perangkat lunak atau perangkat keras. Bekerja dengan mitra cloud kami sebelumnya, kami menerima pemberitahuan tentang acara pemeliharaan terjadwal dan terpaksa berhenti dan memulai mesin virtual untuk beralih ke mesin virtual yang berfungsi.
● Mesin virtual khusus: Dalam kerangka kerja GCP, kami dapat membuat mesin virtual kami sendiri dengan kekuatan pemrosesan prosesor dan jumlah memori yang diperlukan untuk beban kerja tertentu.
⊹ Jaringan dan firewall:
Mengelola beberapa jaringan dan aturan firewall tidak mudah dan bisa berisiko. VPC jaringan GCP bersifat global secara default dan menyediakan komunikasi antar wilayah tanpa konfigurasi tambahan dan tanpa mengubah bandwidth jaringan. Aturan firewall memberikan fleksibilitas VPC untuk proyek yang menggunakan nama aturan tag.
Untuk jaringan dengan latensi rendah dan bandwidth lebih tinggi, kami terpaksa memilih mesin virtual mahal dengan bandwidth 10 Gbit / dtk dan mengaktifkan jaringan luas pada mesin virtual ini.

⊹ Keamanan:
Keamanan adalah aspek paling penting untuk penyedia layanan cloud apa pun. Di masa lalu, keamanan tidak tersedia untuk sebagian besar layanan, atau hanya merupakan opsi tambahan.
Layanan cloud Google dienkripsi secara default. GCP menggunakan beberapa tingkat enkripsi untuk melindungi data. Penggunaan beberapa tingkat enkripsi memberikan perlindungan untuk data cadangan dan memungkinkan Anda untuk memilih pendekatan terbaik berdasarkan persyaratan aplikasi, misalnya, menggunakan layanan Proksi Identitas-Sadar dan mengenkripsi data yang tidak aktif secara default.
Selain itu, GCP menutup kerentanan bencana berbasis eksekusi baru-baru ini di sebagian besar prosesor modern (Meltdown, Specter). Google telah mengembangkan metode baru modifikasi biner yang disebut Retpoline , yang memungkinkan Anda untuk menghindari masalah ini dan secara transparan membuat perubahan pada seluruh infrastruktur kerja tanpa terlihat oleh pengguna.
⊹ Ketersediaan Cloud:
Ketersediaan sumber daya GCP berbeda dari penyedia solusi cloud lainnya, karena sebagian besar sumber daya GCP, termasuk panel kontrol, bersifat zonal atau regional. Kami harus mengelola beberapa VPC untuk proyek individual dari akun terpisah yang perlu mengatur koneksi VPC atau VPN untuk koneksi pribadi. Kami juga harus menyimpan salinan gambar di akun terpisah.
Di Google Cloud, sebagian besar sumber daya bersifat global atau regional. Sumber daya tersebut termasuk panel kontrol (di mana kita dapat melihat semua mesin virtual proyek kami pada satu layar), gambar disk, wadah untuk menyimpan data (beberapa wilayah di benua), VPC (tetapi subnet terpisah bersifat regional), penyeimbangan beban global, publikasi dan berlangganan, dll.

⊹ Data besar:
Kami pindah dari konfigurasi analitik monolitik, sulit dikelola ke sistem BQ yang dikelola sepenuhnya, yang menghasilkan peningkatan di tiga bidang:
● Peningkatan kecepatan pemrosesan permintaan hingga 50 kali.
● Sistem pemrosesan data yang dikelola sepenuhnya dengan penskalaan otomatis.
● Waktu pemrosesan data telah berkurang dari jam menjadi 15 menit.
⊹ Pengisian:
Sulit untuk membandingkan penyedia layanan cloud yang berbeda, karena banyak layanan yang tidak serupa atau sebanding, berbeda untuk skenario penggunaan yang berbeda dan bergantung pada skenario penggunaan yang unik.
Manfaat GCP:
● Diskon penggunaan jangka panjang: Diterapkan dengan meningkatnya penggunaan mesin virtual saat ambang tertentu tercapai. Kami dapat secara otomatis menerima diskon hingga 30% pada beban kerja yang dilakukan selama sebagian besar bulan akuntansi.
● Penagihan per menit: Saat mengalokasikan mesin virtual di GCE, biaya dibebankan untuk jangka waktu minimum 10 menit, setelah itu penagihan per menit untuk penggunaan aktual mesin virtual dimulai. Ini memberikan pengurangan biaya yang signifikan, karena kami tidak perlu membayar satu jam penuh, bahkan jika mesin virtual beroperasi kurang dari satu jam.
● Peralatan yang unggul, jumlah yang lebih sedikit: Kami telah menemukan bahwa untuk hampir semua level dan aplikasi, menggunakan GCP, Anda dapat melakukan beban kerja yang sama dengan kinerja yang sama tetapi jumlah yang lebih sedikit.
● Komitmen daripada redundansi: Faktor lain adalah pendekatan GCP terhadap harga mesin virtual. Dalam AWS, cara utama untuk mengurangi biaya mesin virtual adalah dengan membeli mesin virtual yang dipesan untuk jangka waktu 1-3 tahun. Jika beban kerja yang diperlukan mengubah konfigurasi mesin virtual atau kami tidak membutuhkan mesin virtual ini, kami harus menjualnya di pasar untuk mesin virtual yang dipesan dengan harga yang lebih rendah. GCP memiliki "Komitmen Diskon Komitmen" yang berlaku saat memesan sumber daya prosesor dan memori, tidak masalah mesin virtual mana yang kami gunakan.
Kesimpulan:
Berdasarkan analisis terperinci ini, kami memutuskan untuk beralih ke GCP dan mulai bekerja pada skema transisi dan daftar periksa. Pada artikel selanjutnya, kita akan berbicara tentang apa yang kita pelajari selama implementasi proyek ini.