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.
Cloud profilleri uygulamarın bootstrap.yml
dosyaları içerisinde spring.cloud.config.profile
pathinden verilmektedir.
spring:
config:
import:
- optional:configserver:${spring.cloud.config.uri}
cloud:
config:
uri: ${SERVER_CONFIGURATION_REMOTE_URL:http://localhost:8888/config}
profile: ${SERVER_CONFIGURATION_CLOUD_PROFILE:cloud-eureka,cloud-tracing,hvl-context,hvl-data,hvl-security,hvl-service,hvl-session,database-datasource,database-liquibase,instance,kafka,management,swagger,apm}
label: ${SERVER_CONFIGURATION_LABEL:framework(_)spring}
enabled: ${SERVER_CONFIGURATION_REMOTE_ENABLED:true}
username: ${CONFIG_AUTH_USERNAME:admin}
password: ${CONFIG_AUTH_PASSWORD:123456}
logging:
config: ${LOGGING_CONFIG:${spring.cloud.config.uri}/${spring.application.name}/default/framework(_)log4j2(_)instance(_)system/log4j2.yml}
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.
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. Micrometer ve brave aracılığı ile metrikler kafka üzerinden zipkine aktarılır. Zipkin de bu noktada elasticsearch kullanarak depolama yapmaktadır.