前几年和同事聊天,说哪天不在大厂了,去了小厂带技术团队应该做哪些技术层面的基建呢?
于是就基于当时自己的理解梳理了很多技术中间件、基础设施层面需要建设的东西,但好多年过去了还是在大厂,暂时也用不上了,今天翻出来了,看起来大部分还依然适用,分享给大家,希望对大家有用。
架构演进历程
基础设施 > 自动化运维 > 数据库运维 > 分布式基础设施搭建 > 分布式监控体系搭建 > 分布式框架自研 > 企业基础服务搭建
基础设施
涉及gitlab,git,jenkins,nexus,sonar,wiki,减少沟通成本,沉淀业务知识,打通权限
自动化运维
-
钉钉机器人,自动化告警,通知
打通jenkins,gitlab,wiki,sonar等自动化集成 -
jenkins自动化发布
一键滚动发布,自动回滚,异常自动重启,便于运维快速发布,避免收工发布出错 -
docker容器集群化
从doker单机到docker集群版本,逐步验证到上线环境,提升服务器资源利用率,优化服务稳定性,精简运维
数据库运维
-
存储:数据库采用mysql存储,innodb存储引擎
-
读写分离:采用主从mysql,读写分离
-
冷备热备:采用主动mysql进行热备
分布式基础设施搭建
采用开源的基础服务设施, 构建整个分布式技术体系, 从而加快完成分布式基础设施的整体布局,做好主备和故障愈合的预案,从而确保整体基础设施的稳定性。(ps: 假如是大型的,偏向高并发,长远的电商业务,可以综合考虑自研基础服务设施为优先方案)
-
分布式任务调度平台
技术选型: xxl-job, 用于后台/异步任务等任务的挂载,确保一些耗时/耗资源/定时的任务和api分离,确保前端api的稳定。 -
分布式服务中心
技术选型: eureka-server, 用于服务的注册,负载均衡,故障转移,健康检测等服务统一管理。 -
分布式消息队列
技术选型: rocketmq, 用于业务的异步解耦,上下游消息的转发,异构业务的异步通信等。 -
分布式日志中心
技术选型: elk, 用于应用日志的统一管理,查询,统计等。 -
分布式文件服务
技术选型: 七牛文件服务, 用于文件的上传,下载,文件生命周期的管理,图片的动态缩放等。 -
分布式配置中心
技术选型: apollo, 用于所有项目的配置分类,抽象,灰度发布等管理。 -
分库分表中间件
技术选型: sharding-jdbc, 用于对业务开发人员屏蔽数据库的分库分表,主从读写分离的拆分细节。 -
搜索服务
技术选型: elasticsearch, 用于全文检索,相似度文档(数据)的业务查询。 -
分布式缓存
技术选型: redis, 用于业务的分布式缓存,从而加快业务的查询速度。
分布式监控体系搭建
-
调用链监控
技术选型: pinpoint, 用于所有服务的调用关系的监控分析,里面也包含(cpu,内存,耗时)性能等。未来要迁移成skywalking。 -
日志监控
技术选型: elk, 用于应用日志的统一管理,查询,统计等。 -
服务器监控
技术选型: zabbix, 用于所有linux服务器系统级别的性能监控。 -
DB监控
技术选型: pmm,用于所有线上mysql数据库的性能监控记录,慢查询等分析。 -
应用监控(性能分析)
技术选型: cat,用于所有线上顺向和逆向调用链路的分析,数据库和url耗时的性能分析,服务及服务器的性能分析报表,bsf自研监控报表等。
分布式框架自研
-
基于开源的分布式基础设施和分布式的监控体系,通过自研的bsf框架进行粘合;
-
把复杂的配置和复杂的各个分布式组件之间的协作,通过单一bsf框架进行整合,通过简单的接口对开发者提供标准规范的调用方式;
-
采用类似springcloud的思想,以插件形式对所有的基础服务进行平行扩展,方便开发人员阅读和维护;
-
未来基础服务可以随时升级替换,只需要保持对开发者的接口兼容即可;
愿景: 让开发人员仅关注快速使用,无需了解底层服务实现,让开发变得更简单。
目前已集成插件
-
cat(分布式监控平台),
-
apollo(分布式配置中心),
-
elk(分布式日志中心),
-
eureka(注册中心),
-
job(分布式任务调度),
-
message(消息),
-
mq(消息队列),
-
shardingjdbc(分库分表),
-
redis(分布式缓存),
-
elasticsearch(搜索引擎),
-
health(bsf健康检查),
-
file(文件服务)
等。
同时底层框架bsf和业务框架business剥离,让通用的底层框架剥离实际的公共业务类库。
基于bsf和business之上,定义标准的项目脚手架csx-b2b-demo,用于快速构建项目服务。
业务基础服务构建
-
主数据 提供公用的业务基础配置数据。
-
用户中心 提供统一用户登陆鉴权。
-
流程服务 提供流程的设计,表单设计和流程审批功能。
-
短信服务 提供公有云第三方短信平台对接等。
-
报表 提供线上统一报表查询和导入导出等。
技术分享
架构组提供进行11场左右的技术分享,同时业务部门也会举办一些业务培训,让开发人员了解并熟悉底层框架技术原理,日常使用,以及现有产品业务等。
开源社区构建
构建开源技术博客,开源bsf底层技术框架,推进核心技术人员参与技术分享社区和沙龙, 邀请第三方技术人员做一些培训分享。
关于混合云
-
内部云 用于内部所有测试开发环境的构建和部分线上服务。
-
腾讯云/七牛云 用于文件服务,第三方cdn,dns等公共服务。
-
自建机房 用于搭建所有线上服务,数据库,容器集群,大部分基础服务设施等等。
其他
暂未涉及前端,大数据,机器学习(人工智能),测试平台相关。
原文链接:https://blog.csdn.net/peter7_zhang/article/details/122660066?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165934458816782388046885%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=165934458816782388046885&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-25-122660066-null-null.nonecase&utm_term=%E8%87%AA%E5%BB%BAcdn
原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/7632