Make Software Deployment A Breeze
- Malcolm McCaffery, Project Creator/Owner
This project is currently in the design phase.
The goal of the deploy project is to create the client and server compoenents of an enterprise class software deployment and management solution that is:
- free
- compact
- portable
- high performance
- simple
- reliable
It must support:
- remote software installation/removal
- hardware / software reporting
- desired configuration auditing
- desktop & mobile device management
The catalyst for developing this comes after the Project Owner's extensive experience with popular enterprise software management tools:
- SMS
- SCCM (2007 & 2012)
- ManageSoft
- CA ITCM
- Altiris
- ZenWorks
Across multiple industries:
- Federal & State Government
- Airlines
- Railway
- Manufacturing
- Retail
- Logistics
- Financial Services / Banking
And finding frustration in ...
- Complex licensing schemes
- Complex software configuration (which due to complexity often gets configured wrong)
- Complex reporting
- Reliability Issues
- Large Client (100 MB +)
- Poor multi-platform support
- Costly Infrastructure requried for multi-site support
- Documenting Designs
- Slow Performance
The project's goal is to elminate the above issues by :
- Server 100% Linux + MariaDB platform
- KISS approach (Keep It Simple Stupid)
- 100% Native Code (i.e. C++, avoid managed code)
- Fully documented API to create your own clients and/or server
- Support multiple sites from a single server
- Self-documenting i.e. export "design" in ready-to-use format
Initially focus on clients for Windows and MacOS, and management of Apple & Android mobile devices.
- Identify what types of data will need to be stored in database
- Identify storage method for software packages
- Identify whst types of commands will need to be sent between client and server
- Identify Default Linux Distribution for Server
- Identify options for multi-site support
- Identify options for iOS and Android device management
- Identify options for virtualized software support
- Identify options for "multi-tenant cloud based" solution
- Identify options for Citrix Integration, and open source alternatives
- Identify options for bandwidth throttling
- Database Schema Detailed Design
- Client/Server Protocol Detailed Design
- Multi-Site Support Detailed Design
- Management User Interface High Level Design
- Identify suitable C++ Libraries for build phase
The PoC should support the following:
- Create Software Package via Web Interface, importing MSI + MST
- Push client to remote Windows Machine
- Query hardware of remote Windows machine via Web Interface
- Deploy Software Package to remote Windows Machine
- Report Software Package installation success/failure + install logs via Web Interface
- Create Software Package via Web Interface, importing MacOS Software Package
- Push client to remote MacOS Machine
- Query hardware of remote MacOS machine via Web interface
- Deploy Software Package to remote MacOS machine
- Report Software Package installtion success/failure + install logs via Web Interface
- Support iOS Device Management
- Support Android Device Management
- Implement multi-site support
- Actively seek new project contributors to assist with project
- Review PoC implementation and develop plans and requirements for a Beta 1.0 releae.