首页 > 编程知识 正文

云平台基础知识,云平台的概念及分类

时间:2023-05-04 03:52:45 阅读:211960 作者:4206

一. 云平台定义

“云是将服务器虚拟化,形成虚拟资源池,相比于以前的物理机更加节省资源成本,便于管理。云是计算、存储、网路资源池化的概念。我们每天使用的搜索引擎、邮箱、网盘,就是很标准的云,而这大多都是免费的。云是对互联网的升级,意味着互联网并不仅仅是存储数据,而是为你提供某种服务。云计算、云存储、云服务、云平台等就是利用云通过一堆机器经过网络组合到一起的不同形式,是云下面的子概念。总的来说就是,云服务=云平台,云服务=云计算+云存储!”

云计算是云平台得以成功运用的关键,云计算的出现,为云平台供应商解决了不少麻烦,云计算具有大规模分布式、虚拟化、高可用性和扩展性、按需服务更加经济及安全五大特点。
当前云计算平台主要分为三类:①以数据存储为主的存储型云平台;②以数据处理为主的计算型云平台;③计算和数据存储处理兼顾的综合云计算平台。

关于云平台,开发者需要做哪些准备?

云计算作为企业转型的基石,与其支持高度可扩展和灵活的分布式架构,可在多云环境中轻松迁移密不可分,但云应用从开发到落地生产环境,需要许多不同的工具和技术来提供强有力的支持。本文将讨论云环境中能够最大化发挥云计算优势的新方法、新工具。
函数式编程
假设我们希望开发具有高度可伸缩基础设施的服务来支持IoT和big data平台,函数式编程是一项值得考虑的选择。不同于大多数人所熟知的编程范式,函数式编程不需要维护全局状态,只需要将输入数据传给函数即可,适合用于验证新想法。很多顶级云供应商目前都已经支持函数式编程。
选择开发语言
在云平台上开发微服务架构时,启动时间(startup time)、内存效率(memory efficiency)、二进制大小(binary size)和并发性(consurrency)是关键因素。
Go——Go语言对于云计算来说,是一种优秀的选择,它具备并发、轻量级、静态类型和编译语言等特性。据了解,英国的一家银行(Monzo)完全使用Go语言实现微服务架构来构建完整的银行体系结构。
Java——大多数应用都是用Java开发的,Java也拥有大量的开发者社区基础。Spring Boot和Java modules(JDK-9.0~)是云原生架构的最佳选择之一。这是将遗留系统迁移到云平台的良好开端。
.net core——微软已经很久没有支持开源社区了,这也是很多公司不采用.net core的原因之一。当然微软总是致力于提供无bug的工具、简单的语法和良好的教程,他们最近也意识到,开源可以为Azure cloud提供更多的创新和业务。总而言之,.net core是Azure云平台上的最佳选择之一。
R Math——数据科学(data science)正在席卷整个计算机世界,但却没有一种新的语言可以用来解决数据科学难题(统计和数学)。由于云计算可以以低成本提供计算能力,业界正试图用旧的技术工具来解决人工智能难题。R是S编程语言的实现。S创建于1976年,R library实现统计和数学功能。
Python——Python支持多种编程范例和强类型检查。它易于学习,有强大的分析库,并得到了开源社区的大力支持,这也是Python吸引数据科学家的原因之一。
选择存储
大规模伸缩前端服务,尝试使用连接池与RDBMS数据库进行通信可能无法满足实际的用例需求,需要我们选择以云为中心(cloud-centric)的数据库来构建强大的存储平台。
Amazon DynamoDB——提供了任何级别的single-digit-millisecond延迟,数据以NoSQL格式存储,支持文档、键值存储模型和构建图形数据库。
Azure Cosmos DB——支持具有水平扩展的全局分布式数据库。以NoSQL格式存储的数据,保证了99%的single-digit-millisecond延迟。它不仅支持文档、图形、键值、表和列族数据模型,还支持扩展到多种语言的API支持。
MongoDB——MongoDB是NoSQL DB的早期版本之一,对于客户来说是非常好的开源存储,并且具有不错的成本效益模型。
IBM Cloudera DB——Cassandra是Cloudera的基础数据库,它支持基于java的api来与NoSQL数据库通信。
Oracle NoSQL DB——oracle NoSQL DB支持水平负载均衡和节点扩展。
Service Mesh微服务架构
微服务架构在带来诸多好处的同时,也带来了处理故障、路由和服务发现方面的挑战。因此,在大规模构建以云为中心的服务时,不妨考虑Service Mesh微服务架构。

什么是Service Mesh微服务架构

Service Mesh是用于处理服务间通信的基础设施层,用于在云原生应用复杂的服务拓扑中实现可靠的请求传递。在实践中,Service Mesh通常是一组与应用一起部署,但对应用透明的轻量级网络代理。简单来说,Service Mesh是微服务通信的代理层。
Linkerd——Linkerd为服务之间通信提供支持,并为访问微服务提供抽象层,具有服务发现、负载均衡、断路、动态请求路由和分布式跟踪等特性。
Envoy——最初在其内部使用,而今作为Service Mesh解决方案开放了源代码。不过Envoy并不是为Kubernetes设计的。
Istio——Istio使用负载均衡服务创建已部署服务的网络以进行服务身份验证。服务监视是它支持的关键特性之一。
Rainbond——Service Mesh微服务架构是开源PaaS Rainbond在v3.6.0版本中的重点新增特性,可以开箱即用。Rainbond通过插件式扩展来实现治理功能,并对spring cloud、api gateway、dubbo等微服务架构框架有良好支持。
消息层
IoT是所有行业都在关注的增长领域。相信不少人都听说过“数据是一种新的石油”这句话。自动驾驶、移动设备等等,每天都会jwdxmf平台输送大量数据。事件源(event sourcing)是捕获完整在线用户活动的另一个领域……种种情形和需求,让数据流工具成为众多企业必不可少的一部分。
Kafka——Kafka是一款基于发布/订阅的分布式消息系统,于2011年成为Apache的孵化项目,随后于2012年成为Apache的主要项目之一。Kafka使用Scala和Java进行编写,因其快速、可扩展的、高吞吐、可容错的特点而逐渐成为一项广泛使用的技术,适合在messaging、website activity tracking、log aggregation等大规模消息处理场景中使用。
Kinesis——Amazon Kinesis可让你轻松收集、处理和分析实时流数据,以便及时获得见解并对新信息快速做出响应。Amazon Kinesis 提供多种核心功能,可以经济高效地处理任意规模的流数据,同时具有很高的灵活性,让你可以选择最符合应用程序需求的工具。
容器/架构即代码
容器化是对在云环境中运行应用和依赖的打包,即其中包含代码、环境变量、库等等。容器可以在任意云环境中运行,并为大规模迁移到不同云环境中提供灵活性。
Docker——Docker为封装和分发容器应用提供了一个开放的标准。Docker engine用于构建和运行容器,而Docker镜像一般存储在Docker hub中。
Kubernetes——Kubernetes现下已成为容器编排的标准,在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。
总结
以上工具和技术只是云平台的开始,需要企业,尤其是大型企业在构建云平台时,结合实际自身情况进行选择。银行上云远比想象中复杂,需要整体规划、分步实施。为应用开发、存储、安全、日志记录和调试、监视和测试创建合理的路线图,这也是为开发人员增加生产力和实现目标提供清晰思路的有效方法。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。