Category

.NET

Windows Container’lar için Yararlı Bilgiler

Tahmin edebileceğimiz gibi genellikle zaman ve maliyet sebeplerinden dolayı mevcut uygulamaları lift & shift yaklaşımıyla cloud ortamına migrate etmeye çalışmak, bazen sandığımız kadar kolay bir şekilde gerçekleşmeyebiliyor. Özellikle .NET Framework ile geliştirmiş olduğumuz mevcut uygulamalarımızı containerize edilmiş olarak kubernetes gibi ortamlarda host etmek istiyorsak. Ayrıca çoğu zaman tahmin edemeyeceğimiz farklı challenge’ları da handle etmemiz gerekebiliyor. […]

Read More

Gizli Silah: Specification Pattern

Sanırım specification pattern‘ı en son bir buçuk yıl önce implemente etme ihtiyacım olmuştu. Amacım ise ilgili business domain’ini çok fazla kompleks bir hale getirmeden ve domain bilgilerini duplicate etmeden, domain kurallarını encapsulate ederek tekrar kullanılabilir bir hale getirebilmekti. Bir çoğumuzun bildiği gibi specification pattern, yeni bir pattern değil. Son dönemlerde ise bu pattern hakkında farklı […]

Read More

Mevcut .NET Uygulamalarını Azure Kubernetes Service’e Migrate Etmek

Günümüz teknoloji çağında, özellikle büyük ölçekli firmalar için uygulamaları cloud ortamında host etmenin ne kadar da önemli olduğunu hepimiz biliyoruz. Bir çok anket verilerine göre de, özellikle geçtiğimiz 2 yıl içerisinde hem public hem de private cloud kullanım oranları oldukça artmış durumda. Başlıca birkaç sebebi ise, aşağıdaki gibi sıralayabiliriz: Düşük maliyet: doğru seçimler ile IT  […]

Read More

2019-2020 Developer Technologies Alanında Microsoft MVP Ailesine Katıldım

Merhaba arkadaşar, 1 Nisan 2019 tarihinde, Developer Technologies alanında Microsoft MVP ailesine katıldığımı duyurmaktan onur ve heyecan duyuyorum. Bu süreçte herkese destekleri için çok teşekkür ederim!

Read More

Microservice Mimarisinde Resiliency Pattern’ları

Merhaba arkadaşlar. Açıkçası bir süredir bu konu hakkında bir makale yazmayı planlıyordum. Yaşamış olduğum son blackfriday tecrübesinden sonra, bu konu hakkında bir şeyler yazmanın sırasının geldiğini anladım. Evet, konumuz microservice yapılarında resilience ve fault tolerance‘ın önemi ve bunu nasıl sağlayabileceğimiz. Hikaye Daha önceki makalelerim içerisinde, bir çok kez microservice architecture’ının sisteme getirdiği avantajlardan hep bahsettim. Zaten […]

Read More

Orleans ile Loosely Coupled ve Scalable RESTful Service Oluşturma

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

Messaging Yapılarında MassTransit ile Error ve Redeliver Handling

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, sistem […]

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

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

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

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

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 Cassandra? Geliştirilmesine ilk olarak Facebook tarafından başlanıp sonrasında ise open-source […]

Read More

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 hakkındaki bilgimizi biraz güncelleyelim. CSRF atağı saldırgan tarafından son kullanıcının kullandığı […]

Read More