1.DNS
公网DNS
局域网DNS(coreDNS)
2.负载均衡
- 2.1 基于硬件-F5
- 2.2 基于四层- lvs
- 2.3 基于七层
- nginx
- openresty
- apisix
3. 网关
- apisix
- zuul
- ingress
3.缓存
- 客户端缓存
- CDN
- 服务端缓存
- 服务端一级缓存 caffeine,guava
- 服务端二级缓存 redis
4.CI/CD
CI
- trigger
- 包的形式:image,jar,war
- 二方包打包规则
CD
- trigger
- runtime:vm,k8s,app service(pass),servless(sass)
- 灰度:金丝雀,蓝绿,ABTest(功能性)
- 流量接入规则:ip,userId,流量百分比
- private dns/public dns规则
5.架构风格
- 单体架构
- soa(很少很少)
- 微服务架构(这里包含了一整套的解决方案,服务注册发现,rpc,服务治理等等)
- 解决方案
- springcloud netfix
- springcloud alibaba
- k8s
- 解决方案
- service mesh
- 解决方案
- istio
- 解决方案
5.中间件
消息队列
- rabbit mq
- kafka
- rocket mq
- 云产品:Azure event hub,Azure service bus
任务调度
- xxl job
- elastic job
配置
- apollo
- nacos
- 云产品:Azure configuration
6.sql
olap
- hive
- 云产品:Azure Synapse Analytics
oltp
- sql
- mysql
- oracle
- no sql
- mongo
- es
- new sql
- spanner
- tidb
7.troubleshooting三剑客
log
- 采集->传输->存储->查询
- 常见解决方案:
- filebeat->kfk->logstash->es
- 云产品,syslog(阿里云),Log Analytics workspaces(Azure)
trace
实现一个trace并不复杂,重点在于怎么将上下游的日志串起来方便排查问题
- trace,span
- 常见解决方案
- pinpoint
- skywalking
monitor(时序)
monitor里面的数据按照时间窗口来聚合,将一个个时间窗口的数据进行count,avg,sum等等聚合,聚合出来按照时间进行排序,就形成了mertic
- 监控对象
- 基础设施
- cpu
- memory
- io
- 应用
- http requests code
- http lantency
- jvm
- 自定义mertic
- 解决方案:
- prometheus
- 云产品,appinsight(Azure)
alert
重点在于如何定义slo等级
- 基于日志
- 基于mertic
8.常见解决方案:
identity(user and system)
-
authencation(Oauth)
-
authorization(rbac)
order
-
multi-level
- order
- item
- list
-
price
- order price
- item price
- list price
-
shiping
- barcode
- delivery
- ...
9.安全
存储:
- 密钥存储
- 证书存储
- private/public key存储