While working with microservice architecture and manage distributed systems that includes many of bounded contexts, you need to monitor your services one by one and be sure about the systems are up all time.

In the life cycle of software development(SDLC) we have 6 steps to be done.

Such as planning, analysis, design, implementation, testing, deployment

After every feature development we run our tests in Qa environment and check quality & functionality & code coverage

We should track our system’s behaviour before deployment and after deployment for knowing deployment effects to avg response time, throughput, cpu, memory, error rate and…

Overview

In gRPC, a client application can directly call a method on a server application on a different machine as if it were a local object, making it easier for you to create distributed applications and services.

As in many RPC systems, gRPC is based around the idea of defining a service, specifying the methods that can be called remotely with their parameters and return types.

On the server side, the server implements this interface and runs a gRPC server to handle client calls.

On the client side, the client has a stub that provides the same methods as the…

Hi everyone, in this article we will talk about how to warm up your caches in your project.

First of all, lets remember what is cache and why we use it

🤔 WHAT IS CACHE ?

Source : https://hazelcast.com
Source : https://hazelcast.com
Source https://hazelcast.com/

A clear description that you can find in Wikipedia is;

A cache is a hardware or software component that stores data so that future requests for that data can be served faster.

Cache hits are served by reading data from the cache, which is faster than recomputing a result or reading from a slower data store; thus, the more requests that can be served…

Webhooks İle Development Zamanını 0' a İndirme! #1

Thanks for this funny image :) https://medium.com/hootsuite-engineering/a-scalable-reliable-webhook-dispatcher-powered-by-kafka-2dc3d677f16b

Merhabalar,

Geçtiğimiz günlerde bir haber projesi yapmaya başlamıştım, proje aktif olarak GitHub üzerinde geliştirilmeye devam ediyor. Bir yandan ise bu proje için tech stack olarak hangi seçimleri yaptım, tercih etme nedenlerim neler ve kullanılan teknolojiler projede ne gibi avantajlar sağlıyor gibi konuları paylaşmak amacıyla yazmaya başladım. İlk önce webhooks nedir ona göz atalım.

WEBHOOKS NEDİR ?

Proje geliştirme sürecinin büyük bir parçası olan entegrasyonlar, zamanımızın önemli kısmını alıyor. Eğer büyük bir sisteme sahipseniz ve sürekli projenize yeni entegrasyonlar eklemeniz gerekiyor ise gereksiz geliştirme/test maliyeti yerine webhooks çözümü geliştirmek size kolaylık sağlayacaktır. …

Uygulamaların response time değeri her sistem için kritik bir ölçüttür. Arka planda çalışacak ve kullanıcının beklemeye ihtiyaç duymadığı işlemler için response time’ı uzatmak uygulama performansını kötü yönde etkileyecektir.

Bu yazıda çağrıların arka planda işlenmesine, zamanlayıcı ile istenilen zamanda tetiklenmesine olanak sağlayan Hangfire kütüphanesini inceleyeceğiz.

Hangfire Nedir ?

.Net ve .Net Core uygulamalarında arka planda işlemler gerçekleştirmemizi sağlayan open source bir kütüphanedir. İçerisinde gelen dashboard ile tüm işlemlerin durumunu, tetiklenecek jobları, tetiklenme sayılarını, çalışma zamanı ve sonuçlarını anlaşılır bir biçimde takip etmemize olanak sağlar.

Mikroservis mimarisinin yaygınlaşması ile birlikte API Management konusu önemli bir konuma geldi. Özellikle bounded context sayısı çok olan mimarilerde performans takibi kritik rol oynamaktadır. Uygulamalarda oluşabilecek sorunları izlemeyi kolaylaştıran ve sorunların temel nedenlerini bulmada fikir edinebileceğimiz açık kaynaklı bir araç olan Elastic APM hakkında bu yazıda bazı bilgiler paylaşacağım.

Elastic APM’in birçok yazılım dili desteği olması birçok yazılım ekibinin kullanması açısından önemli bir avantaj. Java, .NET, Node.js, Go, Django, Flask, Rails, Rack, RUM — JS gibi dil ve kütüphanelerde Elastic APM’i kolayca kullanabiliyoruz.

Bu yazıda Docker ile hazırlanmış bir paket aracılığıyla .NET Core ortamında hazırlanmış bir örnek üzerinden Elastic APM’in…

