AI时代的移动技术革新:饿了么API Everything的实践

zkbhj 发表了文章 • 0 个评论 • 2028 次浏览 • 2018-01-05 14:01 • 来自相关话题

什么是API Everything?
将SOA服务接口适配各端进行访问
 
遇到下面这些问题怎么解决?
web API层写业务逻辑们甚至直接访问数据库;web api的风格各异,restful的,json-rpc的,api设计规范?api文档过时,不能反映代码情况;前后端开发不同步,前端等后端;
 
产品技术方案原则 
稳定性、性能、高可用、容错性DevOps中心更“懒”,代码及文档(自动生成),用户体验,功能需求
 
生命周期
API开发(文档、mock)-> API管理(访问权限、限流、灰度) -> API网关服务(鉴权认证、协议转换) -> API运维(监控管理、部署扩容)
 
产品规划
API PortalStargate ClusterMock ServerAPI Rebot
 
系统交互
 
Stargate Cluster技术架构
API Portal 自动化文档
 
 
  查看全部
什么是API Everything?
将SOA服务接口适配各端进行访问
 
遇到下面这些问题怎么解决?
  • web API层写业务逻辑们甚至直接访问数据库;
  • web api的风格各异,restful的,json-rpc的,api设计规范?
  • api文档过时,不能反映代码情况;
  • 前后端开发不同步,前端等后端;

 
产品技术方案原则 
  • 稳定性、性能、高可用、容错性
  • DevOps中心
  • 更“懒”,代码及文档(自动生成),用户体验,功能需求

 
生命周期
API开发(文档、mock)-> API管理(访问权限、限流、灰度) -> API网关服务(鉴权认证、协议转换) -> API运维(监控管理、部署扩容)
 
产品规划
  • API Portal
  • Stargate Cluster
  • Mock Server
  • API Rebot

 
系统交互
 
Stargate Cluster技术架构
API Portal 自动化文档
 
 
 

PHP大会笔记:如何无痛解决MySQL扩展性和一致性问题

zkbhj 发表了文章 • 0 个评论 • 2130 次浏览 • 2017-06-11 16:10 • 来自相关话题

PHP大会笔记:PHP安全开发,从白帽角度做安全

zkbhj 发表了文章 • 0 个评论 • 2180 次浏览 • 2017-06-11 15:25 • 来自相关话题

演讲大纲WEb安全现状
常见漏洞分析
如何提升系统安全性
 
安全案例
案例一:17岁小孩儿黑产月入8000+?QQ线报群。
案例二:对公网开放3306端口的服务器数量是180万之多。
 
WEB漏洞的特征
常规漏洞、逻辑漏洞、第三方通用漏洞
 
常规漏洞:代码注入、文件包含、CSRF、SQL注入、XSS跨站、脚本
本地文件包含漏洞





远程文件包含龙洞





 
避免?
open_basedir限制活动范围
过滤点斜杠反斜杠
禁止服务器远程包含文件
 
PHP代码注入如何防范?
不要把参数直接存储位可以运行的代码
尽量不要使用eval执行接收的参数
 
PHP安全开发扩展Taint,会提示未对入餐进行校验的部分进行warning提示
 
常规漏洞的特点
参数过滤不严谨
可以通过扫描器扫描出来
代码层面的bug
 
 
业务逻辑漏洞
验证码突破
业务授权安全
业务流程扰乱等
 
业务逻辑漏洞案例
平行越权漏洞案例:A能看到B的订单信息
垂直越权漏洞案例:普通用户进入管理员后台
 
越权逻辑漏洞防范
前后台的查询尽量不用同一个查询接口
尽量不要暴露出连续ID如订单号
越权不仅限于展示,修改数据也会出现
 
通用型漏洞:第三方开源系统的漏洞
 
如何防范漏洞?
SDL:安全开发生命周期,来自如微软,用于office和Windows之后,安全漏洞减少。
 
提升web应用的安全性,减少应用的安全漏洞数量
降低安全漏洞的修复成本





PPT下载:https://github.com/devlinkcn/ppts_for_php2017/blob/master/PHP%E5%AE%89%E5%85%A8%E5%BC%80%E5%8F%91_%E4%BB%8E%E7%99%BD%E5%B8%BD%E8%A7%92%E5%BA%A6%E5%81%9A%E5%AE%89%E5%85%A8--%E6%B1%A4%E9%9D%92%E6%9D%BE.pdf
  查看全部
演讲大纲WEb安全现状
常见漏洞分析
如何提升系统安全性
 
