Neden SWF?

Amazon Basit İş Akışı Hizmeti (Amazon SWF), geliştiricilerin paralel veya sıralı adımlara sahip arka plan işlerini oluşturmasına, çalıştırmasına ve ölçeklendirmesine yardımcı olur. Amazon SWF'yi, bulutta çalışan tam olarak yönetilen bir durum izleyici ve görev koordinatörü olarak düşünebilirsiniz.

Uygulamanızın adımlarının tamamlanması 500 milisaniyeden uzun sürüyorsa, işlem durumunu izlemeniz gerekiyorsa ve bir görevin başarısız olması halinde kurtarma veya yeniden deneme gerçekleştirmeniz gerekiyorsa Amazon SWF size yardımcı olabilir.

AWS hizmetlerini düzenlemek, iş süreçlerini otomatikleştirmek veya sunucusuz uygulamalar oluşturmak için az kod kullanımlı bir görsel süreç akışı hizmeti arıyorsanız AWS Step Functions hakkında daha fazla bilgi edinin.

Avantajlar

Amazon SWF, arka plan işinizin adım mantığının denetim akışı ile benzersiz iş mantığınızı içeren gerçek birimlerin arasında ayrım gerçekleştirilmesini sağlar. Bu da uygulamanızın "durum altyapısını" farklılık yaratan temel iş mantığından ayrı bir şekilde yönetmenizi, bakımını yapmanızı ve ölçeklendirmenizi sağlar. İşletmenizin ihtiyaçları değiştikçe altyapı, görev gönderme adımları ve akış denetimi konusunda endişelenmeden uygulama mantığını kolayca değiştirebilirsiniz.

Amazon SWF, Amazon'un yüksek oranda erişilebilir veri merkezlerinde çalıştığından uygulamalar durum izleme ve görev işleme altyapısına ihtiyaçları olduğunda erişebilir. Amazon SWF görevleri yedekli bir şekilde depolar, bunları uygulama bileşenlerine güvenilir şekilde gönderir, ilerleme durumlarını izler ve en son durumlarını korur.

Amazon SWF, özel olarak kodlanan süreç akışı çözümlerinin ve işlem otomasyon yazılımlarının karmaşıklığını tam olarak yönetilen bir bulut süreç akışı web hizmetiyle ortadan kaldırır. Bu da yazılım geliştiricilerin işlem otomasyonu için altyapı yönetimi gerçekleştirme ihtiyacını ortadan kaldırarak enerjilerini uygulama için benzersiz bir işle oluşturmaya odaklamalarını sağlar.

Amazon SWF, uygulamanızın kullanımına göre sorunsuz olarak ölçeklendirilir. Uygulamanıza yeni bulut süreç akışları ekledikçe veya süreç akışlarının karmaşıklığını artırdıkça süreç akışı hizmetini manuel olarak yönetmenize gerek yoktur.

Amazon SWF, uygulama bileşenlerinizi ve koordinasyon mantığınızı istediğiniz programlama dilinde yazarak bulutta veya şirket içinde çalıştırmanızı sağlar.

Amazon SWF ürün ayrıntıları

Uygulamanızdaki iş akışlarını yönetmek için Amazon SWF'yi kullanmak kolaydır.

Amazon SWF işlevselliği

Amazon SWF, uygulamanızın tüm farklı bileşenleri için bir koordinasyon merkezi görevi görür:

  • Uygulama durumunu koruma
  • İş akışı yürütmelerini izleme ve ilerlemelerini kaydetme
  • Görevleri bekletme ve dağıtma
  • Uygulama ana sunucularınıza hangi görevlerin atanacağını kontrol etme

