Kurs
Her karmaşık sistem, birden çok alt sistemin orkestrasyonunun sonucudur. Böyle bir sistemi kurmak ve sürdürmek, özellikle bulut altyapılarıyla çalışırken yaygın bir zorluk olmaya devam eder.
Neyse ki, iş akışlarının orkestrasyonunu karmaşıklık düzeyi ne olursa olsun sadeleştirmek için çeşitli araçlar geliştirildi. Bu araçlar arasında AWS Step Functions kullanışlılığı ve sayısız faydasıyla öne çıkıyor.
Bu makale, AWS Bulutu içinde iş akışlarını orkestre etmek için Step Functions’ın nasıl kullanılacağına odaklanır. Step Functions’ın ne olduğunu, sağladığı faydaları ve temel özellikleri inceleyerek başlar.
Ardından, AWS ortamının kurulmasından arayüzü keşfetmeye kadar Step Function kullanmaya başlama adımlarında rehberlik eder. Bu temel üzerine inşa ederek, gerçek dünya iş akışını oluşturma ve dağıtma sürecini adım adım anlatır.
AWS Step Functions nedir?
AWS Step Functions, görsel iş akışları oluşturmayı kolaylaştırmak için tasarlanmış sunucusuz bir orkestrasyon hizmetidir; AWS Lambda işlevleri ve diğer AWS kaynaklarının sorunsuz bir şekilde koordine edilmesini sağlar.
Entegrasyon yetenekleri oldukça geniştir; örnek vermek gerekirse Amazon EC2, Amazon ECS, kurum içi sunucular, Amazon API Gateway ve Amazon SQS kuyruklarıyla bağlantıları destekler. Bu, iş akışlarının kapsamının geniş olmasını ve AWS hizmet ekosisteminin büyük bir bölümüyle etkileşim kurabilmesini sağlar.
AWS Step Functions’ın esnekliği onu çok geniş bir uygulama yelpazesi için uygun kılar. İster sipariş gerçekleşirme yönetimi, ister veri işleme, web uygulamalarını çalıştırma ya da karmaşık görev dizilerini orkestre etme olsun, Step Functions iş akış otomasyonu ve yönetimi için sağlam bir çözümdür.
Temel Özellikler ve Faydalar
AWS Step Functions’ın teknik ayrıntılarına dalmadan önce, başlıca özelliklerini ve faydalarını inceleyelim.
Temel özellikler
Step Functions, iş akışlarının oluşturulmasını ve yönetimini sadeleştirmek için çeşitli özellikler sunar; başlıcalararı aşağıda vurgulanmıştır:
- HTTPS Uç Noktaları Entegrasyonu: Bu sayede iş akışları, HTTPS destekleyen herhangi bir web hizmetini çağırarak çeşitli web API’lerinin süreçlere entegre edilmesini kolaylaştırır.
- Dağıtık Bileşen Koordinasyonu: Bu özellik, dağıtık sistemlerin bileşenlerinin koordine edilmesini mümkün kılar; bu da karmaşık, çok hizmetli uygulamalar için kritiktir.
- Yerleşik Durum Yönetimi: Her iş akışı çalıştırmasının ilerlemesini dikkatle izleyerek, bu yetenek uygulamalarınızın durumunu yürütüleri süre boyunca korur ve adımlar arasında taşınan veriyi yönetir.
- İnsan onayı: Otomasyon döngüsünde insanlar kritik öneme sahiptir. Bu özellik, gerektiğinde manuel onaylar için otomatik bir iş akışına insan müdahalesi ekleme mekanizması sunar.
Faydalar
AWS Step Functions’ın temel özellikleri, geliştiricilere ve kuruluşlara operasyonel ve geliştirme iş akışlarını iyileştirmek için birden fazla fayda sağlar.
|
Geliştiriciler için |
Kuruluşlar için |
|
|
Gerçek Dünya Örnekleri ve Vaka Çalışmaları
Yukarıdaki özellikler ve faydalar temel alındığında, Step Functions’ın farklı alanlarda kritik bir rol oynayabileceği; işletmelerin iş akışlarını tasarlamalarını, otomatikleşdirmelerini ve verimli bir şekilde ölçeklendirmelerini sağlayabileceği açıktır.
Bu bölüm, farklı sektörlerin rekabetçi, yenilikçi ve verimli olmak için AWS Step Functions’ı nasıl kullandığına ilişkin örnekleri keşfetmeye odaklanır.
Mikroservis Koordinasyonu
Mikroservislerden oluşan mimarilere sahip kurumlar, bu hizmetler arası etkileşimleri yönetmek için sıklıkla AWS Step Functions’tan yararlanır.
Örneğin bir perakende şirketi, kullanıcı kimlik doğrulaması, stok yönetimi, ödeme işleme ve sipariş gönderimi adımlarını orkestre etmek için Step Functions’ı kullanarak bütüncül bir alışveriş deneyimi sağlayabilir.
Güvenlik ve BT Operasyonları
AWS Step Functions, güvenlik kontrolleri, sistem güncellemeleri ve uyumluluk doğrulamaları gibi tekrarlayan görevleri otomatikleştirmek için kullanılabilir.
Örneğin BT güvenliğinde, Step Functions olay yanıt iş akışları tasarlamak için kullanılabilir; böylece ilk uyarıdan sorunun çözümüne kadar her aşamayı sistematik biçimde yöneterek insan hatasını ve yanıt sürelerini azaltır.
Veri İş Akışı ve ETL Süreçleri
Veri yoğun işletmeler için AWS Step Functions, veri işleme ve ETL görevlerini orkestre edebilir. Bu, birden fazla kaynaktan veri çıkarma, tutarlı bir formata dönüştürme ve analitik platformlara ya da veri göllerine yükleme iş akışlarını içerebilir.
Örneğin bir analitik şirketi, stratejik kararlar için verinin verimli biçimde işlenmesini sağlamak üzere veri hattını otomatikleştirmek için Step Functions’ı uygulayabilir.
Makine Öğrenimi Operasyonları
Step Functions, veri hazırlama, model eğitimi, değerlendirme ve dağıtım gibi makine öğreniminin operasyonel yönlerinde de faydalıdır.
Bir sağlık teknolojisi şirketi, teşhis algoritmalarının periyodik olarak yeniden eğitilmesine yönelik boru hattını yönetmek için Step Functions’ı kullanarak yeni veriler geldikçe modellerinin performansını koruyabilir.
Medya İşleme Boru Hatları
Medya ve eğlence alanında AWS Step Functions, video kodlama, görüntü işleme ve içerik analizi dâhil karmaşık medya işleme iş akışlarını orkestre etmek için kullanılabilir.
Bir medya şirketi, yeni içerik yüklendiğinde yayınlanmadan önce otomatik olarak biçim dönüştürme, küçük resim çıkarma ve meta veri zenginleştirme süreçlerini tetiklemek için Step Functions’ı uygulayabilir.
AWS Step Functions ile Başlangıç
Bu makalenin ilerleyen bölümlerinde Step Functions’ın diğer AWS hizmetleriyle kombinasyonu ele alınacaktır. Bu nedenle ileri düzey kavramlara geçmeden önce Step Functions’ın temellerini anlamak gereklidir.
Bu bölümün amacı, yapı taşlarını anlamaktan AWS Step Functions arayüzünde gezinmeye kadar AWS Step Functions ile başlamanıza yardımcı olmaktır.
Step Functions’ın Yapı Taşları
Her sistem veya modül, birden çok alt bileşenden oluşur; Step Functions da böyledir. Step Functions aşağıdaki bloklara dayanır: (1) durum makineleri ve (2) görevler.
Bu kavramları bir örnek üzerinden anlayalım.
- Durum Makineleri (State Machines): Olaylar dizisini, koşullu mantığı ve görevlerin genel yürütülme akışını tanımlayan iş akışı. Özetle, bir durum makinesi bir iş akışı olarak tanımlanabilir.
- Görevler (Tasks): Belirli bir işlemi gerçekleştiren eylem. Bir girdi alır ve bir çıktı üretir. örneğin bir veritabanı sorgulamak, bir API çağrısı yapmak veya bir Lambda işlevini çağırmak gibi.
AWS Step Functions kullanarak bir kreş kayıt süreci yürüten bir kullanım senaryosu düşünün. Step Functions’tan yararlanma sürecine dalmadan önce, genel adımları anlayalım:
- Kayıt Bilgilerini Toplama: sürecin ilk adımı ebeveynlerden kayıt bilgilerinin toplanmasıdır. Bu bir web formu aracılığıyla yapılabilir; bizim senaryomuzda JSON kullanıyoruz. Gönderildiğinde bir Lambda işlevi tetiklenir ve bu işlev kayıt bilgilerini iş akışındaki bir sonraki adıma aktarır.
- Kayıt Bilgilerini Doğrulama: Sonraki adım, kayıt bilgilerini doğrulayan bir Lambda işlevi kullanmaktır. Tüm zorunlu alanların doldurulduğunu ve çocuğun yaşının kreş için kabul edilebilir aralıkta olduğunu kontrol eder. Doğrulama başarılıysa iş akışı bir sonraki adıma ilerler; değilse ebeveynlere bir hata iletisi dönülür.
- Uygunluk Kontrolü: Kayıt bilgileri doğrulandıktan sonra başka bir Lambda işlevi kreşte boş yer olup olmadığını kontrol eder. Yer varsa iş akışı bir sonraki adıma ilerler; yoksa kreşte yer olmadığı ebeveynlere bildirilir.
- Kaydı Onaylama: Son adım, kaydı onaylayan ve ebeveynlere onay mesajı gönderen bir Lambda işlevdir. Bu, başlangıç tarihi ve ücretler gibi ayrıntıları içerir.
Bu iş akışı, tamamı açıklayıcı olan dört ana göreve sahip bir Durum Makinesine sahiptir.
checkInformationcheckAgeRangecheckSpotsAvailabilityconfirmRegistration
AWS Step functions kullanılarak Kreş Kayıt iş akışı
İlk AWS Step Function’ızı Oluşturma
Yukarıdaki bölümler daha teorik bilgi sağladı; bu bölüm ise önkoşullardan başlayarak uçtan uca bir iş akışı uygulamaya ve dağıtmaya kadar teknik ayrıntılara iner.
Step Functions’ı Uygulama Önkoşulları
Kullanım senaryosunun ayrıntılarına dalmadan önce, başarılı bir uygulama için gereken önkoşulları gözden geçirelim:
- AWS hesabı: AWS hizmetlerine erişmek için gereklidir ve AWS web sitesinden oluşturulabilir.
- AWS Hizmetleri temel bilgisi: Bu kullanım senaryosunun kapsamı için AWS Lambda ve Amazon Simple Notification Service (SNS) ile aşinalık gereklidir.
- JSON Bilgisi: Girdi ve çıktı veri biçimini anlamak için JSON’a dair temel bir anlayış gerekir.
- AWS IAM: Kullanılan Lambda işlevleri için doğru izinleri ayarlamak adına AWS Kimlik ve Erişim Yönetimi (IAM) hakkında bilgi gereklidir.
- Kodlama Becerileri: Lambda işlevlerini yazmak için Python’da temel kodlama becerileri gereklidir.
AWS Step Functions Arayüzünde Gezinme
Step Function arayüzünü keşfederek başlayalım. AWS hesabınıza giriş yaptıktan sonra aşağıdaki dört adımı izleyerek bunu yapabiliriz:
- Üstteki arama çubuğuna “Step Functions” anahtar sözcüğünü yazın.
- Sonuçlardan ilgili simgeyı seçin.
- İlk step function’ı oluşturmaya başlamak için “Get Started” simgesine tıklayın.
- Son olarak, kendi durum makinemizi oluşturmak istediğimizden “Create your own” sekmesini seçin.

