分布式系统开发实战:CloudNative架构,Cloud Native成功案例分析

简介: 有非常多的公司在使用Cloud Native,这些公司包括国外知名企业如Amazon、Netflix等,也包括国内的知名企业淘宝。本节介绍这些企业如何从小企业转变成为Cloud Native的实践者?

Cloud Native成功案例分析

有非常多的公司在使用Cloud Native,这些公司包括国外知名企业如Amazon、Netflix等,也包括国内的知名企业淘宝。本节介绍这些企业如何从小企业转变成为Cloud Native的实践者?

Amazon

Amazon公司是在1995年7月16日由Jeff Bezos创立的,一开始叫Cadabra,其本质就是一个网络书店。然而具有远见的Jeff Bezos看到了网络的潜力和特色,当实体的大型书店提供20万本书时,网络书店能够提供比20万本书更多的选择给读者。

1.在线平台

1999年,Amazon推出了Amazon Marketplace,为小型零售商和个人提供在Amazon出售商品(不仅限书籍)的平台。2000年,Amazon又迈进了一步,允许第三方零售商和卖家使用其电子商务平台。数以百万计的小企业和个体零售商选择Amazon的Selling on Amazon、Fulfillment byAmazon等平台,希望借此获得Amazon的庞大客户群。

2.服务化领头羊

2006年,Amazon推出AWS云服务,利用规模庞大的数据中心开拓了利润丰厚的云存储业务,进而成为该领域的领军企业。

迈出第一步总是困难的,出于安全性和可靠性考虑,拥抱云计算的用户不多。当时Amazon的云计算尚不稳定,曾由于雷电等原因多次出现服务器中断的故障。因此AWS早期推广和现在的会员制一样,都是先投钱,先推出一个月免费试用云服务来积累客户,同时慢慢改进技术。

在2009年年初,美国Salesforce公司公布了2008财年年度报告,数据显示公司云服务收入超过了10亿美元。

这对于新兴的云计算业务来说是个破纪录的数字,同时,这一数字也让整个行业对云计算开始另眼看待。

于是在2009—2011年,世界级的供应商都无一例外地参与到了云市场的竞争中。于是出现了第二梯队:IBM、VMWare、微软和AT&T。

它们大都是传统的IT企业,由于云计算的出现不得不选择转型。

除了在价格上发力,AWS也不断提升业务能力。在扩展旧服务的同时,也开发了提供企业功能的新服务。Amazon自2012年起,每年都会举办AWS re:Invent大会。

AWS每次都会在会上发布一系列的技术创新和应用,积累到2017年已发布了3951项新功能和服务。根据美国摩根士丹利和国际知名调研机构Gartner的报告,AWS比竞争对手拥有更多的计算能力。

于是,Amazon的“龙头老大”的地位得到不断巩固,云业务进入了良性循环。更大的ASW使用量意味着建设更多的基础设施,从而通过扩大规模来降低成本,最终减少服务费用。

3.业务多样化

2007年,Amazon凭借Kindle电子阅读器进军硬件市场。除了纸质书外,Amazon还出售电子书籍以及阅读器。2011年,Amazon推出廉价Kindle Fire,希望挑战苹果在平板电脑市场中的主导地位。2012年,Kindle Fire HD版开售。不久,Amazon发布了Fire TV和Fire Phone,开发了应用商店和MP3音乐商店。随后,定制视频服务Amazon InstantVideo使Amazon成为Netflix的竞争对手。

4.线上线下打通

2015年11月,Jeff Bezos在西雅图大学村开了一家实体书店,这家书店中的书价与Amazon网上书城同步,每本书都配有评级牌,显示读者评价及排名。Amazon利用其海量用户数据,让实体书店的顾客更好地了解店内的畅销书。

开设实体书店不只是Amazon精心设计的公关噱头,还是实体形式的试水之举。无论如何,Amazon接下来的发展依旧让人期待,尤其是有望在近几年内实现的无人机送货服务。

Netflix

如今,Netflix作为流媒体服务供应商,其所有的服务都运行在云端。Netflix由Reed Hastings和Marc Randolph于1997年在加州ScottsValley成立。Netflix最初提供在线DVD租赁服务。客户使用Netflix网站来选择想要租赁的电影,成功下单后,Netflix会通过邮递的方式,将电影DVD寄给客户。

在2008年,Netflix经历了一次重大数据库故障后,开始意识到数据安全的重要性。

Netflix为了防止其在线服务失败,决定摆脱纵向扩展的基础设施和单点故障,转而走向分布式的部署方式。

Netflix将其客户数据迁移到分布式NoSQL数据库,这是一个名为Apache Cassandra的开源数据库项目。从此,Netflix开始踏上构建CloudNative的道路,它将其所有软件应用程序作为云中的高度分布式和弹性服务运行。Netflix通过在扩展基础架构模型中增加其应用程序和数据库的冗余来增强其在线服务的稳健性。

