精华内容
下载资源
问答
  • Chrome 技术篇-一电脑设置多个独立chrome方法实例演示,chrome独立多开技术。 先看效果图,只要电脑性能允许可以无限开。 任务栏已经分开显示了,新开的Chrome是纯净的,跟原来的chrome是独立。 两个chrome互不...

    先看效果图,只要电脑性能允许可以无限开。
    在这里插入图片描述
    任务栏已经分开显示了,新开的 Chrome 是纯净的,跟原来的 chrome 是独立。
    两个chrome互不相同,可以用不同的账号来登陆同一个地址。
    在这里插入图片描述
    chrome多开方法:
    创建一个快捷方式,目标后面加一个参数。这个参数的 "C:\chrome_new" 是我建的一个文件夹。以后这个文件夹用来存储新 chrome 的各种配置信息了。
    --user-data-dir="C:\chrome_new"
    如果想再建一个独立的 chrome,创建一个新的文件夹并指向它就好了。
    在这里插入图片描述
    如果想新的 chrome 可以加载原来的一些配置信息,可以把原来的配置信息找到放到新的独立空间对应的位置,比如加载某些插件。
    下面是设置方法:
    首先通过 chrome://version 查看个人资料路径的地址。
    在这里插入图片描述
    然后我们把这个用于存放数据的 Default 文件替换到新指定的路径下面就好了。
    在这里插入图片描述
    再次打开浏览器可以看到,两边的内容已经一致了,可以看右上角的插件,还有书签。
    在这里插入图片描述
    喜欢的点个赞❤吧!

    展开全文
  • 技术中台的作用是什么? 技术前台 技术中台 在什么情况下,才有必要做技术中台? | 前提1:技术组织结构垂直化 | 前提2:业务线又又复杂 有了技术中台,是不是就能上天? 总结 就在刚过去的半年里,「...

    目录

    技术中台的作用是什么?

    技术前台

    技术中台

    在什么情况下,才有必要做技术中台?

    | 前提1:技术组织结构垂直化

    | 前提2:业务线又多又复杂

    有了技术中台,是不是就能上天?

    总结


     

    就在刚过去的半年里,「中台」成了技术圈内讨论的热门词汇,就连一些名不见经传的小公司,也都纷纷喊出了「要向中台转型!」的口号,甚至有人说「不做中台,那就等着死吧!」

    如果我没有记错,「中台」思想源自于2015年,马云参观一个著名的游戏公司Supercell之后提出了,简言之就是“小前台、大中台”,随即阿里就成立中台事业群,并取得了很好的成效。

    随后,美团点评也开始走中台策略,腾讯在去年的组织架构调整中,也提出建设具有 “腾讯特色的技术中台”。

    技术中台的作用是什么?

    要搞明白这点,你需要先搞清楚「技术前台」、「技术中台」与 「技术后台」 之间的关系,以及他们各自扮演的角色与作用。

    先来说说我们的「技术前台」。

    技术前台

    「技术前台」,说白了就是为业务部门开发功能的技术团队。

    如果是ToC的业务,交付物必须贴近终端用户,如果是ToB的业务,交付物需要满足商家的需求。

    脑海中必须时刻牢记 “小步快跑,快速试错” 的理念,业务说啥,就是啥,业务要怎么做,你就怎么做。

    另外,研发资源的投入基本和业务对等,业务需求多,人数增加,业务需求少,人数相应减少,而且团队组织也基本按功能线来划分。

    运用的技术栈也相对单一,以Java语言为例,通常 “1个NG + 1个War/N个Jar + 1个数据库” 就搞定了,而其余的技术服务都将由「技术中台」提供。

    「技术前台」的核心价值体现在对业务逻辑的理解与实现上,是技术向业务传递价值的阶梯。

    我觉得在这点上,与线下销售团队的前台营销有一些类似。

    技术中台

    再来说说我们的「技术中台」。

    「技术中台」,说白了就是强调资源整合、能力沉淀的平台体系,当「技术前台」实现业务功能时,为他们提供底层的技术、数据等资源和能力的支持。

    这怎么理解?

    从这张图中可以看到,「技术中台」有点像编程时的适配层,起到承上启下的作用,将整个公司的技术能力与业务能力分离,并以产品化方式向前台提供技术赋能,形成强力支撑。

    在什么情况下,才有必要做技术中台?

    俗话说 “知己知彼,百战不殆”,在我看来,面对技术问题时,“知己” 比 “知彼” 更为重要。

    在实施「技术中台」之前,我们是否要静下心来对自己进行 “灵魂拷问”?比如说,当前的时机是否已经成熟?或者怎么才叫成熟?

    在我看来,要想做「技术中台」,客观环境需先满足两个前提:技术组织结构垂直化业务线又多又复杂

    否则,「技术中台」的结果只会是两种:一场闹剧 或者 一笔赔钱的买卖。

    | 前提1:技术组织结构垂直化

    曾经有朋友说过,每家公司的组织结构演进都是一部心酸血泪史。我很费解,问为什么?

    他说,因为这中间掺杂着太多的主观判断与情感纠葛。

    比如,某员工认为公司管理混乱,组织架构来回调整,今天拆这个团队,明天合那个团队,纯属病急乱投医,高管都是些横行霸道,滥用资源的傻逼货,借机搞人,这公司,没救了。

    但高管们大呼冤枉,觉得组织架构调整的目的是为了提高产出和人效,如果你干得不爽可以离开,这种事情,本来就不可能让每个人都满意,既得利益者肯定大加赞赏,而失去利益者肯定狂喷不止,不用理会。

    的确,这种 “自我革命式” 的调整,基本不可能一步到位,需要一个过程慢慢演化,而在这个过程里,自然会遭遇很多的阻力或质疑。

    瞧瞧这结构,经典的职能分工模式,有什么问题吗?

    我不但说不出问题,甚至能找出一万个理由说明这种模式的好处。开发按业务线分开,测试与运维形成上下层关系,谁也不想管对方,两边的老大也是评级的,相安无事

    那什么情况下才会觉得这种模式有问题呢?

    客观的说,职能分工模式更适合瀑布式开发模式。先谈需求,再谈工期,随后按部就班地往下做

    但当用户的需求开始变的多种多样,业务方时不时的就要上一个新功能,做一个新系统的时候,你会发现开发出来的系统很难变更,至少很难快速变更。

    于是,你把开发按系统功能进行重组,每个团队都围绕 “交付速度” 开展工作,但这样又遇到了两个新的问题:

    • 多种多样的中间件,每个团队独立选型中间件,没有统一的维护,没有统一的知识积累,无法统一保障SLA。

    • 开发与测试、运维之间目标不一致(比如测试A君,开发要求你只做功能测试,快上线,但测试老大却要求你做非功能测试,保障质量,避免背锅……到底听谁的?),陷入永无休止的扯皮与争吵。

    面对这两个新的问题,我们做出了调整:

    • 成立平台架构组,负责中间件、自动化测试/运维、数据库等技术工具或服务的开发、维护。

    • 把质量管理部中的测试团队,与系统运维部中的应用运维团队,按照系统功能拆分至各开发团队,由原开发经理负责,形成各自独立的Feature Team。

    到这个时候,虽然整个组织结构还未完全实现垂直化分工,但已基本能够达到 “快速试错,小步快跑” 的目标。

    另外,这更像平台化的另一种雏形,就是逐渐把一些公共、底层的技术能力抽象出来,与业务逻辑分离,并形成各种接入式基础服务,同时可以为多个业务线提供服务。

    也就是说,打造「技术中台」的前提是平台化,而平台化的先决条件是「组织结构垂直化,技术工具公共化」

    如果没有这样的前提,就失去了打造「技术中台」的立身之基。

    | 前提2:业务线又多又复杂

    曾经有朋友问我,技术的核心价值是什么?我的答案是 “改变世界”。

    他说,别扯淡,好好说话。

    他说,对业务驱动型的公司来说,技术的核心价值是 “降低成本,提升效率”,而单从架构设计的角度来看,想达成这项目标的两个手段是「通用性」与「复用性」

    现在想想,这句话可以完美的衔接到「技术中台」上去。

    回顾几年前,我们的业务逻辑也曾非常单一,要么用你的银行卡买卖基金,要么用你的电子钱包买卖基金,方便,快捷。

    渐渐地,随着业务创新业务增多,需要前后台系统定制开发,逻辑兼容难度增加。

    在这样的局势下,为满足企业规模扩大和多样化经营对组织机构的要求,公司开始转向事业部制,按产品、地区或市场(顾客) 划分经营单位。

    为了应对业务方的这次调整,我们开始将业务开发中的一些共享服务分离出来,成立了业务中台组(由于本文以技术中台为主,业务中台的内容将不进行展开说明)

    将可以复用的服务和代码,交由这几个组开发出服务来,给业务组使用,这样数据模型会统一,业务开发的时候,首先先看看有哪些现成的服务可以使用,不用全部从零开发,也会提高开发效率。

    与「业务中台」相呼应,「技术中台」就像一个工具大仓库,里面放满了各式各样的技术工具,无论是哪个团队,哪个人,快速找到自己的工具,拿来就用就行了。

    而维护工具的这群人,不用贴近业务开发,每天的任务就是研究如何使用这些工具,如何调优,遇到问题如何Debug,形成知识积累。

    有了这么一群专职的人,就可以根据自身的情况,选择有限几个技术栈集中研究,限定业务组只使用这些工具,可保证选型的一致性。

    如果你只有一条业务线,那就别搞「技术中台」了,把人凑在一堆,又省钱,又省力。

    有了技术中台,是不是就能上天?

    理论上讲,当业务线变多且越来越复杂,前台与后台之间的“技术债”会随之变多,重复造轮子与沟通成本太高的现象会增多,通过技术中台可以一定程度上来解决这个问题。

    这种理论看似完美,但在实际执行上却困难重重。

    设想下,如果「技术中台」做得太多,资源投入就会很大,无法形成正向的利益传导;

    如果「技术中台」做得太少,又无法深入理解业务,导致适配方案落地性变差,渐渐失去价值。

    这句话怎么理解?

    十年前,我在某金融软件公司工作,随着客户数的增多,成本与效率/质量的矛盾日益凸显。

    设想下,从一波人维护一套代码,渐渐变成一波人维护几套代码,这样一来,Bug增多,效率下降,抱怨也随之变多,再加上甲方挖人,最后人员离职,团队土崩瓦解,Game Over……

    在这种情况下,一般公司会采取三种应对措施:

    1. 一对一服务 - 项目制:多个团队,多套代码,多套标准,服务多家客户,但这样一来成本又难以承受,时间一长,肯定资不抵债。

    2. 一对多服务 - 标准化:一个团队,一套代码,一套标准,服务多家客户,但客户不买账,客户说我的需求都是个性化的,你别来某某标准来引导我,叫你咋做,你就咋做,不愿意?那您走,我找别人家做。

    3. 一对多服务 - 产品化:一个团队,一套代码,多套标准,服务多家客户,通过技术与配置化的手段,利用SOA思想,打造自己的产品化平台,但对技术投入要求较高,尤其是核心人才的依赖较大,中小型企业一般都很难留住这些人,只要他们一走,公司基本完蛋。

    回想下,当年那些叱诧风云的软件公司,又有几家活下来了?以金融业为例,恒生算是在第二条路上走的比较成功的,而我们当年却死在了第三条路上。

    在我看来,我们的「技术中台」就是一家 “乙方服务公司”,而我们的「技术前台」更像是一家 “甲方电商公司”。

    不可否认,有了这家 “乙方服务公司” 之后,在面对大型项目及快速多变的业务时,技术的投入与主动权更强了,但由于理念、职责、节奏与使命不同,外加 “屁股决定脑袋” 的立场,前台与中台之间很容易引发矛盾。

    从职责角度来说,前台是 “快速应对业务变化”,中台是 “稳定高效提供服务”。

    一个追求效率,一个追求质量,这矛盾是天然存在的。

    怎么理解?我来举个小例子说明下。

    前台部门的A团队和B团队,由于业务需要同时向「技术中台」提出要接入缓存服务的需求

    「技术中台」的中间件产品线中有一套基于Proxy的自研分布式缓存系统,已在其他业务线运行多年,但由于A团队与B团队的技术债都各不相同,必须通过增加适配器才能完成接入

    而此时人手又不够,按重要程度排序,只能先接A团队,但B团队也有需求,又等不及,怎么办呢?就先给他来个Redis接着玩玩吧,等A团队接好了再来接你的。

    一个月后,等A团队接完了,找到B团队,这时痛点已不存在,团队的激情自然不高,毕竟没有收益,就不了了之了。

    几个月后,安全团队提出要对Redis集群进行改密,由于A团队接入的是「技术中台」的缓存中间件产品,采用代理模式,并通过控制台操作,既方便,又快捷,找个晚上,5分钟内,全部搞定。

    但B团队用的是直连Redis的模式,密码嵌入在SDK中,不仅在改密过程中需要前台与中台联动,而且还需要在改密后重启应用服务,这样一来,只有配合应用发布的周期才能干这件事。

    最终,原本五分钟可以搞定的事,整整搞了三周才搞定,「技术中台」的运维同学更是陪熬了多次通宵,还因为人为疏忽引发了一次事故。

    就在这件事过去的一年时间里,由于B团队系统的业务规模逐渐增大,Redis数量也逐渐增多,「技术中台」的运维成本与风险也随之上涨。

    这期间,中台曾多次与前台交涉,希望能够通过适配的方式将A团队接入缓存中间件,但始终未能达成。

    在「技术中台」看来,“你们只顾自己,不管别人,功劳你们拿,黑锅我们背?”

    在「技术前台」看来,“你TM懂个屁!我们都快被业务逼疯了,你们不就多费点人工吗?多加点班会死吗?总扯一些理念干嘛?对你没收益的事,你干嘛?”

    因为这样的分工模式,导致这种矛盾在工作中很多,而且似乎并没有更好的方法彻底解决。

    有人说,要解决很简单,要么强压,要么加大投入,下下狠心就得了。

    先来说说强压,似乎能够在短时间内达到目的,但纯属 “杀敌一千自损八百” 的招数,难道要业务研发团队停下手上的活,倾巢而出一起搞技术改造吗?更何况,前台承受的压力,是中后台团队无法想象的。

    退一步说,抛开 “互相理解” 这个话题,强压的套路等同于 “攻城为上,攻心为下”,对今后的管理与团队氛围都会带来诸多的麻烦。

    再来说说加大投入,看看我上面提到的 “死在路上的软件公司们”,还想加大中后台的投入吗?

    如果你不是大厂,还是算了吧。

    那句话怎么说来着?最悲惨的结局是,你的技术中后台越发强大,但你的业务规模却在逐渐萎缩。

    可悲,可叹。

    总结

    在互联网时代,技术圈似乎从来不缺少热议话题,但有质量,有深度,且能解决实际问题的却少之又少。

    现在人人都在讨论「中台」,今天「产品中台」,明天「数据中台」,这个说能提高效率,那个说能排除万难,聊得不亦乐乎。

    对于企业来说,话题热不热并不重点,方案牛不牛逼也不重要,关键是能帮助用户找到效率、质量与成本的平衡点,或许才算是一个合格的「技术中台」。

    展开全文
  • 互联网中的技术中台

    千次阅读 2019-09-09 22:06:54
    在有些人眼里:中就是技术平台,像微服务开发框架、Devops平台、PaaS平台,容器云之类的,人们都叫它“技术中台”。 在有些人眼里:中就是微服务业务平台,像最常见的什么用户中心,订单中心,各种微服务集散地...

    定义

    在有些人眼里:中台就是技术平台,像微服务开发框架、Devops平台、PaaS平台,容器云之类的,人们都叫它“技术中台”。
    在有些人眼里:中台就是微服务业务平台,像最常见的什么用户中心,订单中心,各种微服务集散地,人们都叫它“业务中台”。
    在有些人眼里:中台应该是组织的事情,在释放潜能:类似于企业内部资源调度中心和内部创新孵化组织,人们叫它“组织中台”。

    中台更多是因为公司业务在发展到某一阶段时,遇到瓶颈与障碍后,为解决实际问题而提出的解决方案。

    1. 为什么需要中台?

    中台的产生,并非完全是自顶向下的战略设计,也非是为了追求某种行业风口,而是随着公司业务的高速发展、组织不断膨胀的过程中暴露的种种问题需要被解决。而这时,中台的概念恰好对应了这个问题,所以大家接受了中台。

    1. 例:
      公司刚开始只有淘宝,后来意识到B2C模式的业务也会是电商领域重要的组成部门,所以出现了天猫,随着天猫的不断发展,逐渐独立成一个部门,但是这两套都包含订单、商品、库存、价格、仓储、物流等基本业务系统。这两个系统互相独立,各自运行。

    等到10年左右,阿里开始上线1688、聚划算等业务的时候发现,这些业务针对的领域虽然各不相同,但是他需要用到的系统功能也高度类似,主要也是订单、商品、库存、价格、仓储、物流等系统。如果这些新业务的系统也都要全部重新开发一遍,这无疑是很大的资源浪费。明明既有的系统调整一下就可以满足新业务的需求,为什么还要继续开发新系统呐?

    在这个大的背景之下,阿里内部将共享服务部的职权不断提升,统一将各个业务业务部门重复使用,反复建设的功能和系统统一规划和管理。
    阿里供应链中台/图源网络

    例2: 滴滴在15年末开始启动自己的中台战略,这与滴滴当时的业务发展阶段也是相关的。

    2015 年末,滴滴在短时间内形成了包括快车、出租车、专车、顺风车、代驾等多业务的垂直化架构。

    这些业务虽然会有一些差别,但是核心系统和流程都是类似的。如果各自独立开发,也会出现各种各样的问题。

    比如说,开发成本过高,滴滴旗下的每个业务,其实都是可以单独支撑起一家公司的,如果每个业务都独立做到极致,那么开发成本和人力成本就会非常巨大,而如果为了控制成本,就把系统的建设放缓,则意味着,无论是核心系统本身的质量,还是对外的用户体验都不太好。

    在这样的背景下,滴滴也开始考虑将诸多业务,以及各个城市的系统统一规划,统一建设,提升服务前台的能力。

    其实,刚刚我们提到的,以及许多正在实践中台业务的公司,都有类似的问题,这些问题,大约会是两类——

    一类是,许多业务需求或功能需求高度类似、通用化程度很高,但是由于没有专门的团队负责规划和开发,大量的系统重复开发、重复建设,导致复用性低、效率低、产研资源浪费、用户体验不统一。

    另一类是,早期业务发展过程中,为了解决一些当下的业务问题,垂直的、个性化的业务逻辑与基础系统耦合太深,由于没有平台性质的规划,横向系统之间、上下游系统之间的交叉逻辑也非常多,这样导致在新业务、新市场的拓展过程中,系统没法直接复用,甚至没法快速迭代。

    这两类问题,在软件开发领域,有专门的名称,叫做“重复造轮子”和“烟囱式架构”。这两类问题本质上是企业在发展过程当中,为了解决当下的业务问题,快速上线了很多功能,而欠下了许多技术债,当企业进入成熟期之后,发现这些问题的存在,严重影响了企业的运行效率和运营成本。
    如何能够机制化,产品化地解决这些问题,能够更好地通过产品的形式,将企业内部具有很强的通用性的数据、功能、产品甚至经验进行统一规划和开发,进而更好地帮助前台业务部门更多地关注业务,提高业务运营效率,进而提升企业竞争力,是企业开发中台的基本出发点。

    现阶段,大多数提出中台战略或是建设大中台的公司,大多都有类似的困境。业务高速发展多年,许多问题积重难返或者大量在解决“重复造轮子”的问题,中台这个概念,很多情况下是因为契合了大公司业务的发展的情况,而被大家广泛认可。

    2. 中台能解决什么问题?

    很多公司的中台业务,实际业务发展到一定阶段,进入一个瓶颈之后,为了能够应对接下来的问题,才一点一点从内部开始推动解决之前的问题。
    但这其实只是中台建设的一个层面。

    中台作为一种产品设计思路,或者系统架构思路,并不受限于公司的规模,理论上讲,任何一家即将或者正在面临业务高速增长的状态时,都很值得利用和借鉴中台的思路,将目前业务当中大量可复用的功能和场景进行梳理,为业务的高速增长做好准备。

    这在中小公司当中,是有现实意义的。

    对于很多中小公司,当他们走出生存困境,进入到高速发展阶段时,会遇到很多的问题,但大概率会遇到的一个问题是,过往的业务模型,产品能力很有可能没法完全承接住大规模用户增长带来的压力。

    而当你具体到每个用户的时候,你又能发现,他们遇到的问题你之前都遇到过,只不过,因为一下来的太多,你没法像过去一样提供达预期,甚至超预期的服务时,对方就会产生不满。

    这也是为什么许多公司会生于拉新,死于留存的一个原因。

    很多公司在这个阶段的选择都是为了临时解决一个问题,快速上线一个功能,也不是不可以,只不过,很有可能你的解决方案会不断带来新的问题,最后陷入到功能太过复杂,以至于积重难返的地步。

    所以,在有可能的情况下,公司将一些大概率长期有价值的功能,专门模块化,进行开发和优化,确保即使业务规模进一步扩大,也能够满足业务需求。甚至,随着能力或方法论的不断优化,甚至有可能某一天成为整个行业的方法论。

    这个过程,就很像是在高速飞行过程中修飞机一样。一方面,机翼已经千疮百孔,摇摇欲坠,另一方面,发动机还在运转,你还能往前飞,但你知道,如果再进入到下一场战斗,你不见得还能确保飞机不会坠落,所以,必须抢在下一次战斗前把飞机修好。

    随着业务的发展,你对飞机的要求,也不仅仅是修好,可能会希望,能够提前预防一些问题。或者,知道你的飞机哪里战斗力最强,就把哪里做到最好。或许,就能够回避之后的一些问题。

    这或许是中台这个概念,对于中小公司内部产品规划的一个启发。

    当然,需要提示的一点是,对于中小公司而言,中台的理念不见得是单独拉几十人搭建一个中台产研团队,可以将一些关键流程先行标准化,把一些反复出现的场景当中的解决方案进行沉淀,部分需要产品化的功能先行产品化,可能对于一家业务刚刚开始起步的公司来说,就已经很重要了。

    3.中台产品经理的挑战

    一方面,是思维的差异。

    很多产品经理并不是从一开始就从事中台相关的事宜,也不是一开始就有中台这样的定位。更多情况下,他们是从前台业务部门,或者以业务为导向的产研部门转型到中台产研部门。

    这时,其实要面临很大的思维方式、做事方法的转变。

    在业务部门或者以业务为导向的产研部门,最核心的目的就是达成业务目标,要求你速度足够快、功能高效地解决当下的业务问题,当前业务发展的效率是最关键的。

    至于说,这个功能将来有没有可能适用于别的场景,有没有可能解决别的问题,这个问题实在是没那么重要。

    但是,对于中台不能如此。
    对于中台产品经理来说,必须思考的问题是,这个功能在现在或者将来能满足多少业务场景?如果将来有新的业务出现,是不是能够复用?或者说,需要做多大的调整才可以复用?甚至于,这个功能有没有可能对外输出,提供SaaS化的服务。

    另一方面,是环境的变化。

    当你在业务部门的时候,响应业务是相对轻松的。但是,在中台部门,响应多个业务,就没有那么轻松了。

    就拿需求调研为例。在业务部门或以业务为导向的产研部门的时候,你只要和对接的业务人员沟通清楚需求就OK了,毕竟,你只要了解这一个或对应的多个部门的业务需求即可,业务目标相对比较明确。

    但是,当你需要响应多个业务部门的时候,就没有那么容易了。

    你会发现,同样一个需求,A部门的流程和B部门流程完全不同,或者,流程是相似的,但到具体细节的时候,却有很大差异。

    更可怕的是,同样一个问题,由于业务的发展阶段不同,对于问题的态度也全然不同:有的部门业务已经非常成熟,自己流程也很清晰,所以不太希望你来调整他们现有的流程;但是,有的部门还处于探索期,还没有遇到你提出的问题,可能压根就不理你。这时,对于中台产品经理的挑战就非常大。
    他们可能会将大量的精力耗散于不同部门之间的沟通协调,反复对同一个需求进行确认,很长时间没有明显突破。这个时候,就要求中台产品经理有很强的沟通、协调和协作能力。
    并且,因为他们接下来要做的解决方案,是要服务于多个业务。这个时候,需要中台产品经理有很强的逻辑思考能力,看到不同需求之间的共性需求,并提炼出一个产品化的解决方案。
    甚至于,对于一些尚未遇到这个问题的业务部门,可能还要帮他们前置地思考解决方案。

    这又很要求产品经理的逻辑思考和抽象思考能力。

    既需要沟通协作的软技能,又需要逻辑抽象的硬思考,这可能才是中台产品经理最有挑战的地方。

    虽然有挑战,但是也不见得没有方法。对于中台产品经理来说,刚刚我们提到的内容,也只是帮助中台产品经理,对于中台产品这个岗位所要面临的挑战和工作,能够有一些初步框架性的理解。
    对于中台产品而言,他们的能力要求其实跨越非常大。一方面,需要极强的逻辑思维和战略分析能力,能够看到业务当中的关键流程,理解业务接下来的发展方向,并将其转化为产品功能,与研发一起实现。另一方面,又需要极强的沟通和交流能力,能够在与多个业务线,需求、背景、想法各不相同的相关方一起,推动完成相关功能的实现。

    展开全文
  • 接着上篇继续讲,接下来主要介绍交易总体设计的技术要点设计,对于电商中台来说,交易系统是核心的核心,一开始就需要围绕高性能,高可用,和高扩展三方面来重点设计。本篇主要介绍高性能设计。 对于高性能的...

    接着上篇继续讲,接下来主要介绍交易总体设计的技术要点设计,对于电商中台来说,交易系统是核心中的核心,一开始就需要围绕高性能,高可用,和高扩展三个方面来重点设计。本篇主要介绍高性能设计。

    对于高性能的定义,通常可以理解为系统/服务接口响应时间低(rt)且并发量(qps,tps)高. 提高性能的主要策略有:选择合理的分布式事务处理机制,数据库的分库分表,读写分离,异步化,缓存,复杂查询走搜索。

    选择合理的分布式事务处理机制

    交易业务要求订单,库存,优惠券,红包,支付等数据要强一致,如何保证这些数据之间的一致性是必须要解决的问题,也就是分布式事务的场景。

    业界分布式事务的选择方案非常多,每种方案之间的差异性非常大。让我们大概看一下几种常见的方案和其特点:

    2PC: 二阶段提交协议,最大几个问题是事务管理器(协调者)和资源管理器(参与者)之间的调用是同步阻塞的,如果在一次事务中只有部分资源管理器进行了commit操作,其他超时或者没有成功,会导致数据的不一致性。

    3PC: 三阶段提交协议,是对2PC的改进版本,引入了超时机制,极大的降低了同步阻塞,preCommit 阶段协调者和参与者出现通信问题后,仍然会出现数据不一致性的问题。

    TCC: 其实也是2PC的改进版本,TCC将事务参与者从数据库本身提升到了业务服务粒度,让每个业务单元实现try,confirm,cancel三个接口,协调者在调用完try接口会,根据返回接口调用confirm还是cancel,其最大问题是业务侵入性非常强,2PC的单点问题,超时问题也都存在,并且需要业务单元考虑各种异常情况,没法利用数据库的事务机制。

    阿里GTS: GTS通过将事务协调器集群化的方式解决了单点问题,但这也带来了另外一个问题,原来本地化的协调者变成了要网络通信的云协调者,如果不是在同一个数据中心,要跨越公网或者专有网络,性能损耗比较大,此外GTS支持的服务框架也是有限的,如果不支持也需要实现类似于TCC的业务接口。

    SAGA: 在微服务架构下,关注的人越来越多了,但saga早在1987年就提出来了,基本核心思想Saga是一系列本地交易,每笔事务都会更新单个服务中的数据。第一个事务由系统外部请求启动,然后每个后续步骤由前一个事件完成而触发。其最常见的两种实现方式如下:

    1.事件/编排:没有中央协调器,每个服务产生并聆听其他服务的事件,然后采取对应的处理动作。通常会使用消息中间件来实现。

    1. 命令/协调:中央协调器负责集中处理事件的决策和业务逻辑排序。因引入协调器模式比较重,目前没有好的框架。

    对saga要详细理解可以自行google,baidu.

    事务消息最终一致性方案:利用消息中间件的事务性消息/两阶段消息来实现,流程如下:
    在这里插入图片描述

    这种模式对业务的侵入性比较比较低,利用消息中间件,性能上有非常好的保障,此外即使遇上网络超时等问题,通过消息中间件的超时回调功能最终都能保证数据的最终一致性。因此我们也选择了这种方案作为我们的实现。以简化的确认下单时序来说明这个场景:
    在这里插入图片描述

    通过时序图可以看出,通过事务消息的2阶段提交和消息的超时回调极大的提升了各个业务数据的一致性,已经是非常不错的方案了,但仔细分析这个图,你还是能发现在极端场景还是有缺点,看个明显的问题:

    库存回滚失败:在本地事务回滚的情况下,调用库存系统回滚库存超时或者发生异常,库存数据将会出现不一致情况。对于这种情况需要通过离线或者实时的库存对账系统专门来解决。针对这个问题我们后面可以写一篇文章单独讨论了。

    数据库的分库分表

    对交易来说,数据量最大的是交易主表和子表,这两个表的数据也是随着业务量增长最快的,需要在一开始,就要考虑分库分表策略,不然等到业务发展到一定量再来调整,会非常痛苦,你会从前到后修改一边,还要迁移数据。对于这块我们总结了一些比较实用的策略,如下:

    用商家id取模作为分库分表的字段:这种策略比较适合平台性的公司,如果淘宝,天猫和拼多多。 但对于一些非常大的商家来说,还是会发生数据倾斜的情况。

    用买家id取模作为分库分表的字段:这种策略比较试用于自营性的平台,像京东这样的。

    自定义分库分表的规则: 大部分的情况,通过上面两种策略就能满足,如果你的业务非常特殊,比如要按照年月日之类的分,那就需要自己写分库分表规则函数来做了。

    分库分表的总原则是:利用交易常用的字段作为分库分表的字段,可以联合使用,库和表的数量支持后期修改,对应用代码透明,后期数据库扩容,上层应用无感知,至多调整一下分库分表规则。目前我们利用的是开源mycat来做这块,这块好用的还真不多,很多需要自己做额外工作。

    读写分离

    读写分离不太适用交易的场景,特别是在并发量非常高的时候,数据库的主备之间通常存在几ms的延迟,搞不好会造成很大的故障。但是为了节省成本,把备库的资源利用起来,对于一些规则确定不会造成问题的查询可以走备库,如:对交易完成数据的查询,对实时性要求不是非常高的运营管理系统和客服系统的查询,都可以切到备库查询。 读写分离也是需要提前考虑,在一开始就需要制定出规范,明确使用不当的后果。现在很多分库分表的框架都可以做到对应用透明的主备读写比例的调整,但业务代码必须要评估哪些场景是不能走备库读的。

    异步化

    对于核心系统异步化的重要性和带来的好处不用多说,但什么样的场景需要异步化了,就交易来说,像扣减库存,优惠券使用,支付这些核心链路是不能异步化处理,能异步化处理的是在交易时刻就不需要立刻确定的场景。如创建物流订单,佣金计算等。异步化的总体概览图如下:

    在这里插入图片描述
    总体原则就是将不在交易核心链路的部分,尽量异步化去处理。

    异步化常用的手段就是消息机制和分布式定时任务。

    消息机制:首先需要标准化交易事件消息,如交易创建,确认,支付完成等。来看一个样例代码片段:

    在这里插入图片描述
    不要每个交易事件,都单独搞个事件对象。发消息到消息中间件时,每个event为一个messageType,同一个topic,为了下游系统只订阅自己感兴趣的少部分数据,可以利用消息中间件的tags之类的机制进行订阅消息过滤。

    分布式定时任务:支付超时关闭交易,失败重试,异常交易扫描这些场景适应定时任务,延迟在分钟级别,这块选用开源界比较优秀的框架就可以了,没有必要自己搞。

    异步化带来的好处主要是:

    将交易系统和非核心系统解耦,从而确保交易的稳定性和响应时间。

    帮下游系统削峰,很多下游系统的容量是非常小的,在大促这样的高峰期间,是没有足够的资源跟上交易的处理速度的,消息中间件集群,会起到非常好的缓冲削峰作用,下游系统按照自己的速度消费就可以了,如果下游消费太慢会出现消息堆积,但消息集群本身就是耐堆积的。

    缓存

    缓存适用于读多写少的场景,但交易是以写为主的场景。所以交易数据本身是没有缓存需求的,但通过前面的核心链路分析可以看出,像交易依赖的商品,优惠,用户这些信息如果直接走DB, 会非常慢,而这些数据是读多写少,是非常适合使用缓存,提高性能的。交易团队需要通过依赖调用关系分析,推动依赖的上下游系统的技术团队,使用缓存技术,做性能提升和可靠性保障。常用的缓存策略有前置缓存和后置缓存。

    前置缓存:

    在这里插入图片描述

    优点:即使业务系统挂了,也没有啥影响,

    缺点:后期升级比较麻烦,必须通知依赖client的应用都强制升级。

    后者缓存:

    在这里插入图片描述

    优缺点正好和前置缓存相反。

    在实际使用中,如果为了保障非常高的可用性,可以两者结合使用,通过动态配置开关做切换,在client层的代码做一下路由切换处理。

    复杂查询走搜索

    成熟的电商系统,都有自己单独统一的搜索平台,选择什么样的索引构建方式,完全取决于业务上要多实时的查到最新的数据,目前主流的搜索框架,支持dump DB 和 api 直接推送两种模式。在我们自己的实践中,认为交易数据的实时性非常高,需要在1秒之内完成数据索引的构建。

    在这里插入图片描述

    在接受交易事情消息上可以利用批量投递的策略,提升处理能力,。

    这块需要特别注意的是消息集群到交易索引的构建系统消息在处理上会出现乱序的问题,必须要通过业务字段做先后次序处理,忽略过期的数据,一般都用业务发生时间bizTime.

    在推送索引这块可以利用聚合缓存策略, 减少推送索引的频率,很多搜索框架都对每次推送数据的大小,每秒的推送次数都有限制,需要利用聚合缓存策略来适应选择的搜索框架,总的来说就是不能推的太快,也不来太慢,还要保证所有的索引构建完成在业务允许的范围(1s)之内。

    搜索框架的选型非常多:开源的有ElasticSearch,lucene,nutch,solr,solandra. 商业产品的每个云平台都有搜索产品提供,默认推荐 elasticsearch, 如果对搜索结果准确性和智能化程度比较高,使用商业化云产品。

    这次就先写这么多,后面接着讲高可用和高扩展的技术要点设计。

    对这块有兴趣的欢迎交流技术方案和产品玩法。
    更多文章欢迎访问 http://www.apexyun.com/
    联系邮箱:public@space-explore.com

    (未经同意,请勿转载)

    展开全文
  • 文/技术领导力社区编辑/Emma阿里中间件高级技术专家 钟华、高级技术专家 泠茗、中间件技术专家 玄难,在公开分享和访谈中提到阿里技术中台建设实践,包括:技术中台、移动中...
  • 前台、后台我知道,中台是什么呢? 今天一早起来,整个互联网圈都被腾讯的组织架构调整刷屏了,甚至有些人对腾讯新的6大事业群如数家珍,侃侃而谈,搞得比对自家公司的组织架构还清楚一样。 腾讯进行组织架构调整...
  • 白话解读“中台技术

    千次阅读 2019-08-14 12:47:58
    什么是中台系统?它是如何诞生的?它长什么模样?我们为什么需要它?一串串的问题不禁浮现在我们的脑海,今天我们就带着这些问题,一起走进中台。什么是中台中台诞生任何一软件系...
  • 但如果中台同时服务于多个前台应用,在资源有限的情况下,必然涉及对来自不同应用的需求的优先级排序和取舍。如果前台应用急需某一能力,但中台又不能及时提供,是否允许前台先实现,等中台有时间再来沉淀? 由此...
  • 架构实际由若干层次组成,其中微服务技术中台是构建中架构的重要组成部分。SpringCloud和Kubernetes,是目前互联网企业构建微服务技术中台所采用的主流技术栈,波波也会分析和比对这两方案。Kubernetes...
  • 架构一后台管理系统的技术

    万次阅读 2016-01-19 20:11:02
    经过几年的学习与开发,下面把架构一web项目所使用的技术,做一简单汇总,便于以后做技术选型时,更加方便。   后端技术相关 开发语言:java 适用范围:b/s架构后台管理系统 后台框架:spring +spring mvc...
  • 多个域名对应一个服务器,为了避免域名后增加端口号,两个域名都需要占用80端口号,使用nginx来进行配置。 2. 解决方案 目前项目,线上正在使用(100%可用)多域名对应一个服务器情况(线上ip及域名替换了下) #...
  • 中台什么鬼 | 白话中台战略

    千次阅读 2018-11-23 10:34:53
    从去年开始,好像就有一只无形的手一直将我与“微服务”、“平台化”、“台化”撮合在一起,给我带来了很的困扰和思考与收获。 故事的开始源于去年的技术雷达峰会,我在会上做了一场关于平台崛起的主题分享(...
  • 一、前台传递不同类不同对象 1、属性名不同,可直接封装进controller方法的对象参数(经验证) 2、属性名有重复,可在重复的类设置...方法3、多个对象在前台jsp的input控件name值该是什么就是什么。后台controller
  • 何修峰,就职于滴滴业务中台,任高级技术专家一职,致力于微服务治理、提高系统工程效率、构建底层基础组件或服务,在大型分布式系统构建、微服务治理、复杂系统重构方面有丰富的经验,现负责滴滴支付中台基础工作,...
  • 5步骤,打造你的业务中台

    千次阅读 2020-04-13 16:15:49
    数字中台建设的整体策略,核心思想是从业务抽象到领域建模,再到架构设计。因此业务中台的架构思路和整体策略保持一致,并进行必要的补充。以下,Enjoy: 01 业务抽象 在业务抽象阶段,通过业务调研和业务分析...
  • JBoss服务器同时部署多个项目war包

    千次阅读 热门讨论 2018-05-31 14:32:54
    所以如果是多个项目的话,那么就需要申请多服务器,非常的浪费资源,所以就要想办法解决啦。原来一直听说过一jboss服务器可以部署多个war包,但是没有尝试过,这次就必须要去做啦。一起来了解一下最后的实现结果...
  • 电脑控制多台手机技术分享被恶意转载的声明 微群控一电脑控制多台手机软件本来是由奥创软件研究院首家研发,且奥创软件研究院也分享了一些相关的技术文章,但是分享的技术文档却被做营销的人恶意转载,...
  • 数据中台被誉为大数据的下一站,由阿里兴起,核心思想是数据共享,2015年阿里提出“大中,小前台”的策略。2018 年因为“腾讯数据中台论”,中台再度成为了人们谈论的焦点。 2019年,似乎人人都在提数据中台,但...
  • 作者 | 杨威,明略科技技术中心负责人编辑 | 夕颜出品 | AI科技大本营(ID:rgznai100)本文为CSDN即将推出的《新战场:决胜中台》专刊的第 3 篇文章。【导读】数据中台...
  • 全渠道零售中台与数字化转型(1)-中台的前世今身

    千次阅读 多人点赞 2019-06-25 15:37:59
    本系列博客的目标是计划使用近半年时间创造: 国内唯一一部从业务场景到技术设计,从企业战略考虑到技术细节落地的大全;... 全渠道零售中台与数字化转型(3)-中台给企业技术带来什么实际的价值? 全渠...
  • 【一服务器上如何创建多个网站?】 原理分析 本质就是Nginx监听一服务器的80端口,使用不同的域名映射到不同的Linux文件目录(站点发布的目录) 首先就是多个域名可以解析到同一个ip地址。我们的虚拟主机技术...
  • 今天咱们第一课,来讲讲大家一直很关注的...对于中台人可能有不同的理解,行业里也没有严格的定义,但我更认同其中一说法就是:中台是企业级能力复用的平台。 那这句话怎么理解呢? 既然核心是能力复...
  • 公众号回复“中台”,领取全部高清PPT文档来自公众号:CIO之家苏宁数据中台是一大项目群:OLAP 是底层的加速、查询引擎,底层支持 Druid、ES、PGCitus ...
  • 2、解读中台 -- 中台的作用

    千次阅读 2019-10-06 19:43:41
    中台的作用 中台应该包含哪些内容呢...中台是从多个相似的前台业务应用共享的需求产生的,因此最先提出的中台是业务中台; 数据是从业务系统产生的,而业务系统也需要数据分析的结果,那么是否可以把业务系统的数据...
  • 另一方面,云计算等技术的进步为SaaS发展提供了基础设施和底层技术。”十月底腾讯发布SaaS生态“千帆计划”,腾讯云副总裁答治茜如是说。 在此之际,腾讯也首次披露其在SaaS领域的打法,SaaS市场要迈向新高度,...
  • 导读:之前整理了一篇“全面解读数据中台,让企业实现数字化转型”文章,阐述了什么是数据中台、建立的原因和原则。今天让我们全面解读中台,包括企业为什么要平台化,目前中台都有哪...
  • 1、解读中台 -- 什么是中台

    千次阅读 2019-10-06 18:57:15
    中台,通过对业务、数据和技术的抽象,对服务能力进行复用,构建了企业级的服务能力,消除了企业内部各业务部门、各分子公司间的壁垒,适应了企业,特别是大型企业集团业务多元化的发展战略。基于中台,可快速构建面向最终...
  • 在虚拟主机技术中,它是采用域名,ip和端口来表示一个网站的,虽然ip和端口都是完全一样的,但是我们仍然可以实现在同一主机上部署多个网站,然后让不同的域名映射到这些不同的网站的功能。
  • 中台思想

    千次阅读 2018-11-08 17:34:40
    在公司看到一中台”系统的概念。什么是中台?问了下同事,同事也不是很清楚。看网上的介绍。 说一下自己的理解(不正确,勿喷): 中台概念 主要用于 大型的互联网项目架构和企业组织架构,平台的平台...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 926,968
精华内容 370,787
关键字:

多个中台技术