Bir Step Function arayüzüne erişmenin dört ana adımı
Dördüncü adımdan sonra, üç ana işlevsellik içeren “Design” sekmesinin yardımıyla durum makinesini tasarlamaya başlayabiliriz: “Actions”, “Flow” ve “Patterns.”

"Design" sekmesinin üç ana bileşeni
- Actions: Bunlar, bir iş akışı içinde gerçekleştirilebilecek tekil işlemlere karşılık gelir ve belirli AWS hizmetleriyle eşleştirilidir; örneğin bir Lambda işlevini çağırmak, SNS’e ileti yayınlamak, ECS’de bir görev çalıştırmak veya AWS Glue’da bir işi başlatmak gibi.
- Flow: Bu, durum makinesinin yürütme yolunu belirleyen kontrol akışı yapılarını temsil eder. Dallanma mantığı için "Choice", eş zamanlı yürütme yolları için "Parallel", bir kümede yineleme için "Map", işlem yapmayan veya durum verisini zenginleştiren "Pass", zaman gecikmeleri için "Wait", iş akışını başarıyla sonlandıran "Success" ve bir hatadan dolayı sonlandıran "Fail" gibi öğeler iş akışın akış denetiminin parçasıdır.
- Patterns: Bunlar, sık görülen iş akışı senaryoları için ön tanımlı şablonlar veya en iyi uygulamalardır; karmaşık durum makinelerini kurmayı kolaylaştırır. Şablonlar, S3 nesneleri, JSON dosyaları, CSV dosyalarıyla çalışmayı içeren veri işleme görevlerini ya da asenkron iş yürütmeyi orkestre etmek için bir iş yoklayıcısı (job Poller) gibi genel amaçlı kalıpları içerebilir.
İş Akışını Oluşturma
İlk iş akışı, durum makinesinin ana bileşenlerine genel bir bakış sağlamayı amaçlıyordu. Bu bölüm, uygulama sürecini gözden geçirir.
Bunu yapmak için her biri belirli bir göreve karşılık gelen dört lambda işlevine ihtiyaç vardır.
Aşağıdaki yedi adım, bir lambda işlevi oluşturmak için gerek duyulan tüm adımları vurgular. Oluşturma süreci dördü için de aynıdır; tek fark bu işlevlerin içeriğindedir.
Makalenin tüm kodu GitHub sayfasında mevcuttur. Kod anlaşılması kolay olsa da daha iyi bir deneyim için makalenin tüm içeriğini takip etmeniz şiddetle önerilir.
Bir Lambda İşlevi oluşturmanın 7 ana adımı
Yedi adım tamamlandıktan sonra, aşağıdaki pencere görünmelidir ve şu gibi önemli bilgileri gösterir:
- İşlevin adı
- Onun Amazon Resource Name (ARN) bağlantısı ve
- İşlev mantığını uygulamak için tümleşik alan.
checkInformation lambda işlevinin ayrıntıları
Şimdi aynı süreci kalan üç görev (işlev) için tekrarlayın: checkAgeRange, checkSpotsAvailability ve confirmRegistration.
Girdi JSON’unun bir örneği aşağıda verilmiştir. İşlevlerin nasıl uygulandığını etkilediğinden bunu anlamak önemlidir.
- JSON, kaydı yapılan çocuğa ilişkin ad, soyad ve doğum tarihi dahil bilgileri içerir.
- Ayrıca ebeveynlere ilişkin ayrıntıları, çocuğun kreşe geleceği haftanın günlerini ve diğer ek bilgileri içerir.
{
"registration_info": {
"child": {
"firstName": "Mohamed",
"lastName": "Diallo",
"dateOfBirth": "2016-07-01"
},
"parents": {
"mother": {
"firstName": "Aicha",
"lastName": "Cisse",
"email": "aicha.cisse@example.com",
"phone": "123-456-7890"
},
"father": {
"firstName": "Ibrahim",
"lastName": "Diallo",
"email": "ibrahim.diallo@example.com",
"phone": "098-765-4321"
}
},
"daysOfWeek": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
],
"specialInstructions": "Mohamed has a peanut allergy."
}
}
Her lambda işlevi aşağıda açıklanır:
|
İşlev |
Açıklama |
|
|
|
|
|
|
|
|
|
|
|
|
Her işlevin temel uygulaması aşağıda sağlanmıştır:
checkInformation işlevi
import json
def checkInformation(event, context):
registration_info = event['registration_info']
required_fields = ['child', 'parents', 'daysOfWeek']
for field in required_fields:
if field not in registration_info:
return {
'statusCode': 400,
'body': f'Missing required field: {field}'
}
return {
'statusCode': 200,
'body': json.dumps(registration_info)
}
checkAgeRange işlevi
import json
import datetime
def checkAgeRange(event, context):
registration_info = json.loads(event['body'])
dob = registration_info['child']['dateOfBirth']
today = datetime.date.today()
dob_date = datetime.datetime.strptime(dob, '%Y-%m-%d').date()
age = today.year - dob_date.year - ((today.month, today.day) < (dob_date.month, dob_date.day))
if age < 2 or age > 5:
return {
'statusCode': 400,
'body': json.dumps('Child is not within the acceptable age range for this daycare.')
}
registration_info['child']['age'] = age
return {
'statusCode': 200,
'body': json.dumps(registration_info)
}
checkSpotsAvailability işlevi
import json
def checkSpotsAvailability(event, context):
registration_info = json.loads(event['body'])
spots_available = 20 # This should be dynamically determined, not hardcoded
if spots_available <= 0:
return {
'statusCode': 400,
'body': json.dumps('No spots available in the daycare.')
}
return {
'statusCode': 200,
'body': json.dumps(registration_info)
}
confirmRegistration işlevi
import json
import datetime
def confirmRegistration(event, context):
registration_info = json.loads(event['body'])
age = registration_info['child']['age'] # This was added in the checkAgeRange function
if age >= 2 and age < 3:
fees = 800
elif age >= 3 and age < 4:
fees = 750
elif age >= 4 and age < 5:
fees = 700
else: # age >= 5
fees = 650
start_date = datetime.date.today() + datetime.timedelta(weeks=2)
confirmation_details = {
'fees': fees,
'start_date': start_date.isoformat()
}
response = {**registration_info, **confirmation_details}
return {
'statusCode': 200,
'body': json.dumps(response)
}
Tüm bunlar hazır olduğunda, Step Functions grafiksel arayüzünü kullanarak kreş durum makinemizi oluşturmaya başlayabiliriz.
Nihai durum makinesi aşağıda verilmiştir; bu iş akışına giden başlıca adımları anlayalım:

