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
乐天的实践经验:
注重自动化测试。脚本等