28 Aralık 2024 Cumartesi

Mikroservis Yazı Serisi 16 - Monitoring

     Selamün Aleyküm Arkadaşlar,

    Mikroservis serimizin son yazısı olan on altıncı yazımıza geldik. Bugünkü konumuz monitoring. Bir problem ile karşılaştığımızda, hatta bazen karşılaşmadan bizi yönlendirecek/uyaracak sistemlerin olması çok önemlidir. Canlı çalışan sistemlerin 7/24 ayakta olması gereken durumlarda bu konu daha da öne çıkmakta ve uykusuz gecelerin sayısını oldukça azaltmaktadır diye düşünüyorum :) Hazırsak başlayalım.

27 Aralık 2024 Cuma

Mikroservis Yazı Serisi 15 - Service Registry & Discovery

     Selamün Aleyküm Arkadaşlar,

    Serinin on beşinci yazısında servislerin birbiriyle iletişim kurarken dinamik bir şekilde bunu yapmanın yoluna değineceğiz. Monolit projelerde böyle bir ihtiyaç genel itibariyle bulunmazken, mikroservis sistemlerde servislerin çokluğu nedeniyle önümüze çıkmaktadır. Hazırsak başlayalım.

Mikroservis Yazı Serisi 14 - Configuration Management

     Selamün Aleyküm Arkadaşlar,

    Serinin on dördüncü yazısında mikroservis sistemlerin ayar yönetimi kısmına odaklanıyor olacağız. Sistemlerin dayanıklı, ölçeklenebilir ve bağımsız olarak dağıtılabilmesi için gerekli ayarların nasıl tutulması gerektiği konusuna değineceğiz. Bunun için ne gibi yöntemler mevcut, kullanılan araçlar nelerdir gibi bazı sorulara da cevap arayacağız. Hazırsak başlayalım.

Mikroservis Yazı Serisi 13 - Deployment Automation

    Selamün Aleyküm Arkadaşlar, 

    Serinin on üçüncü yazısında otomatik deployment süreçlerinden bahsetmeye çalışacağız. Önceki yazıda da bu konuya ufaktan değinmiştik. Şimdi ise daha detaylı bakmayı deneyeceğiz. Monolit yapıda olursa güzel olur dediğimiz yapı, mikroservislerde bu süreç zorunluluk haline geliyor. Mikroservis mimarisinin amaçlarından biri de gün içinde sık sık ve küçük deploy'lar yapabilmektir. Bunu yapmanın yolu da buradan geçmektedir. Hazırsak başlayalım.

Mikroservis Yazı Serisi 12 - Cloud Based Infrastructure

    Selamün Aleyküm Arkadaşlar,

    Serinin on ikinci yazısında bulut tabanlı altyapıları konuşuyor olacağız. Bu yazıyla birlikte biraz daha devops konuları hakkında konuşmaya başlıyor olacağız. Mikroservis sistemlerde platform ekibiniz olmadan bu işlerle uğraşmak çok zor olabilir. Monolit yapılarda bu işleri nasıl yapıyorduk da neden şimdi böyle bir ihtiyacımız var? Hazırsanız cevap bulmaya çalışalım.

Mikroservis Yazı Serisi 11 - Centralized Logging

    Selamün Aleyküm Arkadaşlar, 

    Serinin on birinci yazısında loglama konusunu ele alacağız. Loglama küçümsediğimiz ama başımız belaya girdiğinde kıymetini anlamaya başladığımız can simidi bir konu. Monolit sistemlerde de önemlidir ancak log yazılması, logu takip etmesi ve gerektiğinde debug (iyi developer debug yapar, daha iyi developer log okur) yapması daha kolaydır. Ancak sistem büyüdükçe bu işlemi yapmak dahi bir soruna dönüşebiliyor. Özellikle servisler arası istekler gidip geliyorsa bunu takip etmek daha da zorlaşıyor. Bunlar için ne gibi çözümler var merak ediyorsak buyurun başlayalım.

26 Aralık 2024 Perşembe