安全案例
案例一:17岁小孩儿黑产月入8000+?QQ线报群。
案例二:对公网开放3306端口的服务器数量是180万之多。
 
WEB漏洞的特征
常规漏洞、逻辑漏洞、第三方通用漏洞
 
常规漏洞:代码注入、文件包含、CSRF、SQL注入、XSS跨站、脚本
本地文件包含漏洞

WechatIMG760.jpeg

远程文件包含龙洞

WechatIMG770.jpeg

 
避免?
open_basedir限制活动范围
过滤点斜杠反斜杠
禁止服务器远程包含文件
 
PHP代码注入如何防范?
不要把参数直接存储位可以运行的代码
尽量不要使用eval执行接收的参数
 
PHP安全开发扩展Taint,会提示未对入餐进行校验的部分进行warning提示
 
常规漏洞的特点
参数过滤不严谨
可以通过扫描器扫描出来
代码层面的bug
 
 
业务逻辑漏洞
验证码突破
业务授权安全
业务流程扰乱等
 
业务逻辑漏洞案例
平行越权漏洞案例:A能看到B的订单信息
垂直越权漏洞案例:普通用户进入管理员后台
 
越权逻辑漏洞防范
前后台的查询尽量不用同一个查询接口
尽量不要暴露出连续ID如订单号
越权不仅限于展示,修改数据也会出现
 
通用型漏洞:第三方开源系统的漏洞
 
如何防范漏洞?
SDL:安全开发生命周期,来自如微软,用于office和Windows之后,安全漏洞减少。
 
提升web应用的安全性,减少应用的安全漏洞数量
降低安全漏洞的修复成本

WechatIMG780.jpeg

PPT下载:https://github.com/devlinkcn/ppts_for_php2017/blob/master/PHP%E5%AE%89%E5%85%A8%E5%BC%80%E5%8F%91_%E4%BB%8E%E7%99%BD%E5%B8%BD%E8%A7%92%E5%BA%A6%E5%81%9A%E5%AE%89%E5%85%A8--%E6%B1%A4%E9%9D%92%E6%9D%BE.pdf
 

PHP大会笔记:Swoole2.0原生协程高性能开发实践

zkbhj 发表了文章 • 0 个评论 • 3995 次浏览 • 2017-06-11 13:34 • 来自相关话题

Swoole2.0原生携程探索经验
PHP的并发IO之路





Yield携程





Yield问题




原生协程



















Swoole小而美,
提供异步的IO高性能
原生携程能力
通用原子能力封装
 
连接池





 
频率监测




过载保护





服务监控















QQ看点优化经验分享




















  查看全部
Swoole2.0原生携程探索经验
PHP的并发IO之路
WechatIMG549.jpeg


Yield携程
WechatIMG550.jpeg


Yield问题
WechatIMG560.jpeg

原生协程
WechatIMG570.jpeg


WechatIMG580.jpeg


WechatIMG590.jpeg


WechatIMG600.jpeg

Swoole小而美,
提供异步的IO高性能
原生携程能力
通用原子能力封装
 
连接池

WechatIMG610.jpeg

 
频率监测
WechatIMG620.jpeg

过载保护

WechatIMG630.jpeg

服务监控

WechatIMG640.jpeg


WechatIMG650.jpeg


WechatIMG660.jpeg

QQ看点优化经验分享

WechatIMG670.jpeg


WechatIMG680.jpeg


WechatIMG690.jpeg


WechatIMG700.jpeg

 

PHP大会笔记:云原生的MySQL 托管服务架构及读写分离的优化

zkbhj 发表了文章 • 0 个评论 • 1899 次浏览 • 2017-06-11 13:07 • 来自相关话题

DevOps 开发工程师运维
 
云原生的MySQL PaaS服务:高可用高可靠




 
DevOps 开发工程师运维
 
云原生的MySQL PaaS服务:高可用高可靠
WechatIMG710.jpeg

 

PHP大会笔记:MySQL 5.7 优化不求人

zkbhj 发表了文章 • 0 个评论 • 2245 次浏览 • 2017-06-10 14:48 • 来自相关话题

MySQL 5.7.17版本16年12月发布。支持group replication。





发展路线图
 





性能对比图





InnoDB引擎





引擎对比





buffer pool功能
 
 
 
  查看全部
MySQL 5.7.17版本16年12月发布。支持group replication。

WechatIMG400.jpeg

发展路线图
 

WechatIMG401.jpeg

性能对比图

WechatIMG402.jpeg

InnoDB引擎

WechatIMG439.jpeg

引擎对比

