Browsed by
Author: YI

DigitalOcean小坑

DigitalOcean小坑

DigitalOcean是我个人非常喜欢的云计算服务商,我们在部署自己的网站、云通信系统、向客户推荐等各种情况都会采用DO(以及Linode,另一个非常优秀的云计算服务商)。

绝大多数情况下,DO节点运行非常快速、稳定,然而有时候也有意想不到的情况发生。最近我们发现一个节点的服务突然中断了,经检查后发现是MySQL数据库异常退出,错误原因是内存分配不足。以前从未发生过这种情况,简单对比后发现这个节点是个小内存节点,只有512M内存(通常我们都为生产环境节点配置2G内存)。我们认为这个节点的MySQL数据库不应该占用太多内存,即便512M内存不够,加上SWAP的支持也应该足够了。

然而分析该节点信息,惊讶地发现DO默认居然没有分配SWAP区(与之对比的是,Linode可以在创建节点时指定SWAP分区)!

检索了DO的文档,对这种情况的解释是建议采用更多内存的节点,SWAP做缓存会拖慢系统,并可能影响其他用户。原则上这点没错,如果频繁发生内存不够的情况,的确应优先升级节点,采用更多内存。然而,如果仅仅是在尖峰时刻偶尔少量内存不足,采用SWAP过渡一下完全合理。

更重要的是,即使SWAP相对而言慢一些,但相比程序crash而言,一个慢点但是稳定的系统显得更合理。同时考虑到DO采用SSD硬盘,速度可以接受,因此我们手工增加了2G的SWAP设置。事实证明,内存在忙时实际只少了1M,用SWAP来应对这1M内存的需求,相当合理。

在DO节点增加SWAP很容易,请点击这里了解细节。文档是基于Ubuntu 14.04,我们的节点是Debian 8,按照这篇文档的介绍,也能设置成功。

以下是简要的步骤记录:

(1)创建 swap 文件:

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

(2)修改 /etc/fstab 文件,添加以下项即可:

/swapfile none swap sw 0 0
Ubuntu16.04

Ubuntu16.04

先上图:

Ubuntu 16.04运行界面
Ubuntu 16.04运行界面

与以前的版本没有太大区别,也就是说:丑,慢。

从直观感受上判断,传说中的Unity8和MIR如同小媳妇一样,再次爽约了。按钮栏仍然默认是在左侧,而且没有配置能够进行修改,寻觅了很久,终于还是依靠一条命令并重启Ubuntu才搞定:

sudo gsettings set com.canonical.Unity.Launcher launcher-position Bottom

很多软件库都升级了,这导致了部分程度上的不兼容,估计很多软件需要跟随升级。比如,由于libmysqlclient版本升级了,我们的软件也被迫修改进行适应。不过总体上判断,升级还是可控的。

简单地把玩了一阵,个人建议:如果不想追新的话,升到16.04的意义不太大。

2016-04-24更新:将另一台计算机上的kubuntu从15.10升级到16.04,崩溃了,开机直接黑屏。以前升级都没遇到问题,这回是首次遇上。

办理“其他”港澳通行证

办理“其他”港澳通行证

由于港府的要求,深圳去年将港澳通行证限制为“一周一行”。港府赤裸裸地羞辱深圳居民,我对此感觉很愤怒。既然是国家政策,也无可奈何。平时倒没有什么影响,我基本只是两周左右才去一趟香港,到幼儿园换被褥而已。然而有些时候,又确实让人感觉很不方便。比如有次临时有事去了趟幼儿园,后续周末幼儿园的活动就没办法参与了,颇感遗憾。

在此特别感谢深圳公安部门!在“一周一行”推行了一周年后,针对双非家庭的情况,允许办理“其他”类型的港澳通行证,可以一周多行。

所谓“其他”,是指在预约办理签注时,必须选择“其他”类型(请注意,不要选择“探亲”)。由此可见这种情况对公安部门来说,也是非常特殊的一种考虑,实在是非常感谢!