Kreş kullanım senaryosu için durum makinesi iş akışı
Başlamadan önce, bir lambda işlevi çıktısındaki statusCode alanının durum makinesinde bir sonraki durumu belirlemek için kullanıldığını not etmek önemlidir.
- Değer 200 ise kontrol başarılı olmuştur ve bir sonraki adıma geçilir.
statusCode400 ise kontrol başarısızdır; bu durumda alttaki görevi yürüten işleve bağlı olarak ilgili iletisi dönülür.
Bilgileri Kontrol Etme
- Durum makinesi bu adımda başlar.
- Kayıt formunda tüm zorunlu bilgilerin mevcut olup olmadığını kontrol etmek için bir lambda işlevi çağırılır.
- Bilgiler tam ise süreç bir sonraki adıma geçer; değilse bilgiler eksik olduğunu bildiren bir hata durumuyla sonlanır.
Yaş Aralığını Kontrol Etme
- Bu adıma yalnızca bilgi kontrolü başarılıysa gelinir.
- Çocuğun yaşının kreş için kabul edilebilir aralıkta olup olmadığını kontrol etmek için başka bir lambda işlevi çağırılır.
- Yaş aralık içindeyse süreç bir sonraki adıma geçer; değilse yaşın geçersiz olduğunu bildiren hata durumuyla sonlanır.
Boş Yer Uygunluğunu Kontrol Etme
- Bu adıma yalnızca yaş kontrolü başarılıysa gelinir.
- Kreşte boş yer olup olmadığını kontrol etmek için bir lambda işlevi çağırılır.
- Yer varsa süreç bir sonraki adıma geçer; yoksa boş yer olmadığını bildiren hata durumuyla sonlanır.
Kaydı Onaylama
- Bu, son adımdır ve yalnızca kreşte boş yer varsa ulaşılır.
- Kaydı onaylamak ve çocuğun yaşına göre ücretleri hesaplamak için bir Lambda işlevi çağırılır.
- Süreç bu adımdan sonra, kaydı doğrulayan bir başarı durumuyla biter.
Lambda işlevleri hakkında daha fazla bilgi edinmek için, AWS Kinesis ve Lambda ile Akış Verisi kursu, AWS üzerinde sunucusuz teknolojiler kullanarak akış verisiyle nasıl çalışılacağını öğretir.
IAM Rollerini Oluşturma
Sonraki adım, step functions’ın lambda işlevlerimizi çağırabilmesi için IAM rollerini tanımlamaktır. Bu, aşağıdaki adımlar izlenerek yapılır:

