iac_modules/docs/README_CN.md
2023-12-29 13:56:23 +08:00

3.9 KiB
Raw Blame History

现代容器应用参考架构

我们将现代应用架构定义为具有四个特性的架构:可扩展性、可移植性、弹性和敏捷性。尽管现代架构存在许多不同的方面,但这些是基础。

  • 可扩展性 - 能够快速无缝地向上或向下扩展,以应对全球范围内需求的增减。
  • 可移植性 - 易于在多种类型的设备和基础设施上部署,无论是在公共云还是本地环境中。
  • 弹性 - 能够在不同可用区域、云或数据中心的新启动的集群或虚拟环境中进行故障转移。
  • 敏捷性 - 通过自动化的CI/CD管道实现更新具有更高的代码速度和更频繁的代码推送。

现代容器应用参考架构

PlantUML Diagram

本仓库提供了现代容器应用的参考架构。它侧重于以下关键原则:

  • 平台无关性架构旨在做到平台无关性让您可以在不同的容器编排平台上部署应用例如Kubernetesk8s或轻量级替代品如k3s。 开源软件优先优先考虑开源软件OSS确保架构基于强大且广泛采用的工具和技术构建。
  • 一切以代码定义使用基础设施即代码IaC定义和配置应用所需的所有资源确保一致性、可复制性和可扩展性。
  • CI/CD自动化使用GitHub CI实现持续集成和持续部署CI/CD管道实现自动化构建、测试和部署过程。
  • 安全意识开发在架构的每个阶段实施安全最佳实践包括容器化构建、安全容器仓库如Harbor以及服务间的安全通信。
  • 分布式存储:架构包含分布式存储解决方案,以确保应用数据的高可用性和可扩展性。

工具链

以下工具在此参考架构中使用:

  • 管道GitHub CI
  • IaC工具Pulumi/terraform
  • 代码仓库GitHub
  • 容器仓库Harbor
  • 监控:
    • 日志Loki
    • 跟踪Deepflow
    • 指标Prometheus
    • 通知Alertmanager
  • 数据存储Clickhouse
  • 可视化Grafana
  • 集群管理Kubernetesk8s 轻量级Kubernetesk3s
  • 入口Nginx
  • DNS: DNS服务SaaS

入门

要开始使用此参考架构,请按照以下步骤操作:

文档

  1. 多集群运维(一):自动化交付、构建、部署、发布、监控。https://cloud.tencent.com/developer/article/2373761
  2. 多集群运维(二):应用渐进发布。https://cloud.tencent.com/developer/article/2375570

问题

  • APISIX和External DNS集成APISIX和External DNS合作存在问题导致无法自动更新DNS解析记录。
  • FluxCD、Flagger和APISIX入口的指标收集使用FluxCD、Flagger和APISIX入口时指标收集的兼容性和效率尚待验证。
  • 金丝雀发布监控:金丝雀发布的监控状态仍待验证。

待办事项

  • 多集群运维(三):微服务应用的渐进发布。
  • 多集群运维(四):应用系统的多维监控。
  • 多集群运维(五):应用系统的脆弱性测试。
  • 多集群运维(六)应用系统运维与AIOps。

贡献

我们欢迎社区对此参考架构的贡献。如果您有任何建议、改进或错误修复,请随时提交拉取请求。

许可

此参考架构根据GPL V3许可发布。