其他流程与办理普通的签注是一样的,但是有些材料需要单独准备:

(1)孩子的香港出生纸原件和复印件。验原件,收复印件。

(2)孩子的回乡证原件和复印件(正、反面复印在一张纸上),验原件,收复印件。

(3)孩子的回港证原件和复印件,验原件,收复印件。

(4)学校学籍表原件和复印件(复印封面、照片页以及校历表页),同样是验原件,收复印件。

(5)自己的身份证、港澳通行证原件,无需复印。

预约时登记为“其他”类型,小孩实际可以不用到现场。但是如果登记为“探亲”类型,则小孩需要到现场拍照。

整个流程大约半个小时搞定,简单干脆,效率很高。为深圳公安点赞!

2017-04-12更新:

签证快到期,今天办理重新续期。与普通港澳通行证不同的是:不能通过微信、电话委托邮政办理,需要本人在网站上预约、本人到公安局去办理重新签注,因此一定要上网提前预约好。

有些地方需注意:

(1)如果是夫妻两人同时办理,在网站上也需要预约两个独立的号,各复印件都需要准备两份。只需要一个人去公安局办理,但是两个人的证件都要带齐全。

(2)现场只支持刷银联卡支付。

(3)现场可以免费复印,不过人比较多,建议在家先都复印好,免得耽误时间。

2018-03-20 更新:

今天去办续签,沮丧而回。

请注意,务必要带小孩的回乡证、回港证原件,只有复印件是不行的。考虑到孩子日常还需要证件过关,因此预约时间只能安排在孩子放学之后、下午5:30之前,要么就是孩子请假或者放假期间了。

这个步骤有些繁琐。其实完全没有必要,因为回港证、回乡证都是五年有效,公安部门已经在去年办证的时候存档了(如果是扫描进电脑的话就更方便查询),完全没有必要每年重复这个验证。

进一步思考的话,甚至港澳通行证“一年一签”是否合理? 毕竟现在去加拿大都是十年一签了,去香港反而是“一年一签”。在如今呼吁“粤港澳大湾区”建设的背景下,此举尤其不合时宜。就算不“十年一签”,至少也可以和回乡证、回港证一样,做到“五年一签”吧。

2019-02-22 更新:

(1)支持微信扫码支付了。

(2)增加了学籍表的复印要求,需要复印:封面、照片页(也就是学校盖章页)以及校历表。

双非儿

双非儿

早上在新浪看到一篇双非孩子上学的报道,顺便也看了评论区的评论,内心五味杂陈。

是的,我们家里老二(苗苗)也是一位双非儿童,所以我非常理解报道中家长的心情和困窘,同时也对评论区的一些冷血评论感到愤怒和悲哀。我已经一把年纪了,经常告诫自己不要太执着、不要太生气,什么事情都要看开点,但这些风言风语实在压抑不住自己的心情。

为什么要去香港生孩子?深圳南山各街道办超生罚款三十几万人民币,去香港生只需花费几万港币。这就和奶粉一样,一个有三聚氰胺,一个没有三聚氰胺,这些都是不难做出决定的选择。

网上“占深圳便宜”的言论,让人极其愤怒!我们每年都交十几万的税,养老金也是自己交,究竟谁占便宜了?更重要的是,一个国家、政府甚至人民,居然视自己的孩子为累赘、负资产,亘古未有!怎么去教育这些”不应该存在的”孩子去爱这个国家?

我要特别感谢香港政府!当初要是没有香港,我们就不会生下苗苗,现在也会少了很多的欢乐。虽然现在有陆港矛盾,有诸多限制,香港政府至少还是采取了一些措施(当然,其中部分措施涉嫌歧视,同样让人反感),考虑了双非家庭的特殊情况。对比之下,我实在不想对内地再多说什么了。

我对强国梦之类的东西没太多理解,也不感兴趣。我唯一能做的是尽力养活自己的家庭,让孩子们健康快乐的成长。如果将来苗苗能看到这篇blog,我希望她首先要感谢自己的妈妈,要是没有妈妈的坚持,她不会来到这个世界。另外,我也希望她长大后能为香港做一些贡献。