Bir IAM rolü oluşturmanın ilk dokuz adımı

Bir IAM rolü oluşturmanın 10. ve 11. adımları
Bu IAM rolü, “Config” sekmesinden başlanarak aşağıdaki gibi durum makinesine atanabilir.

IAM rolüne yetki vermenin 3 ana adımı
Kaydettikten sonra her şeyin yolunda gidip gitmediğini görmek için aşağıdaki mesajı almalıyız.

Durum makinesi oluşturma için başarı mesajı
Durum makinesinden memnun kaldığımızda, bir sonraki adım sağ üstte bulunan “Create” düğmesini kullanarak onu oluşturmaktır.
Durum makinesi yürütmesinin görseli
İş Akışınızı Dağıtma ve Test Etme
İş akışımız dağıtıldı ve artık durum makinesini test etme zamanı. İki senaryoyu test edeceğiz:
- Geçerli yaş aralığıyla bir başarısızlık durumu; bu durumda kaydetmeye çalıştığımız çocuk 5 yaşından büyüktür. Bu, başlangıç JSON’una karşılık gelir.
- Çocuğun 3 yaşında olduğu bir başarı durumu.

Başarı durumunun sonucu

Başarısızlık durumunun sonucu
Step Functions’ızı Optimize Etme
Herhangi bir sürecin optimizasyonu, o sürece ilişkin en iyi uygulamaları benimsemekle başlar; bu da performans iyileşmesine ve maliyet etkinliğine yol açabilir. Aşağıdaki en iyi uygulamalar, herhangi bir AWS Step Function’dan en iyi şekilde yararlanmanıza yardımcı olabilir.
- Performans İçin En İyi Uygulamalar: Durum geçişlerinin sayısını en aza indirmek, uygun zaman aşımı ayarları kullanmak ve AWS Lambda işlevlerinizi optimize etmek gibi stratejileri içerir.
- Maliyet Etkinliği İçin En İyi Uygulamalar: Doğru türde durum makinesi (Standard veya Express) kullanmak, AWS Lambda maliyetlerini yönetmek ve Step Functions fiyatlandırmasını anlamak ve yönetmek gibi stratejileri içerir.
Sonuç
Bu makale, AWS Step Functions’ı anlamak ve kullanmak için kapsamla bir rehber sundu. Önce AWS Step Functions’ı, temel özelliklerini ve faydalarını tanıttı.
Ardından, okuyucuyu AWS ortamını kurma ve AWS Step Functions arayüzünde gezinme sürecinde yönlendirdi.
Ayrıca, temel bir iş akışı oluşturmaktan onu dağıtma ve test etmeye kadar ilk AWS Step Function’ının nasıl inşa edileceğini adım adım anlattı. Makale, AWS Step Functions’ın ileri düzey özellikleri ve kullanım senaryolarını da keşfetti; maksimum verimlilik ve maliyet etkinliği için nasıl optimize edileceklerini tartıştı.
Toparlayalım
AWS, Azure ve GCP Hizmet Karşılaştırması (Veri Bilimi & YZ) ve Python’da AWS Boto’ya Giriş başlıklı yazılarımız, öğrenmeye devam etmek için harika birer sonraki adım olabilir.
İlk yazı, veri mühendisliğinden veri analizi ve veri bilimine, veri uygulamaları oluşturmaya kadar veri ve YZ ile ilgili çalışmalar için gereken temel hizmetlerin bir karşılaştırmasını sunar. Bu el kılavuzu, üç büyük platform genelinde veri bilimi ve YZ için bulut hizmetleri manzarasını anlamaya yardımcı olabilir.
İkinci yazı, AWS işlemlerinizi Python kullanarak otomatikleştirmek isteyen herkes için harika bir kaynak olabilecek, AWS Boto’ya kolay bir giriş sağlar ve bulut teknolojisinden yararlanarak veri iş akışını nasıl optimize edeceğinizi öğretir.
AWS’de birçok hizmet vardır ve AWS Step Functions’a hâkim olmanın anahtarı, uygulamanın gereksinimlerini anlamak ve bu gereksinimleri karşılamak için doğru AWS hizmetleri ve özellikleri kombinasyonunu kullanmaktır.
Bilgisini paylaşmaktan ve başkalarına katkı sunmaktan keyif alan, çok yönlü bir veri bilimci olan Zoumana, YouTube’da içerik üretiyor ve Medium’da önde gelen teknoloji yazarları arasında yer alıyor. Konuşmaktan, kod yazmaktan ve öğretmekten büyük zevk alıyor. Zoumana’nın iki yüksek lisans derecesi bulunuyor: İlki Fransa, Paris’te Makine Öğrenmesi odaklı Bilgisayar Bilimleri; ikincisi ise ABD’de Texas Tech University’den Veri Bilimi. Kariyerine Fransa’da Groupe OPEN’da Yazılım Geliştirici olarak başladı; ardından IBM’de Makine Öğrenmesi Danışmanı olarak çalıştı ve sigorta şirketleri için uçtan uca yapay zeka çözümleri geliştirdi. Paris ve Montreal merkezli ilk Sürdürülebilir YZ girişimi olan Axionable’a katıldı. Burada Veri Bilimci olarak görev yaptı ve çoğunlukla NLP kullanım örnekleri olmak üzere, Fransa, Montreal, Singapur ve İsviçre’den müşteriler için YZ ürünleri hayata geçirdi. Ayrıca zamanının %5’ini Araştırma ve Geliştirme’ye ayırdı. Hâlihazırda IFC – Dünya Bankası Grubu’nda Kıdemli Veri Bilimci olarak çalışmaktadır.