Amazon SWF'yi kullanmak için şunları yapmanız yeterlidir:

  • İş akışlarının adlarını belirtmek için AWS Yönetim Konsolu veya Amazon SWF API'lerini kullanın.
  • Yeni bir iş akışı "başlatmak" için Amazon SWF API'lerini kullanın; bu, "iş akışı yürütmesi" adı verilen belirli bir iş akışı görev dizisinin eyleme geçmesini sağlar.
  • Görev sırasını oluşturmak, koşullu akışları yönetmek ve iş akışı yürütmesi döngülerini yürütmek için işçi makinelerinizdeki (bir "işçi" belirli görevleri yerine getiren, uygulamanızın bir bileşenidir) Amazon SWF API'lerini kullanın.
  • İş akışı görevlerini bulutta veya şirket içinde talep etmek ve yürütmek için işçi makinelerinizdeki Amazon SWF API'lerini kullanın.
  • AWS Yönetim Konsolu'nda iş akışı yürütmelerinin ve bunlarla ilişkili görevlerin durumunu ve ilerlemesini izleyin.

AWS Yönetim Konsolu'ndaki örnek rehberlik, örnek bir uygulamayı kaydetme ve çalıştırma adımları konusunda sizi yönlendirir. Daha fazla bilgi için lütfen Belgeler bölümüne bakın.

Ayrıntılı açıklama

Amazon SWF, ölçeklenebilir ve esnek uygulamalar oluşturmak için tam olarak yönetilen bir iş akışı hizmetidir. Amazon SWF, herhangi bir dilde yazılmış koddan yürütülebilen ve EC2 bulut sunucularınızda veya dünyanın herhangi bir yerinde bulunan ve internete erişebilen makinelerinizden herhangi birinde çalıştırılabilen basit API çağrıları sağlar.

Amazon SWF, uygulama ana sunucularınızın etkileşime girdiği bir koordinasyon merkezi görevi görür. İlişkili görevleri ve uygulamak istediğiniz koşullu mantıklarla istediğiniz iş akışlarını oluşturup Amazon SWF ile depolarsınız. Her iş akışı yürütmeniz ayrı bir iş akışı yürütme işlemi olarak sayılır. Uygulama bileşenlerinizi iş akışınızın yürütülmesinde çeşitli görevlerin gerçekleştirilmesini isteyecek şekilde programlarsınız ve Amazon SWF, ana sunucularınızda belirttiğiniz sırayla (ister bulutta ister şirket içinde yer alan ana sunucular) görevlerin gerçekleştirilmesini koordine eder. Uygulamalar, görevlerin başarısını veya başarısızlığını kaydetmek için API'leri kullanarak Amazon SWF ile iletişim kurar. Sonrasında Amazon SWF bir sonraki iş akışı görevini bir uygulama ana sunucusuna atayarak veya iş mantığınıza bağlı olarak başarısız bir görevi yeniden çalıştırarak görev sırasına devam eder.

Amazon SWF iş akışı yürütmesini başlatmak için AWS Yönetim Konsolu'nda oturum açın. Alternatif olarak, Amazon SWF API'lerimiz aracılığıyla bir iş akışı yürütmesi başlatabilirsiniz. Amazon SWF, kullanımı kolay ve son derece esnek olan basit bir web hizmeti arabirimi kullanır:

  • StartWorkflowExecution: Bir dizi iş akışı görevi başlatır ve ilk görevi uygulama ana sunucularınızdan biri tarafından kullanılabilir hâle getirir.
  • DescribeWorkflowExecution: İş akışı yürütmelerinizin ve görevlerinizin durumunu gösterir.
  • PollForActivityTask: Uygulama ana sunucularınız (bulutta veya şirket içinde) iş akışı görevlerini sürekli bir döngüde talep eder ve yürütür.
  • RespondActivityTaskCompleted: Bir uygulama ana sunucusu, Amazon SWF'ye bir görevi başarıyla tamamladığını bildirir. Sonrasında Amazon SWF, bir sonraki görevi bir uygulama ana sunucusu tarafından kullanılabilir hâle getirerek iş akışı yürütmesini devam ettirir.
  • TerminateWorkflowExecution: Belirli bir iş akışı yürütmesinde ilerlemeyi durdurun. Amazon SWF, uygulama ana sunucusuna ilgili iş akışı yürütmesinin başka görevlerini atamaz.

