天天看点

devops实践总结

hcloud:云平台开发经验。云平台中的devops,开发者工具的开发经验

自己搭建jenkins,通过jenkins执行pipeline,集成构建,代码检查,部署,自动化测试,蓝绿部署等。

其中的构建是通过shell脚本实现。

代码检查集成了啥东东?忘了研究了。

部署,底层封装一个ansible,通过ansible部署多台主机。

自动化测试,封装了selenium,robotframwork。

蓝绿部署是通过修改keepalive的配置文件实现的。应该还有个东东,啥来着?nginx?还有啥来着?一段时间不搞就他娘的忘得差不多了……

代码管理:github???没确认过。代码review使用的是sourcelight?忘了,eclipse集成的一个东东。

项目管理/task管理等:jira??

信息管理:wiki

日志管理?

美资企业的生产案例:

核心是通过jenkins UI,创建pipeline来实现。所有的环节都集成在jenkins的job里

服务器:服务部署于公司自己的服务器,

项目管理/task管理等:集成jira和confluence,fisheye等。workpackage下创建tasks,task下创建sub-task。sourcetree中提交代码时关联task号即可在对应的task上出现commit,在commit上即可直接提交review请求。

jenkins的实现:前期是jenkins作为一个service部署于AWS的一个ECS上,具体搭建方式见jenkins最佳实践。现在是迁移到gcp上,jenkins作为一个服务部署于k8s上,然后在jenkins上配置gcp的pod template以便可以在jenkinsfile内调用该pod作为node。

网络,至于aws到gcp的交互,采用VPN的方式。搭建一个VPN通道。

文件持久化通过efs实现。

存储:aws上是s3,gcp上是storage。镜像存储,aws是在ecr,gcp上是才gcr(container registry)。

代码管理:之前是自己 搭建git server,后期转成了github。使用的ui是gitkraken的一个东东。用于拉代码,提代码,等等。不怎么操作命令行

权限,LDAP,azure,aws的iam以及gcp的service来控制

构建:freesyle是使用shell脚本,gradle等;piepline是通过artifactory-gradle插件及命令,具体见jenkins中的artifactory-gradle插件。

部署:docker部署,从artifactory拉取代码包,然后通过docker命令把服务打成镜像并上传至artifactory内,并同时部署到主机上去。

测试:集成gauge,一个gauge pod

部署暂未实现蓝绿部署,终端业务型的部署。

还有一种部署模式,是使用ansible远程执行的。

信息管理:confluence

代码检查:blackduck等

日志:sumologic,gcp上的stackdriver

乐天的实践经验:

注重自动化测试。脚本等