个人技术博客: https://blog.51cto.com/LiatscBookshelf
擅长领域:实现自动化运维,提高运维操作效率;通过devops相关手段提高研发/开发迭代效率。
Devops: jenkins, unusable
公有云: AWS, 阿里云,腾讯云
开发能力: python为主语言,Django(DRF框架),习惯OOP编程风格,能够实现restful风格的api service
serverless开发: AWS Lambda, 腾讯云-云函数
基础设施运维: 主要以linux为主,windows有过运维经验
容器:Kubernetes
1.基于业务维度的会议服务弹性伸缩服务
在疫情期间由于公司业务量的急剧增长,导致现有服务器资源吃紧,从而使用户体验有所下降。
公司想实现一套基于业务维度的会议服务弹性伸缩系统来解决上述问题。这项任务最终交给我来实现。
架构团队建议该服务最好使用Serverless架构来实现。基于该要求,我最终选择使用AWS Lambda作为Serverless架构的实现手段。同时,因为架构团队决定将该功能实现为API Service从而能够对外提供功能,因此我选择使用Django REST framework来作为API Service的实现方式。在具体的实现过程中,我引入了AWS DynameDB、AWS EventBridge、Ansible Runner以及Celery等云服务和开源组件来实现该服务。并且为了保证该服务后续的可扩展性和可维护性,我使用面向对象设计对内部的各个功能模块进行了抽象封装以及解耦。最后,我将设计思路、二次开发步骤以及部署步骤都统一记录在相应的开发文档中,供其他同事阅读理解。
经过验证,该服务上线后能够根据业务数据来动态扩缩会议服务集群,提高了用户体验;并且帮助公司在云服务器方面节省了很大开销。同时,运维团队中的其他同事也能够参与到该系统的后续迭代开发和维护中。
2.CI/CD工具链平台
我所就职的公司领导层决定要在公司内推行DEVOPS文化。
在这项任务中需要实现一个能够提供DEVOPS工具链平台,以协助各个团队来实践DEVOPS文化。搭建DEVOPS平台的工作最终分配给我来进行设计和实现。
经过对公司开发流程现状的了解以及相应的技术选型后,我决定使用Jenkins来实现这一工具链平台。在实现过程中,我引入了Jenkins shard library,并将常用的CI/CD操作子步骤封装并放入到shard library中,以提高这些功能的复用性。同时为了降低编写Jenkins pipeline的难度,我对各类工程的研发测试以及上线流程进行了整理和总结,并实现出一系列的pipeline模版。这些pipeline模版使用了shard library进行保存和版本管理。在平台上线后,为了满足其他团队的相应发版/部署需求,我实现了相应的自定义Jenkins job编排策略。我还使用了Jenkins分布式集群的部署方式来满足公司对于平台搭建的网络以及安全性等方面的要求。
最终大部分研发项目的迭代流程都迁移到了平台上。该平台的推行对研发项目的迭代流程的规范化管理起到了很大的帮助。同时,在平台上进行迭代流程能够提升研发和测试工作的效率。
在疫情期间由于公司业务量的急剧增长,导致现有服务器资源吃紧,从而使用户体验有所下降。 公司想实现一套基于业务维度的会议服务弹性伸缩系统来解决上述问题。这项任务最终交给我来实现。 架构团队建议该服务最好使用Serverless架构来实现。基于该要求,我最终选择使用AWS L
我所就职的公司领导层决定要在公司内推行DEVOPS文化。 在这项任务中需要实现一个能够提供DEVOPS工具链平台,以协助各个团队来实践DEVOPS文化。搭建DEVOPS平台的工作最终分配给我来进行设计和实现。 经过对公司开发流程现状的了解以及相应的技术选型后,我决定使用J