Kullanım amacı ve kısıtlamalar

Bu hizmeti kullanımınız Amazon Web Services Müşteri Sözleşmesi'ne tabidir.

Kullanım örnekleri

Amazon S3 ve Amazon EC2 kullanarak video kodlama. Bu kullanım örneğinde büyük videolar Amazon S3'e parçalar halinde yüklenir. Parçaların yükleme sürecinin izlenmesi gerekir. Bir parça yüklendikten sonra Amazon EC2 bulut sunucusuna indirilerek kodlanır. Kodlanan parça başka bir Amazon S3 konumunda depolanır. Tüm parçalar bu şekilde kodlandıktan sonra tek bir kodlanmış dosya halinde birleştirilir ve bu dosya tek parça halinde Amazon S3'te depolanır. Bir veya daha fazla parçanın kodlama hatasıyla karşılaşması halinde bu işlem sırasında hatalar oluşabilir. Bu hataların Amazon SWF'nin bulut süreç akışı yönetimi ile tespit edilmesi ve işlenmesi gerekir.

Bileşenlerin veri merkezinden buluta geçirilmesi. İş açısından kritik öneme sahip uygulamalar özel bir veri merkezinde barındırılır ancak kesinti yaşanmadan buluta taşınmaları gerekir. Amazon SWF tabanlı uygulamalar, veri merkezinde çalışan bileşenleri sarmalayan çalışanları buluttaki çalışanlarla birlikte kullanabilir. Bir veri merkezi çalışanını başarıyla geçirmek için öncelikle bulutta aynı türde yeni çalışanlar dağıtılır. Veri merkezindeki çalışanlar yeni bulut tabanlı çalışanlarla birlikte normal şekilde çalışmaya devam eder. Bulut tabanlı çalışanlar yükün bir bölümünün üzerlerinden yönlendirilmesiyle test edilir ve doğrulanır. Bu test sırasında veri merkezindeki çalışanlar çalışmaya devam ettiğinden uygulama kesintiye uğramaz. Testler başarılı olduktan sonra veri merkezindeki çalışanlar kademeli olarak durdurulur ve buluttakilerin ölçeği artırılır. Bu sayede tamamen bulutta çalışan bir süreç akışı yönetim uygulaması elde edilmiş olur. Bu bulut süreç akışı işlemi veri merkezindeki diğer tüm çalışanlar için tekrarlanarak uygulamanın tamamen buluta taşınması sağlanabilir. İşletmeye özel nedenlerden dolayı belirli işlem adımlarının özel veri merkezinde gerçekleştirilmeye devam etmesi gerekiyorsa bu çalışanlar özel veri merkezinde çalışmaya devam ederken uygulamaya katkıda bulunabilir.

Amazon Mechanical Turk kullanarak büyük ürün kataloglarını işleme. Büyük kataloglardaki verileri doğrularken katalogdaki ürünler toplu işler halinde işleme alınır. Farklı toplu işler aynı anda işleme alınabilir. Her toplu işte ürün verileri, veri merkezindeki sunuculardan ayıklanır ve Amazon Mechanical Turk Talep Sahibi Kullanıcı Arabirimi (RUI) için gerekli olan CSV (Virgülle Ayrılmış Değerler) dosyaları haline dönüştürülür. CSV, HIT (İnsan Zekası Görevleri) öğelerini doldurmak ve çalıştırmak için yüklenir. HIT öğeleri tamamlandıktan sonra sonuç CSV dosyası tersine dönüştürülerek veriler özgün biçime döndürülür. Ardından sonuçlar değerlendirilir ve Amazon Mechanical Turk çalışanlarına kabul edilebilir sonuçlar için ödeme yapılır. Hatalar ayıklanıp yeniden işlenirken kabul edilebilir HIT sonuçları kataloğu güncellemek için kullanılır. Toplu işler işleme alındıkça sistemin Amazon Mechanical Turk çalışanlarının kalitesini takip etmesi ve ödemeleri buna göre ayarlaması gerekir. Başarısız olan HIT sonuçları yeniden toplanır ve işlem hattından tekrar gönderilir.

