LCW Mobile App’te 5 milyon aktif mobil kullanıcıya ulaştık !!!

Mehmet Utku Tatlıdede
LCW Digital
Published in
5 min readMay 6, 2022
Mayıs 2022 itibari ile

Geçen sene Ramazan ayının öncesinde pandemi önlemleri sebebi ile tüm Türkiye kapanmış ve LC Waikiki olarak eticaret operasyonumuzu sadece kendi eticaret alyapımız ile yürütme yani marketplacelerden çıkma kararı almıştık. Bu iki karar ile girdiğimiz Ramazan ayına 1.3 milyon ile girip 1.9 milyon ile tamamlamıştık. İş birimimiz geçen sene bir çok yeniliğe imza atarak müşterilerimizin ilgisini her geçen gün arttırmayı başardı. Kasım ayında reklam bütçesinin indirimlere harcanması, ilk kez yapılan çark kampanyaları ve son olarak Nisan ayının yeni Kasım olarak ele alınması müşterilerimiz tarafından fazlası ile beğenildi. Geçen Ramazan ayından bu yana devam eden müşteri artışımız bu sene bayram arifesinde 5 milyonu geçti. İnanılmaz bir hızla artan müşterilerimizin taleplerini karşılamaktada zaman zaman zorlandık. Sabrınız ve anlayışınız için tekrar teşekkür ederiz. Daha iyi olabilmek için hem çalışmalarımız hem yatırımlarımız olanca hızı ile devam ediyor. Şu an daha ancak yarısına gelebildik. Çok çok daha iyi olacağız.

Mart 2021 — Nisan 2021

Bu trafiği karşılamak ve müşterilerimize iyi bir deneyim yaşatabilmek için neler yaptık ve yapıyoruzdan biraz bahsetmek için bu yazıyı yazmak istedim. Hemen yazının başında kendi ekibime, sistem ekibimize, devops ekibimize ve mimari ekibimize ayrı ayrı teşekkür etmek isterim. Çok büyük dedikasyon ile geçen ve aylar süren bir çalışmanın kısa özeti oldu.

Öncelikle konuyu iki ana başlık altında ele almak istiyorum. Birinci kısımda modernizasyon adı altında yaptığımız yazılımsal dönüşümler, ikinci kısımda ise sistem tarafında yapıtığımız değişiklikler.

Geçen sene yazılarımızı yazmaya başladığımızda önce LCW de modernizasyona nasıl başladığımızı ilk adımlar ismi ile aktarmış sonrasında da eticaret domainindeki ilk öncü uygulamamız olan ürünün kaç ziyaretçi tarafından görütüntülendiğini hesaplayan servisi Pars.Core ile canlıya nasıl aldığımız aktarmıştım. İşte tam bu zamanlarda paralelde JAVA ile dış firma tarafından geliştirimiş ve sonra LCW ye devir edilmiş mobil api gateway uygulamamızı Pars.Core a alma kararı vermiştik. Yaklaşık 150 rest apiden oluşan oldukça büyük bir BFF (backend for frontend) katmanını dönüştürmeye başladık ve parça parça toglelar ile yöneterek yayına aldık. Ayrıca BFF i precheckout, checkout, postcheckout ve service olarak dörte ayırdık. Precheckout müşterimizin uygulamada ürün arama, ürün listeleme ve ürün detay görüntüleme gibi ürün ile ilgili işlemlerini karşılıyor. Tahmin edeceğiniz gibi trafik arttığında müşterilerimiz ürünleri inceliyorlar ve bu da tamamen precheckout’un trafiğini arttırmış oluyor. Sepet ve Favori işlemleri checkout, ödeme ve sipariş işlemleri postcheckout ve müşteri logini konfigrasyon yönetimi gibi uygulama müşterimizin telefonunda ilk açılırken çağırılan servislerde service olan parçada bulunuyor.

Bu parçalı yapı uygulamayı çok daha rahat scale etmemize ayrıca arada yaşanan aksaklıkların sales funnelın diğer aşamalarına geçmiş müşterileri etkilememesini sağlamış olduk. Örneğin sepet oluşturdunuz ancak ürün listelerken bir hata alıyorsanız sepeti hatasız bir şekilde satın almanız mümkün hale geldi.

Geldiğimiz son noktada JAVA da hala az da olsa taşımadığımız kısımlar var. Yük olarak ise %95 Pars.Core — Kubernetes e taşınmış durumda. Çok kısa bir zaman içinde JAVA kısımını tamamen kapatmayı planlıyoruz.

