.NET与鲲鹏共展翅,昇腾九万里(一)

2019年1月7日,华为推出鲲鹏920处理器,便宣告了构建鲲鹏生态系统的开始。据官方介绍,鲲鹏是一个包含了鲲鹏计算单元、AI处理单元、智能管理、智能网卡的片上系统SoC,在此之上加上服务器操作系统,从而形成一个生态的闭环。在2019年9月20号举办的华为全联接大会中,预告了华为服务器操作系统EulerOS(欧拉)将会以开源版本发出,代号为openEuler,其主要目的就是完善鲲鹏生态系统。被华为Cloud&AI BG总裁侯金龙称为“鲲鹏灵魂”的就是这个openEuler操作系统,它不仅能让华为云计算为人工智能保驾护航,还能为数据安全提供更全面的保障。在2020年3月27日的华为开发者大会上,正式推出了openEuler 20.03 LTS 版本,任何伙伴都可以免费的获取LTS版本,并且可以商业化,同时承诺将对openEuler永久免费、开源。

随着美帝对中国的封锁日趋严峻,国家在大政策方针上也开始了全面国产化的进程,新上线的软硬件服务基本上都要求使用国产,符合安全可控原则。本人所在公司业务也涉及到国企及党政军部门的业务,因此必须在国产化安全可控方面有相应的策略,经过一番对国产服务器及操作系统(多多少少都有一些现有国外开源Linux的影子)的调研了解后,个人觉得华为推出的鲲鹏服务器以及Euler系统比较符合公司的发展方向:1. 华为有自主知识产权硬件,鲲鹏为Arm架构芯片,性能与Intel相比不弱;2. 开源的Euler使用起来更让人放心;3. 华为同时拥有软硬件开发能力,这使得系统的稳定性和可用性更强; 4. 最重要的一点,我们使用 .NET Core 开发平台,支持Arm架构,并且在Docker的加持下(使用Docker是为了简化运行环境配置,毕竟那些配置还是很繁琐的),基本上无需修改程序,仅仅需要在Euler系统上重新编译即可顺利运行。以下,我就介绍如何使用Euler系统来编译运行.NET Core程序。

01


首先,作为测试环境,我在华为云上购买了一台鲲鹏云服务器,4C8G, EulerOS 2.8

02



其次,我们要先调整下系统环境,不知为何默认的yum包源并不正确,查阅官方文档才获得正确配置。

1. SSH远程登录后,需要调整一下yum包的源地址。转到 /etc/yum.repos.d 目录下,修改 euleros_aarch64.repo 文件内容如下:

[base]
name=EulerOS-2.0SP8 base
baseurl=http://mirrors.huaweicloud.com/euler/2.8/os/aarch64/
enabled=1
gpgcheck=1
gpgkey=http://mirrors.huaweicloud.com/euler/2.8/os/RPM-GPG-KEY-EulerOS

2. 添加Docker包源

执行如下命令:

yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repodnf clean all # 清除所有的缓存文件
dnf makecache # 制作元数据缓存

然后再执行

yum repolist all

显示内容大致如下,说明yum软件包源设置成功

03


接下来,该是安装Docker的时候了。

1. 安装必备组件

yum install policycoreutils-python
wget http://mirror.centos.org/altarch/7/extras/aarch64/Packages/container-selinux-2.107-3.el7.noarch.rpm
rpm -ivh container-selinux-2.107-3.el7.noarch.rpm

2. 安装Docker

yum list docker-ce --showduplicates | sort -r # 列一下可以安装的Docker版本
yum install docker-ce # 当然是默认最新版啦

3. 安装完看一下Docker版本

docker -v
Docker version 19.03.8, build afacb8b

4. 既然Docker装好了,我们跑一下 .NET Core 官方Demo瞧瞧

docker run --rm -it -p 80:80 mcr.microsoft.com/dotnet/core/samples:aspnetapp

嗯,程序顺利运行起来了!请忽略截图里几个”Already exists”, 因为我之前已经拉了一个dotnet的包。我们现在用浏览器访问下服务器的80端口看看吧!

 

页面正确展示,也显示了服务器的一些信息,只是那个最大可用内存有点问题,感觉应该是core的问题,有知道的同学可以留言说说看。

04


至此,我们让Arm架构的鲲鹏服务器在Euler系统上基于Docker跑起 .NET Core程序了。如果有Docker运行 .NET Core程序的同学们就已经可以自己玩起来了,如果没有做过,那么在下一篇文章中,我将继续介绍如何使用.NET SDK 的 Docker镜像编译 .NET Core程序,并使用Docker将它跑起来。

最后,让我们来欣赏下作为国产硬件骄傲的鲲鹏生态主打曲。

“鲲之大,不知千里也,鹏之背,翼若垂云天”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/310567.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络编程-TCP/IP协议栈-TCP协议

TCP协议 TCP协议作用 TCP协议位于协议栈的传输层。当应用层向TCP层发送用于网间传输的,用8字节表示的数据流,TCP则吧数据流分割成适当长度的报文段,最大传输段大小(MSS)通常受到改计算机连接的网络数据链路层的最大传…

互联网10年,激战如梦

— 1 —1969年,美国国防部研究计划署第一次将互联网应用于军事连接。随后美国西南部四所名校的四台计算机通过这项技术连接起来。谁也没想到,这项计划会对人类的命运产生如此重大影响。1993年,互联网真正诞生。美国白宫宣布开始提供「在线服务…

网络编程-TCP/IP协议栈-UDP/HTTP协议