WechatIMG404.jpeg

buffer pool功能
 
 
 
 

PHP大会笔记:复杂PHP系统性能瓶颈问题排查和优化

zkbhj 发表了文章 • 0 个评论 • 2336 次浏览 • 2017-06-10 14:47 • 来自相关话题

陌陌如何做api性能优化?
 
代码分析
性能个好的语法
sql优化
 
优化重点接口 --》 优化有问题的代码
优化语言层面 --》 优化外部调用
重构代码 --》 重构服务
 
通过性能检测工具xhprof数据进行筛选、统计,分析出系统瓶颈。
 
数据筛选和统计
 
  查看全部
陌陌如何做api性能优化?
 
代码分析
性能个好的语法
sql优化
 
优化重点接口 --》 优化有问题的代码
优化语言层面 --》 优化外部调用
重构代码 --》 重构服务
 
通过性能检测工具xhprof数据进行筛选、统计,分析出系统瓶颈。
 
数据筛选和统计
 
 

PHP大会笔记:聊聊稳定性保障那些事儿

zkbhj 发表了文章 • 0 个评论 • 1874 次浏览 • 2017-06-10 14:47 • 来自相关话题

常见稳定性问题有哪些?
1、环境不一致问题
2、服务未隔离
3、服务化后,调用关系复杂,问题排查比较苦难
 
 
稳定性保障的原则
1、环境一致性原则(开发,测试,准生产,线上)
 需要注意的因素,版本(PHP版本、服务器版本等),配置(无特殊化配置),路径(应用、日志等)
2、环境隔离原则
物理隔离:两个服务部署在两台机器上,尽量少多个服务部署在同一台机器上
服务隔离:A调用B服务,要有措施去处理,A方如超时(防止拖挂应用),熔断(类似于保险丝,当要调用的服务负载过高,不可用时,自动kill自己),B方则可以进行限流。
 
有效监控原则
监控项目有系统级和业务层面
1、系统:CPU、Disc、Memory、NetWork、Process……
2、业务:ErrorLog、Data Status……
 
监控策略
监控可用性
不只是监控服务是否存在,更重要的是监控服务是否可用
 
报警策略
不要让报警称为骚扰
1、不要让报警项设置的太敏感
2、不同级别不同的报警方式
3、报警内容要有意义,如所在机房、机柜、时间、问题描述等
 
充分预案原则
面向问题预案
1、想一想都会有哪些问题
2、所使用的任何服务都不可靠
3、服务不可用时,如何处理
 
预案策略
1、设定超市,避免过长等待
2、默认数据,服务不可用时使用
3、预案尽量平台化、自动化执行
 
冲分预案原则
预案验证
1、周期性验证
2、模拟服务不可用,封端口
3、查看服务表现是否符合预期
 
追根溯源原则
验证
 
恢复服务
常规操作:摘机、重启、回滚、降级
 
保留现场
目的是为了获取数据
系统内部数据,系统外部监控、保留运行状态
 
问题排查
数据+知识经验+工具 = 问题排查

常见的问题排查工具

案例
1、有一个PHP漏洞引起的环境性一致性问题
multipart/form-data 远程DOS漏洞
 
环境各种不一致:PHP版本、下线方式、配置文件、文件路径
 
改造流程:
RPM打包管理、服务器控制脚本(控制上下线方式) --》 公司yum源
为什么rpm? 打包方便、安装简便、解决依赖关系
 
最终Docker化,保障机器无状态
 
2、服务隔离的案例
PC、APP





 
 
3、其他隔离
读写分离、SQL分离、慢SQL隔离
 
 
如何设计服务调用链路分析系统?
链路可追踪





  查看全部
常见稳定性问题有哪些?
1、环境不一致问题
2、服务未隔离
3、服务化后,调用关系复杂,问题排查比较苦难
 
 
稳定性保障的原则
1、环境一致性原则(开发,测试,准生产,线上)
 需要注意的因素,版本(PHP版本、服务器版本等),配置(无特殊化配置),路径(应用、日志等)
2、环境隔离原则
物理隔离:两个服务部署在两台机器上,尽量少多个服务部署在同一台机器上
服务隔离:A调用B服务,要有措施去处理,A方如超时(防止拖挂应用),熔断(类似于保险丝,当要调用的服务负载过高,不可用时,自动kill自己),B方则可以进行限流。
 
有效监控原则
监控项目有系统级和业务层面
1、系统:CPU、Disc、Memory、NetWork、Process……
2、业务:ErrorLog、Data Status……
 
