IDIEP-11
Author
SponsorDenis A. Magda
Created
  
Status
DRAFT


Motivation

Currently Apache Ignite shipped with mostly all methods of delivery, except standardized linux packages and other OS installers (like Windows Installer or macOS DMG). It will be very useful for project's popularity and accessibility to prepare such package and installers.

Possible benefits of packages introducing:

  1. Popularity through accustomedness and confidence – installation of Apache Ignite with familiar instruments (apt / yum) from firstly third-party and later official repositories – will increase project's popularity among users, so that Apache Ignite become a must-have easy-to-access instrument.
  2. Accessibility – while binary archive already offers easy and simple way of accessing Apache Ignite's functionality and running it, linux packages will push it further. Packed by corresponding policies, these packages will seamlessly integrate into OS, granting access only to necessary for operation granular controls over services, which Apache Ignite provides. And installing executable as system service will shift its management to accustomed and proven facilities (i.e. systemd).
  3. Ease of maintenance – with packages, upgrading from previous version can be pre-programmed and tested accordingly, so that the whole process of moving to newer release is transparent and predictable.

Description

Currently, proposed (and implemented in IGNITE-7107) architecture is as follows:

  • Directory structure

     Binary archivePackage
    IGNITE_HOME<ROOT>/usr/share/apache-ignite
    Classpath libs<ROOT>/libs/usr/lib/apache-ignite
    Working dir<ROOT>/work/var/lib/apache-ignite
    Configuration files<ROOT>/config/etc/apache-ignite
    Logging dir<ROOT>/work/log/var/log/apache-ignite
    Service wrapper

    /etc/systemd/system/apache-ignite@.service
    /usr/share/apache-ignite/bin/service.sh

  • SystemD Service Wrapper – packages accompanied with systemd service description, service executable and node configuration file
    • Service description (apache-ignite@.service) – systemd-compliant description of how to start / stop / restart Apache Ignite with all concomitant directives, like user access permissions management, PID consideration, on boot service load order and so on. Service designed to be able to run multiple instances of Apache Ignite via systemctl start apache-ignite@<config name>.
    • Service executable (service.sh) – main executable in charge of service operation, where service start process and firewalld port management included.
  • FirewallD Compatibility – systemd service wrapper includes honouring firewalld installation set of rules for opening Apache Ignite operation's corresponding ports.
  • Advanced Default Configuration – packages supplied with advanced out-of-the-box default configuration file (default-config.xml) with switched on Persistent Data Store and Multicast Discovery SPI for quick multinode topologi obtaining with minimum effort.

Risks and Assumptions

None. Linux packages are just other means of delivery along with source / binary / docker / cloud images / etc., so only benefits are assumpted.

Discussion Links

http://apache-ignite-developers.2346864.n4.nabble.com/IGNITE-7107-Apache-Ignite-RPM-packages-td25104.html

Reference Links

n/a

Tickets

IGNITE-7107 - Getting issue details... STATUS

IGNITE-7108 - Getting issue details... STATUS

 

  • No labels