Skip to content

Gökhan Gökalp Posts

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…

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…

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…

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…

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ı…

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…

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…

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…

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…

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…

Docker Üzerine Cassandra Kurulumu ve .Net ile Giriş

Merhaba arkadaşlar. Bir önceki makalemde bir süredir Messaging yapıları üzerinde çalıştığımdan bahsetmiştim sizlere. Yine aynı şekilde bazı ihtiyaç ve kararlardan dolayı, NoSQL olarak Apache dünyasından Cassandra kullanmamız gerekti. Bu makalemde ise sizlere biraz geç de olsa Docker üzerinde Cassandra kurulumundan bahsedip, .Net üzerinde bir örnek gerçekleştireceğim. Nedir bu Apache…

RabbitMQ ve Publish-Subscribe Patterni ile Fanout Exchange

Merhaba arkadaşlar. Bir süredir Messaging sistemleri üzerinde yoğun bir şekilde çalışmaktayım. Bu makalede ise RabbitMQ’da Publish-Subscribe pattern’i ile Fanout Exchange‘e değinmeye çalışacağım. Öncelikle tüm bu işlemlere başlamadan RabbitMQ hakkındaki bilgilerimizi tazeleyebilmek adına, buraya tıklayarak RabbitMQ hakkında daha önce yazdığım makalelere bir göz atabilirsiniz. Dilerseniz konuya girmeden önce biraz messaging…

Repository Pattern Yaklaşımı Yerine Command/Query Object Pattern Yaklaşımı

Merhaba arkadaşlar. Bu makale konumuzda data access layer için Repository Pattern‘i yerine, Command/Query Object Pattern‘inin kullanımı ve faydaları inceliyor olacağız. Sizlerinde bildiği gibi uzun zamanlardır data access layer’larımız için, vazgeçilmez bir hal almıştır Repository Pattern’i. Peki bunca zamandır kötü tasarımlardan sıyrılabilmek ve bağımlılık yönetimi(dependency management)…

Asp.Net Web API – Token Based Authentication Refresh Token Kullanımı

Merhaba arkadaşlar. Biraz aradan sonra tekrar bir Asp.Net Web API makalesi ile karşınızdayım. Daha önceki makalemde Asp.Net Web API’da Token Based Authentication nasıl gerçekleştirilir ve implemente edilir konusunu ele almıştım. Bu makale kapsamında ise sizlerden gelen feedback’ler doğrultusunda ilerleyerek, Token Based Authentication kullanırken Refresh Token nasıl implemente edilir ve nasıl çalışır konusunu da…

Monolithic ve MicroService Architecture’a Genel Bir Bakış

Merhaba arkadaşlar. Bu blog yazımdaki konum, her ne kadar yeni bir şey olmasada, son dönemlerde Martin Fowler ile gündeme gelen ve git gide önemini arttıran MicroService mimarisi üzerine genel bir bakış olacak. Ayrıca bu doğrultuda doğru bilinen yanlışlar, MicroService mimarisinin artıları ve eksileri gibi yönlerine de değiniyor olacağız. Dilerseniz öncelikle…

Asp.Net Web API’da Cross-Site Request Forgery (CSRF) Saldırı Güvenliği

Merhaba arkadaşlar. Gelen sorular üzerine bu yazımda sizlerle Asp.Net Web API’da Cross-Site Request Forgery(CSRF) saldırılarına karşı güvenliği nasıl ele alabiliriz’i küçük çapta anlatmaya çalışacağım. Zaten bir çoğumuzun Asp.Net MVC‘den AntiForgeryToken ile aşina olduğu bir konu olabilir. AntiForgeryToken implementasyonunu Web API bacağında ise custom olarak kendimiz gerçekleştireceğiz. Dilerseniz öncelikle CSRF…