架构

Manage

合作办法 #

苏格拉底法
不推动不会发生

执行力差的5大原因 #

不知道干什么?-> 目标明确
不知道怎么干? -> 培训到位
干起来不顺畅 -> 流程合理
干好了怎么样? -> 激励公平
干不好又如何? -> 考核有效

性格测试 #

MBTI
九型人格

Method

TOGAF #

介绍
    The Open Group Architecture Framework
    属于EAF(企业架构框架)的一种
目标
    统一语言
    免费,避免被绑架到各个专有解决方案
    全局思考,更有效利用资源
    提高ROI
架构域
    业务架构
        战略、组织
        关键流程
        治理和标准
    应用程序体系结构
        部署蓝图: 系统间交互、基本业务流程关系
    数据架构
        数据资产结构
        相关管理资源
    技术架构
        硬件、软件、网络架构
    架构开发模型(ADM)
        定制开发实际企业架构,可反复重用
    企业连续
        对架构跟踪

约定 #

巴科斯范式 #

"word"  表示字符本身
double_quote    表示"本身
""      外表示语法字符
<>      表示必选项
[]      表示可选项
{}      表示可重复0到多次
|       表示or
::=     表示“被定义为”

Block Chain

历史 #

1.0: 2008年中本聪
	组成: 数字货币、分布式账本、块链式数据、梅克尔树、工作量证明
	产业: 挖矿、交易所、钱包
2.0: 2015年“世界计算机”Etereum上线
	组成: 智能合约(图灵完备)、虚拟机、去中心化、分布式应用
3.0: 大规模商业应用,区块链+
4.0: 行业基础设施,生态体系

组成 #

区块链: 分布式基础架构、计算方式
	按照时间顺序,数据区块顺序相连链式存储
		存储、验证
		时间戳
	密码学方式保证
		不可篡改不可伪造
		数据传输和访问安全
	分布式节点(分布式账本)
		共识算法:生成、更新数据
		分布式存储 
	自动化脚本组成智能合约
		编程、操作数据

链类型 #

类型
	联盟链: 数个机构有写权限
	私有链: 写权限在中心化组织内部
	公有链: 无需验证身份

发行方 #

比特币
以太坊
EOS
Hyper Ledger

技术 #

核心
	分布式计算
	加密
		环签名
服务层
	共识
		PoW(工作量证明)
		PoS(权益证明)
		DPoS(股份授权证明)
		PAXOS(分布式事务一致性协议)、PBFT(拜占庭容错算法)
	智能合约: 基于预定义事件触发、不可篡改、自动执行
		高效引擎
		合约算法库
		预言机
协议层
	SHA256哈希算法
	ECDSA签名算法
	交易不匿名
	数据结构
		链式DAG
P2P网络层
跨链技术
分片技术

应用特点 #

技术业务特点
	链
		哈希加密、非对称加密
		时间戳
		P2P网络传输
		共识算法、拜占庭容错
		分布式存储
	去中心化: 无中心化硬件、管理机构、节点权利和义务均等
		加密交易
		交易隐私保护
	开放性: 除交易和私有信息被加密,数据对所有人公开
		Token通证
	自治性: 基于协商一致规范和协议,对人的信任改成对机器的信任
		去除信任
	信息不可篡改: 除非控制51%的节点
		可溯源
	匿名性: 节点之交换遵循固定算法,数据交换无需信任,所以无须公开身份
		隐私性
		安全性
应用业务特点
	数据共享
	补充了互联网不安全的短板
	公平
	透明化
	唯一性
	确权性

应用 #

互联网基础数据
	多标识网络体系
		掌控域名生成/管理
		多模态标识解析体系,去IP
网络安全
	工业物联网设备安全
	身份认证与信任基础设施
	数据完整性保护
	多信任源安全基础设施
		跨域协同信任服务
		分布式PKI
		可信DNS等网络基础设施
	网络安全数据可信
		数据安全共享
		网络安全威胁情报共享
		网络行为追踪溯源
	网络防御协同激励
		DDoS协同防御
		众包漏洞挖掘
	网络安全态势感知
		网络安全态势可信感知
		态势数据融合与统一呈现
隐藏通信
	特点
		交易量大、隐蔽性好
		非定向发送、不经意接收
		数据多副本、可溯源
金融:省去第三方中介, 可编程金融
	支付、数字货币
	股权、私募、信贷、风险
	钢材贸易担保、生物资产监管、农业联盟链
	供应链金融
		融资、监管、信息共享
		资方与平台直连
	财务结算
	金融大数据: 企业征信、智能风控引擎、知识产权评估、实控人征信、生产经营数据、履约表现
	银行链
		融资:云链云信平台,资方平台直连
	共享经济
		租车、租房、知识技能
	量化交易
商品溯源
	供应链
	物流
