İçerik üretirken hangi dili tercih etmek daha doğru?

Birçoğumuzun blog yazmaya karar verdiğinde kendisine soracağı başlıca sorulardan biri sanırım hangi dilde yazmak gerektiği olur. Ben de kendimce neden yazılarımı Türkçe üretmeyi seçtiğimi ve hangi seçimin bana göre daha doğru olduğunu anlatacağım.

(more…)

MongoDB ile Unit of Work ve Generic Repository pattern kullanımı

Tech stack

  • MongoDB replica set
  • dotnet
  • Docker

Motivasyon

Repository pattern, uygulama mimarilerine oldukça kolay entegre edilebilen ve özellikle veri tabanı ya da farklı storage kaynakları için işlem yapan sınıflarda çokça kullandığımız bir tasarım deseni. Veri tabanı için genellikle UoW ile beraber kullanmayı tercih ederiz çünkü aynı request yaşam döngüsü içerisinde farklı DbContext nesneleri oluşturmak istemeyiz. Verilen çogu örnek de MSSQL, MySQL, vb. gibi ilişkisel veri tabanları içeriyor. Ben de bu yazımda MongoDB gibi bir NoSQL veri tabanı kullanarak ve Generic leri de ekleyerek bu implementasyonu nasıl yapabileceğimizi anlatacağım.

(more…)

k6 ile async vs sync programlama karşılaştırması

async vs sync

Tech stack

  • dotnet 6.0 (minimal api)
  • k6

Motivasyon

Yakın zamanda incelediğim bir web uygulamasında çok az kullanılan async programlamayı teşvik edebilmek adına bazı araştırmalar yapmıştım. Bu yazımda, araştırmamı desteklemesi için kullandığım async ve sync bir metot karşılaştırmasını, k6 ile hızlı ve etkili bir şekilde nasıl yapabileceğimizi anlatacağım.

(more…)

Kong ile API Gateway kuruyoruz

kong-api-gateway

Tech Stack

Motivasyon

Bu yazımda birden fazla servis yönetimi ile ilgili burada bahsettiğim reverse-proxy çalışma mantığına benzer fakat biraz daha geniş çaplı amaçlara hizmet eden API Gateway mimari tasarım desenini Kong Gateway ile nasıl uyguladığımı anlatacağım.

(more…)

Self-hosted GitLab Runner

Tech stack

  • GitLab
  • Ubuntu 20.04.4 (Digital Ocean droplet)

Motivasyon

Bu yazımda uygulama CI/CD süreçleri ile ilgili burada bahsettiğim ve Azure DevOps üzerinden halletiğimiz self-hosted devops agent kurulumunun GitLab versiyonuna (GitLab Runner) değineceğim.

(more…)

Self-hosted Azure DevOps agent

Tech stack

  • Azure DevOps
  • K8s
  • Docker

Motivasyon

Ağırlıklı olarak backend development tarafında çalışıyorsanız, DevOps işleri ile kim ilgilenmeli sorusuyla epey bir karşılaşmıssınızdır. Bence DevOps süreçleri, gelişen araçlar ile beraber artık yazılımcıların işleri ile çok daha fazla ilgili olmaya başladı. Bu yazımda, localde ayağa kaldırdığım bir K8s clusterı içerisine Azure DevOps agent kurup, bu agentı Azure DevOps üzerinden nasıl tüketebileceğinizi anlatacağım.

(more…)

Docker kullanırken sıkça karşılaşılan erişim problemleri hakkında bilmeniz gerekenler

Docker günlük hayatımızda gerek geliştirmekte olduğumuz gerekse deploy ettiğimiz uygulamalarda sıkça kullandığımız bir araç. Haliyle docker host u üzerinde yönettiğimiz uygulama sayısı arttıkça, uygulamalar arası erişim problemleri karşımıza çıkmaya başlıyor. Bu yazımda docker ile ilgili nispeten orta ve az seviyede bilgi sahibi arkadaşlar için olası network/servis erişim problemlerini ve bu problemlerin hızlı bir şekilde nasıl çözüleceğini ele alacağım.

(more…)

Kişisel blog sitemi açma kararım ve nedenleri

Bu yazımda şu anda ziyaret etmekte olduğunuz kişisel blog sitemi açma kararımın arkasındaki motivasyon ve gereksinimler ile ilgili hiç mi hiç teknik olmayan ve sadece şahsi yorumuma dayalı detayları anlatacağım.

(more…)

Azure DevOps kullanarak DO droplet üzerinde uygulama yayımlamak

ci-cd

Tech stack

  • Ubuntu 20.04.4 (Digital Ocean droplet)
  • Docker
  • Azure DevOps

Motivasyon

Günümüzde yazılım ve dev(Sec)Ops araçları ile birlikte uygulamalar çok sofistike bir hale büründü. Çok az özelliklere sahip bir uygulama geliştiriyor olsanız bile, manuel build/deployment işleri artık sadece bir zaman israfı değil, aynı zamanda güvensiz bir yaklaşım olmaya başladı. Tek bir API endpoint ine ait onlarca unit/integration test metodu çalıştırılabilir, uygulamanıza yeni eklenen kod parçacığını onaylamak için bir dizi kural filtresinden geçirebilir, yeni versiyonun dağıtımı için zero downtime sağlamak adına farklı yöntemler izleyebilirsiniz. Ben de benzer şekilde, kendi uygulamalarımı otomatize etme ihtiyacı duyuyorum ve bu yazımda sıkça kullandığım 2 araç ile birlikte (DO droplet & Azure DevOps) bloğum için yaptığım temel seviyedeki düzenlemeleri aktaracağım.

(more…)

Bir başka WordPress sitesi, kişisel bloğum

Tech stack

  • Ubuntu 20.04.3 (Digital Ocean droplet)
  • Docker
  • WordPress
  • NGINX
  • MySQL

Bu yazımda şu anda ziyaret etmekte olduğunuz kişisel blog sitemin detaylarını aktararak, nerede ve nasıl yayımladığımı anlatacağım.

(more…)