Devops 的介绍

其他 专栏收录该内容
1 篇文章 0 订阅

一:DevOps 是什么

DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。

DevOps试图通过发展开发和运营团队之间的伙伴关系,弥合这条鸿沟。DevOps活动强调软件开发人员和IT运营部门之间的沟通、协作和整合。

DevOps促进协作,通过自动化和编排改善过程为协作提供方便。换言之,DevOps本质上将敏捷活动的持续开发目标扩展到持续集成和发行。DevOps是利用云解决方案的优势,将敏捷实践与过程组合起来。敏捷开发和测试方法帮助我们实现应用程序的持续集成、开发、构建、部署、测试和发行目标。

构建自动化

自动化构建运用Gradle、Apache Ant和Apache Maven等构建自动化工具,帮助我们创建应用程序构建。

自动化构建过程包括将源代码编译成类文件或者二进制文件、提供第三方库文件引用、提供配置文件路径、将类文件或者二进制文件打包成包文件、执行自动化测试用例、在本地或远程机器上部署包文件和减少包文件创建中的手工作业等活动。

持续集成

简言之,持续集成(CI)是一种软件工程实践,在这种方法中,开发人员的每次签入(Check-in)都使用如下任一种方法验证。

“拉”机制:在计划的时间点执行自动化构建。

“推”机制:在存储库中保存更改时执行自动化构建。

这一步之后,对源代码库中最新的更改执行一次单元测试。持续集成是一种流行的DevOps方法,要求开发人员将代码每天数次整合为Git和SVN等代码库,以验证代码的完整性。

然后,自动化构建验证每次签入,使团队可以及早发现问题。

CI(甚至CD)是公司同步DevOps存档的基线。在组织中如果没有很好地实施CI和CD,就无法实施DevOps。

云配给

在本章前面,我们已经介绍了云计算的基本知识。云配给为架构即代码(Infrastructure as Code ,IAC)敞开了大门,使整个过程变得极其高效,因为我们在很大的程度上将涉及人工干预的过程自动化了。

现收现付的计费模式使所需的资源更加容易承受,不仅对大型组织,对中小规模组织和个人也是如此。

云配给有助于改进和创新,因为以前的资源约束从成本和维护的角度阻碍了组织的进一步发展。一旦我们在基础设施资源上拥有了敏捷性,就可以考虑自动化运行应用程序所需软件包的安装和配置。

配置管理

配置管理(CM)系统中的更改,更具体地说,就是服务器运行时环境。我们可以使用市场上的许多工具实现配置管理。流行工具包括Chef、Puppet、Ansible、Salt等。

让我们来考虑一个需要管理多个同类配置服务器的例子。

例如,我们需要在每个服务器上安装Tomcat。如果需要改变所有服务器上的端口、更新某些软件包或者为某些用户提供权限,该怎么办?这种情形下的任何修改都是人工的,也就是一种容易出错的过程。因为所有服务器都使用相同的配置,可以利用自动化手段。

持续交付

持续交付和持续部署是可以互换使用的术语。但是,两者之间还是有一些小的差别。

持续交付是在任何环境中以自动化方式部署一个应用程序并提供持续反馈以改善其质量的过程。持续交付和持续部署中的自动化方法不会改变。但是批准过程和其他小细节可能改变。

持续测试和部署

持续测试是端到端应用程序生命期管理过程中很重要的阶段,包括功能测试、性能测试、安全性测试等。

Selenium、Appium、Apache JMeter和许多其他工具都可以用于相同的目的。另一方面,持续部署是部署应用程序,包含对生产环境的最新更改。

持续监控

持续监控是端到端交付流水线的骨干,开源监控工具就像冰淇淋勺的头部。

我们必须理解,这是一种分阶段的方法,不一定要一次性完成各个阶段的自动化工作。每次选择一种DevOps实践、实施并理解其好处,然后再实施另一个,这是更有效的做法。

这样,我们可以安全地评估组织文化改变带来的改善,消除应用程序生命期管理中的手工劳动。

二:DevOps 常用的工具

  1. 代码管理(SCM):GitHub、GitLab、BitBucket、SubVersion
  2. 构建工具:Ant、Gradle、maven
  3. 自动部署:Capistrano、CodeDeploy
  4. 持续集成(CI):Bamboo、Hudson、Jenkins
  5. 配置管理:Ansible、Chef、Puppet、SaltStack、ScriptRock GuardRail
  6. 容器:Docker、LXC、第三方厂商如AWS
  7. 编排:Kubernetes、Core、Apache Mesos、DC/OS
  8. 服务注册与发现:Zookeeper、etcd、Consul
  9. 脚本语言:python、ruby、shell
  10. 日志管理:ELK、Logentries
  11. 系统监控:Datadog、Graphite、Icinga、Nagios
  12. 性能监控:AppDynamics、New Relic、Splunk
  13. 压力测试:JMeter、Blaze Meter、loader.io
  14. 预警:PagerDuty、pingdom、厂商自带如AWS SNS
  15. HTTP加速器:Varnish
  16. 消息总线:ActiveMQ、SQS
  17. 应用服务器:Tomcat、JBoss
  18. Web服务器:Apache、Nginx、IIS
  19. 数据库:MySQL、Oracle、PostgreSQL等关系型数据库;cassandra、mongoDB、redis等NoSQL数据库
  20. 项目管理(PM):Jira、Asana、Taiga、Trello、Basecamp、Pivotal Tracker

