Membusuk monolit menjadi layanan mikro - AWS Bimbingan Preskriptif

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

Membusuk monolit menjadi layanan mikro

Tabby Ward dan Dmitry Gulin, Amazon Web Services (AWS)

April 2023 (riwayat dokumen)

Migrasi ke Amazon Web Services (AWS) Cloud memiliki banyak keuntungan, termasuk kelincahan teknis dan bisnis, peluang pendapatan baru, dan pengurangan biaya. Untuk sepenuhnya mendapatkan keuntungan dari keuntungan ini, Anda harus terus memodernisasi perangkat lunak organisasi Anda dengan refactoring aplikasi monolitik Anda menjadi microservices. Proses ini terdiri dari tiga langkah utama:

Modernisasi biasanya melibatkan dua jenis proyek:

  • Proyek Brownfield melibatkan pengembangan dan penyebaran sistem perangkat lunak baru dalam konteks sistem yang ada atau warisan.

  • Proyek Greenfield melibatkan pembuatan sistem dari awal untuk lingkungan yang sama sekali baru, tanpa kode warisan yang terlibat.

Untuk proyek brownfield, salah satu langkah pertama dalam perjalanan modernisasi aplikasi Anda adalah menguraikan monolit dalam portofolio Anda menjadi layanan mikro.

Sebagian besar aplikasi dimulai sebagai monolit yang dirancang untuk kasus penggunaan bisnis tertentu. Jika arsitektur monolit tidak menegakkan desain modular, monolit dapat tetap menjadi pilihan yang valid untuk aplikasi yang tidak memiliki tanggung jawab yang jelas dalam batas-batas pengetahuan domain yang mapan. Karakteristik sentral monolit sebagai satu unit penyebaran juga dapat membantu mengurangi kekurangan desain, seperti kopling ketat atau kurangnya struktur internal.

Meskipun monolit dapat menjadi pilihan yang valid untuk beberapa kasus penggunaan, biasanya tidak cocok untuk aplikasi modern. Struktur internal monolit yang didefinisikan dengan buruk dapat menyulitkan pemeliharaan kode, yang menciptakan kurva belajar yang curam untuk pengembang baru dan menyebabkan biaya dukungan tambahan. Kopling tinggi dan kohesi rendah dapat secara signifikan meningkatkan waktu yang diperlukan untuk menambahkan fitur baru, dan Anda mungkin tidak dapat menskalakan komponen individual berdasarkan pola lalu lintas. Monolit juga membutuhkan banyak tim untuk berkoordinasi untuk satu rilis besar, yang meningkatkan kolaborasi dan beban transfer pengetahuan. Akhirnya, Anda dapat menemukan bahwa menambahkan fitur baru atau membangun pengalaman pengguna baru menjadi sulit ketika bisnis atau basis pengguna Anda tumbuh.

Untuk menghindari hal ini, Anda dapat menggunakan pola dekomposisi untuk memecah aplikasi monolitik, mengubahnya menjadi beberapa layanan mikro, dan memigrasinya ke arsitektur layanan mikro. Arsitektur layanan mikro menyusun aplikasi sebagai serangkaian layanan yang digabungkan secara longgar. Layanan mikro dirancang untuk mempercepat pengembangan perangkat lunak dengan memungkinkan proses deployment berkelanjutan (CI/CD).

Sebelum Anda memulai proses dekomposisi, Anda harus mengevaluasi monolit mana yang akan terurai. Pastikan untuk menyertakan monolit yang memiliki masalah keandalan atau kinerja, atau sertakan beberapa komponen dalam arsitektur yang digabungkan erat. Kami juga menyarankan agar Anda memahami sepenuhnya kasus penggunaan bisnis untuk monolit, teknologinya, dan antar-dependensinya dengan aplikasi lain.

Panduan ini ditujukan untuk pemilik aplikasi, pemilik bisnis, arsitek, prospek teknis, dan manajer proyek. Ini membahas enam pola cloud-native berikut yang digunakan untuk menguraikan monolit, dan menjelaskan kelebihan dan kekurangan masing-masing:

Panduan ini merupakan bagian dari rangkaian konten yang mencakup pendekatan modernisasi aplikasi yang direkomendasikan olehAWS. Serial ini juga mencakup:

Hasil kerja yang ditargetkan kerja

Anda harus mengharapkan hasil berikut setelah Anda menguraikan monolit Anda menjadi layanan mikro:

  • Transisi yang efisien dari aplikasi monolitik Anda ke dalam arsitektur layanan mikro.

  • Penyesuaian cepat terhadap permintaan bisnis yang berfluktuasi tanpa mengganggu aktivitas inti, seperti skalabilitas tinggi, peningkatan ketahanan, pengiriman berkelanjutan, dan isolasi kegagalan.

  • Inovasi lebih cepat, karena setiap layanan mikro dapat diuji dan digunakan secara individual.