mageops / ansible-infrastructure

Ansible-based infrastructure-as-code for hosting and deploying Magento-based shops
Other
36 stars 17 forks source link
ansible aws infrastructure-as-code infrastructure-automation infrastructure-management magento magento-2 magento-hosting

MageSuite

Ansible-based infrastructure-as-code for hosting and deploying Magento-based shops.

Infrastructure Provisioning

CI/CD Automation

This code handles infrastucture provisioning, maintenance and deployment only. This repository does not contain any CI/CD automation for building, testing or running the provisioning itself. We do that internally with reusable Jenkins pipelines (as libraries) - as this setup is very specific to our workflow we are not planning to open-source it in the near future.

MageSuite ecosystem

Altough it's possible to use this code to host any Magento-based shop, some features are only avaialble (and tailored for) MageSuite ecosystem.

Cloud infrastructre

Currently the full feature set is only available when using AWS as the cloud platform, however, it's possible (and tested) to use this code to provision any CentOS 7 VM including local development environment.

PS There's also an experimental docker container which can be fully provisioned by this code and run a full CentOS installation like a VM. This is intended to be used only for local development though and not yet supported.

Feature highlights

1 Needs at least 2 app nodes and requires certain MageSuite extensions. Also it might not be possible depending on changes in relation to previous release in the code being deployed (DB migrations, ...).

Initial open-source release

The code has been cleaned up and all commits squashed for the first public release.

The previous internal repository had 2000+ commits, 300+ merge requests created by 10+ contributors across 3+ years of development.

The current state is a result of hundreds of hours of meetings, debugging, brainstorms investigations and combined expertise of all our developers, PMs and clients.

A lot of the solutions are tailored for solving real-world problems and use-cases that came up when hosting and maintaining highly-customized Magento-based shops. The value of such experience-based solutions cannot be overestimated. It wouldn't be possible to come up and design all of these tiny details form scratch without having went through the all of problems first-hand.

Documentation

At the time of open source release most of the documentation was scattered across internal creativestyle services thus any leftovers have been removed to avoid confusion. New documentation will start appearing shortly as part of this repository succesively.

Utilities

Available CLI commands on EC2 nodes

mageops-env # prints mageops env vars

mageops-sys-status # prints general info about cpu, io, memory, running processes

mageops-consumers # prints ongoing magento queue consumer processes

magcd # `cd` into magento directory
mag # `cd` into magento directory and runs `bin/magento`
magcf # runs `bin/magento cache:flush`

Brought to life by