美文网首页
基础架构

基础架构

作者: 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%完成度】

相关文章

  • MySQL-分布式架构-MyCAT

    1、MyCAT基础架构准备 MyCAT基础架构图 1.1 MyCAT基础架构准备 1.1.1 环境准备: 1.1....

  • BERT复习

    1.BERT整体模型架构 基础架构 - TRM的Encoder部分image.pngBERT的基础架构是trans...

  • 字节跳动 Go RPC 框架 KiteX 性能优化实践

    本文选自“字节跳动基础架构实践”系列文章。“字节跳动基础架构实践”系列文章是由字节跳动基础架构部门各技术团队及专家...

  • MySQL-15分布式架构-MyCAT

    MySQL-分布式架构-MyCAT 1. MyCAT基础架构图 2. MyCAT基础架构准备 2.1 环境准备: ...

  • 计划近期开始总结下hadoop项目的经历

    基础测试架构

  • 基础架构

    一、基础架构图 二、基础架构 基础架构空间。包括服务治理和各种中间件,以及通用的开发规范。因数据集变大、访问量变高...

  • 架构:系统的概要设计

    第113篇 极客时间《许式伟的架构课》课程笔记。 基础架构与业务架构 基础架构就是做技术选型:选择要支持的操作系统...

  • 01 | 基础架构:一条SQL查询语句是如何执行的?

    01 | 基础架构:一条SQL查询语句是如何执行的? 对于该sql的执行架构分析 MySQL基础架构 大体分为Se...

  • 什么是安全架构?

    1. 前言 2. 架构基础 2.1 职业相关 基础的软件工程知识, 例如敏捷开发, 软件研发流程等等; 基础的架构...

  • 架构文章

    架构漫谈 架构漫谈(一):什么是架构?架构漫谈(二):认识概念是理解架构的基础架构漫谈(三):如何做好架构之识别问...

网友评论

      本文标题:基础架构

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