AppFlow
Read the documentation on appflow.rtfd.io
For the playbooks, visit the appflow-playbooks repository
More Screencasts: Installation, Basic setup, Atlantis setup, Atlantis provision, Project provision
AppFlow is a multitenant environment automation tool based on Ansible.
AppFlow is your transparent platform that incorporates the various digital infrastructures into a continuous workflow. At the same time, it creates a consistent environment for the entire development process, saving time and money. AppFlow is an open source developer and DevOps application that maps the entire development process (continuous deployment & provisioning) from development to test & staging to production. This ensures that the systems being managed on the different infrastructures are deployed in the same way. At the same time, AppFlow creates a consistent environment (on-premise, in the cloud or on bare metal) throughout the development process. The administrators and developers (DevOps) can therefore independently control the entire toolchain. The automation process is created using Ansible playbooks and contains the admin and developer code, which is stored in a git repository (encrypted). The code (AppFlow) runs on any UNIX-like operating system where Python can run, including Linux, BSD, and OSX. Orchestration of the AppFlow code requires only SSH access to the respective systems. AppFlow has been designed and optimized from DevOps for DevOps.
Features
Provisioning:
- Multitenant architecture (different teams with different environments)
- Supports
development
,testing
,staging
andproduction
- All configuration files are encrypted in git with
ansible-vault
- Provision all nodes with one command
Development:
- Provides a Vagrant based development environment called
atlantis
- Code locally on any Unix-like system or Windows (cygwin)
Deployment:
- Made for Bedrock projects and bedrock-capistrano deployments
- Deploy and rollback with one command
Infrastructure:
- Builtin Percona XtraDB Cluster 5.6 and GlusterFS support for sharing web uploads on multiple nodes
- Easy development environments with Vagrant
- Easy server provisioning with Ansible (Ubuntu 16.04, PHP 5.6/7)
Technologies
The technology behind AppFlow uses countless best-in-class programs and maps them in a toolbox. The software accesses an extensive repository of various freeware packages. Out-of-the-box, many enterprise features already exist, such as:
- Load balancing
- Apache / PHP
- Web Accelerator / Caching / PageSpeed
- Distributed file system
- Master-Master Database
- Backup & Monitoring Integration
- Jailkit - chroot
- ...
Installation
Appflow is hosted on PiP using python3. pip3 install appflow
will
install appflow. To start using it you first need to initialize it:
appflow init
follow the onscreen instructions to set it up!
Developers
Contribute a new feature
- Create a new issue, e.g. #XX new superfeature
- Create local branch:
git checkout -b XX-new-superfeature
- Code on it.
- Push it to remote as new branch:
git push -u origin XX-new-superfeature
- Create new pull request
(
base: master ... compare: XX-new-superfeature
)
Get all vars
ansible all -m setup --tree /tmp/facts -i examples/YOUR_TENANT/local/inventory -a "filter=ansible_distribution*"
Contributing
Contributions are welcome from everyone.