草庐IT

Code For Better 谷歌开发者之声——Google Cloud谷歌云

烽起黎明 2023-04-09 原文

Google Cloud谷歌云

一、Google Cloud是什么

谷歌云平台(Google Cloud Platform)是谷歌所提供的一套公有云计算服务。该平台包括一系列在 Google 硬件上运行的用于计算、存储和应用程序开发的托管服务。软件开发人员、云管理员和其他企业 IT 专业人员可以通过公共互联网或专用网络连接访问 Google Cloud Platform 服务

二、The history of Google Cloud(发展史)

时间发展线图

对于谷歌云的发展,大致可以分为以下四个阶段(个人观点)

  • 第一阶段(2000年 - 2006年):Google的前发展史,此时的佩奇和布林还在斯坦福大学时,就提出和实现了一种被称为"大文件"(Big File)的新型文件系统📃这个技术就是后来Google云计算技术中很重要的GFS文件系统的雏形🐔,后来谷歌在引进云计算之父后便开始渐渐增长,谷歌因为比其他公司更早地看到互联网基础设施的重要性,所以才能在后来的云计算发展中初露头角
  • 第二阶段(2006年 - 2008年):2006年8月9日谷歌在搜索引擎大会(SES San Jose 2006)上首次提出云计算概念后谷歌开始研究云计算平台,但仅仅过去十几天亚马逊便抢先一步向公众开放的自己的云服务平台。最终谷歌的程序引擎Google App Engine(简称GAE)于2008年4月对外发布,比亚马逊晚了一年多时间,不得不说,要发布还是趁早📦,不然机会就被别人抢走了
  • 第三阶段(2008年 - 2015年):谷歌搜索引擎、邮件等产品发展势头正盛,在这段时间里谷歌似乎并没有把重心放在云计算上,这种情况一直持续至2015年亚马逊首次对外披露云服务的财务数据时。在财报中,2014年亚马逊AWS营收高达46亿美元,并且还预计2015年将增长49%至62亿美元。此时谷歌才猛然惊醒,随后便迅速挖来了云计算公司VMware 的联合创始人戴安·格林,以期将云计算服务拉上正轨、
  • 第三阶段(2015年至今):戴安·格林自上任以来从竞争对手那里抢来了不少大客户,但因为落后时间过长,三年大刀阔斧的改革并未看到明显成效,亚马逊和微软依然排在前列。2018年底戴安·格林离职,继任的是前甲骨文执行官托马斯·库里安。2019年2月12日,这位谷歌云新CEO宣称要加码云计算销售投入,意图与对手亚马逊及微软进行一番较量💪

三、云计算的概念

1、前言

云计算(cloud computing)是分布式计算的一种。指的是通过网络“云”☁️将巨大的数据计算处理程序分解成无数个小程序💻,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户👬

  • 对于云计算的话,在全球云计算市场,阿里云和亚马逊云应该算是名列前茅,那时候谷歌的知名度还没有那么高,对于【云计算】这个概念,最早确是由Google公司提出的,这还要来源于谷歌曾经的首席执行官埃里克·施密特,他让谷歌从一个【单纯的搜索引擎】,转变为一个为企业【提供各种搜索服务】的供应商和互联网上最大的广告平台

2、数据的分析比较

往年数据

谷歌云在谷歌总业绩中的占比正逐年提高,但是,与亚马逊和微软相比,谷歌在云计算方面仍有较大的差距,不管是从营收角度还是从市场份额角度来说,均是如此

  • 以上的数据表格是根据Canalys 最新发布的《2019年全球云计算基础设施支出调研报告》数据显示,2019年,亚马逊AWS市场份额为32.3%,排名全球第一微软Azure市场份额提升至16.9%,排在第二位排名第三谷歌云,市场份额为5%。根据这一比例分布,亚马逊AWS的市场份额是谷歌云的6倍多

2022最新数据显示


  • 从以上表图我们可以看出,在一季度收营上,亚马逊云科技还是独占鳌头,但是在同一季度的收营同比增速来看,微软云和谷歌云不甘示弱
  • 但对于谷歌云而言,谷歌智能云业务一季度58.21亿美元,同比增长43.8%,环比也继续保持住了正增长。目前谷歌云计算业务成本支出仍处于较高水平,目前仍处于亏损中,本季度的运营亏损为9.31亿美元,与去年基本持平

  • 所以对于这三家公司而言,虽然Aws和Azure很强势,但还一直会支持谷歌的🙌,对于谷歌三件套,谷歌框架、谷歌服务、谷歌商店google play必须大力支持,手机平板用的都是Chrome浏览器,谷歌地图

3、云计算——K8s【Kuberneters】

什么是Kuberneters