Sadece mobile BBF eodaklanarak bu problemi çözmemiz elbette mümkün değildi. Belli bir nokta tüm ekiplerimizin dönüşümde ilerlemeleri ve sundukları servislerin performaslarının arttılarmaları gerekiyordu. İtici güç olarak mobilin eriştiği methotların eğer ileride ciddi bir değişiklik yapmayacak isek öncelikli olarak Pars.Core a alınması çalışmasını başlattık. Customer, Payment, Order, Session Managment, Omnichannel, Address, CMS, Look gibi bir çok servis bu sayede modernize edilerek yeni Mobile BFF’e entegre edildi.

Precheckout tarafında Mobile BFF dönüşümünden de önce başladığımız Mayıs ayı içerisinde tamamlayı plandığımız çok büyük bir döşümü ciddi oranda tamamladık. Catalog ve Product servislerimiz hibrit cloud vizyonumuza uygun şekilde Cloud da Kubernetes üzerinde canlıya alındı. Catalog servisimiz datasource olarak eskiden de elastic search kullanıyor idi. Ancak Product servisimiz için SQL yerine Couchbase i tercih ettik. Bu servislerin Nisan ayı öncesinde ve içerisinde canlıya alınması bizler için çok rahatlatıcı oldu.

PostCheckout tarafında da özellikle depo süreçlerinin yoğunluğunun canlı sistemi etkilime durumu oluşabildigini gözlemledik. Bu domainde Mongo kullanımını ön plana çıkararak database üzerindeki yükü azalttık ve Kargo entegrasyonlarımızın sorgulama işlemlerini Pars.Core a geçirdik. Ayrıca batch işlerimizi ya da backoffice işlerimizi bulk head pattern uyarınca ayrı sunucu ve servislere taşıdık. Bu sayede deponun etkisini giderek azaltmış olduk.

Core servis olarak adlandırabileceğimiz Localization, Notification, Templating, Streaming gibi apilerimiz geliştirildi ve hem eski hem de Pars.Core da geliştirlen yeni servislerimiz tarafından entegre edilmesini sağladık.

Circuit breaker kullanımının yaygınlaştırılması, kullanılan resourcelara erişirken timeoutların set edilmesi, pod ların HPA ile auto scale edilmesi, onlarca db ya da kod seviyesinde optimizasyon yaparak ilerledik.

Sistem tarafına öncelikli olarak Şubat ayında datacenter’ımızı taşımayı tamamladık. Yeni datacentera Kasım ayındakine göre daha çok ama hala istediğimiz kadar kaynağımız mevcut değil. Mayıs ayı içinde hostlarımızın tamamlanmasını bekliyoruz. Global chip krizi bu gibi büyük datacenter yatırımlarını oldukça geciktiriyor ne yazık ki.

Taşıma işlemini yaparken tüm makinalarımı yeniden kurduk, bu sayede tüm sistemler upgrade de oldu ve altyapıdaki bazı konuları tekrar kurguladık. En önemlileri olarak dmz ve app olarak iki ayrı kubernetes clusterı kurmamız ve eticaretin yoğun kullanılan IIS üzerinde koşan servislerini clustler olarak kurgulamamız oldu diyebilirim. Devops ekibimizin destegi ile tüm deployment sürecini daha önce kullandığımız farklı bir araçtan Azure Pipelines a taşıdık. Şu sıralarda production ortamımızın küçük bir kopyası olan preprod ortamımızı da hayata geçirmek üzereyiz. Süreç olarak da çok daha iyi bir noktaya doğru ilerliyoruz.

Hybrid Cloud architecture

Son sözler olarak şu an datacenter’ımızdaki Linux sunucu adedimiz Windows sunucu adedini geçmiş durumda. Eticarete gelen her 10 isteğin 7 si kubernetes üzerinde koşan .net core servislerimiz tarafından cevaplanıyor. Pars.Core servislerimizin sayısı giderek artıyor. Kubernetes ve precheckoutdaki cloud kullanımı sayesinde hem scalebilitymiz hem de elasticitymiz arttı. Önümüzde yükte hafif complexitiy ve criticality de ağır Order Manament System, Checkout, Payment ve Customer gibi domainler var. Bunları da en kısa zamanda gündemimize almayı planlıyoruz.

--

--