坚信科学,分享技术

>>>尝试更加利于阅读的2014版科学院,以后都在新版上写。

利用深度学习解决直播支付风控

54chen的2016总结和2017预测

中国、印度、印尼在线支付接入、风控和靠谱度对比

小米大树part3:产品进度之痛

小米大树part2:测试之痛

小米大树part1.5:基础架构之痛答疑

小米大树part1:基础架构之痛

微信支付api.mch.weixin.qq.com域名解析慢原因:ipv6

在c/c++中解决SHA1WithRSA/ras/X509的过程记录

过去六年在小米搞(wa)错(keng)的几个技术细节

qcon杭州2012读后感

我没有在现场,所以叫读后感,只是看pdf文件之后的总结,如和现场体验有误,以现场为主。 给力排行一:云中的资源管控 淘宝林昊大师:提到2010年时三分之一的虚拟机peak load小于0.5,LXC重度用户,各种资源隔离的坑都被他们解决了。在进一步做动态调度。 腾讯CEE系统介绍:产品细节惊人,疑似依赖LXC。 京东虚拟化:openstack用户、使用传统vm。 CloudFoundry:完整讲述了实现和演进。 盛大游戏私有云:在游戏业务中使用,未明显提及虚拟化的事情,猛一看像是做分配机器之类的事情。 给力排行二:大数据hadoop 阿里巴巴:3000 Servers,正在演进hadoop as service,原来yahoo维护hadoop的大侠们去了那里,这个方向应该是靠谱的。 百度:2500 Servers,与阿里方向侧重不一致。当然了,也有可能是集团利益让牛B的构架师发挥不到极致,如果有这种现像存在,可以考虑来小米。(mail to chenzhen at xiaomi dot com 无耻的广告。。。) 给力排行三:工具和思路 网易:puppet在运维中的各种使用 陌陌:移动运维非常赞!让关注变得更简单更快捷,更容易让团队成员关注系统运行。 支付宝:SOA治理等。

Continue reading

Posted in 架构研究 | Tagged | 7 Comments

cloud foundry - how to bootstrap a system in centos6

1)install febootstrap Febootstrap is a tool like debootstrap in ubuntu. #yum -y install febootstrap #febootstrap centos6 rootfs http://mirror.neu.edu.cn/centos/6.3/os/x86_64/ Threre is a basic centos system in rootfs dir. 2)install ruby 1.9 (optional) yum -y groupinstall "Development Tools" yum -y install openssl-devel zlib-devel gcc gcc-c++ make autoconf readline-devel curl-devel expat-devel gettext-devel readline-devel wget http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz tar xzvf yaml-0.1.4.tar.gz cd yaml-0.1.4 ./configure --prefix=/opt/soft/yaml make && make install wget http://ruby.taobao.org/mirrors/ruby/ruby-1.9.3-p286.tar.gz tar xzvf ruby-1.9.3-p286.tar.gz cd ruby-1.9

Continue reading

Posted in 架构研究 | Tagged , | Leave a comment

54chen Twitter memo 2012-10-14

cloud foundry之warden代码解读-part2 http://t.co/czkUa5m0 #

Continue reading

Posted in 生活备份 | Tagged | Leave a comment

cloud foundry之warden代码解读-part3

简介 cloudfoundry是vmvare推出来的开源PaaS平台,warden是其核心部分的资源管理容器,完成了各种资源分配的事情。 代码位置在: https://github.com/cloudfoundry/warden 根据part2里提到的过程,本节以create命令为例进行追踪。 调用过程: bin/warden-repl >> lib/warden/repl.rb >> Warden::Client >> warden.sock >> lib/warden/server.rb receive_request > process(request) > process_container_request(request, container) > base.rb > dispatch(request, &blk) > send(do_method, request, response, &blk) -> linux.rb > do_xxx > shell script 过程放大 一、进入repl命令行 1.1 名词 bundle:主要用于管理Ruby应用程序的依赖关系,并按照此依赖关系安装所需的Gems。当运行bundle install命令来安装Gems时,bundler会使用当前目录下的名为Gemfile的文件来处理依赖关系。 gem:就是ruby的软件包,一个gem就是一个ruby软件。 Gemfile:定义了各种依赖情况,bundler命令必须在存在此文件的目录下执行。 Gemfile.lock:记录本机目前所有依赖的gem

