👷如何做年前大扫除

Thumbnail

今年过年特别早,离春节只剩下二十多天了。 为期 7 天的春节里,工程师们不上班,那万一线上业务出现了故障怎么办? 大公司的朋友们会安排专门的人进行值班(此处心疼一下那些需要大年三十还要值班保证高峰的工程师们), 而作为创业团队人少,难做到在线值守,就需要对线上进行一些整理盘点,找出潜在问题,为春节长假做一些准备。 我们称之为年前大扫除。 大扫除需要做些什么呢,且听我一一道来。 PS: 冷知识,大扫除英文是 spring cleaning,所以春节大扫除是 Spring Festival spring cleaning。 ...

2017-01-03 · alswl

🔑 也谈 HTTPS - 如何内测

Thumbnail

(图片来自 茶杯中的可爱小白鼠 壁纸 - 2560x1920-堆糖,美好生活研究所) 在上篇文章 🔒 也谈 HTTPS - HTTPDNS + HTTPS 中, 我们谈了如何基于 HTTPDNS 来部署无坚不摧的 HTTPS 通信环境, 这次我们讨论另外一个比较头疼的问题:部署。 小站点部署 HTTPS 相对成本低,改改前端代码,就可以上线了。 但作为业务有一定复杂度的大网站,就没办法这么暴力上线了。 前端在基础库中调整 Scheme 之后,仍然可能存在很多边边角角没有覆盖到。 比如 JS 里面写死了 HTTP,那在 HTTPS 下请求 HTTP XHR 的话, 浏览器会将请求拦截掉。 一旦出现这种故障,用户就无法正常使用业务,小白用户往往也不懂得自己将 https:// 换成 http:// 使用。 ...

2016-12-08 · alswl

教你在上海挑房子

Thumbnail

点开的同学别失望,这并不是教你如何快速致富的 😂 …… 上海政府在 11-28 出了房屋新政 via,对房价进行进一步调控。 其核心思想是「认房又认贷」。3 月份的政策 via 是限制购房资格。 这次 11 月份调整则是提高二套房首付比例。 双管齐下,进一步给上海房市进行降温。 在这种严苛的政策下面,如何挑选一套自己满意,家人住得安心的房子就尤为关键了。 我对房市一直比较关注,也曾有几位朋友咨询我的一些经验。之前我是将 Evernote 笔记链接贴给别人,这次我就详细讲讲,如何在上海挑房子。 第一步,**是建立有价值的 Indicator,并对具体房源进行计算**。 Indicator 的含义是建立一系列评价指标,比如价格、户型、位置, 再根据这些 Indicator 给房源进行打分。 如果我是一个购房者,我挺希望我的置业顾问告诉我这套房有哪些优点、缺点,综合评价得几份。 (当然实际情况下这些置业顾问都是吹得天花乱坠,尽睁眼说瞎话。) 看房的过程可能长达数月,而人的记忆会随着时间逐步失真,只对最近看到的事物有深刻印象。 使用客观的数字评价房源,则可以进行精准的评价,避免产生主观臆断。 ...

2016-12-05 · alswl

🔒 也谈 HTTPS - HTTPDNS + HTTPS

Thumbnail

最近谈论 HTTPS 的文章很多,其原因之一是运营商作恶底线越来越低,动不动就插播广告, 前两天小米还联合几家公司发文 关于抵制流量劫持等违法行为的联合声明 痛斥某些运营商。 另一方面也是苹果 ATS 政策的大力推动,逼迫大家在 APP 中全部使用 HTTPS 通信。 上 HTTPS 的好处很多:保护用户的数据不外泄,避免中间人篡改数据, 对企业信息进行鉴权。 关于 HTTPS 如何购买证书,如何部署,网上的教程已经太多了,实践起来没有太大的难处。 我们在部署 HTTPS 的时候,遇到了一些新问题,首当其冲的就是 HTTPS 部分网络不可访问的问题: ...

2016-11-30 · alswl

API 集成测试实践

Thumbnail