Mikroservis Yazı Serisi 10 - Documenting Contracts

     Selamün Aleyküm Arkadaşlar,

    Serinin onuncu yazısında dokümantasyon konusunu ve uri tasarımını ele alacağız. Diğer konulara oranla az önemli gibi gözükse de büyüyen projelerde bu konu beklediğimizden çok daha önemli hale gelmektedir. Özellikle farklı takımların sürekli senkron veya asenkron bir iletişimle sürdürmesi yerine bu konuya eğilmek çok daha kıymetli olacaktır. Ayrıca sonradan projelere katılacak olan arkadaşlara da can simidi olabilir. Hazırsak başlayalım.

Mikroservis Yazı Serisi 9 - Backward Compatibility

     Selamün Aleyküm Arkadaşlar,

     Serinin dokuzuncu yazısında Backward Compatibility (geriye uyumluluk) konusuna bakıyor olacağız. Geriye uyumluluk sadece mikroservislerde değil, monolit yapılarda da önemli bir yere sahip bir kavramdır. Dış servisler veya sistemler tarafından kullanılan uçlarımızda bir değişiklik yaptığımızda önceki halini bozmayacak bir şekilde geliştirilmesi gerekiyor. Hazırsak başlayalım.

Mikroservis Yazı Serisi 8 - Resiliency

     Selamün Aleyküm Arkadaşlar,

    Serinin sekizinci yazısına hoşgeldiniz. Önceki yazılarımızda şimdiye kadar genel itibariyle veri üzerine daha çok yoğunlaştık, ancak bu yazımızda herhangi bir sebepten dolayı cevap vermeyen servislerle ilgili ne yapabileceğimizi konuşacağız. Bu kavrama dayanıklılık (resiliency) diyoruz. Peki sistemlerin dayanıklı olabilmesi için neler yapabiliriz? Hazırsak başlayalım.

Mikroservis Yazı Serisi 7 - Arch Api-based

    Selamün Aleyküm Arkadaşlar,

    Serinin yedinci yazısında API tabanlı mimariyi ele alıyor olacağız. Önceki yazılarda asenkron iletişimden, veri tutarlığının zorluğundan, ayrı veri tabanlarının kullanılmasından ve burada ortaya çıkan problemlerde ve hangi durumlarda hangi yapıların kullanılması daha uygun olur gibi konulardan bahsetmiştik. Bugün ise sırada asenkron iletişimde API tabanlı iletişim var. Çeşitleri nelerdir, hangi durumalarda hangisi kullanılır, ne gibi avantaj ve dezavatajları vardır gibi konulara değinmeye çalışacağız. Hazırsak başlayalım.

25 Aralık 2024 Çarşamba

Mikroservis Yazı Serisi 6 - Separated Databases

     Selamün Aleyküm Arkadaşlar,

    Bugün mikroservis sistemlerde her servisin kendine ait veri tabanın olması konusunu ele alacağız. Bununla birlikte genel olarak veri tabanı seçimleri, veri senkronizasyonu ve çoklaması, ayrı veri tabanlarını yönetmedeki zorluklar ve bunlara yönelik çözümler hakkında konuşmaya çalışacağız. Hazırsak başlayalım.

Mikroservis Yazı Serisi 5 - Centralizing Access

     Selamün Aleyküm Arkadaşlar,
    Serinin beşinci yazısı olan merkezi erişim konusuna başlıyoruz. Burada ele alacağımız 3 kavram olan gateway, reverse proxy ve load balancer konuları olacak. Hepsi gelen trafiği karşılayıp gerekli servislere yönlendiren yapılar olmasına rağmen birbirlerinden farklılaştığı noktalar mevcut. Ayrıca böyle bir kurgunun ne gibi bir işlevi var, ne tür avantajlar sağlar, hangi işlemleri burada yapmalıyız gibi konulara da değinmeye çalışacağız. Hazırsak başlayalım.

Mikroservis Yazı Serisi 4 - Achieving Data Consistency

     Selamün Aleyküm Arkadaşlar,

    Serinin dördüncü yazısında, dananın kuyruğunun koptuğu bir konuyu ele alacağız: Veri tutarlığı. Önce bu konu neden önemli, sağlanmadığında ne gibi problemler yaşanabilir, ardından monolit yapılarda bunu nasıl sağlıyoruz ve son olarak da mikroservislerde ne gibi zorluklar yaşanıyor ve buna sunulan çözümler nelerdir gibi konulara değinmeye çalışacağız. Hazırsak başlayalım.

