Blog

Blog

{:tr}ASP.NET Core Serisi 01: Dapper ile RESTful API Tasarlama ve Azure App Services’e Deploy{:}{:en}ASP.NET Core Series 01: Building RESTful API with Dapper and Deploy to Azure App Services{:}

{:tr}Merhaba arkadaşlar. ASP.NET Core serisine aslında uzun bir süredir giriş yapmayı düşünüyordum fakat, bir türlü fırsat bulamamıştım. :) Son dönemlerde doğan bazı ihtiyaçlarımızdan dolayı (kolayca dockerize edebilmek vb.), bu aralar aktif olarak ASP.NET Core üzerinde development yapmaktayım. Bu sebep ile ara ara seriler halinde ASP.NET Core üzerine irili ufaklı makaleler yazmaya çalışacağım. Bu makale kapsamında ASP.NET […]

Read More

Introduction to Orleans Virtual Actor Model

Introduction to Orleans Virtual Actor Model presentation at Trendyol tech talk. 

Read More

{:tr}Devnot Atölye’de – RabbitMQ and Message Queuing Sunumu{:}{:en}RabbitMQ and Message Queuing Presentation at Devnot Atölye{:}

{:tr}Selam millet, 10 Haziran 2017 Cumartesi günü 10:00-13:00 saatleri arasında Devnot Atölye‘de sunumunu gerçekleştireceğim “RabbitMQ and Message Queuing” etkinliğine, aşağıdan kayıt olabilirsiniz. https://www.eventbrite.com/e/rabbitmq-ve-message-queue-yaplar-tickets-34988908768?aff=efbneb Sunum Sonu Özeti Çok keyifli bir etkinlik geçirdik arkadaşlar. Katılan herkese çok teşekkür ederim. İlgili görsellere ve sunumda kullandığım slide&projelere aşağıdan ulaşabilirsiniz. Not: Herhangi bir sorusu olanlar, iletişim bölümünü kullanarak benimle iletişime […]

Read More

{:tr}Orleans ile Loosely Coupled ve Scalable RESTful Service Oluşturma{:}{:en}Building Loosely Coupled and Scalable RESTful Services using Orleans{:}

{:tr}Merhaba arkadaşlar. Daha önceki Orleans’a Giriş makalem içerisinde, bu aralar Orleans ve Actor-based sistemler üzerinde durduğumdan bahsetmiştim. Bu makale konusu altında ise Orleans’ı middle-tier olarak kullanıp, loosely coupled ve scalable RESTful service’ler nasıl oluştururuz konusuna değinmeye çalışacağım. Orleans’ın bize kazandırdığı pratikliğin yanı sıra, mimari boyutta da yeni bir yaklaşım getiriyor aslında. Data neredeyse business logic’in […]

Read More

{:tr}Messaging Yapılarında MassTransit ile Error ve Redeliver Handling{:}{:en}Error Handling and Message Redelivery in MassTransit{:}

{:tr} Merhaba arkadaşlar. Bu makale konumda sizlere messaging yapılarına geçiş süreçlerimizde consumer’lar üzerinde karşılaştığımız Error ve Redeliver handling gibi concern’lerden bahsedip, nasıl bir yaklaşım uyguladığımız konusunda ve service bus olarak kullandığımız MassTransit kütüphanesinin nasıl çözümler sunduğu konusunda bilgiler paylaşmaya çalışacağım. Consumer ile Error Handling Bir e-commerce sistemi üzerinde çalıştığımızı düşünelim. Sistem üzerinde bir sipariş başarıyla gerçekleştiği an, […]

Read More

Overview of RabbitMQ

{:tr}Overview of RabbitMQ presentation at Trendyol Tech Talk {:}{:en}Overview of RabbitMQ presentation at Trendyol Tech Talk {:}

Read More

Microsoft Orleans ile Distributed Virtual Actor Model’e Giriş

Merhaba arkadaşlar. Bu makale konumda straightforward bir şekilde concurrency problemlerini düşünmeden, distributed bir şekilde high-scale application’lar geliştirebilmemize olanak sağlayan Orleans project konusuna giriş yapmak istiyorum. Nedir Bu Orleans Project? Yukarıda da bahsettiğim gibi, concurrency problemlerini düşünmeden high-scale, distributed cloud-based uygulamalar geliştirebilmemiz için Microsoft’un 2014 yılında duyurmuş olduğu bir framework/platform’dur. Orleans, concurrency ve high-scale gibi problemleri […]

Read More

Microservice Mimarilerinde Consul ile Service Discovery

Merhaba arkadaşlar. Tekrardan microservice mimarilerine dayanan bir konu ile karşınızdayım. Bu konu kapsamında ise, “Service Discovery nedir?”, “Ne zaman ihtiyaç duyarız?” gibi kavramlardan bahsedip, bu işlemleri Consul ile nasıl gerçekleştirebileceğimize değinmeye çalışacağım. Service Discovery Nedir? Microservice’ler ile alakalı diğer makalelerimde de bahsettiğim gibi, bizlere kattığı artıların yanında bazı challenge’ları da beraberlerinde getirdiklerinden bahsetmiştik. Bu challenge’lardan belki de […]

Read More

AppVeyor ile .NET NuGet Paketi Oluşturarak Publish Etmek

