zoukankan      html  css  js  c++  java
  • 学习~从0开始学架构~8

    架构师应该如何判断技术演进的方向?

    潮流派的价值观是新技术肯定能带来很大收益;稳定派的价值观是稳定压倒一切;跟风派的价值观是别人用了我就用

    影响一个企业业务的发展主要有 3 个因素:市场、技术、管理,这三者构成支撑业务发展的铁三角,任何一个因素的不足,都可能导致企业的业务停滞不前,业务处于三角形的中心,毫不夸张地说,市场、技术、管理都是为了支撑企业业务的发展

    • 产品类业务:技术创新推动业务发展,用户会自然而然地选择那些功能更加强大、性能更加先进、体验更加顺畅、外观更加漂亮的产品,而功能、性能、体验、外观等都需要强大的技术支撑
    • 服务类业务:业务发展推动技术的发展,当“规模”成为业务的决定因素后,服务模式的创新就成为了业务发展的核心驱动力,而产品只是为了完成服务而提供给用户使用的一个载体;服务类的业务发展路径是这样的:提出一种创新的服务模式→吸引了一批用户→业务开始发展→吸引了更多用户→服务模式不断完善和创新→吸引越来越多的用户,如此循环往复。在这个发展路径中,技术并没有成为业务发展的驱动力,反过来由于用户规模的不断扩展,业务的不断创新和改进,对技术会提出越来越高的要求,因此是业务驱动了技术发展

    除非是开创新的技术能够推动或者创造一种新的业务,其他情况下,都是业务的发展推动了技术的发展

    业务“复杂度”的上升,导致原有的技术无法支撑;复杂度要么来源于功能不断叠加,要么来源于规模扩大,从而对性能和可用性有了更高的要求;架构师需要基于业务发展阶段进行判断系统的演进过程

    互联网技术演进:互联网业务驱动技术发展的两大主要因素是复杂性和用户规模,而这两个因素的本质其实都是“量变带来质变”

    复杂性

    • 初创期~速迭代试错、用户的反馈等手段,不断地在实践中去完善,才能继续创新
    • 发展期~快速地实现各种需求,只有这样才能满足业务发展的需要,堆功能+优化;业务能否发展到那个阶段还是个未知数,保证当下的竞争力是最主要的问题,当优化无法抗住业务增长后开始进入架构期,对系统的功能、服务、数据库等进行拆分重组,通过结构优化支撑未来的业务增长
    • 竞争期~更多的新业务引入,导致系统无法支撑,平台化(存储平台化:淘宝的 TFS、京东 JFS。数据库平台化:百度的 DBProxy、淘宝 TDDL。缓存平台化:Twitter 的 Twemproxy,豆瓣的 BeansDB、腾讯 TTC。)服务化(目的在于解决“系统交互”的问题,常见的做法是通过消息队列来完成系统间的异步通知,通过服务框架来完成系统间的同步调用。消息队列:淘宝的 Notify、MetaQ,开源的 Kafka、ActiveMQ 等。服务框架:Facebook 的 thrift、当当网的 Dubbox、淘宝的 HSF 等)
    • 成熟期:精细化,细粒度调优,提升用户体验

    用户规模

    • 性能要求越来越高
    • 可用性要求越来越高

  • 相关阅读:
    将h.264视频流封装成flv格式文件(一.flv格式)(转载)<a href="http://blog.csdn.net/yeyumin89/article/details/7932368"></a>
    01背包,求最大值
    JNI vc6.0 dll
    jni java c++ 参数传递问题解决
    (转载)将h.264视频流封装成flv格式文件(二.开始动手)http://blog.csdn.net/yeyumin89/article/details/7932431
    达到最高效益的调度
    按照RFC3984协议实现H264视频流媒体
    语音识别 转载 待测试
    活动选择问题 动态规划算法(最大子集合或最大收益)
    整齐打印
  • 原文地址:https://www.cnblogs.com/it-worker365/p/14610128.html
Copyright © 2011-2022 走看看