背景:近期在新产品的开发任务完毕后一直在为寻找好的IDC和优质的托管服务忙碌。需求源自于我们重点要解决之前老版产品面临的国内外用户訪问速度慢甚至连接不上的问题。

除去架构技术上使用高性能、可扩展的方案,针对眼下的并发量和数据量而言仅仅要能保证网络质量的优质就能够达到较好的用户体验。


首先我们的产品平台数据须要较强的一致性、高可用性。并且非常多是动态数据。

依据CAP理论,我们首先否决了分布式部署的方案,一是自己和团队对分布式技术的拿捏还欠缺,二是从开发周期上来说不同意我们有太复杂的研究和设计。所以就将目标转向对有强一致性要求的数据和服务採用集中式部署的方案,于是面对国内网络的互联互通问题,甚至面对国际网络的互通问题我们就得依赖第三方服务——好的IDC和托管服务。在经历了传统解决方式中的多线机房。BGP机房(一直怀疑不是真正的BGP机房)的測试验证。也经历了某国内著名厂商的CDN加速技术的測试验证后,发现不怎么靠谱,连接速度慢和连接不上的问题就连我们自己小规模測试都会遇见。

惆怅中细致研究了下各种托管服务的指标,听取了一些专业人士的回答建议,自己又动手计算预计了下网络质量,想了想公司对托管服务这块开支的容忍度(要知道BGP机房好贵的,CDN加速服务的价格更吓人,更可怕的是保障还没底)。

先说下BGP机房,从接触到的BGP机房来看都是对国内线路的优化支持。即使我们能把服务部署到国与国的骨干节点上,我们国家的出口带宽还有可怕的大墙说不准也会影响到网络质量,再加上3万多公里的海底光缆传播(比方到美国),各个节点的转发,理想情况下怎么着延迟也得到几百毫秒吧。况且还不敢保证国外终端用户的网络质量和服务。难免又会出现国外用户连接速度慢或者连接不上的让用户恨、让领导气的糟糕情况。至于CDN加速服务。据他们的技术人员说对TCP这一层的加速得定制,所曾经期也不敢十分保障。

在进一步惆怅之中我在想一个问题:难道我们不能把产品做成国内版和国际版,把这两部分数据和服务分开,就近部署server不就能够先解决问题嘛。我想大家见过不少类似的产品设计。比方evernote和印象笔记、网游的不同区服......。接着我赶紧向以前的产品人员了解了一下之前产品的使用背景,原来他们之前操心做成这样后会遇到这样的情况:比方一个美国人在在美国用国际版能够有非常好的体验,比方登录快,获取各种信息快(当然,server就在他们美国的优质机房里)。结果这美国人有一天来了中国,由于产品的登陆慢或者连接不上就会对我们的产品造成恶劣影响(事实上我想来中国的美国人都知道有VPN这个东西吧)。

对这个产品理念我是不大能认同的。不能把产品设计成为一种能满足各种极端情况的完美产品,大家想想咱自己訪问国外server上的东西慢不慢就知道了,你能够理解这样的情况吗?后期假设这样的情况非常多非常多了,说明我们的用户量也上来了,也有钱了咱再想别的办法。

另外,对于产品的设计来说我认为也值得分为国内版和国际版。我们如今的设计是全球人民都用相同的功能相同的client(当然不同语言),有句话是这样说的“产品没有国界,但用户却有国界”,如今我们的产品设计并没有对用户有一个具体的定位,往往是想到添加一个功能全部用户都得升级。国内用户还好说,还是和我们不同生活背景,文化背景的国外用户呢?

后话:如今我们还在进行着“万能”托管服务的測试。我也已经把我的想法转达给了相关人员。得到了部分的肯定可是也有部分不认同,总之我觉得在开发中假设能靠产品设计和业务调整避免一些复杂的技术情况是值得的。