监控策略
监控可用性
不只是监控服务是否存在,更重要的是监控服务是否可用
 
报警策略
不要让报警称为骚扰
1、不要让报警项设置的太敏感
2、不同级别不同的报警方式
3、报警内容要有意义,如所在机房、机柜、时间、问题描述等
 
充分预案原则
面向问题预案
1、想一想都会有哪些问题
2、所使用的任何服务都不可靠
3、服务不可用时,如何处理
 
预案策略
1、设定超市,避免过长等待
2、默认数据,服务不可用时使用
3、预案尽量平台化、自动化执行
 
冲分预案原则
预案验证
1、周期性验证
2、模拟服务不可用,封端口
3、查看服务表现是否符合预期
 
追根溯源原则
验证
 
恢复服务
常规操作:摘机、重启、回滚、降级
 
保留现场
目的是为了获取数据
系统内部数据,系统外部监控、保留运行状态
 
问题排查
数据+知识经验+工具 = 问题排查

常见的问题排查工具

案例
1、有一个PHP漏洞引起的环境性一致性问题
multipart/form-data 远程DOS漏洞
 
环境各种不一致:PHP版本、下线方式、配置文件、文件路径
 
改造流程:
RPM打包管理、服务器控制脚本(控制上下线方式) --》 公司yum源
为什么rpm? 打包方便、安装简便、解决依赖关系
 
最终Docker化,保障机器无状态
 
2、服务隔离的案例
PC、APP

WechatIMG321.jpeg

 
 
3、其他隔离
读写分离、SQL分离、慢SQL隔离
 
 
如何设计服务调用链路分析系统?
链路可追踪

WechatIMG376.jpeg

 

PHP大会笔记:PHP在机器学习上的应用和云深度学习平台的架构设计与实现

zkbhj 发表了文章 • 0 个评论 • 2165 次浏览 • 2017-06-10 14:03 • 来自相关话题

咳咳,计算机课开始了……
 机器学习










ML、DL引用
 
图像、语音、文本




 
如何实现?
什么是机器学习?
从数据中抽取规律,用于提取有用信息,解释数据、预测未来
 
机器学习过程:
数据预处理(去噪/归一化)
训练模型
评估模型(MSE/F1Score/AUC )
应用模型
 
机器学习算法的应用




 
神经网络




机器学习框架对神经网络的实现 -- TensorFlow





 
TensorFlow的编程模型 -- 数据流图






TensorFlow的架构




PHP-ML(终于到重点了)














就到这吧,,,,,结束! 查看全部
咳咳,计算机课开始了……
 机器学习

WechatIMG00.jpeg


WechatIMG01.jpeg

ML、DL引用
 
图像、语音、文本
WechatIMG019.jpeg

 
如何实现?
什么是机器学习?
从数据中抽取规律,用于提取有用信息,解释数据、预测未来
 
机器学习过程:
数据预处理(去噪/归一化)
训练模型
评估模型(MSE/F1Score/AUC )
应用模型
 
机器学习算法的应用
WechatIMG200.jpeg

 
神经网络
WechatIMG201.jpeg

机器学习框架对神经网络的实现 -- TensorFlow

WechatIMG203.jpeg

 
TensorFlow的编程模型 -- 数据流图

WechatIMG204.jpeg


TensorFlow的架构
WechatIMG205.jpeg

PHP-ML(终于到重点了)
WechatIMG206.jpeg


WechatIMG207.jpeg


WechatIMG208.jpeg

就到这吧,,,,,结束!

PHP大会笔记:瓜子的架构变迁

zkbhj 发表了文章 • 0 个评论 • 3005 次浏览 • 2017-06-10 11:55 • 来自相关话题

石器时代



















蒸汽时代










EP的实践工作
代码的艺术





单测试
























服务的解耦





 
前后端分离





 
目标和展望
平台化、服务化、智能化















  查看全部
石器时代
WechatIMG16.jpeg


WechatIMG17.jpeg


WechatIMG1.jpeg


WechatIMG21.jpeg

蒸汽时代

WechatIMG31.jpeg


WechatIMG41.jpeg

EP的实践工作
代码的艺术

WechatIMG51.jpeg

单测试
WechatIMG67.jpeg


WechatIMG777.jpeg


WechatIMG88.jpeg


WechatIMG99.jpeg


WechatIMG110.jpeg

服务的解耦

WechatIMG111.jpeg

 
前后端分离

WechatIMG123.jpeg

 
目标和展望
平台化、服务化、智能化

WechatIMG133.jpeg


WechatIMG144.jpeg


WechatIMG155.jpeg