DevOps全流程

面试速记

DevOps 是一种融合开与运维的软件研发实践方法,规划从需求调研到开发,测试,部署等全流程,通过Jenkins 和Kubernetes 等自动化工具集成部署实现从代码编写到部署的无缝衔接,加速软件交付周期。我在实习中涉及到的工作有参与需求评审和开发排期会议,独立开发测试,并通过流水线部署与测试合作完善系统。上线后利用K8s线上排查bug。

DevOps 是一种软件开发和运维的实践方法,是为了实现更高效、快速、可靠的软件交付。DevOps 的核心理念是融合软件开发与测试部署的流程,从而实现从代码编写到部署的无缝衔接。

主要阶段

规划

  • 需求收集:与业务部门沟通,收集需求和反馈。-->客户提出优化需求,市场部门调研
  • 需求分析:确定需求的可行性和优先级。-->开会探讨需求上是否合理,技术上是否可以实现
  • 制定计划:制定项目计划、里程碑和交付时间表。-->开发,测试,部署排期

开发

  • 代码编写:开发人员根据需求编写代码。
  • 版本控制:使用 Git 等工具进行代码版本管理,确保代码的可追溯性和协作开发。

构建

  • 自动化构建:使用构建工具(如 Maven、Gradle等)将代码编译成可部署的软件包。
  • 持续集成(CI):通过自动化工具(如 Jenkins)实现代码提交后的自动构建和测试。
  • -->通过流水线部署代码到dev测试环境进行测试

测试

  • 单元/集成测试:开发人员编写和运行单元测试,确保代码模块的正确性和测试多个模块之间的交互是否正常。-->开发人员在开发阶段就做好接口测试及模块调用测试
  • 性能测试:评估系统的性能是否满足要求。
  • 安全测试:检查系统是否存在安全漏洞。-->测试人员对系统整体进行测试,找出开发遗漏部分

部署

  • 自动化部署:使用部署工具将软件包部署到服务器。
  • 持续部署(CD):通过自动化流程将通过测试的代码自动部署到生产环境。

运维

  • 日志管理:收集、分析和存储系统日志,便于问题排查。
  • 故障响应:快速响应和处理系统故障,确保系统的高可用性。-->出现故障通过日志记录报错迅速排查bug

反馈

  • 反馈优化:收集用户对系统的反馈,了解用户体验。根据反馈不断优化开发和运维流程。

DevOps 的关键实践:

  1. 持续集成(CI):频繁地将代码合并到主分支,并自动运行构建和测试。
  2. 持续部署(CD):自动将通过测试的代码部署到生产环境。
  3. 微服务架构:将系统拆分为多个独立的微服务,便于开发和部署。
  4. 容器化:使用容器技术(如 Docker)实现应用的快速部署和隔离。
#java#
全部评论

相关推荐

05-11 11:48
河南大学 Java
程序员牛肉:我是26届的双非。目前有两段实习经历,大三上去的美团,现在来字节了,做的是国际电商的营销业务。希望我的经历对你有用。 1.好好做你的CSDN,最好是直接转微信公众号。因为这本质上是一个很好的展示自己技术热情的证据。我当时也是烂大街项目(网盘+鱼皮的一个项目)+零实习去面试美团,但是当时我的CSDN阅读量超百万,微信公众号阅读量40万。面试的时候面试官就告诉我说觉得我对技术挺有激情的。可以看看我主页的美团面试面经。 因此花点时间好好做这个知识分享,最好是单拉出来搞一个板块。各大公司都极其看中知识落地的能力。 可以看看我的简历对于博客的描述。这个帖子里面有:https://www.nowcoder.com/discuss/745348200596324352?sourceSSR=users 2.实习经历有一些东西删除了,目前看来你的产出其实很少。有些内容其实很扯淡,最好不要保留。有一些点你可能觉得很牛逼,但是面试官眼里是减分的。 你还能负责数据库表的设计?这个公司得垃圾成啥样子,才能让一个实习生介入数据库表的设计,不要写这种东西。 一个公司的财务审批系统应该是很稳定的吧?为什么你去了才有RBAC权限设计?那这个公司之前是怎么处理权限分离的?这些东西看着都有点扯淡了。 还有就是使用Redis实现轻量级的消息队列?那为什么这一块不使用专业的MQ呢?为什么要使用redis,这些一定要清楚, 就目前看来,其实你的这个实习技术还不错。不要太焦虑。就是有一些内容有点虚了。可以考虑从PR中再投一点产出
点赞 评论 收藏
分享
评论
点赞
6
分享

创作者周榜

更多
牛客网
牛客企业服务