Angular günümüzde en çok kullanılan web ve mobile client-side uygulama frameworklerinden biridir. Cross platform çalışma, hız ve performans odaklı yapısıyla ön plana çıkan Angular, 2. sürümüyle köklü değişikler yaşamıştı. Bu yazıda geçtiğimiz aylarda duyurulan Angular 9 sürümüyle gelen yeniliklere göz atacağız.

Angular’ın önceki versiyonlarının en büyük problemi paket (bundle) boyutunun çok fazla olmasıydı. Bu sebeple indirme için harcanan zamanın artması uygulama performansını etkilemekteydi. Önceki versiyonda Ivy derleyicisi opsiyonel olarak sunulurken; Angular 9'un getirdiği en büyük özellik varsayılan olarak Ivy derleyicisi kullanmasıdır. Bununla beraber performansta önemli bir gelişme yakalamış oluyoruz. …

IoC(Inversion Of Control), uygulamanın yaşam döngüsü boyunca birbirine bağımlılığı az (loose coupling) olan nesneler oluşturmayı amaçlayan bir yazılım geliştirme prensibidir. Nesnelerin yaşam döngüsünden sorumludur, yönetimini sağlar. IoC kullanan sınıfa bir interface inject edildiğinde, ilgili interface metotları kullanılabilir olur. Böylece IoC kullanan sınıf sadece kullanacağı metotları bilir, sınıf içerisinde daha fazla metot olsa bile interface’de belirtilen metotlara erişebilecektir.

Sınıf içerisinde yapılacak herhangi bir değişiklikte IoC kullanan sınıf etkilenmeyeceği için yeniden yazılabilir ve test edilebilir yazılım geliştirmemizi sağlar. IoC nesne bağlamalar genellikle uygulama başlangıcında yapılandırılmaktadır. Bu anlamda tek bir yerden yapılan IoC yapılandırmalarının değiştirilmesi ve yönetimi de oldukça kolaydır.

IoC kullanmanın avantajlarını…

CQRS Nedir ?

Açılımı Command Query Responsibility Segregation ‘dır. Komut ve Sorgu Sorumluluklarının Ayrışması anlamına gelir. Bu desene göre metotlar Commands ve Queries olarak iki parçaya ayrılmalıdır.

Commands: Objenin veya sistemin durumunu değiştirir.
Queries: Bir objenin veya sistemin durumunu değiştirmez, sadece response döner.

Sorun

Şimdiye kadar projelerde veritabanı sorgulama ve güncelleştirme için aynı veri modeli kullanıyorduk. Temel CRUD (Create-Read-Update-Delete) işlemleri için yeterli bir senaryo idi. Fakat sistemler daha fazla geliştikçe ve karmaşıklaşmaya başladıkça bu basit yaklaşım yetersiz hale gelebilir. Veri okuma işleminde birden fazla sorgu çalıştırılarak farklı yapıda DTO döndürülebilir. Object mapping karmaşık hale gelebilir. …

JQWidgets ve Angular 9 ile modern Web Uygulamaları oluşturabiliriz. JQWidgets Angular UI bileşenleri ile istediğimiz UI görüntülerini kolayca elde edebiliyoruz.

Angular CLI ile Proje Oluşturma

ng new Bar-Gauge

Uygulama dizinine girelim.

cd Bar-Gauge

jqwidgets-ng Bağımlılığını Yükleme

npm install jqwidgets-ng

Style Ekleme

Eklediğimiz bağımlıkla gelen css dosyasını, angular.json dosyasında styles property’si içerisinde belirtelim.

Modül İmport

İndirdiğimiz bağımlılık içerisinde bulunan jqxBarGaugeModule modülünü module typescript dosyasında aşağıdaki şekilde import edebiliriz.

src/app/app.module.ts

Grafik Değerlerini Belirleme

Grafikte pay edilecek değerlerin ne olması gerektiğini belirledikten sonra component grafiği o değerlere göre çizecektir.

src/app/app.component.ts

Belirlenen Değerlerin Grafik Üzerinde Gösterilmesi

Typescript dosyasında belirlediğimiz sayı dizisini [values] olarak verdiğimizde grafik üzerinde değerleri paylaştırıp bir çıktı üretecek.

UI tarafında gösterilecek grafiğin yükseklik, genişlik gibi değerlerini de değiştirme imkanı sunuyor.

src/app/app.component.html

Uygulamayı Çalıştırma

ng serve -o

Sonuç :

Örnek Kodları Github Hesabımda Bulabilirsiniz.

https://github.com/gizemcifguvercin/Angular-Bar-Gauge-UI-Component

İyi Çalışmalar :)

Gizem Cifgüvercin

Software Engineer @hepsiburada

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store