为了提高测试,工程师需要对自己提交的产物进行测试,一般是单元测试、集成测试。 之后提交物流转到 QA 团队,QA 团队根据需求描述对提交物进行测试, 这个测试过程非常耗费人力。 尤其是当开发交付的质量不高时候,很可能自身没有经过测试,会遇到主干流程都无法进行的状况。 如果在 QA 人工介入测试之前,就进行一轮黑盒自动化集成测试,可以大大地提高 QA 团队的工作效率。 基于这样的判断,我们团队花了一些时间,将基于 API 的自动化测试系统搭建起来。 现在将这个系统的选型和运行状况拎出来,和大家分享。 确认测试范围、目标和意义 范围 后台输出的 API 级别 URL 使用场景 打包时候的冒烟 Dev / QA 手工添加添加新特性用例 目标 覆盖大部分的 URL,当期设计为 top 10 URL,仅包含 GET 接口 选型时,需要考虑非幂等(POST / DELETE / PUT)等接口 意义 提高开发效率,一种自动化的 IT 测试方案 提高测试效率,减少人工集成测试成本 提高工程质量,通过覆盖率提升,保证工程质量逐步提升,放心开发新功能 特性需求 选型一个系统,不是看市面上有哪些可以供选择,而是看我需要什么样特性的一款产品。 如果自己的需求和市面上的现成产品差异过大,也可以考虑自己定制。 Required 开源 免费 使用 DSL 或者简单代码描述测试用例 支持细粒度的单 API 测试和构建带过程的测试用例 HTTP API Optional CI 集成 UI 挑选出来的选型和评价 API Monitoring and Testing · Runscope 收费 非开源 有监控特性 Bamboo - Continuous integration, deployment & release management | Atlassian 收费 CI Continuous Integration Product and Features - CircleCI CI 收费 Sauce Labs 客户端测试,收费 Apiary API 设计工具 + API Test http://frisbyjs.com/ code npm open source NO UI https://github.com/vowsjs/api-easy 同上 真是热爱造轮子的 JS 生态圈 https://github.com/visionmedia/supertest 同上 从 Star 看,这个质量最高 http://dareid.github.io/chakram/ code npm open source NO UI https://vrest.io/ 收费 不开源 无插件 http://swagger.io/open-source-integrations/ for API 生态环境强大 https://github.com/cachecontrol/hippie-swagger 用户端似乎在尝试用 swagger http://robotframework.org/ 一个通用自动化测试工具 DSL 扩展性较强 活跃度在降低 https://github.com/robotframework/robotframework/graphs/contributors https://cucumber.io/ https://cucumber.io/docs/reference 和 Robotframework 相似,通用自动化测试工具 DSL 活跃度降低 https://github.com/cucumber/cucumber-jvm/graphs/contributors https://www.solanolabs.com/ Airbnb 在用 收费 云端的通用测试环境 https://github.com/christophd/citrus http://www.citrusframework.org/ 依赖 mvn / ant,离代码太近 项目不够活跃 代码内测试 src/it/com/duitang/xxx eg. tritornis Spring http://docs.spring.io/spring/docs/current/spring-framework-reference/html/integration-testing.html http://docs.spring.io/autorepo/docs/spring-framework/3.2.x/spring-framework-reference/html/testing.html 这部分工作,是和团队的其他成员一起去看的,大家各自分头寻找一些产品,然后进行评测,给出结论。 经过讨论,我们将重点关注放在这么几款下面: supertest robotframework swagger 讨论时候的新发现 https://github.com/svanoort/pyresttest 搭建 demo,进行试用 在确定选用那几款产品之后,就可以集中精力在几款候选者里面。搭建相应的环境,对他们进行实际测试。 supertest: 功能太简单了,简单到几乎可以自己写掉,不算一个 test framework pyresttest: 哈哈哈,YAML based,dreamed feature 支持 YAML / extractor / validator 天生支持 host 为参数 create for me!!! hippie-swagger: 在使用上,和 supertest 差异不大 仍然需要自己定义,在 swagger 描述文件不存在时候会抛错,描述文件不符合时会抛错 robotframework: 较为复杂 有 YAML 了,不用试了 使用感觉 经过一个季度的试用,我们基于 pyresttest 的项目 abao 运行较稳定。 尽量在工程师提交代码之后,运行一次,从而可以在早期发现问题。 由于是基于 Python 的源代码,我们还给 pyresttest 开发了几款插件: cookie_extractor:用来解析特定的 cookie file_choice_generator:从文件随机选择预设数据 file_seq_generator:从文件顺序选择预设数据 在和 CI 的配合方面,我们在 Jinkins 搭建了 abao / abao-master 项目, 前者响应每次 Push 请求,都会自动构建一遍,后者每天凌晨会将 master 运行一遍。 感谢项目贡献者: project : abao repo age : 5 months active : 32 days commits : 109 authors : 39 Chery.Peng 35.8% 33 3D 30.3% 17 yanqi.chen 15.6% 11 橙子 10.1% 7 fiona66 6.4% 2 雪糕 1.8% 参考文档 ...