如果说我对内地还有一些期许的话,那就是少一些戾气、多一点人性,少做一些梦、多干一点实事。

解决DNS污染

解决DNS污染

DNS污染可能是一个比较普遍的问题,主要表现在:(1)DNS查询返回的IP地址根本是错误的。“错误”意思是IP地址要么根本不存在,要么就是个和域名完全无关系的地址。(2)IP地址虽然可能是对的,但是其他参数被莫名修改,例如TTL参数等。

测试了各类DNS服务器,例如阿里DNS、DNSPod(鹅厂)、Google DNS等。无一例外,最终的结果都或多或少被一些看不见的手给修改、甚至屏蔽了。从技术角度上讲,DNS协议本身非常随意、非常粗糙,是典型的互联网蛮荒时代的产物,比如面向UDP、无加密、无鉴权等,因此网络上任何一只手都有可能修改DNS的查询结果。网络进化到IPv6阶段,当然能解决这个问题,不过既然目前绝大部分设备还只支持IPv4协议栈,因此我们还是不得不修修补补来解决这个污染问题。

最根本的解决方法就是加密DNS查询。目前有些DNS服务商提供了私有的加密DNS方式,不过不太通用,需要私有的客户端程序配合。实际上可以不用搞这么复杂,自己建立加密通道,传递DNS消息即可。例如,参考下图的拓扑逻辑:

实现简单DNS透传的逻辑单元
实现简单DNS透传的逻辑单元

在这个网络中,有两个关键程序:dnsProxy和dnsAgent。

dnsProxy顾名思义就是个Proxy,本身并不负责DNS协议的解析,也不保存DNS的查询结果等信息,只是单纯地将DNS消息传递给真正的DNS服务器,并返回相应的结果即可。dnsProxy另一个功能是对外提供加密的数据连接,例如TLS、SSL加密等,甚至可以只是简单地对数据包进行自定义的异或运算即可。另外就是对外提供非标准连接接口,这点非常重要。DNS采用标准UDP53接口作为DNS服务器接口,网络上那些看不见的手,往往就是扫描并篡改53接口的数据包。这个小程序跑在境外(大家都懂的)的一台VPS设备上,推荐采用DigitalOcean,专业的云计算服务商,采用SSD硬盘,价格公道,我们一直用TA,如果你有兴趣的话,请点击这里自行了解细节。

dnsAgent是另一个小程序,主要负责建立与dnsProxy的加密连接,接收普通设备的DNS请求并将其传递给dnsProxy,同时返回DNS结果给普通计算设备。对于网内设备而言,dnsAgent就是个伪装的DNS服务器。同样,dnsAgent其实也不需要关心、也不需要解析DNS协议细节。在我的网络中,dnsAgent跑在一台常年吃灰的树莓派上(还是第一代的)。

实现这些仅仅需要一点UDP、TCP的网络知识,甚至不需要了解DNS协议的细节,无需对DNS数据包做修改。完成后可以愉快地打开很多以前打不开的网站。当然,有些网站始终是打不开的,这是另一个与DNS无关的话题了。

Pi打开IPv6

Pi打开IPv6

默认已经安装了IPv6协议栈,但是没有打开IPv6功能,这点比较奇怪。不过打开IPv6功能也不复杂,一行命令即可:

sudo modprobe ipv6
市场分析后的迷思

市场分析后的迷思

最近不太忙,于是花了点时间研究一下我们云SIP服务的市场情况。结果很出乎意料,很多结论与我们的预想是完全相反。

做云SIP服务的初衷是来自一些客户的反馈:MSS最小版本都支持20部SIP分机,而有一部分用户的场景中没有这么多分机,因此购买一套MSS软件稍显浪费。另外,有一些区域的用户,比如中国大陆,认为软件贵了点,希望能更便宜一些。

