Penerapan Biru Hijau & Drupal - Seberapa Banyak yang Anda Ketahui?

Diterbitkan: 2019-07-23

Blue Green Deployment adalah salah satu strategi penerapan andalan yang mengatasi keterbatasan pendekatan tradisional untuk penerapan aplikasi. Seberapa banyak yang Anda ketahui tentang Blue Green Deployment? Bagaimana Penerapan Blue Green di Drupal?

Ya, Anda membacanya dengan benar. Harus membuat aplikasi Anda offline untuk pembaruan atau saat meluncurkan versi yang lebih baru adalah tugas yang menakutkan dan sangat merepotkan. Benar bahwa Anda dapat mengurangi ini dengan waktu henti yang dijadwalkan, tetapi itu bukan sesuatu yang akan membuat pelanggan senang. Beberapa situs benar-benar kehilangan ribuan dolar setiap menitnya! Haruskah penerapan atau peningkatan versi aplikasi Anda menjadi alasan sebenarnya di balik kerugian Anda?

Pelajari tentang mengapa penerapan biru hijau adalah strategi terbaik untuk mengurangi waktu henti dan mengurangi risiko lain yang terlibat dalam penerapan aplikasi. Temukan lebih lanjut tentang penerapan hijau biru & Drupal.

Apa itu Penerapan Biru-Hijau?

Blue-Green Deployment adalah teknik untuk melepaskan aplikasi dengan menggeser atau memindahkan lalu lintas antara dua lingkungan identik yang menjalankan dua versi aplikasi yang berbeda.

Singkatnya, ada versi aplikasi, sebut saja "versi biru" dalam produksi. Dan kemudian, ada router yang digunakan untuk mengarahkan lalu lintas ke aplikasi. Sekarang Anda membutuhkan versi lain. "versi hijau" dengan lebih banyak barang ditambahkan, untuk digunakan. Namun, Anda juga ingin memastikan bahwa saat penerapan ini terjadi, pengguna masih dapat melihat aplikasi Anda, menekan tombol, atau melakukan apa pun yang diinginkannya, tanpa aplikasi Anda turun! Lebih seperti menyebarkan "versi hijau" secara diam-diam sementara "versi biru" menangani semua lalu lintas sementara itu, sebelum akhirnya menukar koneksi.

penerapan_biru_hijau

Dengan kemampuan rilis dan rollback waktu henti hampir nol, ide mendasar dari Blue-Green Deployment adalah untuk mengalihkan lalu lintas antara dua lingkungan identik yang menjalankan dua versi aplikasi yang berbeda. Sementara versi aplikasi saat ini diwakili oleh lingkungan Biru, yang hijau dipentaskan dengan menjalankan versi yang berbeda.

Mengapa Penerapan Biru-Hijau?

Salah satu tantangan utama dengan mengotomatisasi proses penerapan adalah cut-over itu sendiri, yaitu memindahkan aplikasi dari tahap akhir pengujian ke tahap langsung. Dan ini harus ditangani dengan cepat untuk meminimalkan segala jenis downtime. Inilah yang dilakukan penyebaran biru-hijau. Dengan dua lingkungan produksi (seidentik mungkin di alam), pada titik waktu tertentu, salah satunya adalah live. Dan saat Anda bersiap untuk rilis baru, Anda melakukan semua pengujian di lingkungan lain yang tidak aktif. Setelah Anda siap untuk melakukan roll, yang harus Anda lakukan adalah mengganti router sehingga semua lalu lintas Anda diarahkan ke rilis terbaru Anda & lingkungan lainnya tidak berfungsi.

Selain itu, penerapan Blue-Green menyediakan salah satu fitur terpenting, rollback cepat. Misalkan jika ada yang salah dengan rilis terbaru Anda, Anda hanya perlu mengganti kembali router. Meskipun mungkin masih ada masalah dengan transaksi yang hilang saat lingkungan yang salah ditayangkan, Anda juga dapat mendesainnya sedemikian rupa sehingga kedua lingkungan Anda diumpankan dengan transaksi dan yang satu bertindak sebagai cadangan untuk yang lain.

