Türkiye’de kurulan butik bir oyun stüdyosu olan BOA Games, yakında çıkacak CapRoyale adlı casual mobil oyununu geniş kitlelere ulaştırmak için bir lansman planlıyor. Bunu başarmak için bir AWS iş ortağının yardımını alarak AWS üzerinde çalışan mimariye sahip bir yapıya ihtiyaçları olduğunu belirlediler. Sufle, BOA Games’in bu altyapıyı tasarlamasına ve uygulamayı bulut ortamına uyum sağlayacak şekilde modernize etmesine ve hem lansman hem de uzun vadede hedeflerine ulaşmasına yardımcı oldu. Sufle’nin ölçeklenebilir ve yüksek düzeyde uyarlanabilir altyapılar hakkındaki bilgisi, BOA Games ekibi açısından çok önemliydi.
Modernizasyon Yoluyla Uyum Sağlama
Sufle, bir organizasyon yapısından başlayarak BOA Games için uygun bir altyapıyı sıfırdan tasarladı. BOA Games potansiyeli olan bir oyun stüdyosu olduğu için farklı oyunların gelecek AWS Organizasyonları oyun başına bir hesap yapısı ile kuruldu. Bu yapı, hem ortamların hem de ekip ve proje düzeyinde erişim kontrollerinin yalıtılmasını sağladı.
Sufle’nin hem SRE hem de geliştirme ekipleri, uygulama davranışını ve gereksinimlerini analiz etmek için BOA Games ile işbirliği yaptı. Uygulama buluta hazır olmasa da, eğitimler ve ekipler arasında bilgi paylaşımı yoluyla uygulamanın buluta özgü uyarlaması hızlı bir şekilde yürütüldü. Uygulamalar container’lara aktarıldı, yerel ortam container’lara uyarlandı. Birçok uygulamanın ve WebSockets zayıf noktaları endişe yarattı. Yatay ölçeklendirme, WebSockets’in durum bilgisi olmayan doğası nedeniyle bir zorluk haline gelmekteydi. Sufle’nin geçmiş deneyimleri bu anlamda faydalı oldu. WebSocket arka yüzü, ana pub-sub bileşeni olarak Redis ile modernize edildi.
Uygulama modernizasyonu devam ederken, SRE ekibi altyapıyı Terraform ile kodlamaya başladı. Altyapıda kullanılan her bileşen kodlandı, test edildi ve sürüm kontrolü yapıldı. Uygulama, Amazon ECS’de bir AWS Fargate kümesinde çalışır; dolayısıyla hiçbir sunucu yönetilmez. Kapsayıcı imajları Amazon ECR’de barındırılır ve güvenlik açıklarına karşı sürekli olarak taranır. Uygulamayı Amazon ECS’de barındırmak, otomatik ölçeklendirmeyi kolaylaştırdı. Uygulama, ilişkisel bir veri tabanı kullanacak şekilde tasarlandığından, uygulamanın veri tabanı eş görünümünü Multi-AZ desteğiyle barındırmak için Amazon RDS kullanıldı. Amazon RDS Performance Insights, zayıf noktaları, darboğaz sorgularını, dizin gerektiren tabloları ve daha da önemlisi doğru veri tabanı bulut sunucusu boyutunu belirlememize yardımcı olan tüm ölçümleri toplamaya olanak tanır. Son olarak, WebSocket arka yüzü için otomatik yük devretme özelliklerine sahip dayanıklı, yüksek oranda erişilebilir bir Amazon Elasticache Redis kümesi kuruldu.
Hazırlık Aşaması
Altyapıyı kurduktan sonra, uygulamayı dağıtmak için süreğen bir dağıtım hattı oluşturuldu. Tüm bileşenler ve akışlar test edildi ve çalışacak şekilde doğrulandı ve test kullanıcılarının ilk grubu, kapalı beta test grubu olarak uygulamaya dâhil edildi. Beta testi, uygulamanın ayak izlerini, görevler için uygun boyutları, otomatik ölçeklendirmeyi ve altyapıdaki diğer tüm bileşenleri analiz etmemize yardımcı oldu. Test tamamlandığında, tüm sistemler çalışmaya hazırdı.
Oyun günü
Cap Royale, Türkiye’deki tüm büyük mobil mağazalarında lanse edildi ve birçok popüler platformdaki pazarlama kampanyalarıyla desteklendi. Binlerce kullanıcı oyunu indirip oynarken hem Sufle hem de BOA Games ekipleri yakından takip etti, ölçümleri analiz etti, geri bildirim topladı ve herhangi bir sorun olup olmadığını denetledi. Oyun kurulum sayıları hızla artmasına rağmen, doğru tasarımın yardımıyla büyük bir başarı kaznıldı.
Cap Royale, mobil oyun pazarında bir sansasyon yarattı. İlk ayda 150.000’den fazla kullanıcı tarafından oynandı ve lansmanından sonraki ilk hafta strateji kategorisinde 1 numaralı uygulama oldu. BOA Games, yakın gelecekte sunucusuz yönde daha da ileri gitmeyi ve Amazon DynamoDB ile denemeler yapmayı planlıyor. Bulut uyarlaması ekibe, mevcut SQL veritabanını tamamen sunucusuz bir NoSQL veritabanıyla değiştirmenin operasyonları daha da iyileştireceğini ve denizaşırı pazarlarda lansmanı sorunsuz hâle getireceğini gösterdi.