devops架构置顶

DevOps:详细计划,日拱一卒,知识图谱打造中,可能涉及技术限制,不会分享于此

最佳实践:现有的实践,目录结构(即架构)列于各个工具文章内。

基于实践整理devops的实施过程和技术栈以及经验

实践案例及经验总结(开始按照案例整理每个案例的经验和分析):

案例一:某日本公司(见文章“日本出差task”)当前重点实践(包含自建k8s平台,私有云平台。互联网项目

案例二:某美国公司(见文章“美国公司实践”),基于多云的一次实践(尚未整理)

案例三:中国it巨头(见文章“自建公有云平台实践”),基于类似aws的平台的开发经验(尚未整理)

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

现有架构案例(未完成):清楚每一个工具的搭建及使用方式,优缺点。

安全:Hashicorp Vault(密码等敏感信息),Veracode(漏洞扫描),Blackduck(开源代码扫描),Docker,Cloud Account Auditing(what???)

自动化测试:selenium(框架),cucamber,robotframework

CI/CD:Jenkins,Docker

监控:

代码管理:gtihub(搭建及使用??),sourcetree(),git(自建的git server,整个搭建过程?),

存储:docker镜像,文件

网络:DNS

服务器:

k8s:

日志:ELK(elastic search,logstash,kibana),sumologic

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Devops一百问:

1.k8s环境下是否需要主机管理平台?估计不需要了……看体量?这也是k8s牛逼的地方

2.k8s环境下,jenkins的执行日志持久化怎么处理的?同样,其他的文件及数据的持久化是怎么处理的?具体实现方式?

3.一个k8s环境可以容纳多少个服务?入门k8s应该就明了了

4.当前的部署方式?灰度?蓝绿?金丝雀?百分比?

5.各种脚本的意义:会用,一切以自动化为核心。

 

每涉及到一个技术栈,集中学习,汇总到一篇文章,每一个技术栈有一个技术图谱,此处仅列目录:

1.https???未完成

2.git部署??未完成

3.各种sql??未完成

4.AWS VPC subnet,routetable

5.计算机网络

6.vault-2019/01/23,有技术图谱,

7.LDAP: 已完成https://blog.csdn.net/weixin_42578481/article/details/80863890  https://www.cnblogs.com/wilburxu/p/9174353.html

8.python爬虫

9.jira

10.confluence

 

方法论:架构图搭建后,针对每一个工具:why(为什么用这个,相似的工具还有哪些?),how(怎么集成?怎么安装?怎么配置?),需要补充每一个工具的这些信息

 

协助项目实现devops流程:

1.项目人员提供业务架构,是否是微服务?服务间调用顺序?数据库?

2.根据具体业务,生成一张图标,每一组件备注 对应的实现方式(比如数据库是否使用aws上的)(考验功底的时候到了)

3.梳理2中的关系图,网络,生成矩阵表

4.脚本开发

5.验收

 

当务之急:jenkins,k8s,docker,terraform

Iaas,Paas,Saas演进:I 是基础机构,P是平台级,S是服务级。http://www.ruanyifeng.com/blog/2017/07/iaas-paas-saas.html

披萨论:I 是拿了工具,自己做披萨,P 是有了现成的材料,直接烤。S是直接买来披萨贴logo,涵盖了产品的开发,客户只提出产品级的需求(这个是不是比较扯?版权归谁?)

 

hubspot???

openshift???

集群管理:docker,k8s

CI:gradle,jenkins

CD:ansible

存储:AWS的EFS,EBS,S3

构建包存储:Artifactory(有的也用nexus),具体见artifactory篇

部署方式:蓝绿,百分比部署,金丝雀部署,怎么实现?

iaas:terraform,ansible

平台: AWS,google,Azure

集成平台:cloudbees,jenkins

测试:gauge(类似robotframework,接口测试),jmeter(性能测试)

日志: sumologic

代码管理 sourcetree(拉取,比对和commit),类似于git图形界面,优点??

语言:groovy,python

 

边缘技术:

nodejs 的包安装软件npm

python 的软链接

 

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<具体搭建方法>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Artifactory: 是一个库,类似于nexus,jenkins与artifactory的衔接,首先安装这个插件,在jenkins的manage里的sys config进行配置,里面有一项是artifactory,具体参数值一目了然。对于multibranch类型,需要在项目里进入manage jenkin然后设置,jenkins内调用artifactory的语法,请见https://www.jfrog.com/confluence/display/RTF/Working+With+Pipeline+Jobs+in+Jenkins

Jenkins:旧有是运行于实体机,新的方案是通过k8s进行管理并实例化,而且用的是cloudbees。不再是免费的jenkins

ansible操作aws:在ansible中传递参数key和secret后就可以操作aws,当环境变量中有AWS_ACCESS_KEY_ID 之类的内定变量时,即可直接引用,不必在yaml内显示引用。比如在jenkins内使用withcredential引用了aws的证书,即可直接使用ansible操作aws。针对aws的主机经常变化的问题,可以使用ec2.py那个脚本获取主机(google可搜索到,也可以https://docs.ansible.com/ansible/latest/user_guide/intro_dynamic_inventory.html#inventory-script-example-aws-ec2),与ec2.py配合,当只想取出某个账户下或某个区的主机列表时,可以使用--profile profile,这里的profile是一个文件,里面可以像定义主机和主机组一样赋值aws账户和密码,这样就获取该区的主机列表。

》〉》〉》〉》〉》〉》〉》〉》〉》〉》〉》〉》〉》

 

思维反推大法:作为devops,原则是以实现最终业务为核心,所以,当绘制一个框架流程图的时候,首先画出来的应该是“客户”的最终要实现的目标,比如部署后的目录结构。依次往前推。拿到目标后才能向前梳理,比如哪个文件采用什么部署方式,监控方式,日志处理方式,敏感信息的传递方式等等。包括选择什么样的server也是很重要的事情

》》》》》》》》》》》》》》》》》》》》》》》

 

devops实操技巧(落地经验):

1.多个shell脚本使用共同的方法,在shell脚本的开头使用source xxx.sh 类似于java的import。然后就可以直接使用了,在shell中直接使用方法名调用即可,如果两个共同shell中的方法重名怎么办???鬼他妈知道,哇咔咔咔。 共同方法里怎么写??语法是怎样的?举个栗子:shell内  function xxx() {要实现的内容 }

2.Jenkins内调用共同方法,使用groovy脚本写共同方法,然后通过一顿猛如虎的配置(jenkins需要配置啥???)(实际使用就是使用@Library('xxxx@vxxxxx') _类似import导入,在jenkinsfile内直接使用groovy里的方法)。

你可能感兴趣的:(devops)