主頁 >  其他 > ?云中奈飛(一):Netflix的上云之旅

?云中奈飛(一):Netflix的上云之旅

2020-09-12 04:43:52 其他

作者按: 

Netflix(譯為奈飛/網飛)公司自1997年創立以來,已發展成為美國最大的互聯網流媒體服務商,它從2008到2015年間長達七年的將其所有IT系統從自有資料中心遷移到AWS之上的旅程,在當時可謂前無古人的創舉,對公有云的發展、傳統企業上云及基于云的業務轉型等都有很大的推動和促進作用,雖然已過去多年,有些東西已略微顯得過時,但奈飛上云的理念、步驟、做法等,對當今企業上云及用云仍有很大的參考價值, 

因此,在接下來的幾周內,筆者打算花上些許時間,對奈飛的上云之旅,及其云上運行,基于網上公開資料,從上云歷程、云上架構、支撐團隊、云上安全等維度做下梳理和總結,形成系列文章,它山之石,可以攻玉,本文為這系列文章的第一篇,介紹奈飛的總體上云歷程,

 

本文目錄

零、公司簡介....................................... 1

一、發端.............................................. 4

二、驗證.............................................. 6

三、進行.............................................. 8

四、完成.............................................. 11 

五、筆者感受

 

零、公司簡介

 

 

