- 博客(47)
- 收藏
- 关注
容器私有云和持续发布都要解决哪些基础问题 第一集
郑昀编著,文字资料来自于张帆、白俊华、刘飞宇以及网络资料 创建于2015/10/21 最后更新于2015/10/29关键词:Docker,容器,持续集成,持续发布,CI,私有云本文档适用人员:广义上的技术人员提纲:集装箱还是卷挂载?Host Networking 还是 Bridge Networking?容器要固定IP吗?容器内部如何获取宿主机的IP?...
2015-11-05 09:54:59
146
技术高手如何炼成
郑昀 创建于2015/6/30 最后更新于2015/10/13关键词:成长,知识体系,学习金字塔,论坛,博客,RCA,分享会本文档适用人员:技术人员 面试的时候,我会问面试者,你日常如何构建自己的知识体系,如何让自己更高更快更强?多数工程师并没有深入地思考过这个问题,基本上是零敲碎打,随机性大。本着不能让你白来一趟的精神,好为人师的我会娓娓道来: 第一阶...
2015-11-02 22:29:26
213
电商交易背景知识合集第一季
郑昀编纂 基于网络资料 创建于2015/9/7 最后更新于2015/9/7特别感谢知乎梁川、天顺等知乎网友的精彩答案关键词:在线支付,POS,第三方支付,清算,银企直连,快捷支付,对公对私,支付宝,对账,App本文档适用人员:交易领域的产品研发人员提纲:银联一些错综复杂的关系银联是什么银联商务是什么快捷支付绕过银联了吗能通过卡号判断是对公账户或...
2015-09-08 17:53:34
472
真刀真枪压测:基于TCPCopy的仿真压测方案
郑昀 基于刘勤红和石雍志的实践报告 创建于2015/8/13 最后更新于2015/8/19关键词:压测、TCPCopy、仿真测试、实时拷贝流量本文档适用人员:技术人员提纲:为什么要做仿真测试TCPCopy是如何工作的实作:仿真测试的拓扑实作:操作步骤可能会遇到的问题ip_conntrack少量丢包离线重放不提取7层信息观测的性...
2015-09-08 17:52:01
188
安全基础教育第二季第1集:屡战屡败的找回密码
郑昀 创建于2015/5/19 最后更新于2015/8/7关键词: Web安全、系统安全、Web开发、找回密码、重置密码本文档适用人员:广义的技术人员提纲:堡垒是从内部攻破的员工无知者无畏运维配置暴露细节后台不设防常犯常新,屡战屡败找回密码图形和短信验证码平行权限MD5等于明文处处留心皆学问表单被篡改...
2015-09-08 17:49:42
234
从宏观到微观——天机与鹰眼联手
郑昀 创建于2015/6/23 最后更新于2015/6/25关键词:Google Dapper、窝窝Tracing、鹰眼、天机、性能、调用链分析、散点图、瀑布图本文档适用人员:技术人员提纲:Google Dapper是怎么做的天机里如何从宏观看到微观0x00,Google Dapper的交互方式 Google 的 Dapper 是淘宝鹰眼...
2015-07-15 12:20:17
339
挖坑和踩雷
郑昀 创建于2015/2/6 最后更新于2015/7/8关键词:挖坑、埋雷、踩雷、RCA、对题集本文档适用人员:技术人员引子在讲挖坑之前,先引述台湾作家侯文咏讲的一个真实的故事。 话说上世纪九十年代,为了迎接两岸三通的商机,台湾一窝蜂成立了很多小航空公司。注意几个关键词,大干快上,市场卡位,就像我们搭建技术体系一样呼啦啦大厦起。在这样的背景下...
2015-07-13 14:51:56
138
我们过去几年做对了哪些事
郑昀 创建于2014/11/10关键词:财富观、对题集、一票否决、业务收敛、持续集成、预研、培训、公开演讲、传承本文档适用人员:研发干部提纲:研发财富观——问题和事故都是财富挤出人力做预研课题减少痛苦和抱怨——持续集成QA一票否决风险收敛——关键业务逻辑收敛到业务中心技术分享和职场培训并行 0x00,我们一定做对了什么,当然,也做...
2015-06-28 11:58:39
130
安全基础教育第一季:堡垒是从内部攻破的
郑昀 创建于2015/4/10 最后更新于2015/4/28关键词: Web安全、系统安全、社工、社会工程学、弱密码、github、svn本文档适用人员:广义的技术人员提纲:堡垒是从内部攻破的员工无知者无畏运维配置暴露细节后台不设防常犯常新,屡战屡败处处留心皆学问0x00. 背景: 技术团队第一忙于业务逻...
2015-06-28 11:57:18
259
#研发解决方案介绍#基于StatsD+Graphite的智能监控解决方案
郑昀 基于李丹和刘奎的文档 创建于2014/12/5关键词:监控、dashboard、PHP、graphite、statsd、whisper、carbon、grafana、influxdb、Python本文档适用人员:研发和运维员工一,监控平台要做到什么程度?为什么要自己做? 运维监控满满都是着各种开源系统以及它们的 Dashboard:Za...
2015-01-23 09:53:30
370
#研发中间件介绍#定时任务调度与管理JobCenter
郑昀 最后更新于2014/11/11关键词:定时任务、调度、监控报警、Job、crontab、Java本文档适用人员:研发员工 没有JobCenter时我们要面对的: 电商业务链条很长,业务逻辑也较为复杂,需要成百上千种定时任务。窝窝的大多数定时任务其实调用的是本地或远端 Java/PHP/Python Web Service。如果没有一个统一的调...
2014-12-27 19:59:33
301
#数据技术选型#即席查询Shib+Presto,集群任务调度HUE+Oozie
郑昀 创建于2014/10/30 最后更新于2014/10/31 一)选型:Shib+Presto应用场景:即席查询(Ad-hoc Query)1.1.即席查询的目标使用者是产品/运营/销售运营的数据分析师;要求数据分析师掌握查询SQL查询脚本编写技巧,掌握不同业务的数据存储在不同的数据集市里;不管他们的计算任务是提交给 数据库 还是 Hadoop,计算时间都...
2014-12-22 13:25:40
246
#研发解决方案介绍#Recsys-Evaluate(推荐评测)
郑昀 基于刘金鑫文档 最后更新于2014/12/1关键词:recsys、推荐评测、Evaluation of Recommender System、piwik、flume、kafka、storm、redis、mysql本文档适用人员:研发 推荐系统可不仅仅是围着推荐算法打转 先明确一下,我们属于工业领域。很多在学术论文里行之有效的新特奇算法,在工...
2014-12-17 14:30:41
85
#研发解决方案介绍#Tracing(鹰眼)
郑昀 最后更新于2014/11/12关键词:GoogleDapper、分布式跟踪、鹰眼、Tracing、HBase、HDFS、本文档适用人员:研发分布式系统为什么需要 Tracing? 先介绍一个概念:分布式跟踪,或分布式追踪。 电商平台由数以百计的分布式服务构成,每一个请求路由过来后,会经过多个业务系统并留下足迹,并产生对各种Cache或DB的访...
2014-12-17 14:28:13
144
原创 #研发中间件介绍#异步消息可靠推送Notify
郑昀 基于朱传志的设计文档 最后更新于2014/11/11关键词:异步消息、订阅者集群、可伸缩、Push模式、Pull模式本文档适用人员:研发 电商系统为什么需要 NotifyServer? 如子柳所说,电商系统『需要两种中间件系统,一种是实时调用的中间件(淘宝的HSF,高性能服务框架)、一种是异步消息通知的中间件(淘宝的Notify)』。那么...
2014-12-16 09:00:13
155
原创 #研发解决方案介绍#基于持久化配置中心的业务降级
郑昀 最后更新于2014/4/18关键词:业务降级,配置中心,基本可用性,diamondA.业务降级的背景知识: 淘宝就双十一课题曾经讲过:『所谓业务降级,就是牺牲非核心的业务功能,保证核心功能的稳定运行。简单来说,要实现优雅的业务降级,需要将功能实现拆分到相对独立的不同代码单元,分优先级进行隔离。在后台通过开关控制,降级部分非主流程的业务功能,减轻系统依赖和...
2014-12-16 08:59:37
105
#研发解决方案介绍#IdCenter(内部统一认证系统)
郑昀 基于朱传志的设计文档 最后更新于2014/11/13关键词:LDAP、认证、权限分配、IdCenter、本文档适用人员:研发 曾经一个IT内部系统配一套帐号体系和授权 线上生产环境里,技术人员需要登录许多内部系统,如:memcached/redis/mongodb 的管控系统譬如我得有个把线上某个 memcached...
2014-12-15 14:01:45
157
#研发解决方案介绍#基于ES的搜索+筛选+排序解决方案
郑昀 基于胡耀华和王超的设计文档 最后更新于2014/12/3关键词:ElasticSearch、Lucene、solr、搜索、facet、高可用、可伸缩、mongodb、SearchHub、商品中心本文档适用人员:研发和运维提纲:曾经的基于MongoDB的筛选+排序解决方案MongoDB方案的缺陷看中了搜索引擎的facet特性看中了E...
2014-12-15 13:59:57
143
职场的真相——七句话
郑昀 创建于2014/9/1 最后更新于2014/9/18关键词:职场,规则,错题集,结果,救世主,纠结本文档适用人员:中层干部提纲:做事有始有终没有苦劳,只有功劳不犯同样错误职场当战场,上级是司令从来就没有什么救世主向功课好的学生学习错了就是错了这七条是我的工作口头禅。一)做事有始有终 何谓有始有终? 案例一:生产环境里由BUG引发了脏数据、造成了损失,...
2014-10-08 17:00:18
137
被小伙伴们吓哭了:可怕的命令
郑昀 创建于2014/5/19最后更新于2014/5/22友情赠送一篇:被小伙伴们蠢哭了的那些事儿:找回密码篇 (2014-01-13) 杀手级命令:rm -rf2014-5-17-某软件公司在生产环境误删数据库文件悲剧一:妹子在生产服务器上本意删除Oracle,但脚本中有一句:rm -rf $ORACLE_BASE/*不幸变量 ORACLE_BASE 未...
2014-05-26 16:20:19
115
被小伙伴们蠢哭了的那些事儿:找回密码篇
郑昀 创建于2014-01-12;最后更新于2014-01-13. 找回密码功能是漏洞传统重灾区,下面列出两个经典错误点,请引以为戒吧Web开发工程师们!Web安全:一)以为用户不会抓包不会看源码不会分析表单参数,HTML文档和表单里想写啥就写啥1)某手网:+手机App的忘记密码功能:首先,通过抓包分析,发现密码重置接口可以Web访问;其次,填入手机...
2014-01-13 18:52:28
79
[慢查优化]慎用MySQL子查询,尤其是看到DEPENDENT SUBQUERY标记时
案例梳理时间:2013-9-25写在前面的话:在慢查优化1和2里都反复强调过 explain 的重要性,但有时候肉眼看不出 explain 结果如何指导优化,这时候还需要有一些其他基础知识的佐助,甚至需要了解 MySQL 实现原理,如子查询慢查优化。看到 SQL 执行计划中 select_type 字段中出现“DEPENDENT SUBQUERY”时,要打起精神了!...
2013-11-29 16:28:56
682
Web开发基本准则-55实录-缓存策略
续上篇《Web开发基本准则-55实录-Web访问安全》。Web开发基本准则-55实录-缓存策略郑昀 创建于2013年2月郑昀 最后更新于2013年10月26日提纲:Web访问安全缓存策略存储介质连接池业务降级并发请求的处理关键词:会话串号,Cache-Control头域,缓存穿透,缓存集体失效,缓存重建,缓存雪崩,缓存永不过期,缓...
2013-10-27 20:33:24
102
Web开发基本准则-55实录-Web访问安全
Web开发工程师请阅读下面的前端开发准则,这是第一部分,强调了过去几年里我们注意到的Web工程师务须处理的Web访问安全基础点。尤其是一些从传统软件开发转入互联网开发的工程师,请仔细阅读,不要因为忽视这些基础点而制造一个又一个的漏洞或突发事件。 Web开发基本准则-55实录-Web访问安全郑昀 创建于2013年2月郑昀 最后更新于2013年10月14日提纲:W...
2013-10-15 14:49:57
135
线上Java应用排查和诊断规范
@郑昀 整理标准做法一:OOM触发HeadpDump目的:OOM发生时,输出堆栈快照文件,供研发人员分析。在JVM中,如果98%的时间是用于 GC 且可用的 Heap size 不足2%的时候,将抛出 OOM 异常。配置操作:Resin/Tomcat 配置文件里追加 -XX:+HeapDumpOnOutOfMemoryError ,当 OutOfMemoryEx...
2013-09-26 15:19:18
73
[慢查优化]建索引时注意字段选择性 & 范围查询注意组合索引的字段顺序
写在前面的话:之前曾说过“不要求每个人一定理解 联表查询(join/left join/inner join等)时的mysql运算过程”,但对于字段选择性差意味着什么,组合索引字段顺序意味着什么,要求每个人必须了解;重复上一次的话:把mysql客户端(如SQLyog,如HeidiSQL)放在桌面上,时不时拿出来 explain 一把,这是一种美德!确保亲手查过SQL的...
2013-09-18 18:51:01
76
[慢查优化]联表查询注意谁是驱动表 & 你搞不清楚谁join谁更好时请放手让mysql自行判定...
写在前面的话: 不要求每个人一定理解 联表查询(join/left join/inner join等)时的mysql运算过程; 不要求每个人一定知道线上(现在或未来)哪张表数据量大,哪张表数据量小; 但把mysql客户端(如SQLyog,如HeidiSQL)放在桌面上,时不时拿出来 explain 一把,这是一种美德!在实例讲解之前,我们先回顾一下联表查询的基础...
2013-09-16 12:28:13
98
再说memcache的multiget hole(无底洞)
关键词:multiget hole,memcache适用于:java,php基础知识背景:1)multiget 是什么: multiget 指的是从 memcache(或其他分布式缓存) 一次性获得多个键值,一般由 memcached client 自行实现。如 PHP-memcache-client 提供了 Memcached::getMulti 函数。调用...
2013-09-05 13:07:46
154
未注意Curl-library Post 1024以上字节时的HTTP/1.1特性导致 HessianPHP 传输数据失败
先列出 HessianPHP 的错误提示: CURL transport error: transfer closed with outstanding read data remaining基础知识背景:1)“Expect: 100-continue”的来龙去脉: HTTP/1.1 协议里设计 100 (Continue) HTTP 状态码的的目的是,...
2013-09-02 14:10:21
298
(研发系)职业化7个细节
(研发系)职业化8个细节 @郑昀 北京报道 2013-03警报自动、少、精、准目的主管要第一时间知道系统隐患不要在发现和查询蛛丝马迹上浪费宝贵时间自动化是王道别让泛滥的、无关痛痒的、信息不足的警报折磨你手段工具NagiosPython方式报警邮件N分钟扫描一次每天汇总一次报警短信...
2013-07-10 18:46:02
121
电商课题VII:支付交易一般性准则
@郑昀汇总 创建于2012/11发布版本号:v1.3概念:退款期限,交易,交易关闭,交易结束,掉单,幂等性,数据一致性 关键词:历史记录不得直接篡改原则,交易关闭通知处理,退款处理结束通知,掉单被动处理,掉单主动处理,多个渠道的重复支付处理,支付成功时商品不可售卖的处理,订单金额变化交易流水号变化规则,推送订单不得包含违禁词,支付通知并发到达的...
2013-07-01 14:01:47
210
Storm 是如何跟踪一条消息以及它衍生出来的消息都被成功处理的
2012·2郑昀汇总我们做 Notify Server 时可以间接借鉴这个解决方案的思路。 Storm 是一个分布式的、容错的实时计算系统,由 Twitter 开源。先不介绍术语和背景知识,直接来一些吸引眼球的内容: 一,Tuple Treespout 发射一个消息(tuple),可能会导致成百上千的消息基于此消息被创建。这些消息构成一个树状结构,我们称之为“tupl...
2013-07-01 13:59:09
93
职业化之可以固化的六个工作模式
郑昀 汇总 20130320职业化所包含的行为模式——总有一些工作套路是可以带走的(1)任务已读回执模式示范A数据中心的应答收到数据提取邮件后立即应答: 应答人:某某 数据提取时间:1小时示范B测试环境你提测的工程跑不起来收到QA的通知后立即应答: 应答人:提测接口人 立刻过去排查?十分钟后排查? 是某某业务中心的问题,我找...
2013-07-01 13:56:31
427
原创 电商课题:客户端的IP地址伪造、CDN、反向代理、获取的那些事儿
20120917 @郑昀汇总外界流传的JAVA/PHP服务器端获取客户端IP都是这么取的:伪代码:1)ip = request.getHeader("X-FORWARDED-FOR") 可伪造,参考附录A2)如果该值为空或数组长度为0或等于"unknown",那么:ip = request.getHeader("Proxy-Client-IP")3)如果该值...
2013-06-28 19:10:22
98
电商课题I:集群环境下业务限流
@郑昀汇总 创建日期:20120925关键词索引:令牌桶算法,漏桶算法背景:防注册机、秒杀器或扫号等常见电商流量过滤技术,一般具有如下要求:1) 高性能。算法简单高效,能对HTTP Requests进行实时在线处理。2) 分类错误率低。尤其是尽量保证不误杀正常顾客访问。3) 鲁棒性强。由于双方攻防的对抗性很强,所以算法必须适应各种类型的攻击情形(包括DDoS攻...
2013-06-28 17:13:15
107
最佳实践系列:前端代码标准和最佳实践
最佳实践系列:前端代码标准@窝窝商城前端(刘轶/李晨/徐利/穆尚)翻译于2012年 版本0.55 @郑昀校对isobar的这个前端代码标准和最佳实践文档,涵盖了Web应用开发的方方面面,我们翻译了大部分章节,并做了注解。请仔细阅读用标记的段落。关键词列表:渐进增强;Combo Handler;Quirks Mode;浏览器盒子模型;选择器特殊性;Spacer Image;CSS ...
2013-06-28 17:10:28
235
原创 电商课题V:分布式锁
@郑昀汇总 关键词:并发控制防止并发英文关键词:Distributed LockDistributed Lock Manager电商目的:保证整个(分布式)系统内对一个重要事物(订单,账户等)的有效操作线程 ,同一时间内有且只有一个。比如交易中心有N台服务器,订单中心有M台服务器,如何保证一个订单的同一笔支付处理,一个账户的同一笔充值操作是原子性的。 ...
2013-06-28 17:05:38
103
原创 电商课题VI:分布式Session
@郑昀汇总与分布式缓存在高并发和高可用下所要解决问题差不多。一.图示: 二.高并发下分布式Session需解决的问题:透明处理存储介质的故障转移动态增删节点,减小“缓存颠簸”问题保证数据在各个节点的分布均衡Session 序列化和反序列化 三.保证“基本可用 Basically Available”的分布式Session方案:...
2013-06-27 00:20:02
111
原创 三个实例演示 Java Thread Dump 日志分析
jstack Dump 日志文件中的线程状态dump 文件里,值得关注的线程状态有:死锁,Deadlock(重点关注) 执行中,Runnable 等待资源,Waiting on condition(重点关注) 等待获取监视器,Waiting on monitor entry(重点关注)暂停,Suspended对象等待中,Object.wai...
2013-06-27 00:17:55
64
原创 各种 Java Thread State 第一分析法则
@郑昀汇总使用 TDA 工具,看到大量 Java Thread State 的第一反应是:1,线程状态为“waiting for monitor entry”:意味着它 在等待进入一个临界区 ,所以它在”Entry Set“队列中等待。此时线程状态一般都是 Blocked:java.lang.Thread.State: BLOCKED (on object ...
2013-06-27 00:16:08
122
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人