Blog
Blog
ASP.NET Core Serisi 06: Health Checks ve Azure Application Insights’ı Kullanarak Uygulamalarınızın Sağlığını Monitor Edin
Sanırım “uygulamalarımızın sağlığı” konusu, mimari yaklaşım farketmeksizin hepimiz için her zaman önemli ve ortak bir endişe noktası olmuştur. Bildiğimiz gibi uygulamalarımızın sağlıklı olup olmadığını görünür bir hale getirebilmek veya kolay bir yoldan öğrenebilmek, bir çok durum karşısında uygulamanın riskini en aza indirgemektedir. Özellikle uygulamalarımız bir load-balancer arkasında multi instance olarak çalışıyorsa, trafiğin yönlendirilme işlemi veya […]
Read MoreAzure Kubernetes Service ile Internal Nginx Ingress Kullanımı
Bildiğimiz gibi Kubernetes içerisinde bir ingress controller’a, tek bir IP adresi üzerinden trafiği route edebilmek ve TLS termination işlemleri için ihtiyaç duymaktayız. Günümüzde bu tarz işlemler için çeşitli Service Mesh teknolojileri tercih ediliyor olsada, sistemin türüne ve boyutuna göre bazı durumlarda da Nginx gibi bir ingress controller’a ihtiyaç duymaktayız. Örneğin, sistem fazla kompleks değilse veya […]
Read MoreASP.NET Core Serisi 05: Kod’unu bloklama, reactive ol
Eskiden sadece belirli bir kesime hitap eden uygulamalar geliştirirken, günümüz teknoloji çağının ilerlemesiyle ve global marketten de bir pay alabilmek için, artık daha büyük bir kesime hitap eden uygulamalar geliştirmemiz gerekiyor. Geliştirdiğimiz uygulamaların 7/24 kesintisiz hizmet verebiliyor olması ve response süreleri düşük olan, kullanıcı deneyimi sorunsuz ve yüksek olan uygulamalar olması da oldukça önem arz […]
Read MoreAzure Front Door Service ile Web App’lerin Performansını ve Erişilebilirliğini Arttırmak
Cloud üzerinde global(çok bölgeli) düzeyde bir web uygulaması geliştiriyorsak ve ayrıca uygulamanın performanslı, scalable ve highly available olmasını istiyorsak, iyi bir uygulama giriş noktasına ihtiyacımız var demektir. Bu kapsamda, Microsoft‘un uzun zamandır scalability ve security gibi konular için kendi hizmetleri içerisinde de kullanıyor olduğu bir web uygulama giriş noktası olan Azure Front Door Service, ihtiyaçlarımızı […]
Read MoreMevcut .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 MoreGetting Started with Clean Architecture using ASP.NET Core – 02
Henüz makalenin ilk bölümünü okumadıysanız, konuyu daha iyi anlayabilmek adına buradan ulaşabilirsiniz. Makalenin bu ikinci bölümünde ise, clean architecture konsept’inin .NET Core ile minimal düzeyde implementasyon işleminden bahsedeceğim. Örnek olarak, içerisinde film ekleyebileceğimiz ve listeleyebileceğimiz basit bir API geliştireceğiz. Application Domain’in Implementasyonu İlk önce architecture’ın kalbi olacak olan application domain kısmını oluşturacağız. Öncesinde ise kısaca […]
Read MoreGetting Started with Clean Architecture using ASP.NET Core – 01
Biliyoruz ki maintenance işlemi, uygulamanın kendisini yazmaktan her zaman daha maliyetli bir operasyondur. Her ne yaparsak yapalım, değişmeyen tek gerçek maintenance maliyetidir, değil mi? Bu maliyeti etkileyen en önemli etkenlerden birisi de, uygulamanın architecture’ının seçimidir. Edindiğim geçmiş tecrübelerim doğrultusunda iki farklı makale serisi olarak, “iyi bir architecture design edebilmek için nelere dikkat etmeliyiz” ve “clean […]
Read MoreSOLID Prensiplerini Anlama, keep calm! Cloud-Native Uygulamalar İçin
Bu makale kapsamında bahsetmek istediğim konu SOLID prensipleri ama bu sefer cloud-native uygulamalar’lar için. Bildiğimiz gibi SOLID prensipleri, object-oriented yazılım geliştirmede kuşkusuz en önemli prensip setlerinden birisidir. Bir çoğumuz uygulama geliştireceğimiz zaman kodumuzu SOLID prensipleri doğrultusunda geliştirmeye çalışıyoruz, çünkü: Geliştirilen uygulamanın well-designed olabilmesi için kod standartı sağlalamaktadır. Ayrıca kolay maintenance sağlamaktadır. Extendability ve Reusability de […]
Read MorePlaying with Service Mesh – Linkerd ve Azure Kubernetes Service
Bildiğimiz gibi Microsoft, bu yıl Barcelona KubeCon‘da bir çok yeniliklerini duyurdu. Bence bunlardan önemli bir tanesi ise SMI(Service Mesh Interface) idi. İncelediğim kadarıyla SMI‘ın tanımı için kısaca, tıpkı AMQP‘de olduğu gibi “interoperability” konusunu service mesh’ler arasında sağlayabilmek diyebilirim. Özünde service mesh’ler için Kubernetes üzerinde standart bir interface sunmaktadır. Böylece service mesh için provider-lock durumuna düşmeden, […]
Read MoreKubernetes-based Event Driven Autoscaling with KEDA, RabbitMQ and .NET Core
Bildiğiniz gibi Microsoft, son dönemlerde open-source dünyası için çok fazla atılım ve yatırım yapmaktadır. Bu atılımlardan birtanesi ise Red Hat partnership’liği ile birlikte geliştirdikleri Kubernetes-based Event Driven Autoscaling yapabilmemizi sağlayan KEDA adında bir component. KEDA‘nın duyurulmasından bu yana hemen kendi ortamlarımızda test etmeye ve kurcalamaya başladım. Bu makale ile ise KEDA hakkında edinebildiğim bilgileri paylaşmak […]
Read More.NET Core ve Visual Studio for Mac ile Behavior Driven Development (BDD)
Agile bir development takımı düşünelim, Developer’ından Product Owner’ına, Scrum Master’ından Stake Holder’larına kadar hepsinin product development konusunda collaborative olarak birbirlerine bağlı bir şekilde çalışıyor oldukları. Kulağa harika geliyor değil mi? Ama maalesef bu her zaman %100 mümkün olmuyor. Peki, bugün ise Behavior Driven Development hakkında konuşacağız. Bu makale kapsamında BDD hakkındaki bilgilerimizi tazeleyip hemen ardından […]
Read MoreKubernetes Üzerindeki .NET Core Uygulamalarının OpenTracing API ile Distributed Tracing İşlemleri
Distributed tracing, microservice architecture’ı olarak tasarladığımız sistem içerisindeki uygulamalarımızın, nerede performans problemi yaşadığını belirleyebilmemiz ve monitor edebilmemiz için harika bir method. Bir başka değişle, hangi request nereye gidiyor, uçtan uca bir request ne kadar zaman harcıyor gibi sorulara cevap alabilmemiz için implemente etmemiz gereken bir method. Bu makale kapsamında ise, OpenTracing API‘ını ve Jaeger tracer’ını […]
Read More2019-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 MoreAPI Request ve Response’larını Azure API Management üzerinden Azure Funtions Kullanarak GrayLog’a Loglama
Sizlerinde bildiği gibi hemen hemen her backend application’ının sahip olması gereken en temel özelliklerden birisi, request ve response‘ların log‘lanmasıdır. Özellikle çoklu API kullanımının söz konusu olduğu ortamlarda, “nice-to-have” durumundan “must-have” durumuna geçiş yapan temel bir özellik. Çünkü öyle bir zaman geliyor ki, API‘ı call eden bir client’a, gönderdiği request’in hatalı parametreler içerdiğini gösterebilmeniz gerekiyor. Kısacası, daha iyi […]
Read More