对于其他工具可自行查阅,符合的才是最好的

三:需求层面上来说敏捷和瀑布差异

瀑布:一次性把需求提完,这样在开发过程中会存有些地方可能没想到,在客户使用过程中会有很多感觉不好用,开发的软件达不到预想的效果。

敏捷:一小部分完成,投入使用,预估效果和收益。以滴滴平台为例,先开展出租车业务(先看市场反应和收益效果)在开展顺风车,网约车等业务,让客户慢慢的接受产品,如果一次性开展所有业务,到会让使用者感觉乱,不知道如何使用。

备注:敏捷模型,会要求业务员和开发人员一起工作和沟通。

  • 1
    点赞
  • 0
    评论
  • 5
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

<p> <span style="color:#333333;">最近三年多时间,随着容器技术火爆及Kubernetes成为容器编排管理标准,国内外厂商均已开始了全面拥抱Kubernetes转型, 无数中小型企业已经落地 Kubernetes,或正走在容器化道路上 。</span> </p> <p> <span style="color:#333333;"><br /></span> </p> <p> <span style="color:#333333;">第一章</span> </p> <p> <span style="color:#333333;">介绍docker前世今生,了 解docker实现原理,以Django项目为例,教大家如何编写最佳Dockerfile实现构业务镜像制作。通过本章学习,大家会知道docker概念及基本操作,并学会构建自己业务镜像,并通过抓包方式掌握Docker最常用bridge网络模式通信。<br /></span> </p> <p> <span style="color:#333333;"><br /></span> </p> <p> <span style="color:#333333;">第二章</span> </p> <p> 本章学习kubernetes架构及工作流程,重点介绍如本章学习kubernetes架构及工作流程,重点介绍如断滚动更新,通过服务发现来实现集群内部服务间访问,并通过ingress- -nginx实现外部使用域名访问集群内部服务。同时介绍基于EFK如何搭建Kubernetes集群日志收集系统。 </p> <p> <br /> 学完本章,我们Django demo项目已经可以运行在k8s集群中,同时我们可以使用域名进行服务访问。 </p> <p> <br /></p> <p> 第三章 </p> <p> 本章基于k8s集群部署gitlab、sonarQube、 Jenkins等工具,并把上述工具集成到Jenkins中,以Django项目为例,通过多分支流水线及Jenkinsfle实现项目代码提交到不同仓库分支,实现自动代码扫描、单元测试、docker容器构建、k8s服务自动部署。 </p> <p> <br /></p> <p> 第四章 </p> <p> 由于公司内部项目众多,大量项目使用同一套流程做CICD,那么势必会存在大量重复代码,因此本章主要通过使用groovy实现JenkinssharedL ibrary开发,以提取项目在CICD实践过程中公共逻辑,提供一系列流程接口供公司内各项目调用,开发完成后,还是以Djangodemo项目为例,进行Jenkinsfle改造,最后仅需通过简单Jenkinsfle配置,即可优雅完成CICD流程整个过程,此方式已在大型企业内部落地应用。<br /></p>
相关推荐
程序员必经之路! 【限时优惠】 现在下单,还享四重好礼: 1、教学课件免费下载 2、课程案例代码免费下载 3、专属VIP学员群免费答疑 4、下单还送800元编程大礼包 【超实用课程内容】  根据《2019-2020年中国开发者调查报告》显示,超83%开发者都在使用MySQL数据库。使用量大同时,掌握MySQL早已是运维、DBA必备技能,甚至部分IT开发岗位也要求对数据库使用和原理有深入了解和掌握。 学习编程,你可能会犹豫选择 C++ 还是 Java;入门数据科学,你可能会纠结于选择 Python 还是 R;但无论如何, MySQL 都是 IT 从业人员不可或缺技能!   套餐中一共包含2门MySQL数据库必学核心课程(共98课时)   课程1:《MySQL数据库从入门到实战应用》   课程2:《高性能MySQL实战课》   【哪些人适合学习这门课程?】  1)平时只接触了语言基础,并未学习任何数据库知识人;  2)对MySQL掌握程度薄弱人,课程可以让你更好发挥MySQL最佳性能; 3)想修炼更好MySQL内功,工作中遇到高并发场景可以游刃有余; 4)被面试官打破沙锅问到底问题问到怀疑人生应聘者。 【课程主要讲哪些内容?】 课程一:《MySQL数据库从入门到实战应用》 主要从基础篇,SQL语言篇、MySQL进阶篇三个角度展开讲解,帮助大家更加高效管理MySQL数据库。 课程二:《高性能MySQL实战课》主要从高可用篇、MySQL8.0新特性篇,性能优化篇,面试篇四个角度展开讲解,帮助大家发挥MySQL最佳性能优化方法,掌握如何处理海量业务数据和高并发请求 【你能收获到什么?】  1.基础再提高,针对MySQL核心知识点学透,用对; 2.能力再提高,日常工作中代码换新貌,不怕问题; 3.面试再加分,巴不得面试官打破沙锅问到底,竞争力MAX。 【课程如何观看?】  1、登录CSDN学院 APP 在我课程中进行学习; 2、移动端:CSDN 学院APP(注意不是CSDN APP哦)  本课程为录播课,课程永久有效观看时长 【资料开放】 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化。  下载方式:电脑登录课程观看页面,点击右侧课件,可进行课程资料打包下载。
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值