
Konuklar: Kübra Güngör, Melek Şimal Ünsal, Meltem Demir, Mert Bahardoğan
48. bölümümüzde konuğumuz Search Core ekibi oldu. Ekip yapısını, projelerini, teknoloji stack seçimlerini ve çok daha fazlasını konuştuk!
Transkript
Selam ekip. Ben Fulfillment Order Masterlat ekibinden Fırat.
Ben Stofron Tera PDP ekibinden Cengiz.
Teknoloji ekibini tanıdığımız ve süreçler, teknolojiler gibi konuları konuştuğumuz Selam Ekip Podcast serisinin 48.
bölümündeyiz. Bu bölümde Search Core ekibiyle birlikteyiz.
Bu ekibi tanıyıp ekip yapısı, kullanılan teknolojiler, pratikler gibi konuları konuşacağız.
Arkadaşlar hoş geldiniz. Hoş geldiniz.
Hoş bulduk. Hoş geldiniz.
Miribalar, miribalar. Hoş geldiniz.
Efendim, kısaca bir kendinizi tanıtabilir misiniz?
Sizleri bir tanıyalım en başta. Herkese selam.
Ben başlayayım o zaman. Ben Meltem.
Yaklaşık 4 yıldır Trendyol'dayım.
Searchcore ekibindeyim ve developer olarak çalışıyorum.
Kübra ben de. 3 senedir eski TY Search, yeni Searchcore ekibinde developer test olarak çalışıyorum.
Ben Melek Şmal. Ben de 2 senedir Searchcore ekibinde developer olarak görev alıyorum.
Selamlar. Ben de Mert.
5 aydır Trendyol'da Searchcore ekibinde developer olarak çalışıyorum.
Valla süper. Yani böyle...
Şey değil mi Fırat hani ekibi bu şu anki konuklarımızda hiyerarşi durumu söz konusu.
Evet 4-3-2. 2 yıldır.
Mert bozdu biraz seri o 5 ay dedi ama.
Evet Mert çıkarttı.
Güzel güzel oldu böyle her şeyden her uzunluktan deneyimden arkadaşların olması.
Bu bölümü daha da güzel yapacağına eminim.
Arkadaşlar tekrar hoş geldiniz.
Ben şimdi diğer sorumuza geçmek istiyorum.
Sourcecore ekibi tam olarak ne yapıyor?
Genel itibariyle hani Search tabi şimdi tahmin etmek zor bir ekip ismi değil.
Hani hepimiz 3 aşağı 3 yukarı ha okey ya Search ile alakalı diyoruz ama tam olarak nelerden sorumlu neler yapıyor Search ekibi?
Aslında yani Search Core ekibi...
Şimdi search altında birden fazla ekip var.
Yani ben sadece bizim çalıştığımız takımı ve onun özelinde konuşmaya çalışacağım.
Ama şöyle diyebiliriz, search altındaki ekipler, yani search para yazdıktan sonra çıkan önerilerin farklı bir ekip olmasından, search result'ta farklı algoritmalar ile search result'ın
dönmesi üzerine çalışan ekipler bile farklı.
Aslında arkada kocaman bir dünya var diyebiliriz search ile ilgili.
Peki biz ne yapıyoruz? Search core takımı olarak hem Trendyol hem...
Hem Trendio Mila sitelerinde search para yazdığımızdan itibaren ilgili sonuçların dönmesi üzerine çalışan ekiplerden birisiyiz diyebiliriz.
Dediğim gibi birden fazla ekip var aslında.
Ve burada büyük bir işleyiş var arkada.
Yani search yazar sayfasında ürünlerin listelenmesinden, filtrelerin verilmesine kadar bir sürü şeyden sorumluyuz diyebiliriz.
Burada mesela Trendyol'a ilk girdiğinizde işte filasyon ürünlerin tıklanması olsun ya da herhangi bir butiğe girilmesi olsun bunların hepsinde search var arkada.
Ya bu sadece görünen ön yüz tarafındaki kısım ama arkada da aslında satıcılara sunulan ekranlar, promosyon kupon ekranları, işte reklam ürünlerinin giriş yapıldığı sayfalar bunların hepsinde
de yine search'e geliniyor ve burada...
da buralarda da hizmet veriyoruz diyebiliriz.
Birazcık da ekipten bahsedecek olursam aslında biz 7 developer, 2 QA, 1 tech lead ve 1 lider bulunmaktadır.
Backend yazan bir ekibiz.
Yani ağırlıklı Java ve Go dillerini yazıyoruz fakat bu demek değil ki başka hiçbir dil kullanmıyoruz gibi bir şey değil.
Aslında yine Trendyol teknolojisinin kültüründe olduğu gibi farklı dillerde çalışmaya açığız.
Yani farklı dil ve teknolojide yine herkes kendi belirlediği gibi bizim ekibimizde burada POC'lerle, load, testlerle bütün performans metriklerini benchmarkları karşılaştıraraktan teknolojiyi seçmeye çalışıyoruz.
Yani özellikle biz load testle ünlü bir ekip diyebiliriz yani kendimize.
Ünlü bir ekibiz diyebiliriz.
Çünkü genellikle Elasticsearch'te şart ve replikalarından işte yeni not eklenmesine kadar her şeyi load test koşaraktan karar veren bir ekibiz.
Dil haricinde de Temel taşı, yani temel yapı taşı aslında Elasticsearch.
Yani search için. Çok önemli bir teknoloji bizim için.
Burada Elasticsearch kullanıyoruz.
Tabii ki DBA olarak da Couchbase kullanıyoruz.
Search eventlerimizde BigQuery kullanıyoruz.
Ve Kafka gibi, Apache Kafka gibi de aktif kullandığımız teknoloji de bulunmaktadır.
Bu şekilde özetleyebilirim.
Bu konuştukların tabii Search Core ekibi için miydi yoksa genel Search için miydi Meltem?
Yani genel Search içerisinde de ortak yanlarımız çok aslında.
Ama Search Core ekibi özelinde özellikle bunları kullanıyoruz diyebiliriz.
Anladım. Çok iyi. Peki az önce Kübra sanki şey demiştim.
Eski T'yi Search'ten buraya geldim gibi bir şey.
T'yi Search dediğimizde birleş, yani bölünmeden önceki eski ekip mi oluyor yoksa?
Yok aslında ismi değişti diyebiliriz.
Okey. Okey. İskin değişikliği oldu.
T'yi Search'ten Search Core'a geçti diyebilir miyiz?
Aynen. Tamamdır.
Şimdi burada o zaman 7 tane developer vardı.
2 QA, 1 tech lead var ve 1 tane de piyanoz var sanırım.
Ve search ekiblerin gibi çok büyük bir hizmet altyapısı gibi bir şey aslında.
Burada peki sizler haftalık olarak ecal mi gidiyorsunuz?
Scrum framework'ından mı yapıyorsunuz?
Yoksa 1-2 haftalık mı? Ya da buradaki müşteri yönetimi farklı olduğu için ona göre farklı aksiyonlar alıyor musunuz?
Bir ekip üyesinin mesela bir günü nasıl geçiyor?
Örneğin pazartesi ben şu toplantıyı yaparım.
Perşembe şunu yapıyorum. Haftan bitiyor gibi.
Haftanız veya gününüz nasıl geçiyor?
Bundan da ben bahsedeyim isterseniz.
İlk olarak ecel işleyişimize değineyim biraz.
Aslında haftalık sprintler koşuyoruz.
Grooming, planlama, retro toplantılarımızı her hafta gerçekleştiriyoruz ve günlük daily'ler yapıyoruz diyebilirim.
Bir günümüz nasıl geçiyor?
Açıkçası güne 8.45'te daily toplantımızla başlıyoruz.
Taskların üzerinden geçerek bizi bloklayan konuları, sorularımızı, update'lerimizi, product'ımızın drive ettiği bu toplantıyla tamamlıyoruz aslında.
Pazartesi günü ise sprint'in ilk günü.
İşlerimizi paylaşıyoruz.
Daha sonrasında da biz Zoom'u aktif olarak kullanıyoruz.
Odalara dağılıyoruz ve herkes bir odada.
Payır belirlendiyse payırlar birlikte olacak şekilde çalışıyoruz.
Bunun bize şöyle bir avantajı oluyor.
Birbirimize istediğimiz zaman ulaşabiliyoruz aslında.
Müsait oldukça kameralarımızı açmaya çalışıyoruz.
Ve ek olarak Slack'ten de haberleşiyoruz.
Sürekli Zoom'da buluşmak zorunda değiliz aslında.
Çalışma şekli bize Zoom özelinde uzaktan çalışmayı hissettirmiyor diyebilirim.
Birbirimizi daha yakından tanıyıp işte daha efektif çalışabiliyoruz aslında.
Bu şekilde yönetmeye çalışıyoruz süreci.
Çok iyi, çok iyi. Valla yani yönetmesi zor bir döneminde, yönetmesi zor bir alanda olduğunuz için ekip dayanışması da ekibin ilerleyişi de oldukça önemli.
Mert, senle ben aslında bayağı zamandır tanışıyoruz ama...
Search ekibi içerisinde Trendyol'da yeni bir üyesin aslında.
Biz seninle topluluktan tanışıyoruz ama hani senin için acaba onboarding süreci SearchCore üzerinde, SearchCore ekibinde nasıl ilerledi?
Neler oldu? Neler yaşadın?
Arkadaşlar sana nasıl davrandılar?
Nasıl aldılar aralarına?
Biraz bunlardan bahsedebilir misin?
Çekinmeden söyleyebilirsin. Ama ben açık olabilirsin.
Burada her şey kayıt altında. Şimdi şöyle bir detay var.
Benim badim de aslında podcast'ta o yüzden biraz dikkat etmem gerekiyor galiba.
Bir de cengiz topluluk demişken şeyde değineyim.
Aslında bizim Trendyol'un içerisinde de topluluklar var.
İlk geldiğim zaman beni şaşırtan konulardan birisi olmuştu.
Yılda da verdiğimiz topluluklara katılıp burada da dışarıda olduğu gibi sunumlar vesaire gönüllü bir süreç işliyor.
Bu ilk işe giriş sürecimden bahsedeyim biraz daha.
Ekipmanlar ve hoş geldin paketi aslında işe girişinizden bir hafta önce size ulaşmış oluyor.
İşe başlama tarihinizden 2-3 gün önce de body'niz sizi arıyor.
Eksikleriniz var mı? Süreç nasıl işleyecek gibi bilgileri öğrenmiş ve merak ettiğiniz soruları sorabilme fırsatına sahip olmuş oluyorsunuz.
Gerginliğiniz aslında ilk gerginliğiniz biraz azalıyor.
Onun dışında daha sonrasında body'nizle sizin için hazırlanmış bir programa uyarak ilerliyorsunuz.
2-3 hafta süre bir program.
Belli yazılmış program var ama bu...
Tamamen must değil, kendinizde estetebiliyorsunuz gibi bir konu var aslında burada.
Bu programa işte devin test arkadaşlarımızla test ve deployment süreçlerinden bahsettiğimiz sessionlar, product arkadaşımızla business konularından konuştuğumuz toplantılar, önceki onboard kayıtlarının izlenmesi,
tekrar dokümanların okunması gibi aslında sessionlar da ayrılmış.
Kendinizle vakit ayırıp bunları inceleyebiliyorsunuz.
Bu konuda da çok verimli geçiyor.
Ek olarak şeyden bahsedebilirim.
Aslında Meltem'in bahsettiği gibi birden çok search ekibi var.
Birlikte çalıştığımız ekiplerin değillerini de ziyaret ederek aslında onlarla da tanışma fırsatı sunuluyor.
Bu da bence çok güzel bir deneyimdi benim için.
Birlikte ileride çalışacağımız kişilerle ilk başta tanışmış.
oluyoruz. Bunun dışında aslında biznes ve teknik konulara ekip yapısına, tren yolu süreçlerinin nasıl işlediğine, body'nizin desteğiyle kolay ve hızlı bir şekilde adapte olmuş oluyorsunuz.
Ben de o zaman bu vesileyle ben body meleğe hem de tüm ekibe teşekkür edeyim.
Size bırakayım. Teşekkürler zorla söylettim Edersen değil mi bak?
Evet biraz öyle oldu. Mert'cim bunlar yazılmış şeyler miydi?
Evet. Eğer sana zorla okutuyorlarsa bunları.
Biliyorum şu an. Mesaj geliyor.
Teşekkürler hala etmedin falan diye yazıyorlar böyle.
Arayıp diyordum teşekkürüm nerede çabuk et diye.
Zor durumdaysan karşım oradan şey yapacaksın.
Başarıyla tamamlandı diyeyim.
Hayatta kalabileceksin.
Güzel. Bugünü de kurtardın.
Bugün de hayattasın. Ben burada şeyi de değinmek istiyorum da.
Yani ben uzun süredir aslında Search ekibindeyim.
Ve aslında yapılan onboarding süreçlerinde ki ya da 3 hafta sonrasında onboarding sonrasında aslında aktif olarak kod yazabilecek seviyeye gelen çok arkadaş gördük yani.
Çok hızlı adapte olmasında onboarding sürecimizin iyi olduğunu düşünüyorum.
Övünmek gibi olmasın ama gerçekten de iyi bence.
Mert ne diyorsun? Kesinlikle katılıyorum.
Bask altında değil mi? Bask altında değilsen okey tamamdır.
Çok iyi süper. Peki burada birlikte çalıştırdığınız ekipler hangisi?
Yani hangi ekiplerle beraber çalışıyorsunuz?
Örneğin biz bir önceki ekip bölümünde şeyle beraberdik.
Revivrating ekibiyle beraberdik.
Bir resim fotoğraf yüklenince product center ile beraber çalışıyorlar.
Bunların validasyonu için vs.
bunun gibi. Search olunca benim aklıma recommendation'dan dolayı belki hani data science ya da o tarz ekiplerde de tahmin ediyorum ama emin değilim.
Sizler böyle hangi ekiplerle beraber çalışıyorsunuz?
Bunu ben yanıtlayayım.
Ya çok fazla ekip var.
Yani aslında az önce Meltem'in bahsettiği gibi hani search bar'a...
Bir harf yazılıp önerisinin verilmesi suggestions ekibinin sorumluluğundayken sonrası aslında genel olarak bizden ve bize yardım eden ekiplerden oluşan bir result oluyor.
Burada senin dediğin gibi data science ekiplerinin çok büyük rolü var.
Onun dışında search relevance, NLP takımı, çok yakın çalıştığımız ekipler.
Ayrıca yine Meltem'in bahsettiği gibi biz Milla, Azerbaycan ve TR tarafına bakarken international search ekibi işte Gulf Mena, Avrupa search'ünü yönetiyoruz.
yöneten ekip. Dataları nereden alıyoruz?
Genelde işte buy product indexing, PDP ekibiyle yani birlikte çalışıyoruz.
Reklamlar için seller ads ile birlikte çalışıyoruz.
Merchant sayfaları yani satıcı sayfaları için seller ekipleriyle birlikte çalışıyoruz.
Nasıl desem? Mesela bir kullanıcı bir arama yaptı.
iOS, Android, web, mweb.
Dört ana client'ımız var.
Onlar üzerinden akış yürüyor.
Sonra mesela influencer araması yapabiliyorsunuz.
İşte X-Influencer'ın adını yazdınız ve onun sayfasına yönlendirme.
Burada influencer center'la birlikte çalışıyoruz.
Bunlar sadece production'da aslında birlikte çalıştığımız ekipler.
Bir de çok ayrı internal search'ı kullanan çok fazla internal ekibimiz de var.
Yani search'ın döndüğü result'tan yararlanmak isteyen ekipler.
Hepsiyle çalışmaya çalışıyoruz.
Çok da güzel gidiyor. Benim sanırım Trendyol'da gördüğüm Ve böyle her yeri her yere bağlayan ya da böyle main olarak söylediğim şeylerden biri search.
Çünkü functional bir hale getirmek için olmazsa olmaz bir özellik aslında bir şeyi search edebilmek, bir şeyi arayabilmek.
Bir aramanın da iyi olabilmesi herhangi bir siteyi, herhangi bir özellik de ticari sitesini iyi yapan durumlardan biri.
Şimdi mesela isim vermeden tabii ki örneklerini söyleyeceğim.
e-ticaret sitesinin arama fonksiyonu, arama özelliği çok iyi çalışmıyor.
Birden fazla siteyden bahsediyorum burada kesinlikle.
Dolayısıyla search gayet önemli bir konu olduğunu söyleyebilirim.
Burada şey sormak istiyorum, şimdi sofistike bir durum var.
İşte Java'dan bahsettik, Go'dan bahsettik, Elastic'den bahsettik vs.
Biraz daha derine indiğimiz zaman aslında listeleyecek olursak, konuşacak olursak hangi teknolojileri?
kullanıyoruz burada. Aslında Meltem birçoğundan bahsetti ama dediğiniz gibi bir kere bizim ana base'imiz Elasticsearch, Search Engine olarak Elasticsearch'ı kullanıyoruz.
Çok hızlı çalışmasından ve Yüksek boyutlu datasetleri yönetildi bilmemiz açısından.
Göz bebeğimiz yani. Sonra Couchbase'i çok fazla kullanıyorum.
Dili olarak evet genelde projelerimiz Java ve Go'da yazılmış.
Ama işte burada mesela yeni bir feature geliştirilecek, yeni bir proje yazılacak.
Ya hangi teknolojiyi kullanalım, hangi dilde yazalım?
O işe alan arkadaş varsa benchmarklarını inceliyor.
Yoksa kendisi yapıyor demolar üzerinden.
Testler koşuyor. Sonucunda ekibe getiriyor.
Arkadaşlar ben böyle sonuçlara ulaştım.
Şunları kullanmayı öneriyorum.
Tüm ekip de... tartışıyor üzerine.
Bence de bunu kullanalım ya da kullanmayalım şu yüzden gibi tartışmalar oluyor.
Günün sonunda hani şu anda Kafka, Python ek olarak işte Elasticsearch, Couchbase, Java ve Go'ya kullandığımız teknolojiler diyebilirim.
Ama işte BigQuery'de kullanıyoruz dataların analizi için.
Ya konsümürlerimiz çoğunlukla Kafka'da işte ya bu şekilde diyebilirim.
Ana bazelerimiz bunlar, ana teknolojilerimiz bunlar.
Çok iyi. Daha çok elastik temel üzerinde birçok şey yapıyoruz gibi duruyor.
Burada peki, örneğin bizim ekip için biz çok fazla integrasyonlar açtığımız için bu asinkron integrasyonların getirdiği challenge'lar ile uğraşıyoruz.
Sizdeki challenge'lar tam olarak sizin ekipte neler oluyor?
Size özel olan nedir? Tahminim herhalde yüktür diye tahmin ediyorum ama arka tarafta neler oluyor bununla ilgili?
Kısımdan ben bahsedebilirim.
Aslında takımımızın farklı challenge'ları var.
İlki biznes olarak bahsettiğimiz gibi çok fazla yapmamız gereken yeni feature oluyor.
Yeni özellik ekliyoruz.
Kullanıcıların yaptığı arama sonuçlarını.
Daha anlamlı bir şekilde dönmeye çalışıyoruz.
Daha doğru bir şekilde dönmeye çalışıyoruz.
Ve ek olarak Search'te bulunduğumuz için bu kullanıcı deneyimini çok fazla etkiliyor.
Hızlı yanıt vermemiz gerekiyor.
Buna ek olarak... Kısımdan da bahsedebilirim.
Client'larımıza ve public'e aslında biz hem public'e hem de internal ekiplere hizmet veriyoruz.
Hizmet vermemiz gerekiyor.
Aslında servislerimizin sürekli ayakta olması gerekiyor.
Bunun için nöbet sistemimiz var ve ek olarak bir incident olduğunda hızlı aksiyon almaya çalışıyoruz ki hem kullanıcı deneyimini kötü etkilememek hem de aslında satışlara olan etkimizi kötü
etkilememek için diyebilirim.
Mert az önce çok güzel bir kelimeden bahsettin.
Incident dedin ve alet dedin.
Onu konten bir içireyim dedim oradan.
Çok güzel. O zaman sizde başka bir sorun var.
Hazır bağlamışken incident ve alertlerle ilgili neleriniz var?
Böyle buradaki incidentları ve alertları nasıl yönetiyorsunuz?
Ya da monitörün gideyim. Çünkü sizin tarafta bir incident olduğunda müşteri o kadar çok çabuk etkileniyor ki hani sizde bir sorun olduğu anda tamamdır.
Hani ortada bir problem olduğu çok belli.
Yani bizim taraf, ben Full Film Depot tarafındayım.
Bir operasyonumuz var ve operasyonu etkiliyoruz.
Sizin ise müşteri kısmı da son kullanıcı olan kısım oluyor arama yerinde.
Burada sizler bu incident ve alert yönetimi nasıl yapıyorsunuz?
Incident ve alertler konusunda, incidentler aslında...
Korkulu rüyalarımız ama bir o kadar da bence birçok güzel learningler kazandığımız olaylar diyebiliriz bence.
Yani ben başıma bir şey gelmeyecekse incidentları seviyorum aslında.
Çünkü çok güzel şeyler de öğreniyoruz yani.
Çok güzel incidentlardan çok güzel çıkarımlar yapıp sonrasında tekrar tekrar yapmadığımız ve de hatta bunu işte toplantılarda bahsedip diğer ekiplere de nüfus edip onların da yapmasını birçok konuda engellediğimiz konular olmuştur.
Şimdi ilk böyle alertlerden bahsedecek olursak hani bir sürü alertimiz var.
aslında. Yani search ekibi olmanın getirdiği bir sorumlulukla aslında müşteriye direkt etki eden bir ekip olmamızdan dolayı aslında bu alertler her yerde bizim.
Yani her ortamda alertimiz var.
Bu alertleri tüm ekip olarak sahipleniyoruz tabii ki.
Hepimiz ilgileniyoruz.
Bir alert olduğunda hep beraber toplanıyoruz ve ilerletiyoruz.
Ama eğer gerçekten de büyük incident değilse ve işte sprintimiz bloklanmasın diye aslında ekipte böyle haftalık Nöbetçiler belirleniyor.
Trendo genelinde aslında haftalık nöbet kavramı çok yaygın değildir.
Belki birkaç ekip yapıyordur ama benim bildiğim genelde günlük ya da üç günlük nöbet şeklinde ilerliyor.
Biz haftalık nöbete geçtik.
Aslında işte burada mesela olaylar birbirine işte açılan taslar birbirine bağımlı olabilir ya da işte ilişkili taslar olabilir, bir günde yetişmeyen durumlar olabilir diye nöbet sitesini uzatma kararı almıştık.
Haftada bir developer ve bir QA nöbetçi oluyor.
Öncelikli olarak gelen case'lere ve de işte alertlere öncelik veren kişiler olmuş oluyor.
Tabii ki burada alert haricinde bir incident olduğunda ekip olarak toplanıyoruz.
Yani bu trend ve kültüründe olan bir şey bu arada.
Yani bir şey olduğu zaman zaten bizim bu genel reliability incident kanalımızda da direkt böyle zoom atıyor ve herkes oraya gidiyor ya onun gibi düşünebiliriz.
Yani burada 10 kişi incident varsa toplanıyoruz ve müşteri nasıl daha az şekilde etkilenir ve nasıl en hızlı şekilde çözeriz diye.
Hep beraber odaklanıp çözmeye çalışıyoruz ve birbirimize destek oluyoruz ve en hızlı şekilde iyileştiriyoruz aslında.
Bunun haricinde buradan çıkan learningler aslında nasıl yayılıyor ondan bahsedebilirim.
Şimdi mesela postmortem yazmaya çalışıyoruz ya da işte bazı farklı RCA dokümanları yazmaya çalışıyoruz.
Bunlar nedir? Aslında insanın süresinde adım adım nasıl aksiyon aldık, neleri daha iyi yapabilirdik, nasıl daha hızlı görebilirdik.
hangi alörtümüz eksik gibi konuları aslında dokümante ediyoruz.
Ve sonra bunları search içerisinde search warm toplantısı olan aslında weekly incident gibi düşünebiliriz.
Bir de discovery warm. Discovery ekiplerine bağlı birçok ekip var aslında.
Search haricinde de işte seller at, seller store ya da işte birçok ekip var diyebiliriz.
S front ekipleri. O toplantının olduğu yerde aslında Burada işte incident dokümanda yaşadığımız incident'ı anlatıyor.
İşte kendi kazanımlarımızı, learning'lerimizden bahsediyoruz.
Ve işte burada diğer ekipler de aslında bu incident sonucunda onlar nasıl bu incident'ı yaşamazsak görmüş oluyorlar aslında doğal yöntemde.
Buradan çıkan learning'ler aslında birçok şeyi engellemiş olabiliyor.
Bir de teknolojide genel olarak yapılan bir toplantı vardı.
Biliyorsunuz Mounted Incident Meeting.
Orada da zaten P1 seviyede bayağı yüksek olan level'daki şeyleri, incident'ları söylüyoruz.
Onları da orada anlatıyor diyebiliriz.
aslında. Bir tanesini de ben anlatmak isterim.
Şimdi ben Sörtçe aslında öğrenciyken geldim.
Üniversite sonundaydım. Ve geldiğimde Elastik Sört'ün e'sini falan yeni öğreniyordum.
Yani hiçbir şey bilmiyorum. Ve alias tanımlamayı öğreniyorum o sırada.
Elastik Sört'te bir alias nasıl değiştirilir işte vesaire.
Elimde de işte birkaç query var bana öğretilen.
Onları böyle çalışıyorum kendi kendime.
Takılıyorum, data ekliyorum, çıkarıyorum falan.
Sonra ben Elastik Sört'te bir tane aliası değiştirdim.
Ve alört yanmaya başladım.
Ya ben de hani bilmiyorum ki alert geliyor şey diye işte dramatikli product count decreased falan diyor ya sıfıra inmiş product count falan.
Sonra ben de Slack'da alerte şey yazdım masumca.
Ya şey ben aliaslarla uğraşıyordum da benimle ilgili değildir herhalde yazdım.
Sonra bana dediler ki Melek sen hangi ortamda değiştin?
Ben de dedim ki hani kaç tane ortamımız var ki?
Yani birini de değiştirdim.
Production'da değiştirmişim.
Çok güzel. Sonra tabii bana bakla ve emojileri geliyor.
İşte özelden şey yazılıyor.
Melek'cim test için ayrı ortamlarımız var.
Test etmek istersen falan diyorlar.
Öyle çok güzel bir deneyim oldu.
Hatta Mert ilk geldiğinde falan Mert'e ilk söylediğim şeylerden biri lütfen production'a hiçbir şey yapma olmuştu.
Öyle bir incident yani.
Bayağı şey öğrendim ama ilk ayımda.
Ama güzel bana değil mi? Yani ortamlar için veya bir şey yaptığında etkisinin ne kadar büyük olduğunu görmek.
Ya şu an çok güzel de işte o ilk ayımda hani.
Tabii canım. O ara şey oluyor. Stres alıyorsa tabii ki evet.
Ağlıyordum yani o sırada.
Ama hiçbir şey olmadı.
Orada ben şeyde değinmek isterim.
Çok güzel bir ekiple çalışıyoruz.
Kimse bana böyle işte nasıl desem bir şey demedi yani.
Olur hatalar ne güzel öğrendin falan diye destek çıkmıştı herkes.
Buradan da ekibime tekrar teşekkür edeyim.
Sadece strateji ortamını farklı bir şekilde öğrenmiş oldum.
Aynen. Allah hiçbirimize P1 seviyesinde incident yaşanmayacak.
Amin diyelim. Bunu bağlayabiliriz.
Gerçekten incident söz konusu olduğu zaman birçoğumuzun böyle bacaklarının bağı çözülüyor.
Fakat tabii ki buralardan öğrendiklerimiz daha çok önemli.
Bir daha yaşamamak adına ve kendimizi geliştirmek adına.
Şunu sormak istiyorum. Şimdi birçok ekibe bu soruyu soruyoruz ve böyle artık klasik haline gelmiş incident konusunda.
Böyle search de sizin unutamadığınız bir...
incident, yani yaşadığınız ve unutamadığınız bir incident olayı oldu mu?
Oldu. Tabii ki. Birçok kez oldu.
İşte bu ya. Hangi birinden başlayalım diyeceğim.
Hangilerini anlatalım. Alfabetik mi?
Şey mi? Sıralı mı?
Zamanlı mı? Yani benim şahsen bir tane var.
Onu anlatabilirim. İlk BF'imde bir cuma günü son saatler.
Çek listemiz var. İşte son kontrolleri yaptığımız, işte tüm uygulamalar scale mi, configler pushlanmış mı vs.
Bir de elastik indekslerimizi kontrol edeceğiz.
Ben de bir tane elastik clusterında eski suggestion indekslerinden bazılarını silmediğimi fark ettim.
Çünkü yüksek throughputlarda bizim için gereksiz bir resource kaybı olmuş oluyor.
Dedim ki şu eski indeksi sileyim ne olabilir ki?
Yani derken bir alert yağmuru ve hiç unutmuyorum Zek kanala şey yazdı.
Suggestion mu indi yazdı ve ben...
Hani tabii böyle kaynaklar dökülüyor başımdan.
İşte daha bir sene olmamış falan böyle ne yapacağım falan derken meğer ben prod'un baktığı üzerinde el yası olan işte aktif indeksi silmişim.
Sonra tabii çok hızlı aksiyon aldık falan ama hani gerekli dersler çıkarıldı.
Ama bunlar çok fazla tecrübe de oluyor.
Yani herkesin illa ki böyle bir anısı oluyor.
Yani bir şeyleri yapmışsındır ve her developer bence kariyerinde illa ki vardır.
Bir anda bir şeyler yapmıştı ve yaptığın anda ya sen anlıyorsan ya da şey yaptı.
Sen yaparken dip boyu çıkmışsındır ve bir yerden bir alert geliyor veya da birisi şey yazıyor.
Hani bir şey mi oldu? Birisi böyle bir şey yazıyor tamam diyorsun.
Bu benim. Bir de özellikle mesela saat uyuşuyorsa.
Mesela birisi uyuşuyor ve belli bir saat veriyor.
Sana diyorsun ki o saatte biz şunu yaptık.
Aynen. Bir saat önce bir şey yapıldı mı ya?
Evet. Buradan sonra en büyük çıkarımımızdan bahsedeyim ben size.
Kimse kibanasında delete ya da put gibi şeyleri, koyileri bulundurmuyor.
Kim de görsek onu siler misin öncelikle falan diyoruz yani.
Kesinlikle bulundurmuyoruz yani.
Çok mantıklı, çok mantıklı.
Peki burada monitoringleri nasıl yapıyorsunuz?
Örneğin... hangi metiklere bakıyorsunuz ya da bu metiklerden nasıl aksiyonlar çıkarıyorsunuz?
Burada ben bahsedeyim birazcık.
Aslında monitoring de bizim için inanılmaz kritik bir olay yani.
Oradan aksiyon çıkartmak ve tekrardan informu sağlamak için aslında birçok noktada monitoringimiz var diyebiliriz.
İlk olarak kullandığımız servislerimizi monitör ettiğimiz tool'lardan birisi New Relic'le başlayabiliriz.
New Relic sadece monitoring için değil, aynı zamanda alertler içinde kullandığımız bir servis diyebiliriz aslında.
İşte P9995 İşte response time, throughput, podların CPU'su, memurisi.
Aslında bunların hepsini gözlemleyebiliyoruz.
İşte external servislere kol attığımız diğer servislerin response time gibi metiklerin hepsini görüyoruz burada.
Ve aynı zamanda alerta tanımlayabiliyoruz.
İşte error rate'in artışı, response time'ın artışı gibi durumlarda varsa alert tanımlıyoruz.
Loglarımızı tuttuğumuz kanal ise Kibana aslında.
Kibana'da... Tüm API'lerimiz, Consumable'larımız, Indexer'larımız, hepsimizin aslında bütün projelerimizin logları mevcut diyebiliriz.
Yine Kibana'da da alertlerimiz var.
Yani monitor ettiğimiz her yerde bir de alert mekanizmamız var.
Burada da işte fazlaca alert gelirse, belli thresholdları geçerse orada da işte spesifik alertlerimiz var işte.
Onlara göre de alert üretiyor ve de kanalımıza basıyoruz.
İşte Slack ile aslında entegre şekilde çalışıyor biliyorsunuz.
Orada Slack ile aslında alert basıyoruz.
Hem Nirbelik'te hem Kibana'da.
Bunun haricinde benim en sevdiğim ve de en çok kullandığım...
Diyebilirim aslında Grafana, Prometheus metriklerin aslında görselleştirildiği bir arayüz teknolojisi.
Prometheus metriklerinde hem custom olarak expose ettiğimiz metrikler de var, işte defaultları kullandığımız durumlar da var.
İşte burada K3Base'den Elasticsearch'e bütün servisleri, Kafka Lake exporterlarımız, işte burada bir sürü dashboardumuz var.
Hem böyle Trendyol içerisinde ortak olarak oluşturulan dashboardlar da var ama biz kendimiz custom olarak oluşturduğumuzda bir dizi dashboardumuz var aslında.
Bunları da kullanıyoruz. Burada yine alert mekanizmamız da var.
İşte podların restartını işte Prometheus metriklerden çek edip oradan alert basma.
Ya da işte elastikler üzerinde, elastik searchlerimiz üzerinde de birçok alert mekanizmamız var.
Biz böyle gördüğümüz her yeri alert tanımlamış bir ekip olabiliriz bu arada.
Bir sürü alertimiz var.
Olabildiğince hem monitör edebileceğimiz hem işte alert basabileceğimiz, herhangi bir durumda en hızlı görebileceğimiz aslında...
yerler diyebiliriz. Peki bunları aksiyon alırken nasıl yapıyoruz?
Ondan bahsedelim. Yani bizim şöyle bir şeyimiz var.
Aslında çok çok uzun süredir yaptığımız bir şey değil ama belki işte 6-7 aydır yapıyoruz diyebiliriz.
Monitoring toplantısı.
Cuma günleri böyle sabahları yarım saat 40 dakika kadar bir monitoring toplantısı yapıyoruz.
Burada haftalık olarak işte bir tane özellikle Grafana dashboardumuzda böyle overview gibi aslında bütün servisleri, elastikleri görebildiğimiz bir kamu bir tane dashboardumuz var.
Orada böyle işte üzerinden geçiyoruz.
Bu hafta içerisinde response time'ımız artmış mı?
P90'lar ne? 95'ler ne durumda?
Gibi hepsinin üzerinden geçiyoruz.
Böyle artış varsa hemen onları not alıyoruz.
Action point'ler çıkartıyoruz.
Gerekiyorsa işte hemen çözebileceğimiz konuları da çözmeye çalışıyor.
Çözemiyorsak task'ını açıyoruz.
Sonrasında işte performansını geri arttırabileceğimiz aksiyonlar almaya çalışıyoruz.
Hatta yakında bununla ilgili de böyle bir şey olmuştu.
Elastik Search'te her istekte bir query eklemek zorunda kalıyorduk.
Bunun improvement'ı Bunu mesela bu toplantı sayesinde görüp hemen bir aksiyon şey yapıp çıkartıp, maddesi çıkartıp, taskını açıp orada load testi nasıl bunu azaltırız diye birkaç tane seçenek de değerlendirmiştik.
Ve işte oradan çıkartılan noktalarla geri impromu sağlayabilmiştik.
Toplantı çok faydalı oluyor aslında.
sonuca bağlıcık olursak alert ve monitoring, search için her şeyi diyebiliriz yani.
Çok iyi, çok iyi. Valla bu son bahsettiğim Meltem toplantıdan bizim ekiplerde de bir var.
Biz de alert review session tarzında bir şey yapıp işte gelen alertleri, gelen logları inceleyip nasıl bunları işte daha verimli hale, daha iyi hale getirip daha az alabiliriz ya da işte nasıl daha iyi dashboardlar
oluşturabiliriz üzerine konuşuyoruz.
Bence bunlar da çok faydalı, çok güzel pratikler.
Öncelikle tebrik ederim bu konuyla alakalı size.
Biraz şeyden bahsetmek istiyorum, şeyi sormak istiyorum.
Şimdi search servisleri biraz önce de bahsettik Trendyol için olmazsa olmazlardan biri ve günün sonunda aslında güvenlik konusunda da çok böyle sağlam olması gereken ve kullanıcıya, son kullanıcıya
sağlam şekilde, güvenli şekilde gitmesi gereken servisler.
Biz bu riskli ve yüksek trafik alan search servislerini nasıl en güvenli şekilde kullanıcıya sunuyoruz?
Şöyle ki buradaki süreci ikiye ayırabilirim.
İşlerin mörçlenmesinden önce ve sonra olarak.
Öncesinde bizim QS Stage ismini verdiğimiz stage dışında bir search servislerine ait izole bir test ortamımız var.
Kendi elastiğimizin, kaç beynimizin olduğu.
Bu ortam sayesinde daha işler mörçlenmeden işlerin aslında doğruluğundan emin oluyoruz.
İşte hep söylüyoruz bizim için en büyük challenge data ve datanın bozulmadığından emin olmamız gerekiyor ki testlerin doğruluğundan emin olabilelim.
Bunun için de data collected projeleriyle proddan prod datasını kendi ortamımızdaki elastik clusterlarımıza indeksliyoruz.
Buna paralel olarak da yapılan geliştirmeleri de izole ediyoruz.
Yani her feature kendi içinde.
Ayrı bir feature deploymentlarda işte bu izole test datasıyla birlikte test ediliyor.
İşte otomasyonları yazılıyor, pipeline'da koşuyor.
Buradaki merge'lerin ve işlerin...
işte teker teker production'a alınma süreçlerinde deployment'ları da biz yönetiyoruz.
Merchandising'dan sonraki aşamada da işte önce stage, prep road ve internal ortamlarımıza çıkıp işin hata olmadığından emin olduktan sonra Production ortamına deployment sürecini başlatıyoruz.
Tüm DC'lere de sağlıklı bir şekilde deploy olduğunu, kibana, grafana, nivrelik üzerinden monitör ediyoruz.
Ek olarak da Meltem'de söylemişti, load test süreçlerimiz de var tabii ki.
Büyük bir change yapılacaksa mutlaka karşılaştırmalı load testini koşarak karar veriyoruz.
Böyle. Süper.
Peki burada... Yani söz deneyimini iyileştirmek için yaptığınız şeyler var mı?
Örneğin ben bazen arama yaparken kelimeleri random sırayla yazıyorum.
Böyle bir itirafta bulunayım.
Yani erkek ayakkabı bir şey yapacaksam aklıma gelen keywordleri direkt random sırayla yazıyorum.
Ve karşıma da çıkıyor yani. Bilmiyorum niye böyle bir şey yapıyorum bilmiyorum ama yapıyorum.
Abi evet böyle insanlar var haberiniz olsun.
Sizlerde böyle söz dilemini iyileştirmek için yaptığınız şeyler var mı?
Ya da oradaki metnikleri belirleyip takip ediyorsanız kim bunlar diye sorduğunuza göre.
Bunları sizler nasıl takip ediyorsunuz?
Ben yanıtlayayım. Öncelikle teşekkür ederiz.
Rica ederim böyle.
Bir itirafı küçük. Ya hiç sırası falan önemli değil bu arada yani.
Elinizi yazabilirsiniz. No result'ı düşünmemek için kullanıcıya elimizden geleni yapıyoruz zaten.
Hatta böyle bazen şey falan da geliyor böyle.
Ben random bir şey arattım. Nasıl geldi ya?
Bunun sonucu falan deniyor.
Ama arkada baya bir şey dönüyor.
Yani biz o sonucu getirebilmek için çok uğraşıyoruz.
Onu söyleyeyim. Ama bu sonuçları nasıl iyileştiriyoruz?
Şimdi data science ekiplerimizin burada çok büyük bir etkisi var.
Relevance takımı ile birlikte aslında...
şuna çalışıyoruz. O aramanın en related dönebilmesi için, en güzel şekilde dönebilmesi, kaliteli sonuç dönebilmesi için design sekilleriyle birlikte çalışıyoruz.
Peki bu metrikleri nasıl takip ediyoruz?
Aylık event toplantıları yapıyoruz.
O event toplantılarında işte biz nasıl sonuç dönmüşüz, nelere sonuç dönmüşüz, nelere dönememişiz, bu ay ne aranmış gibi konuları tartışıyoruz.
Mesela şey hep, ya benim çok hoşuma gider event toplantılarında işte kışa doğru mont, aramaları böyle üste çıkar.
Yaza doğru mayo aramaları üste çıkar.
İşte Ramazan'da Ramazan kulisi üste çıkar vesaire.
Bunları takip etmek de çok keyifli.
O yüzden aslında böyle sadece BF değil böyle hani herkese etkileyen eventleri de takip etmemiz çok kritik.
Burada işte PM'lerimiz de yardımcı oluyor.
İşte kullanıcı şunu aratmak istemiş ama şöyle yazıyor.
Yanlış yazıyor. Mesela bluetooth hani yazılması zor bir kelime.
Hani bunları da takip ederek aslında en relate sonucu kullanıcıya dönmeye çalışıyoruz.
Özellikle bahsettiğim gibi aylık event toplantılarımız burada çok kritik.
Burada mesela şeyden de bahsedebiliriz bu metriklerde.
Aslında böyle yaz geldiğinde krop arabalarının artması, işte kışın kazak arabalarının ve mont arabalarının artması.
Bunların hepsini aslında direkt...
Metriklerimizden takip edebiliyoruz.
Yani dataya bakarak artık en çok ne aranıyorsa oradan tespit edebiliyoruz.
Bizim için de aslında çok eğlenceli geçiyor diyebiliriz yani.
Search event toplantıları özellikle.
Aynen. Ek olarak şeyi de ekleyelim.
Hani bu eventler için aslında BigQuery'i kullanıyoruz.
Ve Trendyol içinde data takımının hazırladığı dashboardlar var biliyorsunuz.
Onları kendimize göre özelleştirdik.
Oradan da sıkı bir şekilde takip ediyoruz.
Ben de bir şey eklemek istiyorum.
Bazen böyle hani çok dışarıdan da duyuyoruz ya işte şunu arattım alakasız bir şey geldi gibi.
Mesela bu da aslında bizim elimizde olan bir şey değil.
Yani mesela işte atıyorum elbiseye işte kalem kategorisinde girilmiş bir elbise var.
Hani bu bizim için mesela çok zorlayan yanlardan biri de oluyor ve buna özel işte ayrıca nasıl çözümler bulabiliriz vesaire bunların üzerine de çalışıyoruz.
maplenmiş bir kategoriyi nasıl destekledebiliriz vesaire diye.
O da bayağı bizi zorlayan şeylerden.
Valla süper. Yani oldukça kompleks bir sorun.
Oldukça kompleks çözümler fakat sonuca ulaşan çözümler.
O yüzden ben kendi çapımda ikna oldum arkadaşlar.
Her şey yolunda gibi görünüyor.
Adam kelimeler kullanılabilir gibi.
Evet, aynen. Aynı şekilde.
Son olarak yavaş yavaş bitirelim isterseniz.
Son sorumuzu soralım.
Şimdi hep teknikten bahsettik, ekip yapısından vs.
bahsettik. Biraz daha soft bir şeylerden bahsedelim.
İş dışında etkinlik olarak neler yapıyorsunuz?
Bu ekip eğlenmek için neler yapıyor?
3 aşağı 5 yukarı eğlenceli bir ekip olduğunuzu tahmin ediyorum ama neler yapıyorsunuz özellikle eğlenmek için?
Yani hep çalışıyoruz diyorum.
İş içinde de mesela bir yandan çalışırken bir yandan çok kolay kolay yapıyoruz.
Yani hani elimiz gerçekten isteyken sürekli böyle bir işte zunda bir ruhundayken işte birine gidiyoruz diyoruz ki işte ne yapıyoruz falan.
Hani onların haricinde haftalık böyle...
Game sessionlarımız var bizim.
Ekipçe böyle toplanıp online oyunlar oynadığımız işte Call of Names'tir, Among Us'tır, Guard'tır vs.
Ya da işte ofise gittiğimiz günlerde de mutlaka işte çıkışta bir şeyler yapmaya çalışıyoruz.
İşte Werewolf yine aşırı eğlendiğimiz oyunlardan.
Birkaç ayda bir de şehirler arası topluca buluştuğumuz büyük eventlerimiz var.
Onlarda da akşamları kesin güzel bir yemeli içmeli etkinliğimiz oluyor.
İşte peşine afterlarımız oluyor.
Onlar da baya popüler. Hatta BF haftası yani sabahladığı İzlediğiniz
için teşekkür ederim. Bir sonraki
videoda görüşmek üzere. Yani orada güven problemi yaşadığımız insanlar oluşturduk.
Şey diyorsun bu adam bunu böyle yapıyorsa gözünün içine baka baka.
Bir ay falan gözümün önünden gitmedi o kişinin söylediği yalanlar.
Sen bu maddeyi yapıyorsun ama bu söylediğin yalanlar ne olacak diye.
Evet süper arkadaşlar. Çok teşekkür ederiz.
Çok güzel bir sohbet oldu. Eğlenceliydi.
Hepinize tek tek teşekkür ederiz.
Biz çok teşekkür ederiz.
Biz teşekkür ederiz. Biz teşekkür ederiz.
Teşekkürler efendim. Teşekkürler. Selam ekibin 48.
bölümünde Search Corps ekibiyle beraberdik.
Tekrardan herkese teşekkür ediyoruz arkadaşlar.
Bir sonraki bölümde görüşmek üzere.
Bye bye. Görüşürüz bye bye.
Görüşmek üzere.
Bu transkript otomatik olarak çıkarıldı; kayıtla küçük farklar olabilir.
