2020-08-07 - System Operations and Management SIG Agenda and Notes

Date

Attendees

Goals

Discussion items

TimeItemWhoNotes
5WelcomeIngolf
  • Find a note taker
30

Deployment with Debian packages and deployment scripts -

Towards a Deployment with one keystroke

Jo plans to deploy on Debian servers using Debian packages.

Jo has written a set of deployment scripts, along with Debian packages, which he wants to show to us.

The demo will be the installation of the scripts themselves, the installation of Okapi and the installation of a test module (mod-test). It requires a postgres server to be already running. The demo will be only for the backend, no Stripes components will be installed, yet.

Jo will install 3 Debian packages:

  • folio-libmods_0.5.0-1_all.deb
  • folio-mod-test_4.0.0-9_all.deb
  • folio-okapi_4.0.0-13_all.deb

folio-libmods: It manages the whole setup of talking to Okapi.

He will the install Okapi, connect it to the database and deploy one test module and register and enable it at Okapi.

Jo has developed a highly functional and intuitively to use interactive graphical dialog in the style of Debian package installers.

The goal of his effort is to be able to install Okapi and register all modules with one keystroke.

So far, Jo has developed a set of easy to maintain, robust shell scripts with good documentation. His time schedule is to have a version of his procedure to deploy a full Folio instance by mid September.

Jo also has a plan for an easy to use update mechanism which avoids downtimes ( due to time reasons, we might likely defer this part to a later session ).

Meeting Notes

PostgreSQL needs to be setup and running prior to installation.  Installer will create the required folio database & tenant. 

All done via "apt-get".  Can be used to install apps as well.

This writes the config file for Okapi. It creates a service for Okapi and starts Okapi:

sudo apt-get install folio okapi

To see if Okapi is running and with what parameters:

sudo systemctl status okapi.service

When installing apps, will ask for database names & passwords and the number of instances for each module.  

This will install a Folio test module:

sudo apt-get install folio-mod-test

This will invoke a graphical installer for module setup. The module automatically binds to tenant diku . Because it finds that there is one tenant in Okapi, "diku", so it binds to it.

Tenants: There is a file called "tenants" in /etc/folio.

Add a tenant: There is a script /usr/share/folio/okapi/bin/addtenants.

Configuration of Okapi:

ls /etc/folio/okapi
  hazelcast.xml
  log4j2.properties
  okapi.conf

okapi.conf is only readable by the "root" user.

Services

There is a (Debian)-Service for Okapi and each module. The services are being automatically created. Service file for folio-okapi:

  /usr/share/folio/okapi/bin/okapi-settings .

Service for the test module:

  /usr/lib/systemd/system/folio-mod-test@.service

Restart-Handling

If a service goes down, the system will try to restart it. E.g. it will start 3 times within 60 seconds (configurable).

Call Tower

A script "call_tower" tells Okapi where the module is, on which instance it runs.

Registration of a module:

foliolibs  board on
           call_tower signon
           call_tower signoff

Each module directory looks like this:

ls /etc/folio/mod-test
   dbcredentials.env
   module.env
   okapi_connect.env
   tenants


Discussion

Harry: What about maintainance ? How to keep it up to date ?

Tod: This is ready to got to Folio Labs, https://github.com/folio-labs

Steve: What about high availability ? Is this a single server solution ? Does port mapping need to be done by hand ?

Jo: You can have multiple services on multiple servers. Port mapping is done by the installer. It assigns a random dynamic port. Memory  footprint of a module is about 71 MB, much less than in Docker deployment.

Steve: What is the target audience for this?  To what extend would they be interested in using it ? What kind of use cases would they be interested in to see ? IS this for someone that wants to install and test (simple)?  Is this for highly scalable IT environments?  Jo feels it's ready for both.

How will this be maintained in the future?  Is there anything that the developers need to do to make sure this is supported?

Tod: This solution makes it quicker to spin up dev instances.

What about upgrades and the upgrade scripts?  

Jo: The module itself should be in charge of upgrading its own database.

What happens when you want to add an okapi?  Just restart the installer.  The installer assigns them a random port.

Works on single or multiple hosts.

Should use less ram since they all share the same space vs docker.  Should probably test to be sure.

Targeted to people comfortable with a traditional IT setup.

What Kuberenetes does in additional:

  • Dynamic scaling of services
  • Health checks on the http-endpoint. Pinpointing an unhealthy copy of the service (would be very difficult in this scenario).

Ingolf: Dependence on Debian packages ? Affinity to Debian ? Jo will build the Debian packages for all who want to use this. Also runs on Ubuntu servers.


25Test automatic migration for Goldenrod

jroot, others

Jason has created a Jira Ticket: FOLIO-2662 - Getting issue details... STATUS

Action items

  •