Netflix(https://www.netflix.com/)公司總部設在美國加利福尼亞州,是全世界最大的視頻流媒體平臺,在除中國大陸地區以外的所有國家和地區均提供視頻點播服務,相當于國內的愛奇藝、優酷和騰訊視頻等視頻網站, 

1997年,當Reed Hastings和Marc Randolph創建 Netflix時,這家公司唯一業務是DVD郵購業務,2002年上市,股票發行價為15美元;2007年開始發展流媒體業務;2013年,發布其首部原創電視劇《紙牌屋》;2016年宣布全球化,全世界200多個國家和地區可訂閱Netflix觀看電影電視劇, 2017年,Netflix用戶數量超過美國有線電視用戶總數,如今,Netflix的股價是419美元,已成為世界上大型的電視劇和電影制片公司之一、美國最大的互聯網流媒體服務商,在世界范圍內擁有很強的影響力,高峰時刻占據了互聯網流媒體流量的33%, 

 

除了商業上非常成功外,Netflix在技術上也非常成功,它雖然是家娛樂公司,但實際上是一家技術公司,從2008年開始,直到2015年底,它花了整整七年時間,把公司整套IT系統搬到了AWS上,這可謂前無來者,除此之外,Netflix在分布式系統開源上具有巨大的影響力,其開源專案叫做Netflix OSS(Open Source Software),涵蓋范圍基本包括了業界絕大部分分布式系統領域,包括但不限于: 

·       公共運行時服務及庫,比如Eureka, Ribbon, Hystrix

·       大資料,比如Genie

·       構建和發布工具,比如Asgard/Spinnaker

·       資料持久化,比如EVCache

·       可觀察性、可靠性和性能,比如Simian Army 

 

一、發端

 

Netflix的上云之旅始于2008年8月,從公開資料來看,當時主要有兩個驅動力促使其上云: 

(1)發生了系統宕機, 

當時,Netflix的IT系統運行在高端昂貴的IBM服務器、Oracle資料庫和SAN存盤搭建的平臺之上,某次,因為SAN存盤硬體故障導致的資料庫宕機,使得Netflix的DVD配送服務不得不停止了3天,這個故障使得公司管理層開始意識到,由IT團隊利用昂貴的平臺來保證系統可用性的做法存在問題,更應該從應用層面去保障系統可用性,因此,需考慮IT系統從傳統垂直擴展的帶有單點故障的架構,轉向高可用、水平擴展的分布式架構,與此同時,他們開始思考是否可以利用剛剛出現的低成本云基礎設施來替代昂貴傳統IT基礎設施來支撐需具備高可用性的應用,

 

 

(2)新業務帶來巨大資料中心擴容壓力, 

Netflix的傳統DVD寄送服務的服務模式下,客戶瀏覽Netflix網站選擇DVD,然后公司開始寄送,因為受到DVD來回寄送速度的限制,通常是以周為周期給客戶寄送DVD,因此,這種傳統業務模式對IT系統的業務壓力較輕, 

傳統DVD寄送業務模式

 

盡管DVD業務增長迅速,但2007年Netflix仍然決定推出第一款流媒體產品“Watch Now”來革新其業務,這種業務也是它后來蓬勃發展的關鍵因素之一,這種新服務模式下,用戶與Netflix網站之間的互動頻率是傳統DVD寄送業務下互動頻率的100倍甚至不止, 

流媒體服務模式

 

新模式下,用戶每周看的視頻數量是之前的十倍,而每個視頻對資料中心中的IT系統產生的流量則是百倍,因此每個用戶對IT系統產生的流量是之前的千倍,也就是說,只要0.1%的用戶從傳統模式轉向新模式,那IT系統的容量就必須翻倍,其實這種規律也很常見,即使用戶并沒有顯著增長,只要因為業務模式的變化,對IT系統的壓力也可能成倍增加, 

這就要求Netflix找到一種快速擴容資料中心的方法,因為根據當時的業務預測,其用戶很快就會轉向在線流媒體服務模式,時間來到2009年,隨著新業務的發展,Netflix面臨兩個選擇:自建資料中心,或利用其業務競爭對手亞馬遜于2006年才發布的AWS云,前者需要大量前期資金投入,并且未來的容量需求無法預測且是變化不定的,而后者則是在視頻流領域的最大競爭對手Amazon的云上開展業務,Netflix決定選擇后者,他們認為,相比在不實際產生業務價值的資料中心上做前期巨大投入,將資金投入在視頻內容和開發人員身上會更有價值,

 

 

二、驗證

于是這一年(2009年),Netflix開始研究利用AWS云來開展業務的各種風險,包括業務競爭風險、規模性風險、商業風險和公關風險等,就業務競爭風險,Netflix與AWS溝融了AWS是如何與Amazon Premier做業務分離的,然后開展實驗去驗證AWS上的資源快速擴容能力,Netflix還與AWS簽訂了首批企業許可協議,這種協議下Netflix不需要通過授權信用卡方式來使用AWS資源,而信用卡授權是當時大多數人在AWS上消費時使用的主要方式, 

隨著兩家合作訊息的傳開,2010年4月,紐約時報還發表了一篇關于Netflix和AWS業務的文章,說兩者將進行業務合作,請注意其中的“peculiar(特有)“一詞,表示那時候企業上云是新聞,而上到競爭對手的云上更是新聞, 

 

當時Netflix還咨詢了一些業界專家,專家們認為這種做法非常瘋狂,因為當時很少有企業這么做,而且企業業務上云在當時還是一個非常不成熟的策略,但Netflix決定堅持下去,成為首批上云企業客戶之一, 

接下來,Netflix實驗性地將一些沒有真正面向客戶的應用遷移到AWS上,首先從電影編碼開始,當時其只有資料中心沒有足夠的容量來容納編碼服務器,有一次Netflix申請3000臺服務器,結果AWS一個小時內就交付了,這就驗證AWS資源交付的彈性和及時性,而且隨著這項作業的完成,不用的機器即被釋放,這證明了云計算的“按需使用和付費”特征,

接下來驗證視頻服務QoS日志上云,隨著進入資料中心資料庫的流量越來越多,這些流量正在溢位,而且自己的機房缺乏足夠的存盤空間來保存想要的資訊,于是,Netflix利用S3來存盤資料,利用EMR來處理資料,Netflix是Hadoop早期用戶之一,曾與AWS合作將Hive作為基于EMR的處理選項,

 

 

到2010年,可行性驗證基本完成,Netflix認為上云看起來是可行的,于是2011年,Netflix作出決定,不再擴容自有IDC,

 

三、進行

 

Netflix開始真正地要在AWS云上起飛了,從最簡單的API服務開始,然后是最簡單的Web網頁,然后是更多的API和網頁,

 

到2010年底,Netflix成功地將網站前端都遷移到了AWS上,但后端依然在自有資料中心內,

 

用戶訪問流量還是進入其自有資料中心,但是有選擇地將部分流量利用HTTP Redirect將請求轉向AWS Cloud,這其實也就是我們現在常常提到的金絲雀模式,通過匯入部分用戶到新環境上來驗證和逐步地完成系統遷移,

 

 

接下來是資料遷移,2010年的主要作業之一,是將主資料系統放在資料中心,將副本放在云中,并將資料從本地持續地同步到云中,

 

 

2011年,Netflix決定將所有資料放到云上,其中一個問題是如何做資料備份,Netflix沒有采用當時常見的利用本地資料中心中的磁帶來備份云中資料的做法,而是充分利用了S3的安全性和持久性,用不同的賬戶在不同的AWS區域中創建S3存盤桶,然后將生產資料匯入生產區域S3存盤桶,再經過壓縮和加密并傳送到容災區域的桶中,利用不同的賬戶,主要是從安全角度考慮,后來,AWS發布了Glacier后,Netflix利用它來做長期歸檔的資料存盤,

 

 

 

到2015年,除了計費和賬單系統外,其余所有系統都已經遷移到AWS上了,到2016年1月4日,Netflix完成了最后這兩個系統的遷移,詳細資訊請參加其公司博客https://netflixtechblog.com/netflix-billing-migration-to-aws-451fba085a4,

 

 

四、完成

 

2016年2月,Netflix宣布其上云遷移作業全部完成,這一年,Netflix的用戶數是2008年開始上云遷移時候的8倍,而用戶的月度觀看視頻數則有幾千倍的增長,用戶遍布全球超過130個國家,Netflix也成為了一家國際化視頻服務提供商,

 

到2017年,除了CDN由其自建外,Netflix使用AWS來滿足其幾乎所有計算和存盤需求,包括資料庫、分析、建議引擎、視頻轉碼等數百種功能,而且,Netflix系統的可用性在持續增加,正在不斷接近99.99%的既定目標,

  • Netflix的視頻服務在高峰時段占據了高達37%的Internet流量,相比之下,YouTube 僅占到15.6%,網頁瀏覽約 6%, Facebook約2.7%, Amazon Instant Video 約2.0%,

  • 在AWS上共利用超過10萬個 EC2 Instances 的80萬CPU Cores,且在此基礎上有約 20% 的波動,

  • 在每個服務區域上的 AWS Elastic Load Balancing 的流量超過 50Gbps

  • 在 S3 上存盤和管理超過15億個物件的 60 PB 的資料,其中每天要丟棄超過 400TB 的過期資料以及新增 600TB 的資料,

 

2016年Netflix在AWS上的系統架構:

盡管降低成本支出并不是Netflix上云的主要出發點之一,但是實際上,現在每個視頻的播放成本是當初利用自有資料中心的幾分之一,這是一種非常可觀的額外收益,這主要歸功于云的彈性,使得Netflix可以持續地優化實體型別,近乎實時地增加或減少所用的資源,而不需要維持大規模的備用容量,以及公有云的規模不斷擴大帶來的單位成本下降, 

那為什么需要7年時間才能完成上云遷移呢?這是因為全業務上云是一項艱巨的作業,需要做好多的艱難決策,可以想到的是,最簡單的方式是將所有系統緣分不斷地搬到云上,但是隨著系統一起搬過去的還有你在傳統資料中心中遇到的所有問題和限制,因此,Netflix選擇了一條另外的道路,重構所有系統,徹底改變公司IT運營方式,將單體應用改變為微服務架構應用、重構資料模型、使用NoSQL資料庫,將過去那種預算嚴格受控制、版本發布嚴格受管控、花幾周時間來做物理容量擴容的傳統方式,改變為持續集成和發布、技術團隊獨立做決策、基于松耦合DevOps環境的新方式,這種方式使得Netflix花了七年時間才完成上云之旅,但是正是這種轉變,也使得它成為了一家國際化的網路視頻服務提供商, 

五、筆者感受

 

大膽決策,開先河,不說10年前,就是在現在,要不要上(公有)云、源代碼和核心資料能不能上云、云上安全怎么搞、以什么步驟上云、應用要不要做架構升級等等這些問題,依然是評估上云時會引發爭論的話題,而十年前的Netflix,從自身業務出發,做出了艱難決策,決定把資金用在核心業務上,將資料中心外包給公有云,這前無來者,開了業界先河,要為他們的眼光、勇氣和決心點贊!

先易后難,保安全,Netflix并非倉促上陣,而是總體上執行先易后難、先驗證再推廣的策略,從最簡單的API、網頁前端、離線視頻編碼系統等開始,做技術可行性驗證,驗證成功后,再推廣至其它系統,最后做最核心的賬單和支付系統遷移,在保障業務穩定和用戶體驗的前提下,花了七年時間才完成全部遷移作業,要為他們的務實精神點贊!

以終為始,高標準,Netflix并沒有簡單地將其IT系統從其自有資料中心搬到AWS上,而是以終為始,高標準完成遷移作業,“終”是系統的可用性要達到四個九,確保用戶體驗,要實作這個目標,需要在遷移上云前對應用做分布式改造,只有這樣,才能充分利用云的彈性和分布式能力,而且,Netflix主要利用的是AWS的IaaS,自研了全球分布的PaaS平臺,一方面是因為當時AWS所提供的是以IaaS為主,還考慮到了供應商系結以及未來多云等可能,這些做法都具有開創性和前瞻性,不僅這種做法對后來更多用戶如何上云極具參考價值,而且Netflix將其PaaS中很多組件都開源了,直接促進了行業發展,要為他們對自己的嚴格要求和對業界的貢獻點贊!

 

參考資料:

  • 復盤Netflix發展史:如何用20年成為一家千億美元公司?,克魯斯2018年5月14日,https://www.gelonghui.com/p/179693

  • Completing the Netflix Cloud Migration,https://media.netflix.com/en/company-blog/completing-the-netflix-cloud-migration,2016.1

  • YouTube video,Globally Distributed Cloud Applications at Netflix,October 2012,Adrian Cockcro

  • Migrating to Cloud - Lessons from Netflix, Brought Up to Date,Adrian Cockcroft,https://media.netflix.com/en/company-blog/completing-the-netflix-cloud-migration

  • Companies Slowly Join Cloud-Computing,By Brad Stone and Ashlee Vance,https://www.nytimes.com/2010/04/19/technology/19cloud.html

 

感謝您的閱讀,歡迎關注我的微信公眾號:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/10774.html

標籤:其他

上一篇:【k8s部署】5. 部署 master 節點

下一篇:騰訊云云函式快速入門實踐

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more