Types of installations and deployments
Single-server deployment
...
Link to GitHub with the instructions on how to create a development deployment https://github.com/folio-org/eureka-platform-bootstrap
Kubernetes deployment (Kitfox)
FOLIO’s built-in multi-tenant capabilities make it straightforward to harness economies of scale and improve efficiencies for libraries.
In this scenario, FOLIO Eureka Platform will be deployed on a cluster of servers using Kubernetes for orchestration.
This configuration allows the addition of new tenants and hardware resources on demand and it is ideal if you need to scale-up your FOLIO instance in the future.
See Kubernetes Example Deployment wiki page for more detailed information.
Prerequisites
Memory (PTF)
...
In comparison to the legacy Folio system, Eureka doesn’t have Okapi service. Services like kongKong, keycloakKeycloak, management components, and a sidecar component are what enable will substitute Okapi to function.
Management components
Application Manager
...
...
Dependency check / platform integrity validation
...
Manager tenant entitlements
Enabling/disabling of an application for a tenant (including dependencies)
...
Manager tenants
Tenant management
Tenant CRUD
In terms of deployment perspective, before deploying any of application, you need to make sure that eureka management components are up and running.
...
Kong Gateway is a lightweight, fast, and flexible cloud-native API gateway written in Lua. An API gateway is a reverse proxy that lets manage, configure, and route requests to APIs. Kong Gateway runs in front of any RESTful API and can be extended through modules and plugins. It’s designed to run on decentralised architectures, including hybrid cloud and multicloud deployments.
Kong Gateway (OSS): an open-source package containing the Inside eureka kong Gateway provides basic API gateway functionality and open-source plugins. You can manage the open-source Gateway with Kong’s Admin API or with declarative configuration.
Kong managed by the utility called deck. Deck helps manage Kong Gateway’s configuration in a declarative fashion. This means that a developer can define the desired state of Kong Gateway or Konnect—services, routes, plugins, and more—and let decK handle implementation without needing to execute each step manually, as you would with the Kong Admin API.
...
Keycloak is a single sign-on solution for web apps and RESTful web services. The goal of Keycloak is to make security simple so that it is easy for application developers to secure the apps and services they have deployed in their organisation.
Keycloak In the Eureka platform, keycloak provides the following features:
Single-Sign On and Single-Sign Out for browser applications.
OpenID Connect support.
OAuth 2.0 support.
SAML support.
See Keycloak documentation for more information.
Sidecars
In order to support module-to-module communication and the removal of OKAPI, Eureka introduces module sidecars into the platform architecture. These sidecars run along side with each module and have several responsibilities (authorization, tenant-entitlement, proxying requests, transaction logging, etc.)
Sidecars providing provide the following functionality:
module independent, uses Okapi Module Descriptors for self-configuration
Ingress request routing for underlying module (specified using environment variables)
Egress request routing for module-to-module communication
Management components.
There are 3 management modules that are playing the following roles:
Application Manager (Github repository)
(De-)Registration of applications
Dependency check / platform integrity validation
Manager tenant entitlements(Github repository)
Enabling/disabling of an application for a tenant (including dependencies)
Manager tenants (Github repository)
Tenant management
Tenant CRUD
mod-*keycloak: TBD (Ievgeniia Lymar we may need to cover those modules as well (https://eis.atlassian.net/wiki/spaces/TEUR/pages/201982853/Modules+and+Sidecars ))
information about mod-users-keycloak, mod-roles-keycloak, mod-login-keycloak, and mod-consortia-keycloak. (Eureka?)