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

相关文章
|
7天前
|
API 持续交付 开发者
后端开发中的微服务架构实践与挑战
在数字化时代,后端服务的构建和管理变得日益复杂。本文将深入探讨微服务架构在后端开发中的应用,分析其在提高系统可扩展性、灵活性和可维护性方面的优势,同时讨论实施微服务时面临的挑战,如服务拆分、数据一致性和部署复杂性等。通过实际案例分析,本文旨在为开发者提供微服务架构的实用见解和解决策略。
|
20天前
|
Java 持续交付 微服务
后端开发中的微服务架构实践与挑战####
本文深入探讨了微服务架构在现代后端开发中的应用,通过具体案例分析,揭示了其如何助力企业应对业务复杂性、提升系统可维护性和可扩展性。文章首先概述了微服务的核心概念及其优势,随后详细阐述了实施微服务过程中的关键技术选型、服务拆分策略、容错机制以及持续集成/持续部署(CI/CD)的最佳实践。最后,通过一个真实世界的应用实例,展示了微服务架构在实际项目中的成功应用及其带来的显著成效。 ####
|
17天前
|
运维 供应链 安全
SD-WAN分布式组网:构建高效、灵活的企业网络架构
本文介绍了SD-WAN(软件定义广域网)在企业分布式组网中的应用,强调其智能化流量管理、简化的网络部署、弹性扩展能力和增强的安全性等核心优势,以及在跨国企业、多云环境、零售连锁和制造业中的典型应用场景。通过合理设计网络架构、选择合适的网络连接类型、优化应用流量优先级和定期评估网络性能等最佳实践,SD-WAN助力企业实现高效、稳定的业务连接,加速数字化转型。
SD-WAN分布式组网:构建高效、灵活的企业网络架构
|
1天前
|
监控 API 持续交付
后端开发中的微服务架构实践与挑战####
本文深入探讨了微服务架构在后端开发中的应用,分析了其优势、面临的挑战以及最佳实践策略。不同于传统的单体应用,微服务通过细粒度的服务划分促进了系统的可维护性、可扩展性和敏捷性。文章首先概述了微服务的核心概念及其与传统架构的区别,随后详细阐述了构建微服务时需考虑的关键技术要素,如服务发现、API网关、容器化部署及持续集成/持续部署(CI/CD)流程。此外,还讨论了微服务实施过程中常见的问题,如服务间通信复杂度增加、数据一致性保障等,并提供了相应的解决方案和优化建议。总之,本文旨在为开发者提供一份关于如何在现代后端系统中有效采用和优化微服务架构的实用指南。 ####
|
3天前
|
消息中间件 设计模式 运维
后端开发中的微服务架构实践与挑战####
本文深入探讨了微服务架构在现代后端开发中的应用,通过实际案例分析,揭示了其在提升系统灵活性、可扩展性及促进技术创新方面的显著优势。同时,文章也未回避微服务实施过程中面临的挑战,如服务间通信复杂性、数据一致性保障及部署运维难度增加等问题,并基于实践经验提出了一系列应对策略,为开发者在构建高效、稳定的微服务平台时提供有价值的参考。 ####
|
3天前
|
消息中间件 监控 数据管理
后端开发中的微服务架构实践与挑战####
【10月更文挑战第29天】 在当今快速发展的软件开发领域,微服务架构已成为构建高效、可扩展和易于维护应用程序的首选方案。本文探讨了微服务架构的核心概念、实施策略以及面临的主要挑战,旨在为开发者提供一份实用的指南,帮助他们在项目中成功应用微服务架构。通过具体案例分析,我们将深入了解如何克服服务划分、数据管理、通信机制等关键问题,以实现系统的高可用性和高性能。 --- ###
23 2
|
8天前
|
运维 NoSQL Java
后端架构演进:微服务架构的优缺点与实战案例分析
【10月更文挑战第28天】本文探讨了微服务架构与单体架构的优缺点,并通过实战案例分析了微服务架构在实际应用中的表现。微服务架构具有高内聚、低耦合、独立部署等优势,但也面临分布式系统的复杂性和较高的运维成本。通过某电商平台的实际案例,展示了微服务架构在提升系统性能和团队协作效率方面的显著效果,同时也指出了其带来的挑战。
43 4
|
13天前
|
缓存 运维 监控
后端开发中的微服务架构实践与挑战#### 一、
【10月更文挑战第22天】 本文探讨了微服务架构在后端开发中的应用实践,深入剖析了其核心优势、常见挑战及应对策略。传统后端架构难以满足快速迭代与高可用性需求,而微服务通过服务拆分与独立部署,显著提升了系统的灵活性和可维护性。文章指出,实施微服务需关注服务划分的合理性、通信机制的选择及数据一致性等问题。以电商系统为例,详细阐述了微服务改造过程,包括用户、订单、商品等服务的拆分与交互。最终强调,微服务虽优势明显,但落地需谨慎规划,持续优化。 #### 二、
|
13天前
|
监控 安全 Serverless
"揭秘D2终端大会热点技术:Serverless架构最佳实践全解析,让你的开发效率翻倍,迈向技术新高峰!"
【10月更文挑战第23天】D2终端大会汇聚了众多前沿技术,其中Serverless架构备受瞩目。它让开发者无需关注服务器管理,专注于业务逻辑,提高开发效率。本文介绍了选择合适平台、设计合理函数架构、优化性能及安全监控的最佳实践,助力开发者充分挖掘Serverless潜力,推动技术发展。
34 1
|
19天前
|
监控 API 开发者
后端开发中的微服务架构实践与优化
【10月更文挑战第17天】 本文深入探讨了微服务架构在后端开发中的应用及其优化策略。通过分析微服务的核心理念、设计原则及实际案例,揭示了如何构建高效、可扩展的微服务系统。文章强调了微服务架构对于提升系统灵活性、降低耦合度的重要性,并提供了实用的优化建议,帮助开发者更好地应对复杂业务场景下的挑战。
19 7
下一篇
无影云桌面