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 pada mereka akan sulit, karena memecahnya menjadi potongan-potongan kecil saat 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 atas pohon. 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 layanan mikro dengan mengganti fungsi tertentu dengan layanan baru. Tujuannya adalah agar versi warisan dan modern baru hidup berdampingan. Sistem baru ini awalnya didukung oleh, dan membungkus, sistem yang ada. Dukungan ini memberi sistem baru waktu 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: mengubah, hidup berdampingan, dan menghilangkan:

  • Transform — Mengidentifikasi dan membuat komponen modern baik dengan porting atau menulis ulang mereka secara paralel dengan aplikasi lama.

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

  • Hilangkan — Pensiun fungsi lama dari monolit karena lalu lintas dialihkan dari monolit warisan ke layanan modern.

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

Tabel berikut menjelaskan keuntungan dan kerugian menggunakan pola ara pencekik.

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

  • Menyimpan layanan lama dalam permainan saat refactoring ke versi yang diperbarui.

  • Memberikan kemampuan untuk menambahkan layanan dan fungsionalitas baru sambil memfaktorkan ulang layanan lama.

  • Pola ini dapat digunakan untuk pembuatan versi. APIs

  • 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 dirutekan.

  • 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 paralel, 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 menghapus 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.

Menguraikan monolit menjadi layanan mikro dengan menggunakan pola ara pencekik