麦斯科技 · 2021年07月11日

利用Works On Arm新方案赋能软件开发

https://community.arm.com/developer/tools-software/tools/b/tools-software-ides-blog/posts/empowering-software-development-with-works-on-arm-initiative?utm_source=twitter&utm_medium=social&utm_campaign=2021_infrastructure-developer_mk21_na_na_na_na&utm_content=blog

作者:Kushal Koolwal 2021年7月7日

WOA-update-blog-cover.jpg_2D00_900x506x2.jpg

基于Arm Neoverse的平台旨在满足下一代基础设施不断增长的计算需求,提供业界最佳的单位吞吐量成本。这有利于各种工作负载和应用程序的高性能、高效率和计算密度。这些平台上的软件开发范围从广泛的云软件工作负载到支持edge和Telco用例的专用软件。从开发人员的角度来看,这些云本地应用程序是在一系列本地Arm平台上开发的,无论是云实例、物理平台、边缘设备还是笔记本电脑。随着Arm上软件开发计划的增长,我们必须继续减少开发人员交付Arm64软件版本的摩擦。

今天,我们很兴奋地分享我们正在扩展我们的ARM(WOA)计划的工作,包括从我们的生态系统合作伙伴提供广泛的云平台-亚马逊Web服务(AWS),Enimx Metal裸机服务,甲骨文云基础设施和俄勒冈州立大学的开源实验室。

pastedimage1625068816906v1.png-1265x0.png

WoA是一项战略计划,旨在为Arm64实现更广泛的软件生态系统,并为开源社区和生态系统中的软件开发人员提供免费访问Arm平台、持续集成(CI)和持续开发(CD)环境的机会。这使开发人员能够以最无摩擦的方式为Arm64体系结构构建、测试和优化他们的项目。这些环境中的每一个都提供了独特的Arm64基础结构,提供了选择和灵活性。

以下是启用对每个环境的访问的详细信息:

亚马逊网络服务(AWS)

AWS Graviton2产品是基于Arm Neoverse N1架构的AWS云上基于Arm的最新一代服务器。其中包括Amazon通用(M6g、M6gd、T4g)、计算优化(C6g/C6gd/C6gn)和内存优化(R6g、R6gd、X2gd)。

Amazon ec2 t4g实例是下一代低成本的burstable实例,非常适合于运行包括大规模微服务在内的各种通用应用程序,也非常适合开发人员在云中的Arm64体系结构上构建、测试和部署本机应用程序。在2021年12月31日之前,T4g.micro实例每月最多可免费使用750小时。开发人员可以从这里开始使用T4g实例(https://aws.amazon.com/ec2/instance-types/t4/)。

Equinix Metal裸机服务

Arm于2017年与Equinix(前身为Packet)合作,提供从各种Arm服务器供应商到合格OSS项目的基于Arm64的裸机的免费访问。Equinix上的Arm群集上的Works由单插槽(80核、128GB RAM、1TB NVMe U.2 SSD)和双插槽(160核、256GB RAM、1TB NVMe U.2 SSD)配置中的单插槽和双插槽Ampere Altra平台组成,提供最佳性能。

OSS项目可以直接在Works on ARM Equinix Github集群页面(https://github.com/WorksOnArm/cluster)上请求资源。Arm软件生态系统团队将在两周内审核每个请求。

Equinix WoA集群上的软件项目

pastedimage1625068903379v2.png-1265x0.png

在过去的四年中,这项计划已经启动了多个不同类别的OSS项目,如CI/CD、操作系统、内核、编译器、数据库、GUI框架、语言、ML库、存储等。目前有50多个OSS项目在这个集群上运行,虽然不可能涵盖本博客中的所有项目,但这里有一些亮点:

  • CI/CD:Travis CI和Drone CI为项目提供本地Arm64云托管产品,以利用对CI/CD的免费访问。Kata容器、Kubernetes和Kubevirt等云原生项目分别利用这些平台来运行CI循环、运行e2e测试套件以及进行基本集成和单元测试。除了托管的CI/CD之外,还有几个附加的项目使用该平台运行GitHub Actions和GitLab的自托管Arm64运行程序,并运行Jenkins install for upstream public CI。
  • 语言和编译器支持包括EclipseAdaptium(以前称为AdoptOpenJDK)、GNU toolchain、GoLang、LLVM、Node.JS、OpenJ9、Python、Rust和Swift。
  • 操作系统和虚拟化软件,如Alpine Linux、CentOS、Cloud Hypervisor、Debian、Gentoo、KVM、OpenEmbedded(以前叫Yocto)完成了项目的各个方面,比如为Arm64系统构建数千个包。
  • 像ScyllaDB这样的数据库使用这些系统来验证性能和程序的正确性。

Oracle云基础设施(OCI)

OCI提供基于Arm Neoverse的Ampere A1计算实例,提供业界首个80核Arm服务器,每核心小时一便士。OCI Ampere A1计算平台提供确定性性能、线性可扩展性和安全体系结构。

OCI为软件开发人员提供Oracle Cloud Free Tier(https://www.oracle.com/cloud/free/),该层提供免费资源,并始终提供免费选项,以提供对Ampere A1实例和各种云服务的访问。访问这些资源很容易,直接通过OCI完成。Arm和Oracle已经合作支持对开发人员资源的访问,作为Arm项目的一部分。

为了促进Arm上的无摩擦开发,Oracle创建了一个Arm开发人员门户(https://developer.oracle.com/arm/),其中列出了所有可用于Arm开发的资源。

俄勒冈州立大学开源实验室(OSUL)

OSUOSL(https://osuosl.org/services/aarch64/)的Arm64集群基于Ampere eMAG服务器,社区成员可以在OpenStack环境中开发和测试Arm64体系结构上的OSS项目,运行在KVM上的实例可以通过OpenStack的API/GUI接口访问。目前,有17个以上的项目通过这一举措积极发展,完整的名单可在这里(https://osuosl.org/services/aarch64/current-projects/#foss-projects)获得。

OSS, CI/CD 和Works on Arm

除了正常的应用程序移植和测试外,运行OSS项目的公共CI管道恰好是Arm硬件资源上的主要用例之一。有两种主要的使用模式:

  • 云托管:OSS项目可以利用Circle CI、IO和Travis CI的云托管CI/CD选项。开发人员只需修改他们的开源项目的YAML文件,就可以使用适当的云平台标记和相关的环境,而不必担心Arm64硬件的设置/配置。有关配置YAML文件的详细说明,请单击相应的链接。
  • 自我管理:OSS项目可以利用WoA提供的免费Arm平台资源,构建Circle CI、GitHub Actions、GitLab和Jenkins提供的自己的自托管运行程序

开发者福音

除了提供平台之外,Arm还积极与生态系统中的云本地开发者合作,为这些项目提供开发者资源和生态系统支持。通过WoA计划,我们将继续分享正在开发的各种项目的经验教训和最佳实践,并鼓励开发人员通过各种可用的社交媒体渠道进行互动:Twitter(https://twitter.com/ArmSoftwareDev)、YouTube(https://www.youtube.com/c/ArmSoftwareDevelopers)和Discord(https://discord.com/invite/H5ETM7C)。

有问题请联系我们:sw-ecosystem@arm.com

推荐阅读
关注数
5761
内容数
525
定期发布Arm相关软件信息,微信公众号 ArmSWDevs,欢迎关注~
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息