Pola ara pencekik - AWS Panduan Preskriptif

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pola ara pencekik

Pola desain yang dibahas sejauh ini dalam panduan ini berlaku untuk aplikasi penguraian untuk proyek greenfield. Bagaimana dengan proyek brownfield yang melibatkan aplikasi monolitik besar? Menerapkan pola desain sebelumnya kepada mereka akan sulit, karena memecahnya menjadi potongan-potongan kecil saat mereka sedang digunakan secara aktif adalah tugas besar.

Pola ara pencekik adalah pola desain populer yang diperkenalkan oleh Martin Fowler, yang terinspirasi oleh jenis ara tertentu yang berbiji di cabang-cabang pohon bagian atas. Pohon yang ada awalnya menjadi struktur pendukung untuk ara baru. Ara kemudian mengirimkan akarnya ke tanah, secara bertahap menyelimuti pohon asli dan hanya menyisakan ara baru yang mandiri di tempatnya.

Pola ini biasanya digunakan untuk secara bertahap mengubah aplikasi monolitik menjadi microservices dengan mengganti fungsionalitas tertentu dengan layanan baru. Tujuannya adalah agar versi warisan dan baru yang dimodernisasi untuk hidup berdampingan. Sistem baru awalnya didukung oleh, dan membungkus, sistem yang ada. Dukungan ini memberikan waktu sistem baru untuk tumbuh dan berpotensi menggantikan sistem lama sepenuhnya.

Proses transisi dari aplikasi monolitik ke layanan mikro dengan menerapkan pola ara pencekik terdiri dari tiga langkah: transformasi, hidup berdampingan, dan menghilangkan:

  • Transform - Identifikasi dan buat komponen modern baik dengan mem-porting atau menulis ulang secara parallel dengan aplikasi lama.

  • Hidup berdampingan - Jauhkan aplikasi monolit untuk rollback. Mencegat panggilan sistem luar dengan memasukkan proxy HTTP (misalnya, Amazon API Gateway) di perimeter monolit Anda dan mengarahkan lalu lintas ke versi modern. Ini membantu Anda menerapkan fungsionalitas secara bertahap.

  • Hilangkan - Pensiun fungsionalitas lama dari monolit saat lalu lintas dialihkan dari monolit warisan ke layanan modern.

AWS Migration Hub Refactor Spacesadalah titik awal untuk refactoring aplikasi inkremental ke layanan mikro aktifAWS. Refactor Spaces menyediakan aplikasi yang memodelkan pola ara strangler untuk refactoring inkremental. Aplikasi Refactor Spaces mengatur kebijakan API Gateway, Network Load Balancer, dan berbasis sumber dayaAWS Identity and Access Management (IAM) sehingga Anda dapat secara transparan menambahkan layanan baru ke titik akhir HTTP eksternal.

Tabel berikut menjelaskan kelebihan dan kekurangan penggunaan pola ara pencekik.

Keuntungan Kekurangan
  • Memungkinkan migrasi anggun dari layanan ke satu atau lebih layanan pengganti.

  • Menjaga layanan lama dalam bermain sementara refactoring ke versi terbaru.

  • Memberikan kemampuan untuk menambahkan layanan baru dan fungsionalitas sementara refactoring layanan lama.

  • Pola ini dapat digunakan untuk versi API.

  • Pola ini dapat digunakan untuk interaksi lama untuk solusi yang tidak atau tidak akan ditingkatkan.

  • Tidak cocok untuk sistem kecil di mana kompleksitasnya rendah dan ukurannya kecil.

  • Tidak dapat digunakan dalam sistem di mana permintaan ke sistem backend tidak dapat dicegat dan diarahkan.

  • Lapisan proxy atau fasad dapat menjadi satu titik kegagalan atau hambatan kinerja jika tidak dirancang dengan benar.

  • Membutuhkan rencana rollback untuk setiap layanan refactored untuk kembali ke cara lama melakukan sesuatu dengan cepat dan aman jika ada yang salah.

Ilustrasi berikut menunjukkan bagaimana monolit dapat dibagi menjadi layanan mikro dengan menerapkan pola ara pencekik ke arsitektur aplikasi. Kedua sistem berfungsi secara parallel, tetapi Anda akan mulai memindahkan fungsionalitas di luar basis kode monolit dan meningkatkannya dengan kemampuan baru. Kemampuan baru ini memberi Anda kesempatan untuk merancang layanan mikro dengan cara yang paling sesuai dengan kebutuhan Anda. Anda akan terus menghilangkan kemampuan dari monolit sampai semuanya digantikan oleh layanan mikro. Pada saat itu, Anda dapat menghilangkan aplikasi monolit. Poin kunci yang perlu diperhatikan di sini adalah bahwa monolit dan layanan mikro akan hidup bersama untuk jangka waktu tertentu.

Membusuk monolit menjadi layanan mikro dengan menggunakan pola ara pencekik