因此我们做了云产品,预计大部分用户会创建少量的资源(分机、外线等),同时也希望能吸引一些不太愿意为软件进行投资的用户。

经过基本的数据分析,我们得出以下一些结论:

1、不愿购买软件的人更加不会购买服务

云SIP服务不仅仅是产品,本质上更是服务,我们维护着整个VoIP网络系统的稳定,检查各种失败呼叫的情况,为客户排忧解难等等,这些都是对用户非常有价值。而数据表明,云SIP服务的客户范围与本地MSS软件的销售范围是高度重合的,仍然是以欧美客户为主,我们期待的拓展客户并没有出现。

不认可软件价值的人,也很难去认可服务的价值。

2、欧美客户更愿意购买服务

我们原先预想:部分对价格比较敏感的用户会使用我们的云SIP服务,另外用户熟悉过我们的云产品后,感觉满意的话,可能更愿意在本地部署自己的VoIP网络。而实际情况是:

(1)对价格敏感的客户更愿意选择本地SIP服务器版本。这部分客户通常是非欧美客户。

(2)我们的很多客户是已经购买了MSS软件,尝试了云SIP服务后,反而将本地VoIP网络迁移到云服务上。这部分用户更看重稳定的网络和专业的服务质量。当然也有部分用户与我们的预期是一致的,最终购买了软件。这部分客户通常来自欧美地区。

3、价格不是关键因素

云SIP服务虽然每资源定价很低,但是如果设置大量资源的话,总体成本会逐渐超过MSS软件的成本,因此我们预期用户不会添加太多的资源,这样也与MSS软件形成互补。然而让我们惊讶的是:大量客户设置的资源数(分机、外线、语音文件等)居然超过20!跟踪分析了其中一部分长期用户的数据,结果发现这部分用户支付的费用足够买好几套软件了。

显然,对这些高价值用户而言,价格肯定不是关键因素,至少不是决定性因素。专业化的服务、稳定的网络、简单易用的使用体验才是吸引他们的关键。因此我们进行设计时,无需过多考虑价格,而更应该关注产品本身。

4、个性化需求还有待挖掘

首先说一下结论:我们极少遇到个性化需求。少数几个提出个性化需求的客户最终也没有成为我们的长期客户。

云SIP服务一个让我们自鸣得意的特性就是对IVR-XML以及Python脚本业务的支持。这个特性非常有利于我们为客户提供或者适配个性化的通信业务。我们甚至预期大量的客户会提出此类需求,比如不同的IVR流程等。然而现实就是“并没有”,大家都还是在使用默认的各种业务和呼叫流程,这有点让人郁闷,感觉辛苦努力的东西其实是屠龙之技。

这点结论可能值得商榷,还需要继续观察。至少我个人仍然认为多数企业对自己的通信需求都会有个性化的地方,目前这个结论可能是我们没有真正了解到客户的需求造成的,也可能是我们的客户群还不够广泛造成。

Aspect申请破产重组

Aspect申请破产重组

新闻链接:http://www.ctiforum.com/news/world/477928.html

消息很让人震惊!Aspect可以算呼叫中心软件行业的标杆性企业,微软企业通信解决方案的头牌合作厂家。全球同此凉热,如果连Aspect都在此次寒冬中濒临破产,其他通信行业同行(包括我们)毫无疑问都要提高警惕,谨慎行事。

希望我们能撑过这次的经济寒冬。

v2ex

v2ex

我曾经很喜欢进这个网站(论坛),因为TA很自由,很小清新。

而最近却感觉厌倦。V站充斥着果粉、道德洁癖以及以及各色圣母婊。V站站长Livid似乎想以一种想象中的道德尺度来衡量会员。不能说这有什么错误,只是我认为没有什么唯一性的道德尺度,也没有什么人能充当道德标杆。当站长快意地进行评判、屏蔽言论甚至封杀会员的时候,我认为他已经和他反对的没有差别,无论他的理由听起来有多么高尚、多么合理。

V站的这种伪善让人乏味,回想每天手工签到,更是病态。