Ana içeriğe geç

1.3. Hvl Infra Kullanımı#

hvl-infra projesi Java Altyapı ekibi tarafından geliştirilen public resource projesidir.

hvl-infra içerisinde;

  • Uygulamaların kullandığı log4j konfigürasyonları,
  • Config server'ın kullandığı yml dosyaları,
  • UI uygulamalarının konfigürasyonları,
  • Jenkins scriptleri
  • Javalt uygulamalarınının docker-compose dosyaları,
  • Initializer'ların kullandığı scriptler,
  • Third party uygulamaların docker-compose dosyaları,

bulunmaktadır.

Log4j Konfigürasyonları#

Path: configuration/framework/log4j2

İlgili path'de uygulama bazındaki klasörlerde uygulamalara ait log4j2 konfigürasyonları bulunmaktadır.

Config Server Yml Dosyaları#

Path: configuration/framework/spring

İlgili path'de config server'ın kullandığı konfigürasyon yml'ları bulunmaktadır. Uygulamalar, kullandığı cloud profiline göre config server üzerinden buradaki yml dosyalarına erişmektedir.

UI Konfigürasyonları#

Path: configuration/framework/ui

İlgili path'de ui uygulamalarının kullandığı konfigürasyon dosyaları bulunmaktadır.

Jenkins Scriptleri#

Path: configuration/jenkins

Javalt Docker Compose Uygulamaları#

Path: deployment/framework

Java altyapı ekibi tarafından geliştirilmiş uygulamaların docker-compose dosyaları bu dizindedir.

Javalt Admin Monitoring Server: Java Altyapı ekibi tarafından geliştirilen uygulamaların cloud ortamda metrik takiplerinin yapıldığı uygulamalasıdır.

Oauth Auth Server: Authentication uygulamasıdır. Kullanıcı oturum açma işlemlerini sağlar.

Oauth Authz Server: Authorization uygulamasıdır. Oturum açan kullanıcının yetkilendirmesini sağlar. Keysis ürününün ana backend uygulamasıdır.

Oauth Event Server: Authorization tarafından fırlatılan event'leri dinleyip belirli business logicler işleten uygulamadır.

Oauth Session Server: Oauth uygulamarı ile birlikte çalışır. Kullanıcıların session bilgilerini cache üzerinde tutan uygulamadır.

Bpmn Admin Server: Procsys uygulamasının ana backend uygulamasıdır.

Bpmn Engine Server: Bpmn süreçlerinin bulunduğu ve işletildiği uygulamadır. Production ortamında gateway'in arkasında kalmalı ve dış dünya ile iletişimi bulunmamalıdır. Sadece backend uygulamalar tarafından kullanılmalıdır.

Config Server: Uygulamaların konfigürasyonlarını aldığı uygulamaladır. Buradaki konfigürasyonlar tüm uygulamalar tarafından ortak olarak kullanılabilmektedir.

Logger Producer Server: Uygulamaların event log basmasını sağlayan uygulamadır. Tercihe göre sync veya async olarak event log basımı sağlamaktadır.

Logger Processor Server: Async olarak basılan event logları işleyen uygulamadır.

Logger Search Server: Basılan event logları sorgulamayı sağlayan uygulamadır.

Notification Mail Server: Mail ile bildirim yapmayı sağlayan uygulamadır. Çoklu dil desteği bulunmaktadır.

Notification Polling Server: Uygulama içi bildirim uygulamasıdır. Genel duyuru ve direkt kullanıcıya bildirim göndermeyi destekler. Veri tabanı ile çalışır.

Notification StompWs (Web Socket) Server: Uygulama içi bildirim uygulamasıdır. Bildirimleri direkt olarak websocket üzerinden gerçekleştirir.

Proxy Server: Dağıtık mimarilerde registry server üzerinden aldığı bilgilerle dinamik load balancing yapmayı sağlayan uygulamadır. Aynı zamanda mimarinin dışarı açılan kapısıdır.

Eureka Registry Server: Dağıtık mimaride uygulamaların bağlandığı uygulamadır.

Report Server: Raporlama uygulamasıdır. Third party uygulama olan TIBCO Jasper Report server ile çalışır.

System Menu Server: Ürünlere menü sağlayan uygulamadır.

System Setting Server: Ürünlere dinamik sistem ayarlarının sağlandığı uygulamadır.

Third Party Docker Compose Uygulamaları#

Path: third-part-source

Java altyapı ekibi tarafından kullanılan third party uygulamaların docker-compose dosyaları bu dizindedir.

Elk: Elasticsearch uygulamaları. Loglama uygulamaları tarafından kullanılmaktadır.

Flowable-ui: Bpmn süreçleri çizmek için kullanılabilecek ek uygulamadır. Procsys ürününden bağımsız çalışmaktadır. Flowable'ın kendi ürünüdür.

Fluentd: Kafkaya basılan event logları toplayıp elasticsearch'e yollayan uygulamadır. Loglama uygulamaları kullanılacaksa kafka ile birlikte çalıştırılması gerekmektedir.

Jasperreports-server: TIBCO Jasperreports uygulamasıdır. Hvl jasper report kullanılacağı zaman çalıştırılması gerekmektedir. Raporlar burada depolanır ve çalıştırılır.

Kafka: Messaging queue olarak kullanılan uygulamadır. Birçok uygulama tarafından kullanıldığı için uygulamaları çalıştırmadan önce mutlaka çalıştırılmış olmalıdır.

Neo4j: Oauth Authz uygulaması tarafından kullanılan graph db uygulamasıdır.

Portainer: Docker containerlarını yönetmek için kullanılan uygulamadır.

Postgres: Veri tabanı uygulamasıdır. Hemen hemen tüm uygulamalar tarafından kullanıldığı için uygulamaları çalıştırmadan önce mutlaka çalıştırılmış olmalıdır.

Redis: Cache uygulamasıdır. Birçok uygulama tarafından kullanıldığı için uygulamaları çalıştırmadan önce mutlaka çalıştırılmış olmalıdır.

Zipkin: Uygulamalar arası iletişimin takip edilebilmesi için kullanılması gereken uygulamadır. Sleuth aracılığı ile metrikler kafka üzerinden zipkine aktarılır. Zipkin de bu noktada elasticsearch kullanarak depolama yapmaktadır.