Mikroservis Yazı Serisi 3 - Composing Microservice

     Selamün Aleyküm Arkadaşlar,

    Mikroservis serimizin üçüncü yazısı olan "composing microservice" konusunu ele alacağız. Birden çok servisten gelen cevapları toplayarak yanıt olarak istemciye (client) geri döner. Mikroservisin bağımsızlık ilkesine ters olsa da iş modelinin isterlerine göre kaçınılmaz olabiliyor. Bu durum, genel tasarıma zarar verebileceğinden burayı tasarlamak ilerideki birbirine bağımlı servislerin oluşmasına engel olmak açısından çok önemlidir. Hazırsak detaylarına inelim.

24 Aralık 2024 Salı

Mikroservis Yazı Serisi 2 - Async Messaging

     Selamün Aleyküm Arkadaşlar,

    Serinin ikinci yazısında asenkron iletişimi ele alacağız. Servisler arası iletişimde temelde iki yöntem var. Bu yöntemlerden biri senkron (rest api, grpc) ve diğeri asenkron olarak ele alabiliriz. Birbirilerine göre avantaj ve dezavantajları olsa da servislerin birbirine olan bağımlılıkları en aza indirgemek için asenkron iletişim bu işin temel parçalarından biri haline geliyor. Hazırsak başlayalım.

Mikroservis Yazı Serisi 1 - Bounded Context

     Selamün Aleyküm Arkadaşlar,
     Seriye özetle başlasak da gerçek manada serinin ilk yazısı. Özette de belirttiğimiz gibi bu işin kalbi bana göre sınırları doğru çizebilmek. Sınırları doğru ve net belirlediğimizde geriye kalan işler kolaylaşacaktır. Monolit yapılarda veritabanı tasarımının projedeki en önemli kısım olduğunu düşündüm hep. İyi bir veri tabanı iyi bir backend yazılımına, o da iyi bir arayüze ve günün sonunda iyi bir uygulama vesile olur. Mikroservis mimarisinde ise aynı şeyi "bounded context" için düşünüyorum. Hazırsak başlayalım. 

17 Aralık 2024 Salı

Mikroservis Yazı Serisi: Index[0]

     Selamün Aleyküm Arkadaşlar,

    Çok uzun süredir notlarımda olan ve hep yazmak istediğim bir seriye Allah'ın izniyle başlıyorum. Yıllar önce yanlış hatırlamıyorsam Koç sistemin bir videosunda not aldığım 16 başlığı 16 ayrı yazı olarak ele alıyorum. Böyle düşününce gerçekten zor bir hedef gibi görünüyor, ancak birincisine niyet edip başlarsak inşaAllah gerisi de gelir diye düşünüyorum..

8 Aralık 2024 Pazar

Tecrübe mi Zor Tecrübesizlik mi?

     Selamün Aleyküm Arkadaşlar,

    Son dönemde yakın çevremdeki birçok arkadaşım iş arayışına girdi. Bazıları hızlıca iş bulurken bazılarının iş arayış süreci biraz daha uzun sürdü. Tabii ki herkesin beklentisi tecrübesi çalıştığı alan farklılıklar gösteriyor ancak bu süreçteki gözlemlerimi aktarmak istiyorum. Hazırsak başlayalım.

5 Aralık 2024 Perşembe

Developer Mülakat Soruları - 4 - Patterns & Principles

    Selamün Aleyküm Arkadaşlar,
    Bildiğiniz gibi developer mülakat sorularında daha önce 3 yazı toparlamıştık. Birinci ve ikincisinde
yazılım ile ilgili sorular var iken, üçüncüsünde veri tabanı ve mikroservis mimarisiyle ilgili sorular vardı.
Şimdi ise yazılımdaki tasarım şablonları ve prensiplerini toparlayarak dördüncü yazımıza başlıyoruz.
Çok uzun süredir toplamış olduğum notları toparluyorum, bazılarını nereden buldum, nereden not aldım/
kopyaladım hatırlamıyorum, üzerinden geçip güzel bir şekilde toparlama çalıştım. Hem kendime hem
okuyanlara faydalı olur inşaAllah. Bir duanızı alırım :) Hazırsak başlayalım