什么是DevOps?
阅读文章: https://www.zhihu.com/question/58702398
同时推荐csdn的这篇:https://blog.csdn.net/weixin_BJ050106/article/details/126319867
定义:DevOps(Development和Operations)是一种重视“ 软件开发人员(Dev) ” 和“ IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。
最初的意义是“开发运维一体化”,现在演变成“端到端”的意思。
为什么会产生DevOps的概念
因为公司的规模发展到一定程度(比如bat这种规模),需要的技术人员很多。如果一个较大的项目中或者项目后期,几乎所有的方向都会涉及。项目变得越来越难以维护,出现一个bug将会形成 牵一发而动全身的局面。除此之外,软件开发的模型从“瀑布模型”进化到”敏捷开发”,虽然有敏捷方法将项目分成各个小块,降低模块之间的耦合性,但是Scrum敏捷方法在运维方面失去了敏捷实践的速度,于是出现了DevOps。DevOps是通过解决开发人员和运维工程师之间缺乏协作的问题来实现项目维护更容易,提高实践速度的目的。个人认为,这在另一方面也可以反映出,社会的需求推动生产技术的进步。
DevOps工具
既然要实现开发和运维工程师之间的更好协作的目标,就出现了用于运维一体化的工具。
DevOps 三大支柱,即人(People)、流程(Process)和平台(Platform)。
DevOps = 人 + 流程 + 平台
人 + 流程 = 文化
流程 + 平台 = 工具
平台 + 人 = 赋能
DevOps中包括版本控制&协作开发工具、自动化构建和测试工具、持续集成&交付工具、部署工具、维护工具、监控,警告&分析工具等。(以下是搜到的工具整理)
版本控制&协作开发:GitHub、GitLab、BitBucket、SubVersion、Coding、Bazaar 自动化构建和测试:Apache Ant、Maven 、Selenium、PyUnit、QUnit、JMeter、Gradle、PHPUnit、Nexus 持续集成&交付:Jenkins、Capistrano、BuildBot、Fabric、Tinderbox、Travis CI、flow.ci Continuum、LuntBuild、CruiseControl、Integrity、Gump、Go 容器平台: Docker、Rocket、Ubuntu(LXC)、第三方厂商如(AWS/阿里云) 配置管理:Chef、Puppet、CFengine、Bash、Rudder、Powershell、RunDeck、Saltstack、Ansible 微服务平台:OpenShift、Cloud Foundry、Kubernetes、Mesosphere 服务开通:Puppet、Docker Swarm、Vagrant、Powershell、OpenStack Heat 日志管理:Logstash、CollectD、StatsD 监控,警告&分析:Nagios、Ganglia、Sensu、zabbix、ICINGA、Graphite、Kibana 代码管理(SCM):GitHub、GitLab、BitBucket、SubVersion 构建工具:Ant、Gradle、maven 自动部署:Capistrano、CodeDeploy 持续集成(CI):Bamboo、Hudson、Jenkins 配置管理:Ansible、Chef、Puppet、SaltStack、ScriptRock GuardRail 容器:Docker、LXC、第三方厂商如AWS 编排:Kubernetes、Core、Apache Mesos、DC/OS 服务注册与发现:Zookeeper、etcd、Consul 脚本语言:python、ruby、shell 日志管理:ELK、Logentries 系统监控:Datadog、Graphite、Icinga、Nagios 性能监控:AppDynamics、New Relic、Splunk 压力测试:JMeter、Blaze Meter、loader.io 预警:PagerDuty、pingdom、厂商自带如AWS SNS HTTP加速器:Varnish 消息总线:ActiveMQ、SQS 应用服务器:Tomcat、JBoss Web服务器:Apache、Nginx、IIS 数据库:MySQL、Oracle、PostgreSQL等关系型数据库;cassandra、mongoDB、redis等NoSQL数据库 项目管理(PM):Jira、Asana、Taiga、Trello、Basecamp、Pivotal Tracker 原文链接:https://blog.csdn.net/weixin_BJ050106/article/details/126319867
菜鸟学习新词
LNMP:LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。L指Linux,N指Nginx,M一般指MySQL(数据库),也可以指MariaDB(MySQL的一个分支),P一般指PHP(超文本预处理器),也可以指Perl(一种计算机程序语言)或Python。
单体应用架构:单体应用架构(All In One)是指,我们把所有服务或者功能都封装在一个应用中。
全栈工程师(full stack):全栈工程师是指掌握多种技能,胜任前端与后端,能利用多种技能独立完成产品的人。
demo:Demo是demonstration的缩写。Demo的中文含意为“示范”、“展示”、“样片”、“样稿”,常被用来称呼具有示范或展示功能及意味的事物。 Demo源码可以理解为某种计算机语言的示例代码,是可以在相应的编译环境下直接运行的源代码,通常Demo的作用就是Demo源码开发者引导其他程序员进行二次开发所提供的模板程序代码。
分布式架构:“分工协作,专人做专事” https://baijiahao.baidu.com/s?id=1680411397585700717&wfr=spider&for=pc
窗口期:某个趋势变明显之前的一段时期。
微服务(架构):软件架构风格,小型功能区块,模块化,语言无关。
“公司发展到bat这种体量”:bat是百度、腾讯、阿里巴巴这三家中国互联网公司。
技术栈:IT术语,某项工作或某个职位需要掌握的一系列技能组合的统称。
中台服务:https://zhuanlan.zhihu.com/p/75223466
本文作者:VivianMarie
本文链接:https://www.cnblogs.com/Vivianmaire/p/17207234.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步