Lewati ke Konten Utama

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 mempertimbangkan Amazon SWF sebagai pelacak status dan koordinator tugas yang terkelola penuh di Cloud.

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

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

Manfaat

Amazon SWF mempromosikan pemisahan antara alur kontrol logika bertahap tugas latar belakang Anda dan unit kerja aktual 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 mesin status, pengiriman tugas, dan kontrol alur yang mendasarinya.

Amazon SWF berjalan di dalam pusat data Amazon dengan ketersediaan tinggi, jadi pelacakan status dan mesin pemrosesan tugas tersedia kapan pun aplikasi membutuhkannya. Amazon SWF menyimpan tugas secara redundan, mengirimkannya dengan andal ke komponen aplikasi, melacak kemajuannya, dan menjaga status terbarunya.

Amazon SWF menggantikan kompleksitas solusi alur proses yang dikodekan secara kustom dan memproses perangkat lunak otomatisasi dengan layanan web alur proses cloud yang terkelola penuh. Hal ini meniadakan perlunya bagi developer untuk mengelola plumbing infrastruktur dari otomatisasi proses, jadi mereka dapat memfokuskan energi pada fungsionalitas aplikasi mereka yang unik.

Amazon SWF menskalakan penggunaan aplikasi Anda dengan lancar. Tidak diperlukan administrasi manual atas layanan alur proses 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 semua komponen aplikasi Anda:

  • Mempertahankan status aplikasi
  • Melacak pelaksanaan alur kerja dan mencatat kemajuannya
  • Menahan dan mengirim tugas
  • Mengontrol tugas apa yang akan diberikan untuk dijalankan oleh setiap host aplikasi Anda

Untuk menggunakan Amazon SWF, Anda cukup:

  • Gunakan Konsol Manajemen AWS atau API Amazon SWF untuk menentukan nama alur kerja.
  • Gunakan API Amazon SWF untuk “memulai” alur kerja baru, yang menghasilkan serangkaian tugas alur kerja tertentu, yang disebut “pelaksanaan alur kerja”.
  • Gunakan API Amazon SWF dari mesin pekerja Anda (“pekerja” adalah komponen aplikasi yang menangani tugas tertentu) untuk membuat urutan tugas, mengelola alur bersyarat, dan menjalankan putaran untuk pelaksanaan alur kerja.
  • Gunakan API Amazon SWF dari mesin pekerja Anda untuk meminta dan menjalankan tugas alur kerja di cloud atau on-premise.
  • Pantau status dan kemajuan pelaksanaan alur kerja serta tugas terkaitnya di Konsol Manajemen AWS.

Panduan sampel di Konsol Manajemen AWS akan membawa Anda melalui langkah-langkah untuk mendaftarkan dan menjalankan aplikasi sampel. Silakan lihat Dokumentasi untuk informasi selengkapnya.

Deskripsi Terperinci

Amazon SWF adalah layanan alur kerja yang terkelola penuh untuk membangun aplikasi yang dapat diskalakan dan tangguh. Amazon SWF menyediakan panggilan API sederhana yang dapat dijalankan dari kode yang ditulis dalam bahasa apa pun dan dijalankan pada instans EC2, atau mesin Anda yang terletak di mana saja di dunia 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 yang ingin Anda terapkan dan menyimpannya dengan Amazon SWF. Setiap kali Anda menjalankan alur kerja, hal tersebut dianggap sebagai pelaksanaan alur kerja yang berbeda. Anda memprogram komponen aplikasi untuk meminta berbagai tugas agar dilakukan dalam pelaksanaan alur kerja dan Amazon SWF mengoordinasikan tugas yang diselesaikan, dalam urutan yang Anda tentukan, di host Anda (baik host yang berada di cloud maupun 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 ulang tugas yang gagal, bergantung pada logika bisnis Anda.

Masuk ke Konsol Manajemen AWS untuk memulai pelaksanaan alur kerja Amazon SWF. Alternatifnya, Anda dapat memulai pelaksanaan 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 pelaksanaan dan tugas alur kerja Anda.
  • PollForActivityTask: host aplikasi Anda (di cloud atau on-premise) meminta dan menjalankan tugas alur kerja dalam putaran berkelanjutan.
  • RespondActivityTaskCompleted: host aplikasi memberi tahu Amazon SWF bahwa ia berhasil menyelesaikan tugas. Amazon SWF kemudian akan melanjutkan pelaksanaan alur kerja dengan menyediakan tugas berikutnya untuk host aplikasi.
  • TerminateWorkflowExecution: berhenti mendorong pelaksanaan alur kerja tertentu. Amazon SWF tidak akan menetapkan tugas lagi dari pelaksanaan alur kerja khusus ini ke host aplikasi.

Tujuan penggunaan dan batasan

Penggunaan Anda untuk layanan ini tunduk pada Perjanjian Pelanggan Amazon Web Services.

Kasus Penggunaan

Pengenkodean video menggunakan Amazon S3 dan Amazon EC2. Pada kasus penggunaan ini, video besar diunggah ke Amazon S3 dalam potongan. 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. Kegagalan dapat terjadi selama proses ini karena satu atau beberapa bagian mengalami kesalahan enkode. Kegagalan tersebut perlu dideteksi dan ditangani melalui manajemen alur proses cloud Amazon SWF.

Memigrasi komponen dari pusat data ke cloud. Operasi yang sangat penting di-host pada pusat data privat, 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 akan 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. Jika untuk beberapa alasan bisnis, langkah pemrosesan tertentu harus terus dilakukan di pusat data privat, pekerja tersebut dapat terus dijalankan di pusat data privat dan tetap berpartisipasi di aplikasi.

Memproses katalog produk yang besar menggunakan Amazon Mechanical Turk. Saat memvalidasi data dalam katalog besar, produk di katalog diproses secara batch. Batch berbeda dapat diproses secara bersamaan. Untuk masing-masing batch, data produk diekstrak dari server di pusat data dan diubah menjadi file CSV (Comma Separated Value) 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 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 lagi melalui jalur.

AWS Flow Framework

AWS Flow Framework adalah kumpulan pustaka praktis yang mempercepat dan mempermudah pembuatan aplikasi dengan Amazon Simple Workflow.

Cara kerjanya

AWS Flow Framework memiliki model pemrograman sederhana yang memudahkan dalam pembuatan aplikasi yang melakukan pekerjaan di banyak mesin. Dengan kerangka kerja ini, Anda dapat dengan cepat membuat tugas, mengoordinasikannya, dan mengekspresikan bagaimana tugas-tugas ini bergantung satu sama lain -- seperti yang akan Anda lakukan dalam program pada umumnya. Misalnya, Anda dapat menjalankan sebuah metode dalam aplikasi di komputer “jarak jauh” hanya dengan memanggil metode dalam logika aplikasi Anda yang di-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 dijalankan dapat digunakan untuk menghubungkan 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 dan memberi Anda cara mudah untuk menentukan bagaimana Anda ingin mencoba lagi metode penting dalam aplikasi Anda jika gagal.

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 dapat Anda pertimbangkan, termasuk bermigrasi ke AWS Step Functions atau menggunakan API Simple Workflow native. Untuk detailnya, lihat Panduan Developer AWS Simple Workflow.

Menggunakan AWS Flow Framework, Anda dapat menulis kode sederhana serta memungkinkan objek dan kelas kerangka kerja yang sudah 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 pelaksanaan aplikasi Anda, membagikan tugas kepada pekerja yang tersedia, dan menyimpan riwayat audit semua tugas.

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