Every microservice environment needs a gateway. This is my gateway.
What is this ?
It is a web application acting as gateway and centralized configuration server for all my registered microservices.
It features:
- User, usergroup, authorizations and profiling management (RBAC) of UAA server
- Registered M2M authentication tokens
- Entry points for public monitoring dashboards (Amon, UptimeRobot, LogDNA)
- Swagger API catalog for manual service interaction and testing
- Centralized configuration tokens for other services
- Centralized log level configuration for all microservices
- Centralized audit entries consulting
- Centralized configuration visualizer and computing for all microservices
- Centralized health check dashboard for all microservices
- Centralized metrics visualizer for all microservices
- Registered gateway routes management
- Job execution console
And something more.
How did I do this ?
A dedicated server node with a MySQL 5.7 database and a Tomcat8 application server hosts a Java application with an AngularJS frontend.
The backend application is based on Spring Boot and is a microservice connected to my personal microservices environment.
The following technologies are involved in the project:
- Apache gateway
- Static AngularJS application assets served by CDN
- Microservice gateway: connected to UAA server and other microservices
- Java 8
- Spring Boot 2
- Spring Data JPA
- SendGrid email relay
- Tomcat8
- AngularJs 1.5
- Amon (infrastructure monitoring)
- UptimeRobot (service monitoring)
- Netflix Eureka, Ribbon for service discovery and balancing
- Jenkins remote trigger integration
- CloudFlare SSL with SSO access policy
Access to the application is reserved to me and protected by SSO under CloudFlare Access policies.
Application performance and system status are monitored by my Amon and UptimeRobot systems, LogDNA service and in-application embedded HealthChecks.
How would this be instrumental in a business environment ?
Many of the technologies involved in this application are widely used nowadays (such as Java8+, Angular, Spring framework and the Microservices Registry/UAA/gateway pattern).
Netflix, Eureka and Ribbon are the leading technologies in microservices orchestration and are terribly useful if correctly configured.
Application-level and node-level resources monitoring are also useful topics that become critical in business environments.
Can I test this?
I cannot grant access to the gateway to anyone because of security reasons, but I will happily show and discuss it with you if you are interested. Write me an email for everything.