架构三。。

一、技术进化方向选择

往远看,公司的业务方向是?业务分为产品类和服务类

产品类:360 的杀毒软件、苹果的 iPhone、UC 的浏览器等都属于这个范畴,这些产品本质上和传统的制造业产品类似,都是具备了某种“功能”,单个用户通过购买或者免费使用这些产品来完成自己相关的某些任务,用户对这些产品是独占的。

服务类:百度的搜索、淘宝的购物、新浪的微博、腾讯的 IM 等都属于这个范畴,大量用户使用这些服务来完成需要与其他人交互的任务,单个用户“使用”但不“独占”某个服务。事实上,服务的用户越多,服务的价值就越大。服务类的业务符合互联网的特征和本质:“互联”+“网”。

对于产品类业务,答案看起来很明显:技术创新推动业务发展!
比如苹果取代诺基亚。反应更快,更方便,更漂亮

对于“服务”类的业务,答案和产品类业务正好相反:业务发展推动技术的发展!

为什么会出现截然相反的差别呢?主要原因是用户选择服务的根本驱动力与选择产品不同。用户选择一个产品的根本驱动力是其“功能”,而用户选择一个服务的根本驱动力不是功能,而是“规模” 或者说社交。

例如,选择 UC 浏览器还是选择 QQ 浏览器,更多的人是根据个人喜好和体验来决定的;而选择微信还是 Whatsapp,就不是根据它们之间的功能差异来选择的,而是根据其规模来选择的,就像我更喜欢 Whatsapp 的简洁,但我的朋友和周边的人都用微信,那我也不得不用微信。

服务类的业务发展路径是这样的:提出一种创新的服务模式→吸引了一批用户→业务开始发展→吸引了更多用户→服务模式不断完善和创新→吸引越来越多的用户,如此循环往复。

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

对于架构师来说,判断业务当前和接下来一段时间的主要复杂度是什么就非常关键。判断不准确就会导致投入大量的人力和时间做了对业务没有作用的事情,判断准确就能够做到技术推动业务更加快速发展。

在这里插入图片描述

二、存储层技术

互联网架构模板
在这里插入图片描述

NoSQL

首先 NoSQL 在数据结构上与传统的 SQL 的不同,例如典型的 Memcache 的 key-value 结构、Redis 的复杂数据结构、MongoDB 的文档数据结构;其次,NoSQL 无一例外地都会将性能作为自己的一大卖点。NoSQL 的这两个特点很好地弥补了关系数据库的不足,因此在互联网行业 NoSQL 的应用基本上是基础要求。

如果只有几十台 NoSQL 服务器,做存储平台收益不大;但如果有几千台 NoSQL 服务器,NoSQL 存储平台就能够产生很大的收益。

三、服务层技术

配置中心

整机磁盘坏掉、机器主板坏掉……遇到这些不可恢复的故障时,基本上只能重新搭建新的环境。程序包肯定是已经有的,加上配置中心的配置,能够很快搭建新的运行环境,恢复业务。否则几十个配置文件重新一个个去 Vim 中修改,耗时很长,还很容易出错。
在这里插入图片描述

服务中心

如果 A 系统总共有 20 台机器,现在其中 5 台出故障了,其他系统如果是通过域名访问 A 系统,则域名缓存失效前,还是可能访问到这 5 台故障机器的;如果其他系统通过 IP 访问 A 系统,那么 A 系统每次增加或者删除机器,其他所有 10 个系统的几十上百台机器都要同步修改,这样的协调工作量也是非常大的。

服务中心帮你来管理哪台机器可用

服务名字系统(Service Name System)

服务名字系统是为了将 Service 名称解析为“host + port + 接口名称”,但是和 DNS 一样,真正发起请求的还是请求方。
在这里插入图片描述

服务总线系统(Service Bus System)

相比服务名字系统,服务总线系统更进一步了:由总线系统完成调用,服务请求方都不需要直接和服务提供方交互了。
在这里插入图片描述

消息队列

在这里插入图片描述

四、网络层

负载均衡

DNS 用于实现地理级别的负载均衡,而 Nginx、LVS、F5 用于同一地点内机器级别的负载均衡。
软件和硬件的区别就在于性能,硬件远远高于软件,Ngxin 的性能是万级,一般的 Linux 服务器上装个 Nginx 大概能到 5 万 / 秒;LVS 的性能是十万级,没有具体测试过,据说可达到 80 万 / 秒;F5 性能是百万级,从 200 万 / 秒到 800 万 / 秒都有。硬件虽然性能高,但是单台硬件的成本也很高,一台最便宜的 F5 都是几十万,但是如果按照同等请求量级来计算成本的话,实际上硬件负载均衡设备可能会更便宜,例如假设每秒处理 100 万请求,用一台 F5 就够了,但用 Nginx,可能要 20 台,这样折算下来用 F5 的成本反而低。因此通常情况下,如果性能要求不高,可以用软件负载均衡;如果性能要求很高,推荐用硬件负载均衡。
目前很多云服务商都已经提供了负载均衡的产品,例如阿里云的 SLB、UCloud 的 ULB 等,中小公司直接购买即可。

五、“平台”技术

运维平台

运维平台核心的职责分为四大块:配置、部署、监控、应急,每个职责对应系统生命周期的一个阶段。

配置:主要负责资源的管理。例如,机器管理、IP 地址管理、虚拟机管理等。

部署:主要负责将系统发布到线上。例如,包管理、灰度发布管理、回滚等。

监控:主要负责收集系统上线运行后的相关数据并进行监控,以便及时发现问题。

应急:主要负责系统出故障后的处理。例如,停止程序、下线故障机器、切换 IP 等。

六、架构设计

七、

八、

九、

十、

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值