| The general concept is continuous production where nodes upgrade application and configuration automatically. Which application version and configuration each node should run is controlled by a central ConfigService. The first version is aimed at providing this functionality on Windows. Later version might add support for Linux. See Discussion on Windows service management for a description of technology choices. Prerequisites 1. Account priveleges required: start/stop/install services 1. Windows user: Open SCM Manager 2. Unix user: sudo? 3. Firewall Requirements: Outbound SSL port 443 Getting started 1. Install Java 1. install_java.bat ? 2. Download install_jau script 3. Run install_jau script with url to ConfigService as parameter About Java Auto-Update 1. Query ConfigService for service configuration. 1. Input parameters: artifactId, clientId (optional) 2. if ServiceConfig lastChanged string is not identical to previous 1. download all download items 2. stop service if running 3. start service - Extract environment info and events from managed service's logs Java Auto-Update implementation notes - Java process - Should always be running (start at boot, integrate with process manager on OS) - Simple, stable, robust - JAU is not responsible for selecting nether appplication version or which config. This is the responsibility of ConfigService. - Poll ConfigService for ServiceConfiguration using http(s). - Work on Linux and Windows - Perhaps use ScheduledExecutorService to provide cron/schedule functionality. - Check for changes to application binaries or configuration every 5 minutes. - TODO verify that process management support in JDK 8 is powerful and robust enough. |
Useful links - Java Auto-Update - ConfigService Dashboard - ConfigService APIs - ConfigService -Administration - User Guides Diagram: jauAre there existing relevant libraries or projects? - http://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html - https://github.com/twall/jna - http://sourceforge.net/projects/yajsw/ - https://github.com/constretto/constretto-server (empty) |