1.项目名称; Jenkins+Gitlab+Maven+Tomcat+Nexus 实现持续集成持续部署 项目描述: 公司随着发展,产品业务量增大,主管怕出现什么问题,觉得会消耗大量的沟通 成本和时间成本, 导致公司进度拖延, 通过上级的讨论, 决定部署 CI/CD 的架构, 加快公司 的进度。 最终决定使用 Gitlab, Tomcat, Nexus 各一台, 把Jenkins+Maven 部署到一台服 务器上,Gitlab 来做代码的管理,Nexus 为了安全起见做公司内部仓库, Tomcat 做 web 服 务, 实现持续部署, 项目职责: 我主要负责环境的搭建项目, 部署 Gitlab, 开发人员直接把代码放到 GItlab 里进行管理,部署 Maven 根据 Nexus 配置的阿里云代理仓库来获取依赖的 jar 包, 部署 Jenkins 直接来 Gitlab 拉去代码,Maven 执行项目,构建完毕通过 jenkins 的插件传到 Tomcat 的 webapp 的一个目 录下面,也会在 Nexus 部署的私库上项目
2.项目名称: K8S 部署 Prometheus+Grafana+Cadvisor 监控 Docker 容器 项目描述: 公司一开始用的是 Zabbix 监控服务, 后来随着容器的兴起, 公司的大部分服务都跑在了容器 上, 每次在 Zabbix 添加监控的时候, 不适合监控微架构, 非常的不方便, 监控效果也不好, 所以经过讨论安排,后来决定使用 Prometheus 来监控。 搭配各种别的软件能实现一个非常好 的效果,用 Cadvisor 分析运行中容器的资源占用和性能指标, Node- Exporter 收集 host 硬件 信息后交 Prometheus 在通过Grafana 实现可视化
项目职责:在此次项目中我负责了搭建 Prometheus 和Cadvisor 的搭建,编写 Cadvisor 的 yml 文件, 因为使用的是 Kubernetes 集群所以直接构建 Cadvisor 在搭建好后发现能够正常的 监控到容器信息,然后搭建 Prometheus 收集监控数据,最后通过 Grafana 对 Prometheus 收 集到的数据进行界面的美化。
3.项目名称:k8s灰度发布 产品 项目职责:首先要对 Ribbon 进行改造,因为公司中使用 Ribbon 来发现需要转发的实列, 想要实现请求的分流来做灰度,就必须改造 Ribbon,通过自定义负载均衡策略我们就可以在 里面加上灰度发布的逻辑。将 A 机器上的服务变成灰度发布的状态,隔离所有请求,重新发 布,需要用到 Apollo 配置中心来管理灰度发布的服务信息以及用户信息。 项目描述:灰度发布是一个能够平滑过渡的发布方式。在其上可以进行 A/B 主机上进行测试, 可以让一部分用户继续使用 serverA 上的产品,另一部分用户开始使用 serverB 上的产品,如 果用户对 serverB 上的产品没有什么反对意见,那么就可逐步扩大范围,把 serverA 上的用 户迁移到 serverB 上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发 现调整问题,以保证影响度。