MACH composer
项目描述
MACH composer是一个框架,您可以使用它来编排和扩展基于MACH技术和云原生服务的现代数字商务和体验平台。它提供了一套基于标准的、面向未来的工具和方法,供您的团队在构建此类平台时使用。
它包括
- 用于管理MACH服务配置的配置框架,底层使用基础设施即代码(由Terraform提供支持)
- 基于现代无服务器技术的微服务架构(包括对使用Serverless Framework构建微服务的(alpha)支持),包括AWS Lambda和Azure Functions
- 多租户支持,用于管理多个平台实例,这些实例共享相同的微服务库
- CI/CD工具,用于自动化MACH生态系统的交付
- 与AWS和Azure的紧密集成,包括对这些云环境的(有观点的)设置
该框架旨在成为MACH架构的“中心部件”,并融合了行业最佳实践,如12因素方法、基础设施即代码、DevOps、不可变部署、FAAS等。
通过结合(和强制)这些实践,使用该框架对您的工程方法论和组织具有重大影响。另一方面,通过结合这些实践,我们相信它为您组织接受现代工程实践提供了一种加速的“入门”方式。
入门
阅读我们的入门指南,了解如何使用MACH composer部署您的MACH堆栈。
示例yaml文件
---
mach_composer:
version: '1.2'
global:
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
token_url: https://auth.europe-west1.gcp.commercetools.com
api_url: https://api.europe-west1.gcp.commercetools.com
project_settings:
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
安装
- 确保您已安装 Terraform 0.14(提示:使用 tfenv 支持多个 Terraform 版本)
- 使用 Python 3.8 创建一个新的虚拟环境
- 运行以下命令
$ make install
运行 MACH
生成文件
mach generate # 生成所有可用的配置。
mach generate -f main.yml
初始化 Terraform(可选)
mach init
规划 Terraform
mach plan
应用 Terraform 配置
mach apply
检查更新
MACH 可以检查您的组件是否有可用更新。
要这样做,请运行
mach update -f main.yml
贡献
代码风格
Python 源代码应使用 black 格式化,JavaScript 代码应使用 prettier 格式化。您可以使用 make format
运行 black 和 prettier。
此项目使用 pre-commit 在提交前验证更改的文件。您可以使用 brew 在 MacOS 上安装它
$ brew install pre-commit
在仓库中,您需要第一次使用以下命令注册 git 的钩子
$ pre-commit install
pre-commit 配置(.pre-commit-config.yaml
)当前运行 black 和 flake8。
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。