作为Netflix转向云计算的决定的一部分,它需要迁移它的大部分应用程序并部署到高度可靠的分布式系统。Netflix的团队将不得不重新构建他们的应用程序,同时从一个先进的数据中心迁移到公共云。2009年,Netflix开始转向使用AWS,并着重于3个主要目标:可伸缩性、性能和可用性。

1.微服务

Cloud Native与微服务存在某些关联性。构建微服务的主要思想之一是让功能团队围绕特定业务功能来组织自身和应用程序。

微服务为我们提供了一种方式,可以在昨天做出糟糕的决定,而在今天马上做出调整,来弥补昨天的错误。微服务让启动应用更快,从而降低了试错的成本。

微服务让我们专注于小事,而理解一件小事是相对容易的。易于理解的程序则将更加易于维护。

而Cloud Native则进一步让微服务的优化得到最大化的发挥。CloudNative已经大大降低了管理基础设施所需的成本。今天,我们能够使用自助服务工具为我们的应用程序按需配置基础架构。Netflix转为CloudNative后,得到了两大好处:灵活性和可靠性。

2.拆分单块架构

Netflix的架构在开始Cloud Native架构改造之前是由一个单一的Java应用程序组成的。虽然有部署一整个单块架构的应用在项目的初期有多个优点,但主要的缺点是开发团队由于需要协调其变更而放慢了发布的速度。

单块架构的另外一个缺点在于其不可靠。由于组件部署在同一主机上,共享资源时,一个组件中的故障可能会传播给其他组件,从而导致用户停机,最终导致应用的所有组件不可用。通过将整体分割成更小、更集中的服务,可以在团队的独立发布周期内以更小的批量进行部署。

Netflix不仅需要改变其构建和运行软件的方式,还需要改变其组织文化。Netflix转移成名为DevOps的新运营模式。在这个新的运营模式中,每个团队都成为一个产品组,从传统的项目组结构中移开。在一个产品组中,团队是垂直组合的,将开发和产品运维嵌入每个团队。产品团队将拥有构建和操作软件所需的一切。

3.Netflix OSS

随着Netflix转型成为Cloud Native公司后,它也开始积极参与开源。

Netflix开源了超过50个内部项目,其中每个项目都成为Netflix OSS品牌的一部分。

随着Amazon进入云计算市场,它通过转向云计算市场集体经验和内部工具融入一系列服务。Netflix在Amazon的服务背后也做了同样的事情。一路走来,Netflix开放源于它的经验和工具,才转变为基于Amazon AWS提供的虚拟基础架构服务构建的Cloud Native公司。这就是规模经济如何推动云计算行业的革命。

淘宝网

淘宝网是国内家喻户晓的网购零售平台。淘宝网最初是由几个人创建的小网站,而今天,淘宝网拥有近5亿的注册用户数,每天有超过6000万的固定访客,同时每天在线商品数已经超过了8亿件,平均每分钟售出4.8万件商品。淘宝网更是“双11”网购狂欢节的缔造者,促进了中国网络购物的发展,带动了国内市场消费。2014年,中国成全球第一大电子商务国。2016年“双11”期间,淘宝、天猫的总交易额为1207亿元人民币,较2015年增长32.35%,占所有中国电商平台总量的67%,位居榜首。而今天,在全球十大电商公司中,淘宝网的母公司阿里巴巴以26.6%的市场份额,毫无争议地成为全球第一电商公司。

不积跬步,无以至千里;不积小流,无以成江海。淘宝网发展成为中国最大的购物网站,离不开其背后技术的演进变化。而支撑这个庞大电商背后所使用的技术,恰恰是能够决胜“双11”的关键。可以说淘宝网的发展,见证了电子商务系统从传统的集中式系统走向大型分布式系统再到CloudNative的完整的历程。

1.从LAMP到Java平台的转变

出于时间和成本的考虑,淘宝网并没有从零开始开发一个购物网站,而是选用了基于LAMP(Linux-Apache-MySQL-PHP)架构的PHPAuction(美国的一个拍卖系统)作为最初的原型。LAMP网站架构,在当时乃至目前都是非常流行的Web框架,号称Web界的“平民英雄”。该架构所包括的所有技术、Linux操作系统、Apache网络服务器、MySQL数据库以及PHP编程语言,均是开源的,而且这些技术在当时都非常成熟,被很多流行的商业应用所采取。LAMP具有Web资源丰富、轻量、快速开发等特点,在当时与同期其他产品架构相比,LAMP具有通用、跨平台、高性能、低价格的优势,因此无论性能、质量还是价格,LAMP在当时都是企业搭建网站的首选平台。