Continue reading

Posted in 架构研究 | Tagged , | Leave a comment

cloud foundry之warden代码解读-part2

简介 cloudfoundry是vmvare推出来的开源PaaS平台,warden是其核心部分的资源管理容器,完成了各种资源分配的事情。 代码位置在: https://github.com/cloudfoundry/warden 代码结构 |-- em-warden-client 基于eventmachine的client 依赖 warden-client与warden-protocol 通过 unix socket来通讯 |-- warden 巨复杂的warden实现,大部分是shell脚本+ruby,还有两个c实现。 |-- warden-client 客户端驱动,提供与warden的阻塞式通讯client。依赖warden-protocol。其中的V1.rb对各自command进行解析之后的处理。这里有一个v1mode的概念, v1mode使用字符串,转为pb后与其他的一起使用protobuf。 `-- warden-protocol 依赖beefcake(protobuf library for Ruby)。protocol下有所有支持的pb生成格式。 小坑:ruby中的send方法 send其实就是动态地根据名字调用函数,传递后面的内容作为调用参数,api函数原型为: obj.send(symbol [, args...]) => obj 在V1.rb中,所能的convert_xxxx_request方法都是这样被调用到的。 专注warden实现 src下四个C程序: |-- clone 用来快速复制一个环境 夹杂一堆的shell在其中运行 |--

Continue reading

Posted in 架构研究 | Tagged , | Leave a comment

丰宁坝上草原自驾游

秋高气爽,正直周末,我米东方时尚小分队一行十一人三辆车,浩浩荡荡二次出行。 目标: 一出门在八高小堵: 出了北京,一路都是这样的感觉: 当时有两个小时的土路它是这个样子的: 七小时后到达目的地,马不停蹄,开骑: 当地的养马的农民在山顶上休闲地抽烟: 马到成功: 农民家看马的大黄,一只耳朵总是耷拉着: 第二天,自行活动时摄影师拍摄: 随便都是桌面一张: 期待下次出行!

Continue reading

Posted in 生活备份 | Tagged | Leave a comment

54chen Twitter memo 2012-09-16

cloud foundry之warden代码解读-part1 http://t.co/AooK63AE # 在yahoo呆过的朋友一定了解yroot,在cgroup这么不平易近人的情况下,很多人直接去了虚拟机,说明开源项目的用户体验也是多么的关键啊。 # 54chen Twitter memo 2012-09-09 http://t.co/Dae6V5DX #

Continue reading

Posted in 生活备份 | Tagged | Leave a comment

cloud foundry之warden代码解读-part1

简介 cloudfoundry是vmvare推出来的开源PaaS平台,warden是其核心部分的资源管理容器,完成了各种资源分配的事情。 代码位置在: https://github.com/cloudfoundry/warden 这一部分也是我最想了解细节的地方,因为在一个paas平台中,资源的隔离才是最有价值的部分。 基础知识 rv = unshare(CLONE_NEWNS); unshare这个调用,可以把挂载的文件系统设置成只在新的挂载命名空间(mount namespace)中可见。 execvp(argv[0], argv); execvp()会从PATH 环境变量所指的目录中查找符合参数file 的文件名,找到后便执行该文件,然后将第二个参数argv传给该欲执行的文件。 shopt -s nullglob 设置shell环境变量nullglob的值为on,nullglob为on时对于通配符匹配时,若匹配不到时为空(相对应的为通配符本身)。 int stat(const char *restrict pathname, struct stat *restrict buf); 提供文件名字,获取文件对应属性。 build-essential软件包 作用是提供编译程序必须软件包的列表信息,也就是说编译程序有了这个软件包,它才知道 头文件在哪,才知道库函数在哪,还会下载依赖的软件包,最后才组成一个开发环境。 工具debootstrap 可以用于在系统的某个目录中安装一套基本系统,这个基本系统除了一些配置项外,与ubuntu安装程序在安装的第一阶段安装的内容基本相同。