AWS Flow Framework

AWS Flow Framework, Amazon Basit İş Akışı ile uygulama oluşturmayı daha hızlı ve daha kolay hâle getiren faydalı kitaplıklardan oluşan bir koleksiyondur.

Nasıl çalışır?

AWS Flow Framework, birçok makinede iş gerçekleştiren uygulamalar oluşturmayı kolaylaştıran basit bir programlama modeline sahiptir. Çerçeve ile, hızlı bir şekilde görevler oluşturur, bunları koordine eder ve tipik bir programda yaptığınız gibi bu görevlerin birbirine nasıl bağlı olduğunu ifade edersiniz. Örneğin, uygulama mantığınızdaki ayrı bir "yerel" bilgisayarda barındırılan bir yöntemi çağırarak "uzak" bir bilgisayardaki bir uygulamada bir yöntemi çalıştırabilirsiniz. AWS Flow Framework, uzak yöntemi yürütmek için gereken karmaşık uğraştırıcı işleri halleder ve Amazon Basit İş Akışı hizmeti tarafından depolanan bilgileri kullanarak sonucunu yerel uygulamaya döndürür. Yürütülen herhangi bir yöntemin çıktısı, mantığınızın birbirine bağlı ayrı bölümlerini bağlamak için kullanılabilir. Çerçeve, basit bir "çağırmayı engelle ve bekle" yaklaşımıyla yöntemler arasındaki bağımlılıkları ifade etmek için basit söz dizimi kullanmanıza olanak tanır. Çerçeve ayrıca, uzak bir makinede bir arızayı yerel bir hataymış gibi ele almanıza olanak tanır ve başarısız olursa uygulamanızdaki önemli yöntemleri nasıl yeniden denemek istediğinizi tanımlamanın kolay yollarını sunar.

Not

Ruby İçin AWS Flow Framework artık aktif geliştirme aşamasında değil. Mevcut kod süresiz olarak çalışmaya devam edecek ancak yeni özellikler veya sürümler gelmeyecek. Ruby İçin Flow Framework'ün kaynak kodu, AWS SWF GitHub arşivinde bulunmaya devam edecektir. Ruby tabanlı Basit İş Akışı uygulamanız gelişiyor ve değişiyorsa AWS Step Functions'a geçiş veya yerel Basit İş Akışı API'sini kullanma gibi göz önünde bulundurmak isteyebileceğiniz seçenekler vardır. Ayrıntılar için AWS Basit İş Akışı Geliştirici Kılavuzu'na bakın.

AWS Flow Framework'ü kullanarak basit kod yazabilir ve çerçevenin önceden oluşturulmuş nesnelerinin ve sınıflarının Amazon Basit İş Akışı API'lerinin ayrıntılarını ele almasını sağlayabilirsiniz. AWS Flow Framework, uygulamanızın adımlarını oluşturup yürütülmesini sağlar, ilerlemelerini takip eder, adımların başarısız olduğu durumlarda yeniden deneme kuralları tanımlamanıza olanak tanır ve çok daha fazlasını yapar. Bu arada Amazon Basit İş Akışı Hizmeti uygulamanızın yürütme durumunu korur, görevleri mevcut çalışanlara dağıtır ve tüm görevlerinizin denetim geçmişini tutar.

AWS Flow Framework, Java açık kaynaklıdır ve AWS tarafından geliştirilip yönetilir. Kitaplıkları, kaynak kodunu, belgeleri, örnekleri ve daha fazlasını almak için aşağıdaki bağlantıları kullanabilirsiniz.