作为一个新晋的应用架构师,你如何来设计平台架构?
我觉得应该从下面几个方面来梳理:
基础架构
web站点层:栗子,mvc
数据访问层(DAS):MyBatis
RPC服务调用:Dubbo,SpringCloud
配置中心:Apollo、Disconf
消息中心:RocketMQ
缓存:Redis
调度:XXL-Job
日志监控:Skywalking、pingponit
锁:redisson(分布式)
分布式事务:2PC、TCC、本地事务表
弹性:流量控制+隔离+熔断
安全:Spring Security
基础平台
1.配置平台:Apollo
2.微服务管理平台:服务中心(Spring cloud Admin),服务集市(文档管理、wiki、接入的系统监控)
基础中间件
MQ代理:RocketMQ
API网关: Spring cloud Gateway
DB代理:Atlas
ES集群:分布式搜索
基础服务
短信:运营商
文件存储:OSS
邮件:SMTP、POP3
推送:极光
唯一ID:极光
智能验证码
地图服务:百度
业务服务组
权限控制
通用表单:栗子,表单拖曳生成页面
状态机:spring statemachine、FSM
统一支付:聚合支付
工作流
SSO
爬虫...
工作效率
源代码仓库:gitlab、gitee
内部类库:Maven库、Nexus
项目管理平台:Teambition
知识管理平台:wiki
bug管理:jira、禅道
代码质量管理:Sonar
运维
CI/CD:jekins
DNS平台:DNSPod
监控:Zabbix
CDN平台:七牛云
容器编排:k8s
容器镜像仓库:Docker
总结:
基础组
平台组
运维组
QA