数据市场融通
	分布式云存储UGC
	供应商画像,应收款凭证,合同履约,预测分析
	处方流转
	电子印章
	IP授权
	跨境贸易直通车、国际快件
	零售批发小店
算力供应
隐私保护
	账本隔离: 分片、多通道
	私有数据: 同一通道隐私数据在小部分组织间共享
	数据加密授权访问:加密给指定人,同一通道内其他成员不能访问
监管科技,以链治链
	建设工程项目管理: 进度,质量,安监,申报,数据,信用
		场景式存证,资金透明
	资金监管
	安全生产
	保险结算、审核支撑
	广告监播
公共服务领域:去中心化改造
认证、公证:不可篡改
数字版权
	专利、著作权、商标保护、软件、游戏、音频、视频、书籍许可证、艺术品证明
保险:去人力运营批准,自动触发理赔
公益慈善
疫情:结果证明材料上链存证
数字医疗链
	电子病历、健康管理
	隐私保护
教育链
	数据确权、安全存证、溯源审计
	档案管理、学生征信、学历证明、成就证明、产学合作
电子商务
	电子签约
司法
	电子证据溯源
电力链
	供应链、产业链上下游打通
	产融协同
	资源共享
营销
	积分卡券
农业
	农业产权交易
房地产
	上市、交易、产权登记
通信
	消息系统
社会管理
	代理投票、身份认证、档案管理、公证、遗产继承、个人社会信用、工商管理
文化娱乐
	视频版权、音乐版权、软件防伪、数字内容确权、软件传播溯源
物联网
	物品溯源、物品防伪、物品认证、网络安全、网络效率、网络可靠性

趋势 #

链融合

隐私保护计算 #

Privacy-Preserving Computing
目标
	数据聚合时,增强对数据的保护,降低数据泄露风险
	数据最小化,可用不可见
方法
	多方安全计算
	联邦学习

Datalake

愿景 #

统一
	批流一体

数据难点 #

SQL脚本拼凑,没有可视化工具
技术要求高,大量重复开发工作
数据稽核难: 勾稽关系不可见,数据校核不可见
数据运维困难:可读性差,难以调整,扩展困难

湖仓一体计划 #

思路
	分治
	计算向数据移动
	本地取数据	

数据仓库计划 #

采集 -> kafka -> ETL -> kafka -> 存储 -> OLAP

采集工具 #

业务数据
	ODS原始数据快照
	日志
	动态数据:用户推荐数据,用户行为
	第三方数据:用户征信、广告投放数据、企业信息
技术
	RPC同步
	ETL拉取
	日志采集
	爬虫
实时
	trigger、日志
		canel
准实时
	日志
非实时
	任务调度
		quartz, xxl-job, 大数据
技术
	Flume
		日志采集
	Sqoop
		数据库ETL
		etl, sql-to-Hadoop, MapReduce程序, 支持Hive, HDFS
	OoZie
		任务调度
	Azkaban
		任务调度

存储工具 #

HDFS
HBase
Hive
	数据仓库
	封装的HDFS和MapReduce
ClickHouse

运维工具 #

Ambari
	安装、部署、配置和管理
Flume
	cloudera开源, 日志收集
Ganglia
	分布式监控系统,php页面
HUE
	web管理Hadoop

处理工具 #

离线计算(批处理) #

MapReduce
	每个task启动一个jvm
Pig
	数据流处理语言,类SQL, 脚本转换为MapReduce任务
Mahout
	数据挖掘, 机器学
Tez
	用DAG(有向无环图)组织多个MR任务

流式计算 #

Impala
	# cloudrea开源,实时视图计算框架, 分布式查询引擎。直接从HDFS或Hbase中用select, join, 支持事务, 需要kafka
S4
	# 分布式流计算,允许请求丢失
Storm
	只能流式计算
Spark
Flink
Kafka Stream

数据管理工具 #

分类
	资产大屏
	元数据管理
	任务管理:管理、编排、调度、监测
	数据质量、数据治理
Yarn
	介绍
		Yet Another Resource Negotiator, 任务管理, 调度算力资源, 在HDFS上运行计算框架(如MapReduce, Storm, Spark)
	组成
		ResourceManager(RM)
			处理请求
			监控NodeManager
			启动、监控ApplicationMaster
			资源分配调度
			常驻
		NodeManager(NM)
			常驻
		ApplicationMaster(AM)
			数据切分
			为应用程序申请资源再分配给内部任务
			任务监控、容错
			非常驻,job拉起
		Container
			运行APP
			某节点上多维度的资源
			由NodeManager调度
			非常驻
Mesos
Tachyon
	分布式缓存

分析展示工具 #

Mllib
	machine learning library, Spark机器学习库
Giraph
	大规模图分布式计算
GraphX
	Spark分布式图处理框架
Superset
Metabase
Redash
BIRT
Kylin
Davinci
DBus-allinone
HAWQ
	# Hadoop原生sql查询引擎
