Orkestrasi - AWS Bimbingan Preskriptif

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

Orkestrasi

Dalam pendekatan ini, orkestrator tunggal bertanggung jawab untuk memanggil setiap layanan mikro, menentukan apakah akan mengeluarkan panggilan secara berurutan atau paralel, memanipulasi respons layanan individu di sepanjang jalan, dan menyusun hasil akhirnya. Orkestrator dapat mencampur pemanggilan sinkron dan asinkron.

AWS Step Functionsdan Alur Kerja Terkelola Amazon untuk Apache Airflow (Amazon MWAA) adalah pilihan bagus untuk orkestrator alur kerja.

Orkestrasi adalah pilihan yang baik ketika ada cabang logis dalam proses Anda dan Anda memerlukan satu tempat untuk merangkum logika itu. Ini juga berguna ketika Anda ingin menerapkan pola pemeriksaan klaim asinkron. Misalnya, alur kerja standar di Step Functions dapat menjeda alur kerja dan menunggu panggilan balik dari layanan lain. Menggunakan orkestrator juga meningkatkan pemantauan dan observabilitas suatu proses.

Contoh: Step Functions

Anda dapat menggunakan Step Functions untuk mengoordinasikan beberapa fungsi Lambda dan lainnya Layanan AWS, untuk membangun alur kerja yang kompleks untuk integrasi layanan mikro. Opsi ini sangat berguna untuk proses multi-langkah yang berjalan lama yang melibatkan beberapa layanan mikro.

Anda harus mempertimbangkan untuk menggunakan Step Functions jika:

  • Integrasi layanan mikro Anda melibatkan proses multi-langkah yang kompleks.

  • Anda perlu mempertahankan status di seluruh operasi yang berjalan lama.

  • Anda ingin menerapkan penanganan kesalahan dan mencoba kembali logika di tingkat alur kerja.

  • Anda perlu mengoordinasikan operasi sinkron dan asinkron.

Step Functions menawarkan editor visual untuk merancang alur kerja yang kompleks, yang menyederhanakan proses pembuatan dan pengelolaan mesin negara. Ini menyediakan mekanisme penanganan kesalahan bawaan, termasuk logika coba lagi dan manajemen status kesalahan, yang meningkatkan keandalan dan ketahanan aplikasi Anda. Alur kerja standar mendukung proses yang berjalan lama hingga satu tahun, yang cocok untuk alur kerja yang mencakup periode yang diperpanjang. Opsi ini memisahkan logika orkestrasi dari kode aplikasi, sehingga secara signifikan mengurangi kompleksitas kode. Ini berarti bahwa pengembang dapat fokus pada logika bisnis inti sementara Step Functions menangani kontrol aliran dan koordinasi komponen terdistribusi.

Misalnya, pertimbangkan proses persetujuan pinjaman dalam aplikasi jasa keuangan, yang diilustrasikan dalam diagram berikut. Prosesnya dimulai ketika aplikasi pinjaman diajukan.

Menggunakan AWS Step Functions untuk membangun alur kerja yang kompleks untuk integrasi layanan mikro.

Dalam mesin state yang diilustrasikan pada diagram sebelumnya, Step Functions mengatur langkah-langkah berikut:

  • Validasi data aplikasi (fungsi Lambda)

  • Periksa skor kredit (fungsi Lambda yang memanggil API eksternal)

  • Menilai risiko (fungsi Lambda)

  • Jika berisiko tinggi, rute ke tinjauan manual (tugas persetujuan manusia)

  • Jika disetujui, mulailah pencairan pinjaman (fungsi Lambda)

  • Kirim pemberitahuan ke pemohon (Amazon SNS)

Anda dapat menggunakan pendekatan ini untuk mengelola proses yang kompleks dan berpotensi berjalan lama dengan andal, dengan penanganan kesalahan bawaan dan kemampuan untuk menyertakan langkah otomatis dan manual.

Pertimbangan:

  • Rancang mesin negara Anda dengan hati-hati untuk menangani semua skenario yang mungkin.

  • Lakukan langkah-langkah secara paralel jika memungkinkan.

  • Gunakan mekanisme penanganan kesalahan bawaan dan coba lagi di Step Functions untuk kegagalan permanen dan sementara.

  • Pertimbangkan untuk menggunakan alur kerja standar atau ekspres berdasarkan kasus penggunaan Anda. Alur kerja ekspres mungkin lebih disukai untuk alur kerja berdurasi pendek atau volume tinggi.

  • Pantau metrik eksekusi untuk mengoptimalkan alur kerja Anda.

  • Gunakan alur kerja bersarang untuk merangkum dan menggunakan kembali fungsionalitas di beberapa mesin status.

  • Untuk alur kerja yang kompleks, pertimbangkan untuk menggunakan Amazon Bedrock Agents sebagai alternatif untuk Step Functions.

Untuk informasi selengkapnya, lihat dokumentasi Step Functions.

Contoh: Amazon MWAA

Jika organisasi Anda sudah menggunakan Apache Airflow, Amazon MWAA adalah pilihan alami sebagai orkestrator alur kerja. Di Apache Airflow, Anda membangun alur kerja Anda sebagai grafik asiklik terarah () dengan menggunakan Python. DAGs Representasi DAG dari state machine yang diilustrasikan di bagian Step Functions mungkin terlihat seperti ini:

Menggunakan Amazon MWAA dan DAGs untuk membangun alur kerja yang kompleks untuk integrasi layanan mikro.

Untuk informasi tentang bekerja dengan DAGs, lihat dokumentasi Amazon MWAA.

Perbedaan utama antara Step Functions dan Amazon MWAA

  • Step Functions adalah layanan tanpa server yang dikelola sepenuhnya, sehingga tidak ada infrastruktur untuk pra-penyediaan dan tidak perlu menjadwalkan jendela pemeliharaan. Amazon MWAA harus digunakan sebelumnya, dan Anda memilih ukuran dan jumlah node di cluster Anda.

  • Di Step Functions, Anda dapat membuat mesin status dalam berbagai cara, termasuk Workflow Studio, langsung sebagai JSON, atau menggunakan file. AWS Cloud Development Kit (AWS CDK) Apache DAGs Airflow ditulis dengan Python.

  • Dengan Step Functions, Anda tidak dikenakan biaya ketika tidak ada alur kerja yang berjalan. Dengan Amazon MWAA, Anda akan dikenakan biaya bahkan ketika tidak ada DAGs yang berjalan.