如果你去小公司带技术团队,可能需要做的事情

d18cbca9472612980be83e6c6b811a93.png

前几年和同事聊天,说哪天不在大厂了,去了小厂带技术团队应该做哪些技术层面的基建呢?

于是就基于当时自己的理解梳理了很多技术中间件、基础设施层面需要建设的东西,但好多年过去了还是在大厂,暂时也用不上了,今天翻出来了,看起来大部分还依然适用,分享给大家,希望对大家有用。

架构演进历程

基础设施 > 自动化运维 > 数据库运维 > 分布式基础设施搭建 > 分布式监控体系搭建 > 分布式框架自研 > 企业基础服务搭建

基础设施

涉及gitlab,git,jenkins,nexus,sonar,wiki,减少沟通成本,沉淀业务知识,打通权限

自动化运维

  1. 钉钉机器人,自动化告警,通知
    打通jenkins,gitlab,wiki,sonar等自动化集成

  2. jenkins自动化发布
    一键滚动发布,自动回滚,异常自动重启,便于运维快速发布,避免收工发布出错

  3. docker容器集群化
    从doker单机到docker集群版本,逐步验证到上线环境,提升服务器资源利用率,优化服务稳定性,精简运维

数据库运维

  1. 存储:数据库采用mysql存储,innodb存储引擎

  2. 读写分离:采用主从mysql,读写分离

  3. 冷备热备:采用主动mysql进行热备

分布式基础设施搭建

采用开源的基础服务设施, 构建整个分布式技术体系, 从而加快完成分布式基础设施的整体布局,做好主备和故障愈合的预案,从而确保整体基础设施的稳定性。(ps: 假如是大型的,偏向高并发,长远的电商业务,可以综合考虑自研基础服务设施为优先方案)

  1. 分布式任务调度平台
    技术选型: xxl-job, 用于后台/异步任务等任务的挂载,确保一些耗时/耗资源/定时的任务和api分离,确保前端api的稳定。

  2. 分布式服务中心
    技术选型: eureka-server, 用于服务的注册,负载均衡,故障转移,健康检测等服务统一管理。

  3. 分布式消息队列
    技术选型: rocketmq, 用于业务的异步解耦,上下游消息的转发,异构业务的异步通信等。

  4. 分布式日志中心
    技术选型: elk, 用于应用日志的统一管理,查询,统计等。

  5. 分布式文件服务
    技术选型: 七牛文件服务, 用于文件的上传,下载,文件生命周期的管理,图片的动态缩放等。

  6. cdn
    技术选型: 腾讯cdn, 用于图片,脚本,css等文件的cdn网络加速,加快前端资源的下载速度。

  7. 分布式配置中心
    技术选型: apollo, 用于所有项目的配置分类,抽象,灰度发布等管理。

  8. 分库分表中间件
    技术选型: sharding-jdbc, 用于对业务开发人员屏蔽数据库的分库分表,主从读写分离的拆分细节。

  9. 搜索服务
    技术选型: elasticsearch, 用于全文检索,相似度文档(数据)的业务查询。

  10. 分布式缓存
    技术选型: redis, 用于业务的分布式缓存,从而加快业务的查询速度。

分布式监控体系搭建

  1. 调用链监控
    技术选型: pinpoint, 用于所有服务的调用关系的监控分析,里面也包含(cpu,内存,耗时)性能等。未来要迁移成skywalking。

  2. 日志监控
    技术选型: elk, 用于应用日志的统一管理,查询,统计等。

  3. 服务器监控
    技术选型: zabbix, 用于所有linux服务器系统级别的性能监控。

  4. DB监控
    技术选型: pmm,用于所有线上mysql数据库的性能监控记录,慢查询等分析。

  5. 应用监控(性能分析)
    技术选型: 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,用于快速构建项目服务。

业务基础服务构建

  1. 主数据 提供公用的业务基础配置数据。

  2. 用户中心 提供统一用户登陆鉴权。

  3. 流程服务 提供流程的设计,表单设计和流程审批功能。

  4. 短信服务 提供公有云第三方短信平台对接等。

  5. 报表 提供线上统一报表查询和导入导出等。

技术分享

架构组提供进行11场左右的技术分享,同时业务部门也会举办一些业务培训,让开发人员了解并熟悉底层框架技术原理,日常使用,以及现有产品业务等。

开源社区构建

构建开源技术博客,开源bsf底层技术框架,推进核心技术人员参与技术分享社区和沙龙, 邀请第三方技术人员做一些培训分享。

关于混合云

  1. 内部云 用于内部所有测试开发环境的构建和部分线上服务。

  2. 腾讯云/七牛云 用于文件服务,第三方cdn,dns等公共服务。

  3. 自建机房 用于搭建所有线上服务,数据库,容器集群,大部分基础服务设施等等。

其他

暂未涉及前端,大数据,机器学习(人工智能),测试平台相关。

原文链接: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

(0)
上一篇 2022年8月28日 15:18
下一篇 2022年8月28日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml