分布式系统开发实战: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给大家分享的内容,大家有收获的话可以分享下,想学习更多的话可以到微信公众号里找我,我等你哦。

相关文章
|
30天前
|
设计模式 安全 Java
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
33 0
|
7天前
|
存储 关系型数据库 分布式数据库
电子好书发您分享《PolarDB分布式版架构介绍PolarDB分布式版架构介绍》
**《PolarDB分布式版架构介绍》电子书分享:** 探索阿里云PolarDB分布式设计,采用计算存储分离,借助GMS、CN组件实现大规模扩展。[阅读更多](https://developer.aliyun.com/ebook/8332/116553?spm=a2c6h.26392459.ebook-detail.5.3b3b2ccbVVjjt0)
14 3
|
30天前
|
NoSQL Java Redis
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件(二)
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件
15 0
|
5天前
|
关系型数据库 分布式数据库 数据库
电子好书发您分享《PolarDB分布式版架构介绍》
阅读阿里云电子书《PolarDB分布式版架构介绍》,深入理解这款高性能数据库的分布式架构设计。书中通过图文并茂的方式揭示了PolarDB在分布式场景下的核心特性和技术优势,适合数据库爱好者和云计算从业者学习。[阅读链接](https://developer.aliyun.com/ebook/8332/116553?spm=a2c6h.26392459.ebook-detail.5.4ab72ccbIzDq2Q)
|
6天前
|
存储 SQL 关系型数据库
电子好书发您分享《PolarDB分布式版架构介绍》
**PolarDB分布式版详解:** 阿里云的PolarDB采用计算存储分离架构,利用GMS进行元数据管理,CN处理分布式SQL。结合PolarFS,实现高效存储与计算,支持大规模扩展。[阅读完整架构介绍](https://developer.aliyun.com/ebook/8332/116553?spm=a2c6h.26392459.ebook-detail.5.5b912ccbE20nqg)
|
11天前
|
负载均衡 Java 开发者
细解微服务架构实践:如何使用Spring Cloud进行Java微服务治理
【4月更文挑战第17天】Spring Cloud是Java微服务治理的首选框架,整合了Eureka(服务发现)、Ribbon(客户端负载均衡)、Hystrix(熔断器)、Zuul(API网关)和Config Server(配置中心)。通过Eureka实现服务注册与发现,Ribbon提供负载均衡,Hystrix实现熔断保护,Zuul作为API网关,Config Server集中管理配置。理解并运用Spring Cloud进行微服务治理是现代Java开发者的关键技能。
|
26天前
|
负载均衡 网络协议 Java
构建高效可扩展的微服务架构:利用Spring Cloud实现服务发现与负载均衡
本文将探讨如何利用Spring Cloud技术实现微服务架构中的服务发现与负载均衡,通过注册中心来管理服务的注册与发现,并通过负载均衡策略实现请求的分发,从而构建高效可扩展的微服务系统。
|
30天前
|
存储 监控 安全
金石推荐 | 【分布式技术专题】「单点登录技术架构」一文带领你好好认识以下Saml协议的运作机制和流程模式
金石推荐 | 【分布式技术专题】「单点登录技术架构」一文带领你好好认识以下Saml协议的运作机制和流程模式
68 1
|
30天前
|
存储 Java 应用服务中间件
【分布式技术专题】「架构实践于案例分析」盘点互联网应用服务中常用分布式事务(刚性事务和柔性事务)的原理和方案
【分布式技术专题】「架构实践于案例分析」盘点互联网应用服务中常用分布式事务(刚性事务和柔性事务)的原理和方案
54 0

热门文章

最新文章