WordPress di Azure Kubernetes Service
Artikel ini menjelaskan solusi kontainer yang menghosting instalasi WordPress yang besar dan intensif penyimpanan di Azure. Solusi ini memaksimalkan skalabilitas dan keamanan. Komponen utama termasuk Azure Front Door, Azure Kubernetes Service (AKS), dan Azure NetApp Files.
Sistem
Unduh file Visio arsitektur ini.
Catatan
Anda dapat memperluas solusi ini dengan menerapkan tips dan rekomendasi yang berlaku untuk metode hosting WordPress apa pun. Untuk tips umum tentang cara menyebarkan penginstalan WordPress, lihat WordPress di Azure.
Aliran data
Aliran data berikut sesuai dengan diagram sebelumnya:
Pengguna mengakses situs web front-end melalui Azure Front Door dengan Azure Web Application Firewall diaktifkan.
Azure Front Door menggunakan instans internal Azure Load Balancer sebagai asal. Load balancer internal adalah komponen tersembunyi dari AKS. Azure Front Door mengambil data apa pun yang tidak di-cache.
Load balancer internal mendistribusikan lalu lintas masuk ke pod dalam AKS.
Azure Key Vault menyimpan rahasia, termasuk kunci privat, yang merupakan sertifikat X.509.
Aplikasi WordPress menggunakan titik akhir privat untuk mengakses instans Server Fleksibel Azure Database for MySQL. Aplikasi WordPress mengambil informasi dinamis dari layanan database terkelola ini.
Semua konten statis dihosting di Azure NetApp Files. Solusi ini menggunakan driver Astra Trident Container Storage Interface (CSI) dengan protokol Network File System (NFS).
Komponen
AKS adalah layanan Kubernetes terkelola yang dapat Anda gunakan untuk menyebarkan, mengelola, dan menskalakan aplikasi dalam kontainer. Dalam arsitektur ini, AKS menghosting kontainer WordPress dan menyediakan platform orkestrasi yang menjalankan aplikasi WordPress dalam kontainer untuk memastikan ketersediaan dan skalabilitas tinggi.
Azure Cache for Redis adalah layanan penyimpanan dan penembolokan data dalam memori terkelola. Dalam arsitektur ini, Azure Cache for Redis menghosting cache kunci-nilai yang dibagikan semua pod. Plug-in pengoptimalan performa WordPress menggunakan cache untuk meningkatkan waktu respons.
Azure Database for MySQL - Server Fleksibel adalah layanan database relasional terkelola berdasarkan mesin database MySQL sumber terbuka. Dalam arsitektur ini, database ini menyimpan data WordPress.
Azure DDoS Protection adalah layanan keamanan jaringan yang menyediakan fitur mitigasi penolakan layanan terdistribusi (DDoS) yang ditingkatkan. Dalam arsitektur ini, DDoS Protection membantu melindungi dari serangan DDoS ketika dikombinasikan dengan praktik terbaik desain aplikasi dan diaktifkan di jaringan perimeter.
Azure Front Door adalah jaringan pengiriman konten cloud modern dan penyeimbang beban global. Dalam arsitektur ini, Azure Front Door adalah titik masuk publik ke dalam penyebaran WordPress.
Azure NetApp Files adalah solusi penyimpanan terkelola, intensif performa, dan sensitif terhadap latensi. Dalam arsitektur ini, Azure NetApp Files menghosting konten WordPress sehingga semua pod memiliki akses ke data bersama melalui penyimpanan file berkinerja tinggi.
Azure Virtual Network adalah layanan jaringan yang memungkinkan sumber daya yang disebarkan untuk berkomunikasi satu sama lain, internet, dan jaringan lokal. Dalam arsitektur ini, jaringan virtual menyediakan isolasi dan segmentasi.
Key Vault adalah layanan cloud yang menyimpan dan mengontrol akses ke rahasia, sertifikat, kunci, dan kata sandi. Dalam arsitektur ini, Key Vault menyediakan rahasia ke kluster AKS jika pod membutuhkannya.
Load Balancer adalah load balancer lapisan-4 yang mendistribusikan lalu lintas masuk berdasarkan aturan dan hasil pemeriksaan kesehatan. Dalam arsitektur ini, load balancer mendistribusikan lalu lintas dari Azure Front Door ke pod pengontrol ingress dengan latensi rendah dan throughput tinggi.
Kelompok keamanan jaringan (NSG) adalah fitur keamanan yang menggunakan aturan keamanan untuk mengizinkan atau menolak lalu lintas jaringan masuk atau keluar berdasarkan alamat IP sumber atau tujuan, port, dan protokol. Dalam arsitektur ini, aturan NSG membatasi arus lalu lintas antara komponen aplikasi di subnet.
Alternatif
Alih-alih menggunakan layanan terkelola Azure Cache for Redis, Anda dapat menggunakan pod yang dihost sendiri dalam kluster AKS sebagai cache.
Alih-alih menggunakan solusi penyimpanan terkelola seperti Azure NetApp Files, Anda dapat menggunakan solusi yang dihost sendiri seperti penyimpanan Rook-Ceph. Untuk informasi selengkapnya, lihat Menggunakan Rook Ceph di AKS.
Alih-alih menggunakan AKS, Anda dapat menggunakan Azure Container Apps untuk menghosting beban kerja WordPress dalam kontainer. Container Apps adalah layanan kontainer tanpa server terkelola yang sesuai dengan skenario yang lebih sederhana atau berskala lebih kecil. Untuk penyebaran besar, intensif penyimpanan, dan sangat dapat disesuaikan, gunakan AKS.
Detail skenario
Contoh skenario ini berfungsi paling baik untuk penginstalan besar dan intensif penyimpanan WordPress. Model penyebaran ini dapat menskalakan untuk memenuhi lonjakan lalu lintas ke situs.
Kemungkinan kasus penggunaan
- Blog lalu lintas tinggi yang menggunakan WordPress sebagai sistem manajemen konten mereka
- Situs web bisnis atau e-niaga yang menggunakan WordPress
Pertimbangan
Pertimbangan ini mengimplementasikan pilar Azure Well-Architected Framework, yang merupakan serangkaian tenet panduan yang dapat Anda gunakan untuk meningkatkan kualitas beban kerja. Untuk informasi selengkapnya, lihat Well-Architected Framework.
Keandalan
Keandalan membantu memastikan bahwa aplikasi Anda dapat memenuhi komitmen yang Anda buat kepada pelanggan Anda. Untuk informasi selengkapnya, lihat Daftar periksa tinjauan desain untuk Keandalan.
Pertimbangkan rekomendasi berikut saat Anda menyebarkan solusi ini:
Gunakan pod di AKS dan load balancer untuk mendistribusikan lalu lintas ingress. Pendekatan ini memberikan ketersediaan tinggi meskipun kegagalan pod terjadi.
Tempatkan semua komponen jaringan di belakang Azure Front Door. Pendekatan ini membuat sumber daya jaringan dan aplikasi tahan terhadap masalah yang dapat mengganggu lalu lintas dan memengaruhi akses pengguna.
Gunakan Azure Front Door untuk menyimpan semua respons untuk mendapatkan manfaat ketersediaan kecil. Secara khusus, ketika asal tidak merespons, Anda masih dapat mengakses konten. Tetapi penembolokan tidak menyediakan solusi ketersediaan lengkap.
Replikasi penyimpanan Azure NetApp Files antar wilayah yang dipasangkan untuk meningkatkan ketersediaan. Untuk informasi selengkapnya, lihat Memahami replikasi Azure NetApp Files.
Ikuti opsi ketersediaan tinggi yang memenuhi kebutuhan Anda untuk meningkatkan ketersediaan Azure Database for MySQL.
Solusi ini mendukung beberapa wilayah, replikasi data, dan penskalaan otomatis. Komponen mendistribusikan lalu lintas ke pod. Pemeriksaan kesehatan memastikan bahwa hanya pod yang sehat yang menerima lalu lintas.
Azure Front Door adalah layanan global yang mendukung set skala komputer virtual yang disebarkan di wilayah lain.
Keamanan
Keamanan memberikan jaminan terhadap serangan yang disukai dan penyalahgunaan data dan sistem berharga Anda. Untuk informasi selengkapnya, lihat Daftar periksa tinjauan desain untuk Keamanan.
Pertimbangkan praktik terbaik berikut saat Anda menyebarkan solusi ini:
Gunakan Web Application Firewall di Azure Front Door untuk membantu melindungi lalu lintas jaringan virtual yang mengalir ke tingkat aplikasi front-end. Untuk informasi selengkapnya, lihat Web Application Firewall di Azure Front Door.
Jangan izinkan lalu lintas internet keluar mengalir dari tingkat database.
Jangan izinkan akses publik ke penyimpanan privat, dan nonaktifkan akses publik ke sumber daya. Gunakan titik akhir privat untuk Azure Database for MySQL, Azure Cache for Redis, Key Vault, dan Azure Container Registry. Untuk informasi selengkapnya, lihat Azure Private Link.
Untuk informasi selengkapnya, lihat Tips keamanan dan performa WordPress Umum dan dokumentasi keamanan Azure.
Pengoptimalan Biaya
Pengoptimalan Biaya berfokus pada cara untuk mengurangi pengeluaran yang tidak perlu dan meningkatkan efisiensi operasional. Untuk informasi selengkapnya, lihat Daftar periksa tinjauan desain untuk optimalisasi biaya.
Tinjau pertimbangan biaya berikut saat Anda menyebarkan solusi ini:
Ekspektasi lalu lintas (GB/bulan): Volume lalu lintas Anda memiliki efek terbesar pada biaya Anda. Jumlah lalu lintas yang Anda terima menentukan jumlah simpul AKS yang diperlukan dan harga untuk transfer data keluar. Volume lalu lintas juga berkorelasi langsung dengan jumlah data yang disediakan jaringan pengiriman konten Anda, di mana biaya transfer data keluar lebih murah.
Jumlah data yang dihosting: Pertimbangkan jumlah data yang Anda host, karena harga Azure NetApp Files didasarkan pada kapasitas yang dipesan. Untuk mengoptimalkan biaya, pesan kapasitas minimum yang diperlukan untuk data Anda.
Persentase tulis: Pertimbangkan berapa banyak data baru yang Anda tulis ke situs web Anda dan biaya untuk menyimpannya. Untuk penyebaran multi-wilayah, jumlah data baru yang Anda tulis ke situs web Anda berkorelasi dengan jumlah data yang dicerminkan di seluruh wilayah Anda.
Konten statis versus dinamis: Pantau performa dan kapasitas penyimpanan database Anda untuk menentukan apakah SKU yang lebih murah dapat mendukung situs Anda. Database menyimpan konten dinamis, dan jaringan pengiriman konten menyimpan konten statis.
Pengoptimalan kluster AKS: Ikuti tips umum untuk AKS, seperti panduan tentang ukuran komputer virtual (VM) dan reservasi Azure, untuk mengoptimalkan biaya kluster AKS Anda. Untuk informasi selengkapnya, lihat Pengoptimalan Biaya AKS.
Efisiensi Performa
Efisiensi Performa mengacu pada kemampuan beban kerja Anda untuk menskalakan untuk memenuhi tuntutan pengguna secara efisien. Untuk informasi selengkapnya, lihat Daftar periksa tinjauan desain untuk Efisiensi Kinerja.
Skenario ini menggunakan pod di AKS untuk menghosting ujung depan. Fitur skala otomatis memungkinkan jumlah pod yang menjalankan tingkat aplikasi front-end untuk menskalakan secara otomatis sebagai respons terhadap permintaan pelanggan. Mereka juga dapat menskalakan berdasarkan jadwal yang ditentukan. Untuk informasi selengkapnya, lihat Opsi penskalaan untuk aplikasi di AKS.
Penting
Untuk performa terbaik, pasang volume persisten yang menggunakan protokol NFS versi 4.1. Contoh YAML berikut menunjukkan cara mengonfigurasi PersistentVolume objek untuk tujuan ini. Perhatikan nilai mountOptions bidang .
kind: PersistentVolume
...
accessModes:
- ReadWriteMany
mountOptions:
- vers=4.1
nfs:
server: xx.xx.xx.xx
Kontributor
Microsoft mempertahankan artikel ini. Kontributor berikut menulis artikel ini.
Penulis utama:
- Vaclav Jirovsky | Arsitek Solusi Cloud
Kontributor lainnya:
- Adrian Calinescu | Arsitek Solusi Cloud Senior
Untuk melihat profil LinkedIn nonpublik, masuk ke LinkedIn.
Langkah berikutnya
Dokumentasi produk:
- Gambaran umum Azure Front Door
- Gambaran umum Web Application Firewall
- Gambaran umum Azure NetApp Files
- Membuat volume NFS untuk File Azure NetApp
- Mengonfigurasi Azure NetApp Files untuk AKS
- Server Fleksibel Azure Database for MySQL
- Gambaran umum Virtual Network
- Gambaran umum Key Vault
- Gambaran umum Load Balancer
- Gambaran umum DDoS Protection
Modul pelatihan Microsoft:
- Mengembangkan dan menyebarkan aplikasi di Kubernetes
- Pengenalan Azure NetApp Files
- Menerapkan Key Vault
- Pengantar Virtual Network