2016-08-14 · alswl

搞定暴涨的流量

Thumbnail

2013 年左右,我司业务发展迅速,每天晚上都会面临服务器濒临崩溃情况。 我相信每个高速发展的互联网企业在某个阶段都会面临这样的情形,比如去年爆红的「足迹」。 过程往往是:线上出现故障,手机会收到报警,然后登录到服务器上去解决问题。 处理这种问题工种现在有一个时髦的名称,叫做「SRE(Site Reliability Engineer)」系统可用性工程师。 虽然我常常救火,但是我还是想尽可能避免线上发生故障。「最好的消息,就是没有消息。」 减少故障出现概率,增强系统可用性,降低故障处理时间是 SRE 的最大课题。 在这里有最常用的两个手段,一个是优化性能,一个是做好容量规划和扩展。 这里我着重讨论后者「容量规划」。 ...

2016-06-19 · alswl

一次「分答」记录

Thumbnail

尝试在团队内部发起一次类似「分答」的沟通方式,一对一面聊。 回答其他工程师的问题,这种沟通的方式暨在提供一个特定的场合,帮助加强双方了解, 解决团队中其他工程师的一些实际的问题。 在征得对方同意之后,我将他的问题和我的回答 PO 出来。 喜欢什么游戏,玩游戏的问题 喜欢和人玩游戏,不喜欢和不认识网友玩游戏 小学从红月开始玩,传奇、CS、魔兽、真三、DOTA,大学时候和舍友玩游戏,毕业后不玩 minecraft 尝试着玩过,没有玩下去,找不到人 日活的桌面游戏,三国杀等蛮喜欢 不喜欢浪费时间,怕没控制 从玩游戏里面学习什么么?不,就是纯粹享受游戏,不会想这么多 喜欢什么语言 看场合,小东西,小场景用 Python,生产环境用 Java,生产环境又有时间,考虑 Scala 只允许选一门语言,就用 Python 最吸引的特点,熟悉程度高,生产效率高,第三方库丰富,粘合性强 为 Python 做一些功能扩展?不同时期答案会不一样,目前来说,希望有一个开发效率更高的 framework;有时间的话,会考虑如何绕过底层 GIL 问题 有什么事情投入精力,铩羽而归 工具向重的人,推广 git 花了两年,推广 Restful 不利 做业务开发 leader,和 tsu、小管一起做,项目管理、团队管理没做好,没做好,有挫败感。 职业迷茫期 我作为一个学渣,并且长期以来没有人给予职业生涯规划,一直对自己未来发展有困惑 如何在无领导的情况之下,探索未来道路,规划自己工作内容?跟优秀的人聊,跟外部的人聊,看博客,看书 迷茫是客观存在的,并且可能持续存在很久,正视它 现实中一定会遇到各种挑战和困难的,用挑战和困难填充自己,丰富自己的生活 迷茫是未知,有恐惧,有兴奋。对当前的我来说,恐惧可能更多,但是要面对 职业生涯里面,前期的同质度更高,资深工程师可以会给初级工程师规划清晰一些,但是越往后期,越难规划,需要自己探索 推荐书 https://book.douban.com/people/alswl/collect?sort=rating&start=0&filter=all&mode=list&tags_sort=count 学习来源 博客,infoq 等专业信息来源 书籍 周围的人 尽可能从每天时间挤出时间阅读 生活和工作平衡点 不同的人,同一个人的不同时期所需要的平衡不一样 对自己人生期望不一样的人,平衡点不一样 对我来说,目前阶段不存在明显边界,尽可能投入工作 如何保持激情 人总是有低谷期的,不可能一直保持亢奋,除非是甲亢 短期情绪会有起伏,长期来看,保持梦想和对自己高要求,可以帮助保持激情 我有低谷期,低谷期适合反思 如何擦屁股 现实是残酷的,总有屁股要擦,自己也有脏屁股,今天要给昨天的自己擦屁股 现实中存在脏屁股,尽可能了解它,看代码、文档,设计方案,了解的人,让自己变舒服 责任心的体现,做好当下的事情;解决这样的问题,解决当前的问题;避免留下脏屁股,设计好,规划好 责任心的话很虚。一个人做擦屁股、低产值的事情,从长远来看,是错的;短期需要撑下来;并且帮助团队避免这样的事情发生 最有成就感的事情 顶着家庭压力,到上海来 在堆糖改造环境,提升自己心智水平,不害怕问题,自信,自省