随着用户需求和流量的不断增长,在系统上面也做了很多的日常改进。比如,服务器由最初的一台变成了三台,其中一台负责发送E-mail,一台负责运行数据库,一台负责运行Web应用。随着淘宝网访问量和数据量的飞速上涨,数据库性能问题很快就凸显出来了。所以项目从MySQL切换到了Oracle数据库。在选用Oracle后,还需要对数据库进行调优。由于更换数据库不是只换库就可以的,访问方式、SQL语法都要跟着变,最重要的一点是,Oracle并发访问能力之所以如此强大,有一个关键性的设计——连接池。淘宝团队采用了一个开源的连接池代理服务SQL Relay,该产品经过修改就能够提供连接池的功能。

在2004年初的时候,淘宝所采用的数据库连接池SQL Relay经常会出现死锁,而这些问题没有办法在PHP语言级别进行解决,于是淘宝网的架构开始向Java平台转变。

2.坚定不移地走“去IOE”的道路

由于淘宝网业务的飞速发展,淘宝团队不仅在系统架构上做了调整,底层的基础设施也发生了很大的转变,比如数据库、文件存储等。

淘宝网在向Java平台转移过程中,开发语言本身已经不再是系统的瓶颈,而业务带来的压力更多地集中到了数据和存储上。Oracle原先的存储是在NAS上的,到后面NAS支撑不住了,就采购了EMC的SAN存储。然后Oracle的RAC也支撑不住了,数据的存储方面就不得不考虑使用小型机了。淘宝就是选购了IBM小型机。

此时,淘宝网已经全面使用了“IOE”(IBM小型机、Oracle数据库、EMC存储)产品。

在2004年底,淘宝上线1年之后,淘宝已经有超400万种商品了,日均超4000万个PV,注册会员超400万,全网成交额超10亿。

早期的淘宝,支撑其业务发展的主要是靠高端硬件,思路就是用钱解决问题,所以才会采购“IOE”这类高端服务器、数据库和存储设备。

但当淘宝网的业务再进一步发展之后,发现市面上已经没有可以购买的技术方案了,于是,淘宝网走上自研的道路,开始“去IOE”。

3.打造云计算,决战“双11”

2008年,阿里巴巴启动“大淘宝”战略,推进淘宝从C2C集市向电子商务平台的演进,并着手打通商家、第三方合作伙伴和物流等产业链上下游。“大淘宝”战略组成公司包括淘宝网、支付宝、阿里云计算、中国雅虎以及各公司之下属公司及相关部门。特别是阿里云公司的成立,为淘宝网乃至整个阿里巴巴提供了云计算的大数据技术支持。至此淘宝网进入了大数据时代,也为其后来决胜“双11”打下了坚实的基础。

涉足云计算,成立阿里云计算公司,是“大淘宝”战略重要的一环。

新成立的阿里云由原阿里软件、阿里巴巴集团研发院以及B2B与淘宝的底层技术团队组成,由阿里巴巴集团首席架构师、阿里集团研发院院长王坚负责。

随着全球云计算技术的普及,越来越多的企业选择将应用部署到“云”上。阿里云计算也迎来了良好的发展机遇。2016年第二季度数据显示,阿里云营收12.43亿元,同比增长156%,持续保持三位数的增长。而在2016年的“双11”当天,阿里云就收获了超1.9亿元的收入。近日,在最新公布的财报显示,阿里云在2018财年(2017年4月至2018年3月底)营收达133.9亿元,季度营收连续12个季度保持规模翻番。在全球云计算行业,阿里云的增速已大幅领先。阿里云全球市场份额排名第三,仅次于亚马逊AWS和微软Azure,被合称为全球云计算“3A”。

本文给大家讲解的内容是分布式系统开发实战: Cloud Native架构,Cloud Native成功案例分析

本文就是愿天堂没有BUG给大家分享的内容,大家有收获的话可以分享下,想学习更多的话可以到微信公众号里找我,我等你哦。