摆脱技术思维,转向产品思维——寻找“万能”IDC的苦恼的更多相关文章

  1. 产品思维&技术思维&工程思维

    产品思维 产品思维的起源是用户(或客户)价值.用户价值是通过技术手段以产品或服务的形态去解决用户的痛点,或带去爽点.毫无疑问,工程师在日常工作中应时刻关注并理清自己的工作与用户(或客户)价值的联系,并 ...

  2. 【用户分析-用户场景】这TM才是产品思维!

    @奶牛Denny :很长一段时间里,市场推广/营销(Marketing)在中国似乎是一个大家很忌讳的词汇.市场推广无非就是夸大包装,炒作一下,卖卖情怀——很多人都是这么觉得的,因为确实有一部分急功近利 ...

  3. 1.用互联网的产品思维打造一本app后端的书

    刚刚接触app后端,是做完adidas中国的官方商城的时候,那时不清楚app后端应该怎么架构,只能摸着石头过河,网络上只有一些零散的资料,遇到问题,只能不断地搜索,思考,务必找到解决问题的方法. 在从 ...

  4. 做IT项目管理也需要具备产品思维

    不知道大家有没有听过大胡子姜志辉老师的公开课,我自己认为讲的还是不错的. 因为本身大胡子老师就是一个IT行业的人士,自己还经历了程序员.架构师.项目经理.敏捷教练.产品经理.公司持有人等多个角色.所以 ...

  5. [转]一文读懂《梁宁·产品思维30讲》最精华内容(含全套PPT)

    http://chuansong.me/n/2294260949029 8 年前,我的主业是产品经理,产品思维改变了我认识世界的方式,让我明白司空见惯的设计,也有其底层逻辑. 几年后我接触培训.运营自 ...

  6. 技术思维VS管理思维

    以下为技术思维与管理思维的不同 在日常的工作中,会出现身兼两职 开发和项目经理 的情况,在此就要学会游刃有余的切换角色,方能一人分身二角 角色转换本质上是思维转换.思维决定一个人的行为,项目经理不像项 ...

  7. 《梁宁·产品思维30讲》课程学习笔记(内含全套音频+ppt资料

    科技进步.产品迭代.公司演化.组织变迁……不变的是用户的情绪和人性. 那些信奉“用户驱动”的人,从普通人变成了行业大佬,建立了自己的世界.乔布斯.马化腾.马云.雷军.张小龙.周鸿祎.傅盛……这些改变世 ...

  8. 做一个有产品思维的研发:Scrapy安装

    每天10分钟,解决一个研发问题. 如果你想了解我在做什么,请看<做一个有产品思维的研发:课程大纲>传送门:https://www.cnblogs.com/hunttown/p/104909 ...

  9. 做一个有产品思维的研发:部署(Tomcat配置,Nginx配置,JDK配置)

    每天10分钟,解决一个研发问题. 如果你想了解我在做什么,请看<做一个有产品思维的研发:课程大纲>传送门:https://www.cnblogs.com/hunttown/p/104909 ...

随机推荐

  1. HDU 3008 Warcraft

    题意:一个人有100点血和100点魔法,Boss有100点血.人有n个技能.每一个技能对Boss有a[i]点伤害, 且会消耗b[i] 的点魔量,人每秒会有t秒魔法恢复(最大为100)Boss每秒有q点 ...

  2. C++语言笔记系列之十——静态成员

    1.静态成员 (1)由keywordstatic修饰 静态变量定义语句在编译阶段就运行,运行过程中不再运行. (2)分类:静态数据成员.静态成员函数. (3)静态成员时类的全部对象共享的成员,而不是某 ...

  3. Mesh BRep Shapes

    Mesh BRep Shapes eryar@163.com Abstract. 当对OpenCASCADE的BRep表示法的数据结构有了一定的理解后,建议可以自己实现一个显示数据生成的功能,即网格剖 ...

  4. RvmTranslator6.6 - RVM to CATIA

    RvmTranslator6.6 - RVM to CATIA eryar@163.com RvmTranslator can translate the RVM file exported by A ...

  5. android ViewPager实现 跑马灯切换图片+多种切换动画

    近期在弄个项目.要求有跑马灯效果的图片展示. 网上搜了一堆,都没有完美实现的算了还是自己写吧! 实现原理利用 ViewPager 控件,这个控件本身就支持滑动翻页非常好非常强大好多功能都能用上它.利用 ...

  6. vim插件之delimitMate.vim

    delimitMate.vim--这个插件主要是在插入模式下,用来自动补全括号.引号等 下载地址 http://www.vim.org/scripts/script.php?script_id=275 ...

  7. hdoj--2955--Robberies(背包好题)

    Robberies Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  8. avalon 作用域

    作用域绑定(ms-controller, ms-important) 如果一个页面非常复杂,就需要划分模块,每个模块交由不同的ViewModel去处理.我们就要用到ms-controller与ms-i ...

  9. HDU2665 kth number 线段树做法

    题意:求区间第k小 思路: 线段树 每个节点上保存 当前区间已经排序好的序列 (归并一下就好了嘛 复杂度 O(l)的) 这样建树的时空复杂度都是 O(nlogn)的 对于 每次询问 二分一个答案 在树 ...

  10. jQuery中四种事件监听的区别

    原文链接:点我 我们知道jquery提供了四种事件监听方式,分别是bind.live.delegate.on,下面就分别对这四种事件监听方式分析. 已知有4个列表元素: 列表元素1 列表元素2 列表元 ...