Kuberneters是一个是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。而且其拥有一个庞大且快速增长的生态系统。它也是一种容器编排工具,在应用提供服务,扩容缩容应用,应用更新,都非常的方便,而且可以做到故障自愈,例如一个服务器挂了,可以自动将这个服务器上的服务调度到另外一个主机上进行运行,无需进行人工干涉

K8s集群 与 云计算

有关这方面不是很专业,简洁地说明一下

  • 有关K8s集群由一组被称作节点的机器组成。这些节点上运行 Kubernetes 所管理的容器化应用。集群具有至少一个工作节点和至少一个主节点

  • 工作节点托管作为应用程序组件的 Pod 。主节点管理集群中的工作节点和 Pod 。多个主节点用于为集群提供故障转移和高可用性

  • 以下这张图表展示了包含所有相互关联组件的 Kubernetes 集群

K8s 与 Google Cloud

Kubernetes代表了Google的第三代容器管理系统,仅次于Borg和Omega,并且在过去几年中已成为主要的容器平台,超越了其他产品,可以说K8s在谷歌的发展中也是处于很重要的地位

下面说说如何简单搭建一个K8s集群

  • 使用GKE建立一个新集群并以Google的hello-app Docker容器
  • 首先,您需要一个Google Cloud Platform帐户以及gcloud命令实用程序。 您还需要在系统上复制kubectl才能与我们正在创建的集群进行交互
  • 我们将授权gcloud使用我们的帐户(它将打开一个网页以获取凭据),并在us-central1-a中创建一个新项目(根据距离您最近的区域进行调整)
gcloud auth logingcloud projects create kubernetes-testgcloud config set compute/zone us-central1-a

完成之后,就可以创建一个Kubernetes集群

gcloud containers clusters create myfirstcluster

四、云技术的更新迭代

1、重要人物介绍

首先一定是两位谷歌的创始者

①拉里·佩奇 与 谢尔盖·布林

  • 这两位谷歌的创始人我们应该是最熟悉的,拉里·佩奇,他从小就热爱编程,想要将所有互联网变为可搜索化,这也为谷歌的创始埋下了种子
  • 谢尔盖·布林一直都致力于计算机科学和数学行业,直至与拉里·佩奇合作建立谷歌
  • 也是因为他们,谷歌才能发展为全球最大的互联网搜索引擎

②CEO埃里克·施密特

  • 对于这位谷歌的首席执行官,我们上面有提到过一些,这里再说说
  • 他虽不是谷歌的创始人,但可以与拉里·佩奇和谢尔盖·布林并称为谷歌的“三驾马车
  • 他曾提出美国必须“不惜一切代价”(whatever it takes)在人工智能领域击败中国👊
  • 但他后来又说“中国太大了,聪明的人也太多了,单凭我们自己也无法做到这些。”🖕
  • 如今,谷歌已经不再是过去那个需要“成年监护人”的谷歌,施密特已完成其在谷歌的历史使命,在两位创始人和新生代高管的带领下,谷歌将开启下一个新的发展篇章

③副总裁霍尔斯

这个人大家可能没怎么听说过,他是早期也就是上述的第一阶段谷歌的副总裁,他出身是一位大学教授,他的贡献有三个方面:

  • 第一,在全球通过租用和收购已铺设的光缆,以及铺设新光缆,保证了Google业务发展后网速不成为瓶颈

  • 第二,抢在很多公司以前在全球布局,占据了建设数据中心的最佳点

  • 第三,设计了节能高效的服务器机柜,大大降低了运营成本。要从亚洲建一条海底电缆到美国,需要和很多国家的电信部门打交道,而要把这些国家主管电信的主管叫到一张桌子上开会,本身就是一件很不容易的事情。霍尔斯等人最终把这些事情办到了

2、Cloud Functions【无服务器功能管理平台】

第一代Cloud Functions

  • 2018年7月中旬,谷歌开发团队在旧金山举行的Google Cloud Next会议上发布了的新无服务器功能管理服务器Cloud Functions,新的App Engine运行时,以及Cloud Firestore与GCP服务的集成
  • 对于Cloud Functions,它是一种事件驱动的计算服务。它具有自动扩展,运行代码以响应事件的能力,仅在代码运行时付费的能力,并且不需要任何服务器管理。用例包括无服务器应用程序后端,实时数据处理和智能应用程序,如虚拟助手,聊天机器人和情绪分析这些实时应用

第二代Cloud Functions

  • 就在今年2022年3月份中旬,时隔五年,谷歌宣布了第二代 Cloud Functions 的公开预览版,作为谷歌云中的服务平台。新版本引入了额外的控件、改进的性能和可扩展性
  • 第二代使用开源构建包和功能框架构建,使用 Eventarc 交付事件,支持来自不同来源的触发器,而且第二代云功能现在包括对 Eventarc 的内置支持
  • 不仅如此,新二代还增加了许多功能,函数实例可以一次执行多个请求;函数实例现在默认为默认计算服务帐户,而不是应用引擎服务帐户

