DevOps和架构方案百科全书

1.DevOps介绍和概述
DevOps is a cultural shift and collaboration (between development, operations and testing), there is no single "DevOps tool": it is rather a set (or "DevOps toolchain"), consisting of multiple tools.[12]
Generally, DevOps tools fit into one or more of these categories, which is reflective of key aspects of the [software development]
Code — Code development and review, version control tools, code merging;
Build — Continuous integration tools, build status;
Test — Test and results determine performance;
Package — Artifact repository, application pre-deployment staging;
Release — Change management, release approvals, release automation;
Configure — Infrastructure configuration and management, Infrastructure as Code tools;
Monitor — Applications performance monitoring, end–user experience.

Devops-toolchain.svg.png

Though there are many tools available, certain categories of them are essential in the DevOps toolchain setup for use in an organization. Some attempts to identify those basic tools can be found in the existing literature.[15]

Linux 和 Windows基础介绍 @@@@@@

    CentOS.Redhat 操作系统基础系列
          https://www.centos.org/download/
          https://linux.cn/article-3349-1.html

常用指令
ls   显示文件或目录
-l 列出文件详细信息l(list)
-a 列出当前目录下所有文件及目录,包括隐藏的a(all)
mkdir 创建目录
-p 创建目录,若无父目录,则创建p(parent)
cd 切换目录
touch 创建空文件
echo 创建带有内容的文件。
cat 查看文件内容
cp 拷贝
mv 移动或重命名
rm 删除文件
-r 递归删除,可删除子目录及文件
-f 强制删除
find 在文件系统中搜索某文件
wc 统计文本中行数、字数、字符数
grep 在文本文件中查找某个字符串
rmdir 删除空目录
tree 树形结构显示目录,需要安装tree包
pwd 显示当前目录
ln 创建链接文件
more、less 分页显示文本文件内容
head、tail 显示文件头、尾内容
ctrl+alt+F1 命令行全屏模式
系统管理命令
stat 显示指定文件的详细信息,比ls更详细
who 显示在线登陆用户
whoami 显示当前操作用户
hostname 显示主机名
uname 显示系统信息
top 动态显示当前耗费资源最多进程信息
ps 显示瞬间进程状态 ps -aux
du 查看目录大小 du -h /home带有单位显示目录信息
df 查看磁盘大小 df -h 带有单位显示磁盘信息
ifconfig 查看网络情况
ping 测试网络连通
netstat 显示网络状态信息
man 命令不会用了,找男人 如:man ls
clear 清屏
alias 对命令重命名 如:alias showmeit="ps -aux" ,另外解除使用unaliax showmeit
kill 杀死进程,可以先用ps 或 top命令查看进程的id,然后再用kill命令杀死进程。
打包压缩相关命令
gzip:
bzip2:
tar: 打包压缩
-c 归档文件
-x 压缩文件
-z gzip压缩文件
-j bzip2压缩文件
-v 显示压缩或解压缩过程 v(view)
-f 使用档名
例:
tar -cvf /home/abc.tar /home/abc 只打包,不压缩
tar -zcvf /home/abc.tar.gz /home/abc 打包,并用gzip压缩
tar -jcvf /home/abc.tar.bz2 /home/abc 打包,并用bzip2压缩
当然,如果想解压缩,就直接替换上面的命令 tar -cvf / tar -zcvf / tar -jcvf 中的“c” 换成“x” 就可以了。
关机/重启机器
shutdown
-r 关机重启
-h 关机不重启
now 立刻关机
halt 关机
reboot 重启
Linux管道
将一个命令的标准输出作为另一个命令的标准输入。也就是把几个命令组合起来使用,后一个命令除以前一个命令的结果。
例:grep -r "close" /home/* | more 在home目录下所有文件中查找,包括close的文件,并分页输出。

将.rpm文件转为.deb文件
.rpm为RedHat使用的软件格式。在Ubuntu下不能直接使用,所以需要转换一下。
sudo alien abc.rpm
vim使用
vim三种模式:命令模式、插入模式、编辑模式。使用ESC或i或:来切换模式。
命令模式下:
:q 退出
:q! 强制退出
:wq 保存并退出
:set number 显示行号
:set nonumber 隐藏行号
/apache 在文档中查找apache 按n跳到下一个,shift+n上一个
yyp 复制光标所在行,并粘贴
h(左移一个字符←)、j(下一行↓)、k(上一行↑)、l(右移一个字符→)
用户及用户组管理
/etc/passwd 存储用户账号
/etc/group 存储组账号
/etc/shadow 存储用户账号的密码
/etc/gshadow 存储用户组账号的密码
useradd 用户名
userdel 用户名
adduser 用户名
groupadd 组名
groupdel 组名
passwd root 给root设置密码
su root
su - root
/etc/profile 系统环境变量
bash_profile 用户环境变量
.bashrc 用户环境变量
su user 切换用户,加载配置文件.bashrc
su - user 切换用户,加载配置文件/etc/profile ,加载bash_profile
更改文件的用户及用户组
sudo chown [-R] owner[:group] {File|Directory}
例如:还以jdk-7u21-linux-i586.tar.gz为例。属于用户hadoop,组hadoop
要想切换此文件所属的用户及组。可以使用命令。
sudo chown root:root jdk-7u21-linux-i586.tar.gz

文件权限管理
三种基本权限
R 读 数值表示为4
W 写 数值表示为2
X 可执行 数值表示为1


如图所示,jdk-7u21-linux-i586.tar.gz文件的权限为-rw-rw-r--
-rw-rw-r--一共十个字符,分成四段。
第一个字符“-”表示普通文件;这个位置还可能会出现“l”链接;“d”表示目录
第二三四个字符“rw-”表示当前所属用户的权限。 所以用数值表示为4+2=6
第五六七个字符“rw-”表示当前所属组的权限。 所以用数值表示为4+2=6
第八九十个字符“r--”表示其他用户权限。 所以用数值表示为2
所以操作此文件的权限用数值表示为662
更改权限
sudo chmod [u所属用户 g所属组 o其他用户 a所有用户] [+增加权限 -减少权限] [r w x] 目录名
例如:有一个文件filename,权限为“-rw-r----x” ,将权限值改为"-rwxrw-r-x",用数值表示为765
sudo chmod u+x g+w o+r filename
上面的例子可以用数值表示
sudo chmod 765 filename

    Ubuntu.Debian 操作系统基础系列

Linux软件包管理
dpkg (Debian Package)管理工具,软件包名以.deb后缀。这种方法适合系统不能联网的情况下。
比如安装tree命令的安装包,先将tree.deb传到Linux系统中。再使用如下命令安装。
sudo dpkg -i tree_1.5.3-1_i386.deb 安装软件
sudo dpkg -r tree 卸载软件

注:将tree.deb传到Linux系统中,有多种方式。VMwareTool,使用挂载方式;使用winSCP工具等;
APT(Advanced Packaging Tool)高级软件工具。这种方法适合系统能够连接互联网的情况。
依然以tree为例
sudo apt-get install tree 安装tree
sudo apt-get remove tree 卸载tree
sudo apt-get update 更新软件
sudo apt-get upgrade

    Windows.NetCore
    https://www.microsoft.com/net/core

    LVS.Ngnix Keepalived
   **一、Keepalived介绍**

Keepalived是分布式部署系统解决系统高可用的软件,结合LVS(Linux Virtual Server)使用,其功能类似于heartbeat,解决单机宕机的问题。
  二、Keepalived技术原理
  keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。通过VRRP协议结合LVS,对组群服务器监控情况,若master出现宕机情况,则将VIP漂移到backup机上。实现了分布式系统高可用。可以理解为:keepalived是LVS的管理软件,根据监控情况,将宕机服务器从ipvsadm移除掉。
  三、Keepalived+LVS+Nginx实现系统高可用
  

    HAProxy.Ngnix Keepalived


    Apache/Ngnix


    Tomcat/Jetty


    Weblogic/Websphere/Jboss


HTTP/Network基础介绍
    HTTP/TCPIP/HTTPS/TLS

    Network Route

    Restful/RPC/WebService

DataBase/NoSQL基础介绍
    Oracle/DB2/SQLServer
    PostgreSQL/MySQL/SqlLites
    Redis/Memcache
    Zookeeper/Dubbo
    RabbitMQ/Kafka
Android.IOS.Mobile基础介绍 
    Android UIAutomation
    IOS Object-C Swift 
UI.Web.React.Vue基础介绍 
    UI Desigin/Axues/Photoshop

    Web HTML5 CSS JQuery

JavaScript 简介
https://segmentfault.com/a/1190000005793097

    React.Vuejs
Cloud.Iaas.Paas.Saas介绍
    Openstack CloudStack 
    Bluxmix Openshift
    Saas/APM/Others
Docker.K8s.Rancher介绍
Jenkins.Gitlab.Nexus介绍
   Nexus Maven
   Artifactory
Ansible.Saltstack.Puppet介绍
Selenium.Appium.Jmeter介绍
Agile/Scrum/Lean介绍

2.DevOps国内外技术分享
Google SRE
Facebook SRE
AWS DevOps
IBM/HPE DevOps
Microsoft DevOps
Redhat/Thoughtworks DevOps
Alibaba DevOps
Tecent/Baidu DevOps
Meituan/JD/Ctrip.Qunar DevOps
58ganji/360/Testerhome DevOps
Qconf/CSDN/51CTO DevOps
http://www.csdn.net/
http://www.infoq.com/cn/
http://www.51cto.com/
http://www.greatops.net/
http://linux.chinaunix.net/
DevOpsDays/ChinaOS DevOps
https://linux.cn/
https://www.devopsdays.org/
http://www.greatops.net/

3.DevOps基础和进阶
Linux Base and Shell
Python Golang Java Js etc
Git.Gitflow.Gerrit
Docker.K8s
Jenkins.Teamcity
VMWare/Virtulbox/Hyper-V
KVM/Xen/Citrix
Ansible/Saltstack

4.DevOps最佳实践分享

894140-20160509213020280-1948890720.png

5.DevOps的展望和未来
DevOps(Development和Operations的组合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。近些年基于DevOps的探索不断,在软件开发的求变求快的道路上,为持续交付提供了保障。
DevOps的未来可能在于持续增长的云需求,可能在便捷的自动化工具,也可能在容器和公司维度的协作。
为了更深一步评估了解2017年关于DevOps运动的推进状态,我们与来自14家公司的16位主管进行了对话讨论,这些主管正在自己的组织中实施DevOps或者为在为其他组织提供DevOps解决方案。
“从您的观点,DevOps的未来是什么?最好的机会在哪里?“
当我们问这些问题时,得到下面的回答,
就像时间,你是不能抗拒自然的时钟的。 DevOps和云/Docker之间有着良好的合作生态。随着AWS,RedHat和Azure/IBM的发展,DevOps将会以双倍的速度增长。
如果您正在云端构建软件,那么您需要一个NoOps(或Op-less)环境。这样仍然需要操作,但手动任务和操作较少。目前世界上只有2%的DevOps投入实践 - 我们还有很长的路要走。所以有从早期采用到普遍采用的进程。我们需要分享我们有关DevOps在工作上的故事,以及如何通过工具持续监控,这样可以帮助使用者消除恐惧和痛苦。

迁移到云。AWS会提供更多工具来促进自动化和工具的整合,因此您不必进行自定义构建部署。我们将在云端使用容器来实现自动化工作流。
在生产中容器扮演的角色会越来重要。早期的使用者使用中仍然在磨合。这对于其他的容器开发者或者微服务场景可能是有效的方法,但是这并非是容器的一切。它擅长的是自动化部署,监控和更正错误。如果做得很好,这就带来很大的好处,但是如果使用场景不当,也往往适得其反。工具和容器做得越来越好,接下来呢?公有云的使用的场景会越来越普遍渗透到被监管的行业。我们把这些概念引入到部署中(在防火墙,云,外部),用到哪里我们就可以迁移到哪里。Pharma 通过依赖数据的配置就可以实现相同的app部署到防火墙的内部和外部。
我们需要摆脱DevOps的字面意思,因为最终还是所有的部门要在一起工作-而不仅仅是开发和运维。
将来会有更多更好的工具。像我们这样的系统应该现成的工具设置很容易设置,我们定期评估这些工具,看看我们是否可以更换自制软件设置的部分,我们继续找出远远落后的工具。
原则上我们要扩展到开发和运维之外。应用程序的开发不应该时开发人员开始,运维人员结束的状态。 QA,业务规划,BPO,一起扩展到业务提供更好的用户体验,更好地整合第三方和云服务以与客户进行互动。更多地与业务目标一致,才可以有更多的成功机会。
如果拥有面向企业有传统应用程序经验,则更容易找到提高所有应用程序的速度和质量的方法。代码不断开发迭代的过程中,我们需要关注如何将这些企业应用程序演化为DevOps方法。
我们将更快地优化自动化,降低风险。技术侧重于创建抽象层,从而带来更大的灵活性和可移植性。容器化服务和抽象服务器、容器和节点将在Apache Mesos和Kubernetes上运行。服务器抽象远离服务器,以达到CPU更好的利用。
构建用户使用软件的开放反馈循环,由用户站点的数据驱动,机器学习和AI实现下一个功能。从面向服务的体系结构(SOA)迁移到API体系结构。 APIs正成为您的核心业务的一部分。 API将被标准化,文档化,迈向高质量。
应用程序更多的是业务的一部分,而用户体验是由应用程序驱动。持续交付有助于使公司更敏捷。这需要花费更长时间才能决定采纳某些想法和概念,学习什么适用于特定组织,哪些不适用特定的组织。
DevOps正在成为所有的一切 - 开发,运维,安全,测试和部署。我们将看到员工变得更多样化 - 多技能的“jacks of all trades”,而不是“master of one”。我认为这是一件好事,因为人们将从更广的角度看产品,并在工作中作为一个团队,更好地看待一切。
我们将继续看到更多的虚拟化、更多的工具和更多的方法。实施障碍将逐渐消失。随着实践中更多的成功,采纳和理解也会接踵而至。这期间实践的人民,将成为实施方法的领导者。未来五年也将会有大量的成熟方案落地。

所有的一切都在代码和版本控制下持续下去。整个企业将会有容器化。 每个人都可以在云平台的容器中协作。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容