8月初,我们去参加了velocity的"2015构建大规模弹性系统"大会。虽然感觉整体质量没有去年的水准,但是仍然能够感受到整个业内对于web和app整体性能的高度关注。大至关于网络规划,小到页面布局、减少app启动的类库加载顺序等,对于用户体验的极致化追求依然是我们持之以恒需要做的。这点,目前我们整个技术团队做的还比较让人汗颜,几乎没有专门关注过。对于“性能”--我们说对于用户体验可能更容易理解--是一个有自我约束和要求的程序员必须要去追求的,应该深入到我们的血液中,不断自检,而不是靠人鞭笞。去年devops的概念很火,今年依然在向这个方向演进,只不过每家公司针对自己的特别做了调整。在系统开发组,我们一直推行“谁开发,谁运维”的做法,也是要逼迫开发者要从开发阶段就开始考虑系统的容量、性能、监控和后期运维问题等,不能开发完就不管了,要把系统当成自己的“朋友”来看待和照顾。大家现在就可以问问自己,你对你现在的“朋友”好么?
以下排序按照交稿时间顺序排列。
innodb存储引擎的存在使得Mysql跃入企业级数据库领域,innodb从5.5之后也成为默认的存储引擎,其良好的事务支持以及性能的提升得到良好的体现。由于日常工作,搭建好数据库后,没有对一些重要的参数进行调整,会出现性能问题,为了更好的对innodb的一些重要参数有足够的认识,并能够进行简单的配置,起到性能上提升。
随着CDN商业化的普及,CDN价格也越来越低,使用CDN服务也不在是一件奢侈的事情。很多企业为了提高用户访问速度,会选择自建CDN节点或者选择商用CDN服务。对于使用CDN服务后,都会面临一个如何获取真实用户访问IP问题。使用CDN后,在获取真实用户IP地址时,都会讲到X-Forwarded-For这么一个http头。下面是我从网上摘录的一个比较详细介绍X-Forwarded-For的文章,大家可以先了解下,该文章是介绍通过nginx做负载均衡后获取真实用户IP地址的问题.
OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。 OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。
上一篇《白话tornado源码之待请求阶段》中介绍了tornado框架在客户端请求之前所做的准备(下图1、2部分),本质上就是创建了一个socket服务端,并进行了IP和端口的绑定,但是未执行 socket的accept方法,也就是未获取客户端请求信息。
简单的增加硬件规模、提高硬件配置,在系统初期能起到立杆见影的效果,也是这一阶段常用的扩展方式。但是随着系统规模的扩大、团队规模的增长,通过硬件的方式扩展系统带来的效果越来越不那么明显了,这时便是考验系统横向扩展能力的时候。因此说系统的高可用性是一场战役而非一次战斗。
什么是命名空间?命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮演了命名空间的角色。具体举个例子,文件a.txt 可以同时在目录/home/userA 和 /home/userB 中存在,但在同一个目录中不能存在两个 a.txt 文件。另外,在目录 /home/userA 外访问 a.txt 文件时,我们必须将目录名以及目录分隔符放在文件名之前得到一个访问的绝对路径/home/userA/foo.txt。这个原理应用到程序设计领域就是命名空间的概念。