MACH composer
Project description
Documentation: docs.machcomposer.io
MACH composer is a framework that you use to orchestrate and extend modern digital commerce & experience platforms, based on MACH technologies and cloud native services. It provides a standards-based, future-proof tool-set and methodology to hand to your teams when building these types of platforms.
It includes:
- A configuration framework for managing MACH-services configuration, using infrastructure-as-code underneath (powered by Terraform)
- A microservices architecture based on modern serverless technology (AWS Lambda and Azure Functions), including (alpha) support for building your microservices with the Serverless Framework
- Multi-tenancy support for managing many instances of your platform, that share the same library of micro services
- CI/CD tools for automating the delivery of your MACH ecosystem
- Tight integration with AWS an Azure, including an (opinionated) setup of these cloud environments
The framework is intended as the 'center piece' of your MACH architecture and incorporates industry best practises such as the 12 Factor Methodology, Infrastrucure-as-code, DevOps, immutable deployments, FAAS, etc.
With combining (and requiring) these practises, using the framework has significant impact on your engineering methodology and organisation. On the other hand, by combining those practises we believe it offers an accelerated 'way in' in terms of embracing modern engineering practises in your organisation.
Getting started
Read our getting started guide on how to deploy your MACH stack with MACH composer.
Example yaml file
---
general_config:
environment: test
cloud: aws
terraform_config:
aws_remote_state:
bucket: mach-tfstate-tst
key_prefix: mach-composer-tst
region: eu-central-1
sites:
- identifier: my-site
aws:
account_id: 1234567890
region: eu-central-1
endpoints:
public: api.tst.mach-example.net
commercetools:
project_key: my-site-tst
client_id: ...
client_secret: ...
scopes: manage_project:my-site-tst manage_api_clients:my-site-tst view_api_clients:my-site-tst
languages:
- en-GB
- nl-NL
currencies:
- GBP
- EUR
countries:
- GB
- NL
components:
- name: payment
variables:
STRIPE_ACCOUNT_ID: 0123456789
secrets:
STRIPE_SECRET_KEY: secret-value
components:
- name: payment
source: git::ssh://git@github.com/your-project/components/payment-component.git//terraform
endpoints:
main: public
version: e638e57
Installation
- Make sure you have Terraform 0.14 installed tip: Use tfenv to support multiple versions of Terraform)
- Create a new virtualenv with Python 3.8
- Run the following commands:
$ make install
Running MACH
To generate the files:
mach generate # generates all available configs.
mach generate -f main.yml
To plan Terraform:
mach plan
To apply Terraform config:
mach apply
Checking for updates
MACH can check your components for available updates.
To do this, run:
mach update -f main.yml
Contributing
Code style
The Python source code should be formatted using
black and the JavaScript code should be
formatted using prettier. You can use make format
to run both black and prettier.
This project uses pre-commit to validate the changed files before they are committed. You can install it on MacOS using brew:
$ brew install pre-commit
In the repository you need to register the hooks in git the first time using:
$ pre-commit install
The pre-commit config (.pre-commit-config.yaml
) currently runs black and
flake8.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file mach-composer-1.0.0rc8.tar.gz
.
File metadata
- Download URL: mach-composer-1.0.0rc8.tar.gz
- Upload date:
- Size: 28.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.23.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc01140f9875be48a5e1ac89e21c2734fe942ac8125cd5bfc562d7ac63162860 |
|
MD5 | afb5fb2e7b0abc5e4f33a949ab737cba |
|
BLAKE2b-256 | 2bf43e3ec231254690e43651104fa33953e9012cc8ca1ef023465c76513dbaf2 |
File details
Details for the file mach_composer-1.0.0rc8-py3-none-any.whl
.
File metadata
- Download URL: mach_composer-1.0.0rc8-py3-none-any.whl
- Upload date:
- Size: 39.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.23.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0ee476be720e5b9ec57bdac9836d078bbbed7d1ad608deec70b92d0940a87ba8 |
|
MD5 | 576da51db32429dda4a24f2d17934cbd |
|
BLAKE2b-256 | 542a4840314a0cf58bb5201a74b1a8523eed03215cfd813d94fc016257861f24 |