美文网首页
基础架构

基础架构

作者: xhrg | 来源:发表于2020-03-13 23:49 被阅读0次

    企业架构有2个问题比较核心的问题,还是人的问题。
    一:用户。用户需要的是可扩展(功能升级),稳定性(可用,稳定),漂亮易用。
    二:员工。员工面对的问题更多,更复杂。1 简单上手,2 高可用,稳定,监控告警等,3 深入关注业务,产品功能绩效,而非技术使用,而非公司流程,而非技术发展,而非人力成本和机器成本,而非多项目切换,而非接手其他项目。员工还关注技术分析和技术沉淀,所以内部分享也很重要,分享包括,技术入门,业务痛点,解决问题,架构设计等等。

    本文会不断更新,包括增加一些好的中间件,包括对分类更合理的划分。

    本文概括基础架构的所有组件,以此扩展,深挖,希望读者评论本文。可以有分类的建议,中间件的推荐,框架的推荐等。更注重实战,但是好的实战离不开对原理的了解。

    基础软件文章模板

    [基础软件技术考虑点]

    门户(全公司技术统一入口)

    门户一般用于全公司统一入口,第一就是统一子系统UI,统一登陆,权限认证。子系统也必须有自己多高内聚,低耦合。内聚表现在用户可以一眼看到所有多产品,使用简单,无需学习切换浏览器等,低耦合表现在,子系统可以独立部署,独立接管权限功能等。

    门户的分类可以参考阿里云,腾讯云等。但是比他们更多,因为设计到公司内部流程系统,工具到。一个可能到分类如下(一定要注意,产品化公司等任何项目产品,而组合一定是可以随意配置的,比如说把配置系统,可以放到任何栏目,或者模板都是可以的):

    • 工作流:审批,请假,资源申请,任务管理(张三可以给李四创建任务)
    • 中间件:消息队列,调度,
    • 基础设施:日志,告警,监控,配置,
    • 运维管理:应用管理,数据库,redis,
    • 测试管理:功能测试,压力测试,

    基础中间件

    • [应用信息]。包括应用的名称,owner,部门,sdk版本等元信息,需要管理。不然后期推广新框架,做公司治理都会麻烦。
    • 消息队列 \color{red}{rocketmq} ,activemq(新一代叫activemq-artemis),kafka,apache-pulsar,rabbitmq,https://nats.io/https://nsq.io/qmq,zeromq
    • 配置中心。 \color{red}{ctripcorp.apollo} nacos,kms(秘钥管理)
    • 调度平台powerjob, xxl-job,elastic-job,vip-saturn
    • 数据订阅。alibaba-canal,linkedin-databus, debezium + kafka-connect
    • 网关。spring-gateway,zuul,kong,apisix,manba(golang),悟空(golang)
    • 分布式事务。seata,消息事务,
    • 微服务(5%)。dubbo,grpc,sofa-rpc,octo-rpc(系列),sentinel(2020版支持golang),spring-cloud全家桶,服务治理[流控[sentinel,hystrix]]
    • 注册中心。zookeeper,etcd,eureka
    • 服务网格。sofa-mosn,微软-OSM

    数据中间件

    • 分布式缓存。redis[cluster,sentinel,codis],hazelcast
    • 分布式数据库。tidb
    • 数据库中间件(框架)。shardingsphere,dble,kingshard(go)
    • 分布式文件系统。fastdfs,seaweedfs,bookkeeper
    • 数据库。[ \color{red}{mysql} ] ,注意,很多业务开发的同学,基本上都在和mysql打交道,所以mysql相关的技术是非常重要的。

    数据中台

    • BI系统。Davinci
    • 调度系统。hera,DolphinScheduler
    • 数据存储。hadoop
    • 实时计算。clickhouse(单表)
    • 离线计算。
    • 数据采集和数据传输。datax + datax-web

    基础设施

    • 【监控】Logging。elk,loki,https://github.com/grafana/loki
    • 【监控】Tracing。pinpoint,skywalking,eagleeyes,appdynamic,oneapm,pinpoint,dianping-cat,didi-nightingale,zipkin,jaeger
    • 【监控】Metrics。时序相关的,prometheus + Grafana,datadog,Open-Falcon
    • 【监控】其他。zabbix

    业务组件

    • 【用户中心】SSO登录。
    • 【开放平台】外部调用内部的开放平台,内部调用外部的outing项目。
    • 【公共服务】动态日志。消息推送平台:短信,邮件,微信,钉钉,飞书。

    运维管理

    开发效率平台

    • 代码生成器。code-gen
    • 基础框架
    • 工具类
    • 服务器,mysql,zk等资源申请平台。
    • 业务开发流程化标准平台。需求->创建项目->资源申请->上线->监控->下线
    • 企业开发平台(包括用户,权限,代码生成,服务治理,各种开发用到的工具继承进去)

    优秀框架

    优秀框架中间件

    框架组件

    对于业务开发的同学,不可避免的用一些性能不高的类,比如说喜欢用StringBuffer,而非StringBuilder,所以基础框架需要不断深入研究底层数据结构,让业务开发使用公司公共组件类,而非jdk或者开源组件。没必要花时间去研究下所有的类的数据结构高效性。由基础框架统一规划,文档输出。

    • 常用类数据结构的封装。对于业务开发的同学,有时候不可避免用一些性能不好
    • 短信|邮件|钉钉等第三方调用。
    • 分布式锁。
    • guava->本地缓存,本地限流
    • apache-common -> 对象池
    • jushata

    大数据

    测试

    问题和性能分析工具

    规范

    前端UI技术

    一个好的中间件产品,怎么能少不了一套好的ui呢。

    • layUI
    • icework
    • ant.design

    开源组织

    项目管理

    中间件通用技术

    • 网络(netty)
    • 存储(mysql,文件)
    • 算法(一致性哈希,raft等)

    附录

    基础架构之书籍推荐
    速查系列【5%完成度】

    相关文章

      网友评论

          本文标题:基础架构

          本文链接:https://www.haomeiwen.com/subject/xhbushtx.html