UDP协议 UDP协议全称是用户数据报协议,在网络中她与TCP协议一样用于处理数据包,两个协议同处于协议栈的传输层,和TCP不同的是,UDP是一种无连接的协议栈。 因为UDP是无连接的,所以相对来说,UDP的报头比TCP要…

十问十答 Ms-PL 许可证

Microsoft 公共许可证(The Microsoft Public License)是微软为释出开源项目而编写和发布的自由开源软件许可证。如果你用 .NET 开发,你会经常碰见 Ms-PL。在微软的自由开源项目托管地 Codeplex(已寿终正寝,微软已战略转…

网络编程-HTTPS协议的实现原理

HTTP传输协议缺点 之前几篇文章中详细讲解了TCP/IP协议栈中的几个协议,其中个就有对HTTP做了一个比较详细的讲解。HTTP是基于TCP进行传输的,其中传输的内容都是明文报文数据,如果我是一个黑客,我会想办法获取这个HTTP消息体&…

从案例角度解析建模平台动态规则引擎

源宝导读:明源云ERP建模平台提供了强大的页面联动规则引擎,原来需要编写代码完成的联动控制逻辑,现在只需要点点鼠标,通过配置完成。本文从实际案例的角度出发,介绍原始的代码逻辑如何转化为引擎规则的过程。一、背景明…

想基于K8s按需扩展应用程序,可从这几方面入手

马修赫瑟(Matthew Heusser)在花费了十年时间进行编程,测试和项目管理之后,Matt Heusser于2011年创立了自己的公司Excelon Development。该协会前董事会成员Matt还是软件测试人员,是德国波茨坦最具影响力的敏捷测试专业…

windows环境下ELK平台搭建

背景 日志系统主要包括系统日志,应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器的软件,硬件信息,检查配置过程中的错误以及错误发生的原因。通常分析日志可以了解服务器的负荷,性能安全性,从而及时…

EntityFramework Core 3.x上下文构造函数可以注入实例呢?

今天讨论的话题来自一位微信好友遇到问题后请求我的帮助,当然他的意图并不是本文标题,只是我将其根本原因进行了一个概括,接下来我们一起来探索标题的问号最终的答案是怎样的呢?老规矩,首先我们定义如下上下文public c…

SpringCloud常见问题总结(一)

Eureka常见问题 Eureka注册服务慢 默认情况,服务注册到Eureka Server 的过程比较慢。在开发或者测试时候,如果能够加速注册的过程,从而提升工作效率。Spring Cloud官方文档详细描述了该问题的原因并提供了解决方案: //原文 Why…

[剑指offer]面试题21:包含min函数的栈

面试题21:包含min函数的栈 题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min、push及pop的时间复杂度都是O(1)。 栈内压入3、4、2、1之后接连两次弹出栈顶数字…

IO 模型知多少

1. 引言同步异步I/O,阻塞非阻塞I/O是程序员老生常谈的话题了,也是自己一直以来懵懵懂懂的一个话题。比如:何为同步异步?何为阻塞与非阻塞?二者的区别在哪里?阻塞在何处?为什么会有多种IO模型&am…

[剑指offer]面试题22:栈的压入、弹出序列

面试题22:栈的压入、弹出序列 题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1、2、3、4、5 是某栈的压栈序列,序列4、5、3、2、1…

Ubuntu上安装使用Docker

Docker简介 Docker是一个开源的容器引擎,他有助于更快的交付应用。Docker可以将应用程序和基础设施层做隔离,并且能将基础设施当做程序一样进行管理。使用Docker,可以更快的打包,测试以及部署应用程序,并且可以缩短从…

让 .NET 轻松构建中间件模式代码

让 .NET 轻松构建中间件模式代码Intro在 asp.net core 中中间件的设计令人叹为观止,如此高大上的设计何不集成到自己的代码里呢。于是就有了封装了一个简单通用的中间件模板的想法,以后有需要的时候就可以拿来即用。接口定义这里按执行的委托是同步还是异…

[剑指offer]面试题26:复杂链表的复制

面试题26:复杂链表的复制 题目:请实现函数ComplexListNodeClone(ComplexListNodepHead),复制一个复杂链表。在复杂链表中,每个结点除了有一个m_pNext指针指向下一个结点外,还有一个m_pSibling 指…

SpringCloud + Docker

Dockerfile构建Docker 镜像 注意这里说的Dockerfile是指的一个文本文件,类似txt,只不过名字是Dockerfile,里面编辑Docker的一些指令,指令作用在于描述构建镜像的细节。如下一个简单的案例,用上一节中下载的nginx镜像来…

红帽借“订阅”模式成开源一哥,首创者升任总裁

4 月 6 日,红帽公司宣布,产品和技术总裁 Paul Cormier 即日起任红帽总裁,并兼任首席执行官。Paul Cormier 是开源商业化“订阅”模式的提出者,这一模式促使红帽达成连续超70个季度的盈利,身价升至340亿美金&#xff0c…

Docker中数据管理

Docker数据管理 生产环境中,对数据进行持久化,或者需要在多个容器直接进行数据共享,这必然涉及到容器的一些数据管理的操作。容器中数据管理主要有两种方式: 数据卷(Data Volumes):容器内数据直…

C#两大知名Redis客户端连接哨兵集群的姿势

前言前面《Docker-Compose搭建Redis高可用哨兵集群》,我的思路是将Redis、Sentinel、Redis Client App链接到同一个网桥网络,这个网桥内的Redis Client App就可以使用ContainerIP访问网桥内任意redis节点。同一网桥网络访问规避了Docker上发生的NAT&…