Mengapa memilih SWF?

Amazon Simple Workflow Service (Amazon SWF) membantu developer membuat, menjalankan, dan menskalakan tugas latar belakang yang memiliki langkah paralel atau berurutan. Anda dapat menganggap Amazon SWF sebagai pelacak kondisi dan koordinator tugas yang terkelola penuh di Cloud.

Jika langkah aplikasi Anda memerlukan waktu lebih dari 500 milidetik untuk selesai, Anda perlu melacak kondisi pemrosesan, dan Anda perlu memulihkan atau mencoba lagi apabila tugas gagal, Amazon SWF dapat membantu.

Jika Anda mencari layanan alur proses visual rendah kode untuk mengatur layanan AWS, mengotomatiskan proses bisnis, atau membangun aplikasi nirserver, pelajari selengkapnya AWS Step Functions.

Manfaat

Amazon SWF mendorong pemisahan antara alur kontrol logika menurut kerja latar belakang dan unit kerja aktual Anda yang berisi logika bisnis unik Anda. Hal ini memungkinkan Anda untuk secara terpisah mengelola, menjaga, dan menskalakan "sistem kondisi" aplikasi Anda dari logika bisnis inti Anda yang membedakannya. Ketika persyaratan bisnis Anda berubah, Anda dapat dengan mudah mengubah logika aplikasi tanpa perlu mengkhawatirkan sistem kondisi yang mendasarinya, pengiriman tugas, dan kontrol alur.

Amazon SWF berjalan pada pusat data Amazon dengan ketersediaan yang sangat baik, sehingga pelacakan kondisi dan mesin pemrosesan tugas tersedia kapan pun aplikasi membutuhkannya. Amazon SWF secara berulang menyimpan tugas, secara tepercaya mengirimkannya ke komponen aplikasi, melacak kemajuan pengirimannya, dan menjaga kondisi terbarunya.

Amazon SWF mengubah kompleksitas solusi alur proses yang dikodekan secara khusus dan proses perangkat lunak otomatisasi dengan layanan web alur proses cloud yang terkelola penuh. Hal ini meniadakan perlunya bagi pengembang untuk mengelola sistem infrastruktur dari otomasi proses, sehingga mereka dapat memfokuskan energinya pada fungsionalitas aplikasi mereka yang unik.

Amazon SWF dengan mulus menskalakan penggunaan aplikasi Anda. Tidak ada administrasi manual layanan alur proses yang diperlukan ketika Anda menambahkan lebih banyak alur proses cloud ke aplikasi atau meningkatkan kompleksitas alur proses Anda.

Amazon SWF memungkinkan Anda menulis komponen aplikasi dan logika koordinasi dalam bahasa pemrograman apa pun dan menjalankannya di cloud atau on-premise.

Detail produk Amazon SWF

Menggunakan Amazon SWF untuk mengelola alur kerja dalam aplikasi Anda sangatlah mudah.

Fungsionalitas Amazon SWF

Amazon SWF bertindak sebagai hub koordinasi untuk berbagai komponen aplikasi Anda:

  • Mempertahankan status aplikasi
  • Melacak eksekusi alur kerja dan mencatat kemajuannya
  • Menahan dan mengirim tugas
  • Mengontrol tugas untuk dijalankan oleh setiap host aplikasi

Untuk menggunakan Amazon SWF, Anda cukup:

  • Menggunakan Konsol Manajemen AWS atau API Amazon SWF untuk menentukan nama alur kerja.
  • Menggunakan API Amazon SWF untuk “memulai” alur kerja baru, yang akan memulai dilaksanakannya urutan tugas alur kerja tertentu, yang disebut “eksekusi alur kerja”.
  • Menggunakan API Amazon SWF dari mesin pekerja Anda (“pekerja” adalah komponen aplikasi yang menangani tugas tertentu) untuk menetapkan urutan tugas, mengelola alur bersyarat, dan menjalankan loop untuk eksekusi alur kerja.
  • Menggunakan API Amazon SWF dari mesin pekerja Anda untuk meminta dan menjalankan tugas alur kerja di cloud atau on-premise.
  • Memantau status dan kemajuan eksekusi alur kerja serta tugas terkait di Konsol Manajemen AWS.

Panduan contoh di Konsol Manajemen AWS akan membawa Anda melalui langkah-langkah untuk mendaftarkan dan menjalankan contoh aplikasi. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi.

Deskripsi terperinci

Amazon SWF adalah layanan alur kerja yang dikelola sepenuhnya untuk membangun aplikasi yang dapat diskalakan dan tangguh. Amazon SWF menyediakan panggilan API sederhana yang dapat dieksekusi dari kode yang ditulis dalam bahasa apa pun dan dijalankan pada instans EC2, atau mesin Anda di mana pun yang dapat mengakses internet.

