这篇文章给大家介绍.NET平台下的跨平台实例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
云服务整体迁移到Azure主要考虑到平台自定义创建虚拟机,灵活的创建各项服务机制,以及从应用程序到数据分析以及大数据分析处理的生态组件体系。我们按需搭建了生产,测试,灰度三套环境。生产负载均衡直接使用的azure的服务。
.NET后端程序的跨平台部署主要进行了以下几个方面的改造.
1公司软件服务全部搭建在Linux
centos操作系统下。.NET程序包括网站和应用API一律由Jexus
web服务器替换,API供公司网站和APP使用。Jexus服务器依赖于mono环境。
2数据库服务一律替换为云数据库,采用Azure的Mysql服务,权限控制,备份,维护全部交由Azure平台。
3后端服务按照功能模块化和服务组件化的思路拆分为多个二级域名服务,API框架采用ServiceStack开源软件,深度使用其ORM,Redis,MySQl连接库,序列化组件。另外后端服务的缓存和队列也采用redis实现,放弃使用.NET本身的缓存机制。
我在使用Azure云服务的过程中发现几个特点,个人感觉不利于Azure云服务的传播。
1使用人群
从平台接入门槛和使用难度来说,主要受众以.NET平台开发者为主,以致力于改变,有多年平台开发经验,有危机感的一部分平台开发者。
2平台差异性和依赖
通过我的使用观察来看,平台本身还有很强的语言平台属性,具体表现在多个功能组件强调开发者接入和维护时需要借助于PowerShell.
.NET开发人员很少知道PowerShell是什么,有何用,更不用谈PHP等Linux平台的开发者了。其实我并不喜欢PowerShell这个工具,之前也是被迫使用。
以MongoDb的使用介绍为例,Azure是这么介绍的
快速搭建MongoDB集群使用Azure
PowerShell和Azure
CLI在Azure虚拟机上快速搭建单节点MongoDB(
测试使用 )和包含主从复制以及分片集群的多节点MongoDB(
生产环境使用 )。
这样的介绍依赖于windows机器,对开发者有接入环境门槛,而不是直接的界面分配与虚拟机Linux环境操作两部分直接完成,自认为会被部分人直接pass。
3在使用azure虚拟机时,一定要确定分配的IP是否是固定IP,在哪种情况下可变,azure虚拟机有多个IP属性,一不小心,在重启或者其他相关操作下就会改变IP。我的方法是使用PowerShell命令固定一遍IP再使用。
基于.NET平台开发,如果要尝试跨平台,更多的需要技术决策者的支持。
以web部署为例,mono
Jexus不是主流的web服务服务器选型,但是绝对经得起生产环境验证。作为.net背景的开发人员,不局限在原有的windows思维里,就可以为程序设计和业务实现赢得更多的扩展性,而Azure云服务正是我们可以充分利用的平台!期待Azure的服务更加好用,在开源的支持方面更加全面。
关于.NET平台下的跨平台实例分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
原创文章,作者:745907710,如若转载,请注明出处:https://blog.ytso.com/231809.html