张辉清 小团队构建大网站之技术选型

文字内容
1. 小团队构建大网站之技术选型 张辉清 2019-7-12
4. l 勤劳能致富吗?勤劳只够温饱 l 发财靠什么?WTO、房子、网络 l 今年要不要买房? 影响因子:政策、土地、人口、房价曲线、房企、 M2货币、利息、断供潮、经济形势 l 这个决策容易吗?
5. 选择大于努力,选择难于努力 技术与技术选型亦是如此,技术选型更高阶
6. 技术人的三次蝶变 l 从菜鸟到首架:技术和技术体系搭建,技术人的技术蝶变 l 从首架到CTO:技术与业务的融合、技术价值、业务生命周期、技术人使命, 技术人的管理蝶变 l 从CTO到CEO:技术与产业、产业和企业生命周期、下一个技术时代、新技术 选择,技术人的领导力蝶变 技术选型需要哪些信息支撑?
7. 程序 •程序 = 算法+数据结构 •价值:问题 --> 数据结构+算法 = 程序-->解决问题 •算法:应用、分布式、人工智能(神经网络算法) •数据结构:文件、关系型数据库、NoSQL、大数据、区块链
8. 技术体系搭建 •框架:基础中间件、地基或承重墙 •架构:技术的组织、技术与业务的结合 •公共应用:用户、单点SSO、聚合支付、通讯CTI •业务产品:机票、酒店、旅游,核心业务线,公司存在的价值 •生产力:JIRA、WIKI、发布工具、云效/TAPD,提升研发的效能
9. 框架 •集中式缓存:就近处理,Redis •消费队列:排列进行,RabbitMQ •任务调度:job、批量执行 •度量工具:Metrics,应用监控 •集中式日志:ELK、集中式日志、应用日志 •微服务:MSA,分工合作 •企业搜索:ES,专业搜索工具、LIKE/大数据 •分布式协调器:ZK/ETCD,高可靠数据一致性,配置服务发现 •小工具:ORM、包管理工具、IOC工具、对象映射
10. 架构 •企业总体架构:应用、数据、业务架构 •单个项目架构:表、模块、接口 •应用分层:统一公司应用分层
11. 统一应用分层 Presentation Layer(MVC) BookingMVC ViewModel Application Layer AppService.BookingMVC Domain Layer DomainService Interface DomainService DomainModel Repository Interface Repository Layer DataService DataModel ProductDB Repository WS Agent SOA/API Infrastructure Layer AppService.BookingWS Memcached/Log/MetricsRedis/MQ BookingWS DTO
12. 公共应用 •单点登陆:Token、JWT •聚合支付:企业支付网关,支付宝/微信聚合在一起,对账结算 •通讯:SMS、邮件、短信
13. 技术体系—应用结构 FX 国内 国际 Booking Booking xx 缓存 Order Order xx Job Product Product MQ Connector Connector Log 新业务 Metrics Platform Payment Insurance User Passport Portal CMS CRM Dashboard
14. 技术体系—分层结构 Applications(应用) Online Offline Mobile Open Api BEM 财务结算服务 公共服务 (平台) Job Metrics Security Operations Services(服务层) 预订服务 订单处理服务 产品供应服务 Framework(基础框架) MQ Cache Logging DC(数据中心) Network Server Database laaS、PaaS、Saas
15. 技术体系—俯视图 功能 运营商 产品管理 订单服务 用户管理 结算管理 系统管理 分析报表 操作 供应商 供应 产品发布 营销 查询 预订 订单处理 订单 产品预订 网站门户 订单处理 接口分销 常旅客 APP 系统管理 H5 用户/雇员 服务 生产 系统管理 资金 风控 第三方支付/ 银行 基础数据 结算 接口直连 用户关系 开发商 采购渠道 支付 数据 产品 采购商 计算 存储 监控 网络 维护 安全 监控和管理 中间件
16. 技术体系—企业数据
17. 技术有什么用? •提高效率:降低成本 •增加收益:APP/网站就是门店,销售人员就是客服 •营销价值:新技术带来新流量,小程序案例 •管理价值:制度化=》工具化=》系统化,管理思路的具象化
18. 业务阶段与技术诉求 •业务:初创期=》发展期=》成熟期=》衰退期 •诉求:快速验证=》功能多=》精细化运营=》自动化 •技术:快=》多=》好=》省 •架构:单体=》垂直=》微服务=》自动化AI
19. 业务阶段与技术架构 业务: 初创期 发展期 成熟期 衰退期 技术: 单体 垂直 微服务 自动化/AI
20. 技术为业务服务 市场 运营 业务 业务是什么? • 市场不是业务,运营不是业务,技术也不 是业务。 • 业务不是业务方,产品不是产品经理 技术
21. 技术有什么用? • 技术人员的首要任务是实现公司业务目标,之后才是配套的技术目标和方法 以及技术追求。 • 平衡好应该做的,能做的,想做的。 • 技术本身没有价值,只有做出产品才有价值。
22. 仰望星空,技术与产业发展
23. 技术与产业
24. 企业和产业生命周期
25. 下一个技术时代 IT时代变化,背后的四种力量:交互、连接、计算、数据 PC&LAN 互联网 移动互联网 智能互联网 交互层 GUI图型界面 www流览器 手机 IoT、VR/AR/小程序 连接层 LAN局域网 Internet拨号上网/宽带 3G/4G 5G 计算层 CPU摩尔定律 服务器集群、分布式 云计算 AI 数据层 文件型 关系型数据库 大数据 NoSQL 区块链 时代 1980 1997 2010 2018 关键应用技术 Windows、高级语 言 HTML Android, IOS ? 关键基础技术 微机&网络 TCP/IP、WWW 手机、电池 各种智能设备 越是上层,变化越快,用户感知越强。例:小程序、5G、区块链
26. IT进化的四种力量 连接 数据 计算 交互 数据 计算 交互 数据是新时代的生产资料 计算是新时代的生产力 交互和连接是新时代的生产关系
27. 新技术的成熟演化
28. 技术趋势 2019重要技术趋势有哪些? • 市场不是业务,运营不是自然语言处理NLP • 5G • 机器视觉 • 区块链 • 柔性显示 • VR/AR • 物联网 • 3D打印
29. 关于技术选型 关于技术选型
30. 语言选择 •业务系统的第一语言即主语言,如母语(成熟、稳定、长期) •业务系统尽量使用主语言,其它可选用当前恰当,然后对外接口 •例子:java,第二语言python、Golang、node.js、 C# •规模化、工具化、自动化,有利于工程化
31. 小团队构建大网站 •框架:自己商业/业务的重点就是技术的重点 •技术体系:框架、架构、公共应用、业务、开发效率 •借助力量:充分利用开源 充分运用Paas拉近与大企业的技术距离 选择适合自己的云提供商 •适当使用新技术、借助新媒体,寄托大平台 •核心自建、避免关键技术依赖
32. 怎么做技术选型 •技术判断:问题目标->影响因素->识别利弊/风险->整体最优/次优 •影响因素:技术趋势、行业趋势、业务阶段、技术团队、未来趋势、切换成本 •理性决策:理性决策源于理性的看待每个方案的利弊 自己想清楚:听多数人建议,和少数人商量,然后自己做决定 5W2H: what、why、who、where、when、how、how much
33. 案例
34. 案例1:小程序项目 •时间: 2017年5月 •背景: 2016年12月9号小程序开始,2017年5月小程序低潮期 参加外部会议,听听外面的世界 不断推出新特性和功能 都在观望,消极 •选择: 营销和社区传播:以前是图片,现在直接可预订 用户体念,相对于H5 新技术带来新机会,新来者要借助新流量 •效果:新的一批用户,问得最多 • 小结:我们当时是那么的胆小,现在又来得那么快
35. 案例2:区块链项目 •时间: 2018年3月 •问题: 业务遇到瓶颈 看看新机会,区块链很火 •方案: 外部调研3家,技术会议2次 确定自建,Fabirc+以太坊 面对未知,工程客户架构知识通用, CouchDB/LevelDB •效果: 申请专利,大象积分旅游行业通用积分兑换 不死之身,绑定成熟业务,成功落地但未大规模推广 •小结: 当时世界那么疯狂,现在那么凄凉 经典互联网,分析过去知未来
36. 案例3:技改项目 •时间: 2014年10月 •问题: 单体应用,技术陈旧 代迭慢,问题不断 •方案: 技术改造,选型清单 尊重历史:业务和技术的继承性 尊重团队:.net团队 明确重点:业务重构和服务化 •效果: 技术选型指明方向,集中力量一起往前走 经验可复用,分享成长 时间解决时间,旧版维护成本降低
37. 案例4:云选型和云迁移项目 •时间: 2016年1月 •问题: 集团集中管控、子公司快速发展 传统IDC问题不断、扩展不便、处理不及时 •方案: 原运维团队对云的认同不够 送出去培训,开始接纳,但能力够、意愿不强 招一个运维负责人,让其主导,我协助 •结果: 招人->选型->迁移->搞定(安全稳定) 故障减少、可扩展、响应及时 选对人事成功一半,CTO风险低
38. 技术选型价值 •旧项目: 提前指明技术方向 集中力量一起往前走 经验复用,考虑历史 •新技术: 未知是机会也是风险 新流量、新机会、营销价值 高层知识通用:客户、工程等 小程序项目、区块链项目 •小结: 选型是技术的判断力,不确定性的累积表达 时间是第一因素,此时此刻,事后看简单 机会与风险并存,新老搭,3/7比例
41. 你的价值源于你的选择, 谢谢!