Continue reading

Posted in 架构研究 | Tagged , | Leave a comment

54chen Twitter memo 2012-09-09

cloud foundry之dea代码解读 http://t.co/wr5cdwWA # 在深入cf之后,感觉cloud foundry的不好的几点:1.模块间内网通讯基本全用http; 2.NATS严重的单点依赖; 3.低效的nginx router机制不能承载大应用。 # cloud foundry之router代码解读 http://t.co/ICavjNUs # 今天继续阅读cf代码,ruby的代码虽然简单,可惜不是虚拟机形式的,效率差了点。 #

Continue reading

Posted in 生活备份 | Tagged | Leave a comment

cloud foundry之dea代码解读

简介 cloudfoundry是vmvare推出来的开源PaaS平台,dea(DropletExecution Agent)是其应用运行的环境,一个DEA可以启动多个应用。 代码位置在: https://github.com/cloudfoundry/dea 这一部分也是我最想了解细节的地方,因为在一个paas平台中,资源的隔离才是最有价值的部分。 历史 初始版的dea基本不控制系统资源,然后基于cgroup搞了一个warden(真正的资源隔离是它,下节再述),程序运行容器。cf希望warden运行在多个平台上,所以没有直接使用LXC。 代码 代码入口在lib/dea.rb: EM.epoll EM.run { agent = DEA::Agent.new(config) agent.run() } EM是ruby有名的eventmachine,是一个事件驱动网络框架,从java程序员的角度,可以理解有点像mina,也可以认为有点像erlang的gen_server。 然后进到lib/dea/agent.rb: NATS.start(:uri => @nats_uri) do ... 里面注册了各种各样的收到对应消息干什么活的定义,我们来看其中几条线: 1. 收到update: NATS.subscribe('dea.update') { |msg| process_dea_update(msg) } 上一句是说收到update的指令, process_dea_update里面关键的一句: register_instance_with_router

Continue reading

Posted in 架构研究 | Tagged | Leave a comment
Page 4 of 51« First...23456102030...Last »
尝试与54chen交流:
Twitter sina微博V GMAIL GitHub

 

54chen,真名:陈臻。
2010年加入小米科技。
关键词:
rose,riak,rabbitmq,zookeeper,thrift,nuclear,
senseidb,hadoop,hive,dynamo,
php extension,nginx module

天下风云出我辈,一入江湖岁月催.
鸿图霸业谈笑中,不胜人生一场醉.
提剑跨骑挥鬼域,白骨如山鸟惊飞.
尘世如潮人如水,只叹江湖几人回.

过去的经历:
人人网分布式研究人员(nuclear系统开发者)
雅虎、淘宝搜索开发工程师
金山词霸开发工程师
曾用代号有:cc0cc、零蛋。

SEARCH

接受捐赠

Comments

  • 54chen: 没有加@DAO注解...
  • 54chen: 移步github看看qieqie最新的版本吧。事...
  • 54chen: MysqlParse...
  • 54chen: 建议使用resin作为容器...
  • 54chen: jade目前版本还不支持存储过程调用...
  • 54chen: int返回就是update影响的行数...
  • kui.: 我在DAO那里,老是注入失败?? 快奔...
  • anonymous: 我也是,估计是框架本身的BUG。顺便...
  • anonymous: 请问rose的最新版有没有增加事务的支...
  • 叶良辰: chen老师,请问 那个SQL表示式的for循环...