2016-06-15 · alswl

海贼王和创业团队

Thumbnail

一个同事在知乎提了一个问题 如果把草帽海贼团比作一个创业团队,这个Team的组织架构是怎样的?有哪些优势,又有哪些不足? 这个话题很有趣,作为追了多年的 fans ,又是身处互联网创业团队的我要来强答一记。 海贼王的世界很大,富有个性的角色和团队也很多,恰好可以和显示世界中的互联网创业团队进行对比。 柳传志讲的好,做大事,要「建班子,定战略,带队伍」,我们就着金句来看看草帽这个团队怎么样。 产品和战略 我先讲产品和战略。 由于海贼王世界的设定,以及作为一个全年段漫画动画的原因。 海贼王世界的整体战略是较为简单,海贼团的目标都较为单一,即「找到 哥尔 D 罗杰 留下的宝藏」。 海贼团们实现目标的路径也较为单一,打斗增强战斗力,不断寻找线索,去伟大航道寻找宝藏。 ...

2016-04-27 · alswl

Windows management for hacker

Thumbnail

团队里的同学有时看见我键指如飞,可以用快捷键将 Mac 的窗口玩转于手心。他们表示酷炫非常, 心生羡慕的同时,希望掌握这门技艺,我就把使用的 Phoenix 介绍给大家。结果过了一段时间, 发现普及率并不高,本着好为人师的精神,今天我就来八一八这款优秀的桌面管理工具。 在介绍我使用的工具之前,我要先介绍一下我选择的原因和历史。 ps:配图是我长草多年的 Ergodox Infinity。(@夫人,看到这里的时候,请留步思考 5s)。 Alt+Tab = 苦难的历史 当我还年轻的时候,曾经对 Alt+Tab 这个快捷键愤慨无比,觉得这种设计虽然简单但是很蠢。 ...

2016-04-24 · alswl

技术之外

Thumbnail

这是一天一本书的第二次执行,这次选了一本比较薄的书,上周的书看了一天,脑仁疼。 在我组织团队新兵训练营(入职之后一段时间内容集中的培训)时候, 经常和新同事聊到一个词:软实力。 我将其描述为专业技能之外的能力。每个人都这种能力的解读可能会不一样, 我将其拆解为:「对工作的热情;观察力和反思能力;做计划和决策是否周全」。 这种拆解是不全面的,「多年」以后,我意识到,硬实力考衡的是专业的能力, 而软实力则是考衡人的因素。这种晚来的意识让我在一段时间里面, 将自己的工作陷入困境,并且得不到解药。 ...

2016-02-28 · alswl