摘要:微软已经很久没有支持开源社区了,这也是很多公司不采用的原因之一。当然微软总是致力于提供无的工具简单的语法和良好的教程,他们最近也意识到,开源可以为提供更多的创新和业务。
得益于CTO、CEO和CDO们积极的推动,IT基础设施正在向云环境迁移,底层架构师则在热烈讨论围绕着云原生应用的SaaS、PaaS和微服务架构,而开发者们正在大显身手,努力探索云计算的魔盒,找出什么是对业务有价值的,什么又是不需要的。
之所在云上花费这大精力,云应用所具备的独特功能居功至伟,例如支持高度可扩展和灵活的分布式架构,可以在多云环境中轻松迁移,但云应用从开发到落地生产环境,需要许多不同的工具和技术来提供强有力的支持。本文将讨论云环境中能够最大化发挥云计算优势的新方法、新工具。
函数式编程假设我们希望开发具有高度可伸缩基础设施的服务来支持IoT和ybig 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 - It communicates between services and provides an abstract layer for accessing microservices. The key features are service discovery, load balancing, circuit breaking, dynamic request routing and distributed tracing.
Linkerd——Linkerd为服务之间通信提供支持,并为访问微服务提供抽象层,具有服务发现、负载均衡、断路、动态请求路由和分布式跟踪等特性。
Envoy——最初在其内部使用,而今作为Service Mesh解决方案开放了源代码。不过Envoy并不是为Kubernetes设计的。
Istio——Istio使用负载均衡服务创建已部署服务的网络以进行服务身份验证。服务监视是它支持的关键特性之一。
Rainbond——Service Mesh微服务架构是开源PaaS Rainbond在v3.6.0版本中的重点新增特性,可以开箱即用。Rainbond通过插件式扩展来实现治理功能,并对spring cloud、api gateway、dubbo等微服务架构框架有良好支持。
消息层IoT是所有行业都在关注的增长领域。相信不少人都听说过,数据是一种新的石油这句话。自动驾驶、移动设备等等,每天都会向云平台输送大量数据。事件源(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技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。
总结以上工具和技术只是云平台的开始,需要企业,尤其是大型企业在构建云平台时,结合实际自身情况进行选择,为应用开发、存储、安全、日志记录和调试、监视和测试创建合理的路线图,这也是为开发人员增加生产力和实现目标提供清晰思路的有效方法。
END -
开源PaaS Rainbond v3.6.0现已发布,新增Service Mesh微服务架构开箱即用,通过插件式扩展来实现治理功能,并支持spring cloud、api gateway、dubbo等主流微服务架构。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/25247.html
摘要:近年来,许多专业人员都已经对简历进行了整理,并调整了技能以从事云计算方面的工作。这里概述了云计算的一些常见职业以及他们所需的技能云管理员企业需要一个人来配置云部署并执行管理和监控任务。 近年来,许多IT专业人员都已经对简历进行了整理,并调整了技能以从事云计算方面的工作。云行业持续快速地增长。根据Gartner的报告,公有云服务市场在2017年将增长18%,达到2486亿美元,高于2016年的...
摘要:给开发人员提供一致的体验是构建能支持云应用的操作系统的目标之一。你们认为哪些最适合于云开发开发者应为些添加哪些东西来增强其云开发的能力你们对基于云的有兴趣吗很个人的说我是有潜在偏见的作为一个提交者,我很喜欢,也是和的粉丝。 开发者正在不断体验多种不同的云环境。当在云中工作时,开发者应如何改变他们的思考方式?是否有某些云环境更适合于刚准备入门的开发者?而那些目前尚未涉及云开发的开发者们又如何在...
摘要:到目前为止,云计算提供商的选择并不是真正的考虑因素。还有一些以灾难恢复为重点的软件提供商,允许企业根据需要在不同的云计算基础设施之间进行故障转移。由于业务敏捷性和市场竞争,企业面临着将业务迁移到云平台以及快速迁移的压力。但重要的是,无论他们面临多大的数字中断风险,都要花费时间创建和实施他们的云计算战略。毕竟,一些企业可能做出的错误决定(例如所使用云计算提供商的云服务或应该将多少业务转移到云平...
摘要:工作人员需要注意与分区操作系统和映像格式的兼容性问题,以确保顺利迁移。企业在虚拟机迁移过程中需要检查云计算兼容性,以确保虚拟机移动到公共云时尽可能不受干扰。 将虚拟机(VM)移动到公共云时可能会出现许多兼容性问题。工作人员需要注意与分区、操作系统和映像格式的兼容性问题,以确保顺利迁移。 企业在虚拟机迁移过程中...
摘要:工作人员需要注意与分区操作系统和映像格式的兼容性问题,以确保顺利迁移。企业在虚拟机迁移过程中需要检查云计算兼容性,以确保虚拟机移动到公共云时尽可能不受干扰。 将虚拟机(VM)移动到公共云时可能会出现许多兼容性问题。工作人员需要注意与分区、操作系统和映像格式的兼容性问题,以确保顺利迁移。 企业在虚拟机迁移过程中需要检查云计算兼容性,以确保虚拟机移动到公共云时尽可能不受干扰。 在理想情况下,任何...
阅读 1291·2023-04-26 01:03
阅读 1906·2021-11-23 09:51
阅读 3299·2021-11-22 15:24
阅读 2661·2021-09-22 15:18
阅读 1010·2019-08-30 15:55
阅读 3456·2019-08-30 15:54
阅读 2231·2019-08-30 15:53
阅读 2386·2019-08-30 15:44