Amazon SWF bertindak sebagai hub koordinasi yang berinteraksi dengan host aplikasi Anda. Anda membuat alur kerja yang diinginkan dengan tugas terkait dan logika kondisional apa pun yang ingin Anda terapkan dan menyimpannya dengan Amazon SWF. Setiap eksekusi alur kerja dianggap sebagai eksekusi alur kerja terpisah. Anda memprogram komponen aplikasi untuk meminta berbagai tugas agar dilakukan dalam eksekusi alur kerja dan Amazon SWF mengoordinasikan tugas yang diselesaikan, dalam urutan yang Anda tentukan, di host Anda (baik host yang berada di cloud atau on-premise). Aplikasi berkomunikasi dengan Amazon SWF menggunakan API untuk mencatat keberhasilan atau kegagalan tugas. Amazon SWF kemudian melanjutkan urutan tugas dengan menetapkan tugas alur kerja berikutnya ke host aplikasi, atau dengan menjalankan kembali tugas yang gagal, tergantung pada logika bisnis Anda.

Masuk ke Konsol Manajemen AWS untuk memulai eksekusi alur kerja Amazon SWF. Alternatifnya, Anda dapat memulai eksekusi alur kerja melalui API Amazon SWF kami. Amazon SWF menggunakan antarmuka layanan web sederhana yang mudah digunakan dan sangat fleksibel:

  • StartWorkflowExecution: memulai urutan tugas alur kerja dan membuat tugas pertama tersedia untuk salah satu host aplikasi Anda.
  • DescribeWorkflowExecution: memberikan status eksekusi dan tugas alur kerja Anda.
  • PollForActivityTask: host aplikasi Anda (di cloud atau on-premise) meminta dan menjalankan tugas alur kerja dalam loop berkelanjutan.
  • RespondActivityTaskCompleted: host aplikasi memberi tahu Amazon SWF bahwa ia berhasil menyelesaikan tugas. Amazon SWF kemudian akan melanjutkan eksekusi alur kerja dengan menyediakan tugas berikutnya untuk host aplikasi.
  • TerminateWorkflowExecution: berhenti mendorong eksekusi alur kerja tertentu. Amazon SWF tidak akan menetapkan tugas lagi dari eksekusi alur kerja khusus ini ke host aplikasi.

Maksud penggunaan dan batasan

Penggunaan Anda untuk layanan ini diatur oleh Perjanjian Pelanggan Amazon Web Services.

Kasus penggunaan

Enkode video menggunakan Amazon S3 dan Amazon EC2. Pada kasus penggunaan ini, video berkapasitas besar diunggah ke Amazon S3 dalam bagian-bagian. Unggahan bagian-bagian video tersebut harus dipantau. Setelah suatu bagian diunggah, bagian tersebut dienkodekan dengan mengunduhnya ke instans Amazon EC2. Bagian yang dienkodekan disimpan ke lokasi Amazon S3 lain. Setelah semua bagian dienkodekan dengan cara tersebut, bagian tersebut digabungkan menjadi file yang dienkodekan secara penuh, yang disimpan kembali secara utuh ke Amazon S3. Dapat terjadi kegagalan selama proses ini karena satu atau beberapa bagian mengalami kesalahan pengkodean. Kegagalan tersebut perlu dideteksi dan ditangani melalui manajemen alur proses cloud Amazon SWF.

Memigrasi komponen dari pusat data ke cloud. Operasi kritis bisnis di-host pada pusat data pribadi, tetapi perlu dipindahkan sepenuhnya ke cloud tanpa menyebabkan gangguan. Aplikasi berbasis Amazon SWF dapat menggabungkan pekerja yang menangani komponen yang berjalan di pusat data dengan pekerja yang berjalan di cloud. Untuk melakukan transisi pekerja pusat data secara mulus, pekerja baru pada tipe yang sama diterapkan terlebih dahulu di cloud. Pekerja di pusat data terus berjalan seperti biasa, bersama dengan pekerja berbasis cloud yang baru. Pekerja berbasis cloud diuji dan divalidasi dengan perutean bagian muatan melaluinya. Selama pengujian ini, aplikasi tidak terganggu karena pekerja di pusat data terus berjalan. Setelah pengujian berhasil, pekerja di pusat data secara bertahap dihentikan dan pekerja di cloud dinaikkan skalanya, sehingga mereka berpindah sepenuhnya ke aplikasi manajemen alur proses cloud. Proses alur proses cloud ini dapat diulang untuk semua pekerja lain di pusat data sehingga aplikasi berpindah sepenuhnya ke cloud. Untuk alasan bisnis tertentu, jika langkah pemrosesan tertentu harus dilakukan di pusat data pribadi, pekerja tersebut dapat terus berjalan di pusat data pribadi tersebut dan berpartisipasi dalam aplikasi.

