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 等)
    • 成熟期:精细化,细粒度调优,提升用户体验

    用户规模

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

  • 相关阅读:
    不常用的cmd命令
    js获取宽度
    Marshaling Data with Platform Invoke 概览
    Calling a DLL Function 之三 How to: Implement Callback Functions
    Marshaling Data with Platform Invoke 之四 Marshaling Arrays of Types
    Marshaling Data with Platform Invoke 之一 Platform Invoke Data Types
    Marshaling Data with Platform Invoke 之三 Marshaling Classes, Structures, and Unions(用时查阅)
    Calling a DLL Function 之二 Callback Functions
    WCF 引论
    Marshaling Data with Platform Invoke 之二 Marshaling Strings (用时查阅)
  • 原文地址:https://www.cnblogs.com/it-worker365/p/14610128.html
Copyright © 2011-2022 走看看