具体的大家想了解的可以看一下这个文档Cloud Functions v2 公共预览版

五、谷歌云的市场应用

Google Cloud Platform(谷歌云平台)

谷歌云平台(Google Cloud Platform)是谷歌所提供的一套公有云计算服务。该平台包括一系列在 Google 硬件上运行的用于计算、存储和应用程序开发的托管服务。软件开发人员、云管理员和其他企业 IT 专业人员可以通过公共互联网或专用网络连接访问 Google Cloud Platform 服务

  • 从上图来看,对于谷歌云平台所涉及的行业、领域还是很宽泛的,包括一些APP、翻译接口、云数据、云储藏、计算机引擎等等,

谷歌云平台的优势

Google 的优势在于大数据处理工具、人工智能 (AI) 和机器学习计划以及容器支持

下面就具体的两个领域来说一说谷歌云在现实中应用

一、零售行业

对零售行业而言,数据分析和预测是最重要的一个模块,而讲到大数据和人工智能,谷歌云平台绝对是当仁不让的首选云服务平台,所以不少零售企业选择了谷歌云平台来搭建其数据分析平台和机器学习和预测平台

  • 下面讲一个谷歌云在可口可口销售方面的强大助力
  • CCBJ 是亚洲第一大可口可乐装瓶商,自动售货机占其大部分业务

  • 从以上云计算网络分布图来看,CCBJ使用以BigQuery分析数据仓库为中心的Vertex AI,将自动售货机上收集的数据都存储在BigQuery上,最终CCBJ使用AutoML模型预测,并用Batch Prediction省城覆盖全日本的大型预测图
  • 最终通过谷歌云平台近乎实时的数据和谷歌云平台上的模型训练,可以直接预测某个位置的自动售卖机需放置什么饮料,甚至可以预测未来的选址信息
  • 那可以看出谷歌云平台和谷歌的相关技术,为许多的零售商家提供数据分析和人工智能服务,助力合作企业实现业绩的增长和长远的发展

二、线上课堂

Google Cloud

  • 从以上图片和网站我们可以看出,谷歌云在线上课堂方面的应用也是相当得丰富,例如云上大数据、云迁移、数据挖掘以及各种实用工具的讲解与课程
  • 之前有看过一篇也是关于Kubernetes的有关讲解,说的还是很详细的,大家也可以去看看

Code For Better,愿Google越来越好

有关Code For Better 谷歌开发者之声——Google Cloud谷歌云的更多相关文章

  1. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  2. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  3. ruby - 是否可以覆盖 gemfile 进行本地开发? - 2

    我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI

  4. ruby - 在 Windows 机器上使用 Ruby 进行开发是否会适得其反? - 2

    这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby​​-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub

  5. ruby-on-rails - 在 Rails 开发环境中为 .ogv 文件设置 Mime 类型 - 2

    我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain

  6. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

  7. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  8. 微信小程序开发入门与实战(Behaviors使用) - 2

    @作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors    1、什么是behaviors    2、behaviors的工作方式    3、创建behavior    4、导入并使用behavior    5、behavior中所有可用的节点    6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors    1、什么是behaviorsbehaviors是小程序中,用于实现

  9. ruby-on-rails - environment.rb 中设置的常量在开发模式中消失 - 2

    了解Rails缓存如何工作的人可以真正帮助我。这是嵌套在Rails::Initializer.runblock中的代码:config.after_initializedoSomeClass.const_set'SOME_CONST','SOME_VAL'end现在,如果我运行script/server并发出请求,一切都很好。然而,在我的Rails应用程序的第二个请求中,一切都因单元化常量错误而变得糟糕。在生产模式下,我可以成功发出第二个请求,这意味着常量仍然存在。我已通过将以上内容更改为以下内容来解决问题:config.after_initializedorequire'some_cl

  10. ruby - Rails 开发服务器、PDFKit 和多线程 - 2

    我有一个使用PDFKit呈现网页的pdf版本的Rails应用程序。我使用Thin作为开发服务器。问题是当我处于开发模式时。当我使用“bundleexecrailss”启动我的服务器并尝试呈现任何PDF时,整个过程会陷入僵局,因为当您呈现PDF时,会向服务器请求一些额外的资源,如图像和css,看起来只有一个线程.如何配置Rails开发服务器以运行多个工作线程?非常感谢。 最佳答案 我找到的最简单的解决方案是unicorn.geminstallunicorn创建一个unicorn.conf:worker_processes3然后使用它:

随机推荐