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 Next Server components installed and running. There two main components of JLupin Next Server, 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 servlet microserivces.
JLupin Main Server
The 'JLupin Main Server' as a key component of JLupin Next Server 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 Next Server. It is an integral part of the platform - it's delivered with JLupin Next Server.
It's dedicated to serlvet microservices and performs the following functions:
- automatically providing access to servlet microserivces through their context
- enabling and controlling 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 (since 188.8.131.52-RC5)
- performs access management for servlet microserivces (since 184.108.40.206-RC5)
It's managed as a technical microservice through technical process manager, which executes NGINX commands stated in the technical microservice configration (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 this chapter.