Dapr ile Hızlı Mikroservis Uygulama Geliştirme

Cloud native dağıtık bir uygulama geliştirmenin, kendi içerisinde bir çok zorlukları, zaman alacak gereksinimleri vardır; state management, db layer, cloud bindings gibi liste uzar gider. Event driven bir mimari kurmak istediğinizde ise, hali hazırda çözülmüş olan ve sizin, tekrardan yazmanız gereken bir sürü implementasyon olacaktır.

Bu yazının konusu, bahsettiğimiz “zaman alıcı” işlerden soyutlanmamızı ve odağımızı, yapmak istediğimiz business’a yönlendirmemizi amaçlayan bir “framework” olan Dapr.

Dapr Nedir?

Dapr (ORM olan dapper değil 🙂 ), kendisinini Distributed Application Runtime olarak konumlandırmaktadır. Bir çok bileşenden oluşan bir araç kütüphanesi olarak da düşünülebilir, istediğiniz şeyi alır kullanır veya özelleştirebilirsiniz bu yaklaşımı java spring cloud tarafında da görmüştük. Cloud native mikroservis uygulamaları geliştirmek istediğinizde, ihtiyacınız olacak bir çok şeyi size hazır olarak sağlar, bu sayede çözülmüş olan bir çok problem için kod yazma ihtiyacınızı ortadan kaldırır.

dapr.io

Microsoft tarafından geçtiğimiz yıl açık kaynak olarak duyrulmuştu ve uzun bir süre alfa ve beta testleri devam etti, geçtiğimiz haftalarda ise 1.0 sürümüyle production ready hale geldi .Dapr, projelere import edilerek kullanılan bir kütüphane değildir, sidecar olarak çalışan http ve grpc ile iletişim kurulabilen bir araçtır, bu sayede programlama dilinden ve platformdan bağımsız olarak kullanabilmenize olanak sağlamaktadır. Dilerseniz, popüler programlama dilleri olan Go, Java, .Net, JavaScript, C++, PHP, Python gibi diller için geliştirilmiş olan SDK’ları da mevcuttur. Dapr, standalone çalışabildiği gibi Kubernetes ortamında da çalışabilmektedir.

Dapr, 6 ana başlık altında bir birinden farklı 71 bileşene sahiptir. Bu bileşenler: I/O Bindings, State Store, Pub/Sub, Secret Store, HTTP Middleware, Name Resolution.

dapr.io

Kurulum

Kurulum adımlarını dokümantasyon üzerinden takip etmek isterseniz buraya tıklayabilirsiniz veya burada kalıp bu yolculuğa benle devam edebilirsiniz 🙂

Geliştirme ortamınızda, dapr self hosted modunu kurabilirsiniz. Self hosted dapr, docker ile çalışmaktadır.

komutunu çalıştırın. Bu komut ile, Dapr image larını indirecek ve çalıştıracaktır.

  • Dapr init, varsayılan olarak Redis ve Zipkin ile birlikte gelmektedir. Proje ihtiyaçları doğrultusunda Dapr konfigürasyon ayarları ile, hangi bileşenler ile çalışmasını istediğinizi belirtebilirsiniz.