Bagaimana Deployment Biru-Hijau?

Sekarang setelah kita mengetahui tentang dua lingkungan Penerapan Biru-Hijau, mari kita lihat beberapa praktik terbaik untuk menerapkan hal yang sama.

  • Load Balancing melalui Pengalihan DNS

Ingatlah bahwa saat berpindah lingkungan, buat domain Anda pada akhirnya mengarah ke server yang berbeda. Alih-alih pergi ke catatan DNS & membuat perubahan dalam antarmuka manajemen DNS, gunakan penyeimbangan beban.

Masalah dengan membuat perubahan dalam catatan DNS hanya akan menghasilkan jejak lalu lintas yang panjang. Ini berarti bahwa meskipun beberapa pengguna Anda masih akan dilayani oleh lingkungan lama, Anda bahkan tidak akan memiliki kendali penuh atas ke mana lalu lintas Anda diarahkan.

Namun, penyeimbang beban akan memungkinkan Anda untuk mengatur server baru Anda segera dan Anda tidak perlu bergantung pada mekanisme DNS. Dengan cara ini, Anda akan memiliki kontrol penuh pada lalu lintas dan Anda dapat benar-benar yakin bahwa semua lalu lintas dialihkan ke lingkungan baru.

  • Pembaruan Bergulir

JANGAN beralih semua server Anda sekaligus. Jalankan pembaruan bergulir sebagai gantinya. Artinya, alih-alih beralih ke server Hijau dari yang Biru sekaligus, bekerjalah dengan lingkungan yang terintegrasi. Tambahkan satu server baru, pensiunkan yang lama. Ulangi sampai setiap server baru ada di tempatnya. Ini akan mengurangi waktu henti Anda dengan margin yang sangat besar!

  • Pemantauan Lingkungan

Meskipun pemantauan lingkungan hidup sudah jelas, Anda tidak ingin berakhir lengah dengan tidak memantau lingkungan lain. Ya, pemantauan lingkungan lain kurang kritis. Namun, karena lingkungan yang sama dapat bertindak sebagai kedua status, Anda memerlukan cara yang lebih mudah untuk mengalihkan peringatan di antara keduanya. Siapkan token API yang berbeda untuk dua lingkungan yang melaporkan kembali, atau secara terprogram mengubah kebijakan peringatan di lingkungan saat perannya diubah/diganti.

  • Otomatisasi

Serangkaian tindakan manual hanya akan meningkatkan pekerjaan Anda. Alih-alih, buat skrip setiap tindakan dalam proses peralihan. Mengotomatiskan proses sakelar akan menghasilkan implementasi Blue-Green Deployment yang lebih cepat, lebih mudah, dan lebih aman.

Penerapan Biru Hijau untuk Situs Web Drupal

Masalah

  • Selama penerapan kode, Drupal perlu menjalankan pembaruan basis data untuk beroperasi dan ini merupakan masalah besar karena pembaruan Drupal mengatur situs web dalam mode pemeliharaan dan pengguna Anda akan disambut dengan layar putih yang indah ini.
Pemeliharaan Drupal
Sumber: drupal.org

Jika penyebaran gagal, maka rollback hanya dimungkinkan dengan memulihkan database dari dump, mengingat skema database mungkin telah dimodifikasi. Ini berarti waktu henti!

Solusi: Penyebaran Biru Hijau!

Mari kita lihat beberapa ikhtisar infrastruktur untuk mengimplementasikan Blue Green Deployment dengan Drupal. Setiap jenis operasi di Drupal membutuhkan Nginx dan server php (terutama untuk menjalankan Drupal), kita memerlukan database, penyimpanan file, beberapa cache, dan tumpukan dirancang sedemikian rupa sehingga sangat tersedia.

Dengan Blue Green Deployment, Anda perlu menerapkan tumpukan baru dengan basis kode baru dan menyalin semua basis data Anda dan status yang berbeda dari basis kode sebelumnya, sebaiknya menggunakan Drush.