phoenix
	# OLTP, 支持Hbase和HDFS, jdbc, 更快sql查询
Shark
	# sql on Spark, 并行job处理比MapReduce快100倍
Presto
	# 分布式sql查询, facebook开源, 称比Hive快10倍
Drill
	# Apache, Dremel的开源版本, 对多数据库生成query plan
Dremel
	介绍
		google的交互式数据分析系统,构建于gfs上
	特点
		嵌套型数据的列存储, 多层查询
		减少查询的处理数据量
Kylin
	# OLAP, Apache, 支持Cube类查询
Doris
GridGain
	网格计算框架,提供平行计算能力

数仓建模 #

分层
	ODS层(数据源): 多源接入
		业务库,集团数据,流量日志,三方数据
	IDL层(数据集成): 屏蔽底层影响,还原业务,统一标准
	CDL层(数据组件): 指标口径统一,重复计算
	MDL层(数据集市): 数据分析查询,数据应用支持
	ADL层(数据应用): 多维数据分析
工具
	基础层工具: 元数据中心维护业务过程,表关联关系、实体对象、识别分析对象、数据组件
	自助查询工具: 逻辑宽表、生成查询语句、查询情况反馈建模
	应用层工具: 拼接小模型

这些年我做过的技术

13年毕业以来,做技术有9年了。加上大学4年学计算机,已经13年的时间做技术了。虽然没什么成就,但也想学别人写出来看一看,起码也为自己的时间做一个交代。

背景经历 #

  • 2009年-2013年:上学幻想期。幻想的意思是,那时技术是学来玩的,大部分时间在搞Linux,安装各种多系统和发行版,配Conky, 配各种Compiz 3D桌面,安装各种攻击工具。还买了《深入Linux内核架构》、《鸟哥的Linux私房菜》、《Linux与UNIX Shell编程指南》、《算法导论》可惜最终基础没看多少,大概与牛人的差距就是从看不完这些书体现出来的。

  • 2013年-2015年: 入门乱学期。毕业后在C++与Java中做了Java。从此书变成了Java系列,还去学了Java线下课。可能天生的好奇心体现了出来,Java工作不久就用刚流行的Node.js改造了公司的消息推送程序,又学起了新兴的WebGL与Three.js。还改用Dell的平板装了Linux来开发。可能做的东西太过于玄幻,成为了公司的架构师。

  • 2015年-2018年: 技术学习期。可能源于对各种技术的探索,走上了全栈开发的道路,用Node.js做起了Proxy和后端,全栈体系里用MongoDB做了业务库,并在前端不断寻求Web3D的应用,还扬言计算机交互必将从一维的Command和二维的Window发展到三维的3D界面,被打脸到现在。之后做了Golang的企业微服务,自我感觉到此才算学会了负起责任,真的承担了TeamLeader的责任与架构师工作,从追求各种代码的特性和代码的优雅,转到了追求设计的优雅,并开始系统研究各种中间件。

  • 2018年-至今: 架构探索期。此期间的职位头衔是基础服务架构师、技术专家和架构师Manager。得益于知识的全面性和折腾的各种经验,主要做了几件事。一是从0到1的基础服务平台建设,二是解决中型SaaS系统开发维护中的各种问题,三是设计各种微服务系统并给咨询方出解决方案。技术方向一个是系统设计,另一个是折腾K8S和DevOps与测试的各种问题。折腾的方向似乎升级到了战略性,IoT、AI、湖仓一体、区块链、元宇宙。然后惊奇的发现技术栈竟然挺吻合,阻碍没想象中的大,大概得益于多年用Linux工作的基础和什么都折腾一下的经历。

思维方式 #

  • 业务经验很重要,各个行业的经验要小心全面的积累下来,甚至比技术更重要一些,因为它更贴近实用,也有更长久的不变性。
  • 技术实现方面设计是主题,可能设计能力是评价一个工程师最主要的方面,当然前提是有写可靠代码的能力。
  • 基础知识是演绎的关键,凡是别人说学这个有什么用的,一定要抓紧学一学。
  • 靠工具解决问题
    • 大型系统的提效,完善测试是关键。可能这就是所说的抓手,也是降本增效的着力点。它前边直接对应需求,后边促进运维体系和开发体系。并本身体现出系统质量。
    • 企业知识库是核心,体现知识的结构化和历史变化,降低了沟通成本并提供了信息一致性保障。
  • 持续关注业界解决方案,有渠道无遗漏的过重要信息,保持敏感性。

后记 #

互联网公司陷入增长瓶颈

  • 但AI的应用发展日新月异
  • 其实元宇宙的概念很好的统一了现在科技应用的增长点,创造了需求
  • 当然马斯克代表的多行星发展的方向暂时与我没有关系
  • 量子计算似乎也有了可工业化的迹象 我首先要避免的是变成修蒸汽机的人–只会解决曾经的问题。其次要成为完整的人,在技术外的场景也寻求人生的意义。