Merhaba arkadaşlar. Bu makale konumda biraz farklı bir alana değinerek, sizlere son zamanlarda severek kullandığım bir CI(Continuous Integration) tool’u olan AppVeyor‘un Continuous Deployment fonksiyonunu kullanarak, .NET ile geliştirdiğimiz library’leri nasıl NuGet paketi haline getirip kolay bir şekilde publish edebiliriz konusuna değinmeye çalışacağım. Daha önce AppVeyor’u kullanmamış arkadaşlar için konuya başlamadan önce belirtmek istiyorum ki, AppVeyor kullanımı open-source projeler […]

Read More

C# Loki ile Service Bazlı Distributed Locking

Merhaba arkadaşlar. Bu makale konumda sizlere Trendyol.com çatısı altında geliştirip, bazı uygulamalarımızda kullandığımız Loki kütüphanesinden bahsetmek istiyorum. Loki Nedir? Loki’yi kısaca tanımlamak gerekirse: Distributed sistemler üzerinde kolay bir şekilde lock işlemlerini handle etmeye yarayan bir library’dir. Loki’yi biraz daha açmak gerekirse eğer, shared bir resource üzerinden işlem yapan uygulamalarımız var ise ve bu uygulamalarımızı performans ve network split problemlerinden dolayı […]

Read More

Microservice Mimarilerinde Consumer Driven Contracts Testing Nedir? ve C# ile Implementasyon

Merhaba arkadaşlar. Yine microservice mimarilerine yönelik bir konu ile karşınızdayım. Sizlerde biliyorsunuz ki son dönemlerde neredeyse tüm ilgi alanımı, microservice mimarileri ve MQ(Message Queue) tabanlı sistemlere yoğunlaştırdım. Bu sistemler her ne kadar bir çok derdimizi çözseler bile, asla kusursuz bir şey olmadığı gibi beraberlerinde getirdiği bazı ek maliyetler de bulunmaktadır. Microservice mimarilerine geçilmesinde, belki en önemli […]

Read More

MassTransit Saga State Machine ile Model Workflow’u Oluşturmak

Merhaba arkadaşlar. Bir süredir gerek yoğun iş temposu gerekse de sosyal hayatımdaki bazı yoğunluklardan dolayı, yeni bir makale yazmaya fırsat bulamamıştım. Sizlerde fark ederseniz bir süredir makale konularımı microservice ve messaging yapıları üzerine yoğunlaştırdım. Bu makale içeriğinde ise geliştiriyor olduğumuz microservice ve messaging yapılarında, long-running business process işlemlerinde consistency’i MassTransit Saga State Machine implementasyonu ile nasıl […]

Read More

MassTransit kullanarak RabbitMQ ile Messaging Altyapısı Oluşturma

Merhaba arkadaşlar. Bir süredir sizlere messaging sistemleri üzerinde çalıştığımdan daha önceki makalelerimde bahsetmiştim. Messaging konusundaki diğer makalelerim üzerinden sizlerden gelen feedback’ler doğrultusunda MQ(Messaging Queue) yapısı ile beraber bir ESB(Enterprise Service Bus) kullanarak, büyük ölçekli uygulamaları nasıl daha iyi scale edebiliriz konusundaki bilgilerimi sizlere aktarmaya çalışacağım. Bu makale kapsamındaki konu başlıklarımız ise sırasıyla aşağıdaki gibi olacaktır. Messaging Architecture […]

Read More

Apache Kafka Serisi 02 – Docker Üzerine Kurulumu ve C# ile Giriş

Merhaba arkadaşlar. Bir önceki Apache Kafka Serisi 01 – Apache Kafka’ya Giriş makalesinde, Apache Kafka’nın ne olduğuna dair kabaca bir giriş yapmış ve terminolojisinden bahsetmiştik. Bu makale kapsamında ise aşağıdaki konulara değineceğiz: Zookeeper nedir Docker üzerine zookeeper kurulumu Docker üzerine kafka kurulumu C# client’ı ile kafka üzerinde örnek Kurulum işlemine başlamak için Docker Quickstart Terminal’i açalım ve aşağıdaki komut satırını […]

Read More

Apache Kafka Serisi 01 – Apache Kafka’ya Giriş

Merhaba arkadaşlar. Bu makale konusunda sizlere son dönemlerde popülerleşmekte olan yüksek performanslı dağıtık mesajlaşma sistemi Apache Kafka’nın, genel hatlarına değiniyor olacağım. Distributed messaging system konusuna girmeden önce, her şeyin temeli olan big data olayına biraz değinelim. Günümüz teknolojisinde big data denilen şey, git gide hızla büyümeye ve her an oluşabilen bir hale gelmiştir. En basit örnek olarak Google üzerinde bizler […]

Read More

Loglama Yapılarında Correlation ID ile Traceability’i Sağlamak

Merhaba arkadaşlar. Bu makale konusunda sizlerle uygulamalarımızda Correlation ID aracılığı ile consistent bir şekilde nasıl log’lama işlemlerini gerçekleştirebiliriz konusunu ele almaya çalışacağım. Çoğu zaman geliştirmekte olduğumuz uygulamalarda, arkaplanda neyin olup bittiğini anlayabilmek için genelde çeşitli log’lama işlemlerini gerçekleştiririz. Özellikle büyümekte ve büyük çapta olan projelerde, monolithic architecture’ların yerine distributed architecture’ların tercih edilmesiyle beraber, distributed dünya sağlamış olduğu bir çok faydanın yanında business […]

Read More