相关文章
|
5月前
|
人工智能 Kubernetes 数据可视化
Kubernetes下的分布式采集系统设计与实战:趋势监测失效引发的架构进化
本文回顾了一次关键词监测任务在容器集群中失效的全过程,分析了中转IP复用、调度节奏和异常处理等隐性风险,并提出通过解耦架构、动态IP分发和行为模拟优化采集策略,最终实现稳定高效的数据抓取与分析。
Kubernetes下的分布式采集系统设计与实战:趋势监测失效引发的架构进化
|
2月前
|
缓存 Cloud Native 中间件
《聊聊分布式》从单体到分布式:电商系统架构演进之路
本文系统阐述了电商平台从单体到分布式架构的演进历程,剖析了单体架构的局限性与分布式架构的优势,结合淘宝、京东等真实案例,深入探讨了服务拆分、数据库分片、中间件体系等关键技术实践,并总结了渐进式迁移策略与核心经验,为大型应用架构升级提供了全面参考。
|
7月前
|
消息中间件 运维 Kafka
直播预告|Kafka+Flink 双引擎实战:手把手带你搭建分布式实时分析平台!
直播预告|Kafka+Flink 双引擎实战:手把手带你搭建分布式实时分析平台!
235 12
|
6月前
|
缓存 负载均衡 监控
微服务架构下的电商API接口设计:策略、方法与实战案例
本文探讨了微服务架构下的电商API接口设计,旨在打造高效、灵活与可扩展的电商系统。通过服务拆分(如商品、订单、支付等模块)和标准化设计(RESTful或GraphQL风格),确保接口一致性与易用性。同时,采用缓存策略、负载均衡及限流技术优化性能,并借助Prometheus等工具实现监控与日志管理。微服务架构的优势在于支持敏捷开发、高并发处理和独立部署,满足电商业务快速迭代需求。未来,电商API设计将向智能化与安全化方向发展。
448 102
|
2月前
|
存储 NoSQL 前端开发
【赵渝强老师】MongoDB的分布式存储架构
MongoDB分片通过将数据分布到多台服务器,实现海量数据的高效存储与读写。其架构包含路由、配置服务器和分片服务器,支持水平扩展,结合复制集保障高可用性,适用于大规模生产环境。
311 1
|
6月前
|
监控 算法 关系型数据库
分布式事务难题终结:Seata+DRDS全局事务一致性架构设计
在分布式系统中,CAP定理限制了可用性、一致性与分区容错的三者兼得,尤其在网络分区时需做出取舍。为应对这一挑战,最终一致性方案成为常见选择。以电商订单系统为例,微服务化后,原本的本地事务演变为跨数据库的分布式事务,暴露出全局锁失效、事务边界模糊及协议差异等问题。本文深入探讨了基于 Seata 与 DRDS 的分布式事务解决方案,涵盖 AT 模式实践、分片策略优化、典型问题处理、性能调优及高级特性实现,结合实际业务场景提供可落地的技术路径与架构设计原则。通过压测验证,该方案在事务延迟、TPS 及失败率等方面均取得显著优化效果。
374 61
|
5月前
|
数据采集 缓存 NoSQL
分布式新闻数据采集系统的同步效率优化实战
本文介绍了一个针对高频新闻站点的分布式爬虫系统优化方案。通过引入异步任务机制、本地缓存池、Redis pipeline 批量写入及身份池策略,系统采集效率提升近两倍,数据同步延迟显著降低,实现了分钟级热点追踪能力,为实时舆情监控与分析提供了高效、稳定的数据支持。
201 1
分布式新闻数据采集系统的同步效率优化实战
|
7月前
|
监控 Linux 应用服务中间件
Linux多节点多硬盘部署MinIO:分布式MinIO集群部署指南搭建高可用架构实践
通过以上步骤,已成功基于已有的 MinIO 服务,扩展为一个 MinIO 集群。该集群具有高可用性和容错性,适合生产环境使用。如果有任何问题,请检查日志或参考MinIO 官方文档。作者联系方式vx:2743642415。
2435 57
|
7月前
|
安全 JavaScript 前端开发
HarmonyOS NEXT~HarmonyOS 语言仓颉:下一代分布式开发语言的技术解析与应用实践
HarmonyOS语言仓颉是华为专为HarmonyOS生态系统设计的新型编程语言,旨在解决分布式环境下的开发挑战。它以“编码创造”为理念,具备分布式原生、高性能与高效率、安全可靠三大核心特性。仓颉语言通过内置分布式能力简化跨设备开发,提供统一的编程模型和开发体验。文章从语言基础、关键特性、开发实践及未来展望四个方面剖析其技术优势,助力开发者掌握这一新兴工具,构建全场景分布式应用。
747 35
|
6月前
|
缓存 NoSQL 算法
高并发秒杀系统实战(Redis+Lua分布式锁防超卖与库存扣减优化)
秒杀系统面临瞬时高并发、资源竞争和数据一致性挑战。传统方案如数据库锁或应用层锁存在性能瓶颈或分布式问题,而基于Redis的分布式锁与Lua脚本原子操作成为高效解决方案。通过Redis的`SETNX`实现分布式锁,结合Lua脚本完成库存扣减,确保操作原子性并大幅提升性能(QPS从120提升至8,200)。此外,分段库存策略、多级限流及服务降级机制进一步优化系统稳定性。最佳实践包括分层防控、黄金扣减法则与容灾设计,强调根据业务特性灵活组合技术手段以应对高并发场景。
1796 7

热门文章

最新文章