gambaran umum infrastruktur
Sumber: Drupal Con Seattle 2019

Setelah dua tumpukan berbeda diatur, tumpukan pementasan harus diuji secara independen dari tumpukan produksi. Pada dasarnya, Anda memerlukan pengguna untuk membuka tumpukan (tumpukan produksi) dan menguji versi situs web yang digunakan. Dan ketika versi lain (tumpukan pementasan) sudah siap, Anda hanya perlu membalik versinya. Sekarang pengguna diarahkan ke tumpukan baru dan versi yang lebih lama tersedia untuk pengujian.

Penerapan Biru Hijau dengan Docker

Deployment di Drupal tidak mudah. Meskipun Anda harus memastikan bahwa kode disebarkan, dependensi komposer ditangani, pembaruan skema mutakhir dan semua cache dihapus, Anda juga perlu memastikan bahwa "situs web responsif" aktif dan berjalan. Dan apa yang terjadi jika ada masalah dan penerapan gagal? Apakah Anda mundur? Atau menghentikan penyebaran?

Ungkapan yang Anda cari, adalah Blue Green Deployment

Selama penerapan Drupal, Docker memastikan peralihan yang mudah antar aplikasi, dan membuatnya mudah untuk membangun dan menjalankan berbagai versi yang sama. Pada instance EC2, selalu ada satu set wadah buruh pelabuhan berwarna biru dan hijau, dan nginx berfungsi sebagai server proxy terbalik. Penyebaran hijau biru dengan Docker memungkinkan pengguna untuk membangun situs web Drupal yang berjalan paralel di dua lingkungan yang berbeda.


Penerapan Biru Hijau dengan AWS

Meskipun secara historis, penerapan biru hijau bukanlah pilihan pertama untuk menerapkan perangkat lunak di tempat karena biaya dan kerumitannya yang tinggi, container telah mengubah persepsi ini untuk selamanya.

Container memudahkan adopsi penerapan blue green karena paketnya yang mudah dan perilakunya yang konsisten saat berpindah antar lingkungan. Dan untuk mengubah konfigurasi container, Anda hanya perlu memperbarui dockerfile-nya dan membangun kembali serta menerapkan ulang container di tempatnya daripada memperbarui perangkat lunak.

Amazon ECS melakukan pembaruan bergulir ini saat Anda memperbarui layanan Amazon ECS yang ada. Pembaruan bergulir untuk penyebaran hijau biru ecs melibatkan penggantian versi wadah yang ada dengan yang terbaru. Jumlah container yang ditambahkan atau dihapus Amazon ECS selama pembaruan ini dikontrol dengan menyesuaikan jumlah maksimum dan minimum tugas yang sehat yang diizinkan selama penerapan layanan. Setelah pembaruan, definisi tugas layanan diperbarui dengan versi terbaru dari gambar container, Amazon ECS secara otomatis mulai mengganti versi lama penampung dengan yang terbaru.

Penerapan AWS biru hijau

Penerapan hijau biru dengan AWS ECS juga akan memberikan manfaat pengoptimalan karena Anda tidak terikat pada kumpulan sumber daya yang sama. Artinya, ketika amplop kinerja aplikasi berubah dari satu versi ke versi lainnya, Anda cukup meluncurkan lingkungan baru dengan sumber daya yang dioptimalkan (bisa lebih sedikit jumlahnya atau kumpulan sumber daya yang sama sekali berbeda).

Penerapan hijau biru di AWS juga cocok dengan integrasi berkelanjutan dan alur kerja penerapan, menjaga kompleksitasnya dengan memungkinkan otomatisasi penerapan mempertimbangkan lebih sedikit ketergantungan pada lingkungan yang ada.

Solusi ini memungkinkan pengguna untuk dengan mudah mengelola penyebaran dan skalabilitas platform web tanpa membuang waktu. Penyebaran ini membantu dalam mengonfigurasi lingkungan ketersediaan tinggi yang akan menjalankan situs web Drupal tanpa masalah.