1、DevOps

/带无阿泼斯/

DevOps维基百科定义 DevOps(Development和Operations的组合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。

devops平台搭建工具

项目管理(PM):jira。运营可以上去提问题,可以看到各个问题的完整的工作流,待解决未解决等;

代码管理:gitlab。jenkins或者K8S都可以集成gitlab,进行代码管理,上线,回滚等;

持续集成CI(Continuous Integration):gitlab ci。开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。

持续交付CD(Continuous Delivery):gitlab cd。完成单元测试后,可以把代码部署到连接数据库的 Staging 环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境中。

镜像仓库:VMware Harbor,私服nexus。

容器:Docker。

编排:K8S。

服务治理:Consul。

脚本语言:Python。

日志管理:Cat+Sentry,还有种常用的是ELK。

系统监控:Prometheus。

负载均衡:Nginx。

网关:Kong,zuul。

链路追踪:Zipkin。

产品和UI图:蓝湖。

公司内部文档:Confluence。

报警:推送到工作群。

devops实践指南 PDF devops practice_devops实践指南 PDF

类型

名称

持续集成/持续交付

Jenkins

源代码管理

Gitlab

云平台

阿里云

软件包管理器

私有Nuget

代码检查

Reshaper

容器化

Docker

分布式链路跟踪

SkyWalking

日志系统

ES+Filebeat+kibana

系统监控

Prometheus

对于一般的团队,建议优先从Gitlab+Jenkins搭建好完成CI/CD,其次把日志系统给完善起来,这两者完成得越早,给团队带来的收益就越高,后续才会有更多的时间来完善整套技术体系,这是一个良性的循环

2、康威定律

用通俗的说法就是:组织形式等同系统设计,核心观点如下:

  • 第一定律:Communication dictates design(组织沟通方式会通过系统设计表达出来)
  • 第二定律:There is never enough time to do something right, but there is always enough time to do it over(时间再多一件事情也不可能做的完美,但总有时间做完一件事情)
  • 第三定律:There is a homomorphism from the linear graph of a system to the linear graph of its design organization(线型系统和线型组织架构间有潜在的异质同态特性)        
  • 第四定律: The structures of large systems tend to disintegrate during development, qualitatively more so than with small systems(大的系统组织总是比小系统更倾向于分解)