DevOps 开源解决方案

此开源解决方案帮助用户快速搭建基于 Azure 容器技术的微服务和DevOps 容器集群,并提供基于 Jenkins 的持续集成和持续部署管道,
以及基于 ELK 和 Grafana 的监控和分析实现。目前容器集群只支持 Kubernetes 编排工具,在后续的版本中会支持 Docker Swarm 和 DC/OS。

快速搭建容器集群

ACS Engine 用于将一个容器集群描述文件转化成一组 ARM 模板,通过在 Azure 上部署这些模板,用户可以很方便地在 Azure 上建立一套基于 Docker 的容器服务集群,支持用 Docker 容器进行应用生命周期管理,提供多种应用发布方式和持续交付能力并支持微服务架构。用户可以自由地选择集群编排引擎 DC/OS, Kubernetes 或者是 Swarm Mode。

同时 ACS Engine 还会帮助您创建负载均衡,网络管理,安全和存储等相关组件,以及完成可用性集(Availability Set)等相关设置,使您可以在容器集群上方便地部署容器化应用。

开始使用:

使用 acs-engine 在 Azure 上快速搭建 Kubernetes 容器集群

创建私有的镜像仓库

镜像仓库可以和容器编排引擎(如 Kubernetes,Swarm, DC/OS)进行集成。比如从镜像仓库中提取一个镜像在 Kubernetes 集群中进行应用部署,此过程可直接写在 Kubernetes 的部署文件中。另外此镜像仓库兼容 Docker 格式的镜像仓库,可以和 Docker 工具进行无缝迁移。

开始使用:

创建私有的镜像仓库

基于 Jenkins 的持续集成和持续部署(CI/CD)管道实现

使用 ARM 模板创建持续集成和持续部署(CI/CD)管道,主要包括:

  • 从 GitHub 迁出包含 Dockerfile 的代码
  • 构建 Docker 镜像
  • 推送镜像到上一步创建的私有镜像仓库
  • 测试和验证
  • 发布到 Kubernetes 容器集群

开始使用:

基于 Jenkins 的 CI/CD 管道实现

基于 ELK 和 Grafana 的监控与日志分析实现

使用 ARM 模板在之前步骤创建的容器集群上部署下面的工具链:

  • Heapster + Influxdb + Grafana(用于集群资源的监控,如对于 Node/Pod 的 CPU,内存,网络等资源的监控)
  • Beats + Logstash + Elasticsearch + Kibana (用于容器/应用的日志收集和分析,以及服务状态的监控)

开始使用:

实现基于 ELK 和 Grafana 的监控和分析