The basic element of the JLupin architecture is jBrick (JLupin Brick), which is a separate resource space (physical server, virtual server or container) with JLupin Platform components installed and running. There two main components of JLupin Platform, which are responsible for all tasks in the microservices environment, from basic management to advanced traffic engineering:
- JLupin Main Server- a JVM process, we can say - "the heart of the platform", which is responsible for management, monitoring and providing services from native microservices.
- JLupin Edge Balacer - a NGINX instance with additional custom modules, which is responsible for easy, reliable access to services provided by microserivces.
JLupin Main Server
The 'JLupin Main Server' as a key component of JLupin Platform environment performs the followings tasks:
- starting, stopping, restarting... in general - managing microservices,
- monitoring microservices
- routing requests through built-in JLupin Load Balancer to native microservices,
- filing service repository through service discovery process and health checking mechanisms,
- providing services of managed microservices in the environment through variety of data transfer protocols on separate ports (entry points),
- providing information of the environment
- performing self-healing actions,
- performing zero downtime deployment process.
JLupin Main Server is integrated with IT environment through management and data interfaces, as show on the following diagram:
JLupin Main Server runs microserivces on its backend, which means that they share the same resource space (server, virtual server or container) as Main Server.
Each function from the previous section is performed by one or set of cooperating JLupin Main Server components. It has highly modular architecture and includes:
- Logical servers and associated entry points (we call it "automatic interfaces")
- Process Manager
- Resource Manager
- Process Keeper
- Technical Process Manager
- Technical Process Keeper
- Monitoring Manager
- Event Manager
- Load Balancer
Each of these components is described in the next chapters.
JLupin Edge Balancer
This additional component is based on NGINX with custom LUA modules for JLupin Platform. By default, it is closely integrated with JLupin Platform and delivered with its packaged.
It's dedicated to serlvet microservices and performs the following functions:
- automatically providing access to microserivces through their context using intra-zone routing
- enabling and controlling true zero downtime deployment (and restart) process for servlet microservices (even if the sessions is kept on these microservices !)
- provides aggregated healthcheck information for external balancers
- provides aggregated status information for developers / administrators
- performs access management for microserivces using
By default, it's managed as a technical microservice through technical process manager, which executes NGINX commands stated in the technical microservice configuration (an arrow with "CMD").
The configuration of Edge Balancer is created dynamically and is based on the information coming from HTTP INFORMATION_PORT provided by Main Server.
More information you can find in JLupin Edge Balancer documentation.