Memproses katalog produk yang besar menggunakan Amazon Mechanical Turk. Pada saat memvalidasi data dalam katalog besar, produk dalam katalog tersebut diproses dalam batch. Batch berbeda dapat diproses secara bersamaan. Untuk masing-masing batch, data produk diekstrak dari server di pusat data dan ditransformasikan menjadi file CSV (Comma Separated Value/ Nilai yang Terpisah Koma) yang diperlukan oleh Requester User Interface (RUI) Amazon Mechanical Turk. CSV tersebut diunggah untuk menambahkan dan menjalankan HIT (Human Intelligence Tasks). Pada saat HIT selesai, file CSV yang dihasilkan ditransformasi balik untuk mengubah data kembali ke format aslinya. Hasilnya kemudian dinilai dan pekerja Amazon Mechanical Turk dibayar untuk mendapatkan hasil yang dapat diterima. Kegagalan dipilah dan diproses ulang, sementara hasil HIT yang dapat diterima digunakan untuk memperbarui katalog. Pada saat batch diproses, sistem perlu melacak kualitas pekerja Amazon Mechanical Turk dan menyesuaikan pembayaran yang sesuai. HIT yang gagal di-batch ulang dan dikirim melalui perpipaan kembali.

AWS Flow Framework

AWS Flow Framework adalah kumpulan pustaka praktis yang memungkinkan pembuatan aplikasi secara lebih mudah dan cepat dengan Amazon Simple Workflow.

Cara kerjanya

AWS Flow Framework memiliki model pemrograman sederhana yang memudahkan pembuatan aplikasi yang melakukan pekerjaan di banyak mesin. Dengan kerangka kerja ini, Anda dapat dengan cepat membuat tugas, mengoordinasikannya, dan mengekspresikan dependensi antara tugas-tugas tersebut, seperti halnya dalam program biasa. Misalnya, Anda dapat menjalankan sebuah metode dalam aplikasi di komputer “jarak jauh” hanya dengan memanggil metode dalam logika aplikasi dengan host di komputer “lokal” terpisah. AWS Flow Framework menangani kerumitan proses bolak-balik yang diperlukan untuk menjalankan metode jarak jauh dan mengembalikan hasilnya ke aplikasi lokal menggunakan informasi yang disimpan oleh layanan Amazon Simple Workflow. Output dari setiap metode yang dieksekusi dapat digunakan untuk menghubungkan bagian-bagian terpisah dari logika Anda yang saling terkait. Kerangka kerja ini memungkinkan Anda menggunakan sintaksis sederhana untuk mengekspresikan dependensi antarmetode dengan pendekatan “blokir dan tunggu panggilan balik” yang sederhana. Kerangka kerja ini juga memungkinkan Anda menangani kegagalan pada mesin jarak jauh seolah-olah itu adalah kesalahan lokal. Selain itu, kerangka kerja ini memberi Anda cara mudah untuk menentukan cara mencoba lagi metode penting dalam aplikasi jika terjadi kegagalan.

Catatan

AWS Flow Framework untuk Ruby tidak lagi dalam pengembangan aktif. Meskipun kode yang ada akan terus bekerja tanpa batas waktu, tidak akan ada fitur atau versi baru. Kode sumber Flow Framework untuk Ruby akan terus tersedia di arsip GitHub AWS SWF. Jika aplikasi Simple Workflow berbasis Ruby Anda berkembang dan berubah, ada opsi yang mungkin ingin Anda pertimbangkan, termasuk bermigrasi ke AWS Step Functions atau menggunakan API Simple Workflow native. Untuk mengetahui keterangan selengkapnya, lihat Panduan Developer AWS Simple Workflow.

Dengan AWS Flow Framework, Anda dapat menulis kode sederhana serta membiarkan objek dan kelas kerangka kerja yang dibuat sebelumnya menangani detail API Amazon Simple Workflow. AWS Flow Framework menangani pembuatan dan pelaksanaan langkah-langkah aplikasi Anda, melacak kemajuannya, memungkinkan Anda menentukan aturan percobaan ulang saat langkah gagal, dan banyak lagi. Sementara itu, Amazon Simple Workflow Service mempertahankan status eksekusi aplikasi Anda, membagikan tugas kepada pekerja yang tersedia, dan menyimpan riwayat audit semua tugas.

AWS Flow Framework adalah sumber terbuka Java, dan dikembangkan serta dikelola oleh AWS. Anda dapat menggunakan tautan di bawah ini untuk mendapatkan pustaka, kode sumber, dokumentasi, sampel, dan banyak lagi.