编者按:本文从企业数据安全性、部署问题困难等情况出发,系统分析了SaaS部署和本地部署优缺点,为大家选出最适合企业发展的部署方式。
(1)企业面临部署选择困境
(2)SaaS部署和本地部署比较
(3)私有化部署解决企业难题
在互联网科技高速发展的今天,“数字化办公”已经不是什么新词,近年来,“上云潮”逐渐兴起,选择在SaaS部署系统的企业越来越多,本地部署作为办公软件的元老级部署方式仍然青山不倒。轻量化、快捷性、低使用门槛而越来越受软件厂商和企业的青睐;很多企业在选择部署方式时感到迷茫,不同的部署方式各有自己的优缺点,企业该怎么选择呢?
SaaS部署和本地部署优缺点比较
一、SaaS部署
SaaS,是Software-as-a-Service的缩写名称,意思为软件即服务,即通过网络提供软件服务。SaaS平台供应商将应用软件统一部署在自己的服务器上,客户可以根据工作实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得Saas平台供应商提供的服务。
优点:
成本低:不用购买服务器,不用请运维人员;
节省时间:SaaS部署只需要开通账号和密码就能即时开通使用;
安全:SaaS服务提供商日常中会有专业的人员对系统进行日常的更新和维护,所以系统相对来说比较安全。
缺点:
安全存在隐患:一方面云服务是搭载在网络上的,而网络存在许多不确定性和未知危险,数据遭窃或篡改都有可能;另一方面,在网络上,数据的丢失、泄露的可能性比服务器部署概率大。
灵活性较低:大多数的SaaS都是标准化产品,缺乏灵活性,不能满足企业个性化需求。
与第三方接口集成困难。
二、本地化部署
本地部署即将办公软件安装到公司自己的服务器,应用环境和数据都在自己的主机和服务器上。
优点:
安全性较高:本地安装因为数据都在自己公司和服务器上,泄露和被黑客攻击的可能性较低,是比较安全的一种部署方式;
自主性较高:因为所有的数据都被买断,购买本地安装的企业,如果不考虑成本,完全可以根据自己的需求进行私人定制,灵活性和自主性较高;
即可以支持外网使用、也可以设置为公司内网访问,灵活性强;
使用独立宽带,不易受外部因素干扰,访问速度快、系统稳定性高。
缺点:
成本高:服务器从运营到维护再到后期的维保,都需要人力和物力的投资;
周期长:从需求收集到系统上线,一般需要三个月以上。
在系统比较SaaS部署和本地部署后,优缺点都是显而易见,但是对于企业决策者来说,该选哪个,还是一样难。到底是选择SaaS部署还是本地部署,真是一件令人头秃的事,有没有兼顾两种部署方式优点的方法呢?还真的有,那就是私有化部署。
私有化部署——解决企业部署难题
什么是私有化部署?它有什么优点?适用于什么场景?
私有化部署,一般是指针对特定企业定制开发的产品,专注于服务于该企业。比我很多政府或者大型企业自建的信息化项目多属于私有化产品。不过,私有化部署并不是只限于企业内部使用,也可能是跨企业使用,只是服务部署在企业的内部,由企业内部自行管理。
优点:
成本较低:可以通过企业规模来选择,定制个性使用方案,成本较低;
灵活性较高:私有化部署是指就是将系统直接部署到企业自己的服务器上,数据直接保存在本地。建设过程可以自行处理,也可以通过第三方服务器部署。
安全性高:因为部署在企业内部,服务的稳定性、数据的安全性是能够达到极大的保证的。
目前,市面上的私有化部署主要通过低代码开发平台来实现,比如国内MyApps低代码开发平台。该平台作为国内最早从事快速开发平台研发和应用的厂商之一,自2003年开发研发,至今已经18年历史,平台源代码已达200万行,客户累计授权超10万+,拥有丰富的低代码开发经验。
MyApps低代码开发平台在私有化部署这块颇有建树,一方面,它可以支持多种不同的部署方案,根据不同的用户在线数量及并发数量选择具体的部署方式,通常系统各操作响应时间在0.5-3S以内。另一方面,该平台不限部署数,用户数、并发数,一次采购可重复使用,大大节省软件采购成本。

我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie
所以我开始关注ruby,很多东西看起来不错,但我对隐式return语句很反感。我理解默认情况下让所有内容返回self或nil但不是语句的最后一个值。对我来说,它看起来非常脆弱(尤其是)如果你正在使用一个不打算返回某些东西的方法(尤其是一个改变状态/破坏性方法的函数!),其他人可能最终依赖于一个返回对方法的目的并不重要,并且有很大的改变机会。隐式返回有什么意义?有没有办法让事情变得更简单?总是有返回以防止隐含返回被认为是好的做法吗?我是不是太担心这个了?附言当人们想要从方法中返回特定的东西时,他们是否经常使用隐式返回,这不是让你组中的其他人更容易破坏彼此的代码吗?当然,记录一切并给出
给定以下方法:defsome_method:valueend以下语句按我的预期工作:some_method||:other#=>:valuex=some_method||:other#=>:value但是下面语句的行为让我感到困惑:some_method=some_method||:other#=>:other它按预期创建了一个名为some_method的局部变量,随后对some_method的调用返回该局部变量的值。但为什么它分配:other而不是:value呢?我知道这可能不是一件明智的事情,并且可以看出它可能有多么模棱两可,但我认为应该在考虑作业之前评估作业的右侧...我已经在R
我在我的Rails3示例应用程序上使用CarrierWave。我想验证远程位置上传,因此当用户提交无效URL(空白或非图像)时,我不会收到标准错误异常:CarrierWave::DownloadErrorinImageController#createtryingtodownloadafilewhichisnotservedoverHTTP这是我的模型:classPaintingtrue,:length=>{:minimum=>5,:maximum=>100}validates:image,:presence=>trueend这是我的Controller:classPaintingsC
我可以在Azure网站上部署RubyonRails吗? 最佳答案 还没有。目前仅支持.NET和PHP。 关于ruby-on-rails-RubyonRails可以部署在Azure网站上吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12964010/
电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。 准备工作: 1、U盘一个(尽量使用8G以上的U盘)。 2、一台正常联网可使用的电脑。 3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。 4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。 U盘启动盘制作步骤: 注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注
前置步骤我们都操作完了,这篇开始介绍jenkins的集成。话不多说,看操作1、登录进入jenkins后会让你选择安装插件,选择第一个默认的就行。安装完成后设置账号密码,重新登录。2、配置JDK和Git都需要执行路径,所以需要先把执行路径找到,先进入服务器的docker容器,2.1JDK的路径root@69eef9ee86cf:/usr/bin#echo$JAVA_HOME/usr/local/openjdk-82.2Git的路径root@69eef9ee86cf:/#whichgit/usr/bin/git3、先配置JDK和Git。点击:ManageJenkins>>GlobalToolCon
深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal
我正在研究使用EventMachine支持的twitter-streamrubygem来跟踪和捕获推文。我对整个事件编程有点陌生。我如何判断我在事件循环中所做的任何处理是否导致我落后?有没有简单的检查方法? 最佳答案 您可以通过使用周期性计时器并打印出耗时来确定延迟。如果您使用的是1秒的计时器,您应该已经过了大约1秒,如果它更长,您就知道您正在减慢react器的速度。@last=Time.now.to_fEM.add_periodic_timer(1)doputs"LATENCY:#{Time.now.to_f-@last}"@
啊,正则表达式有点困惑。我正在尝试删除字符串末尾所有可能的标点符号:ifstr[str.length-1]=='?'||str[str.length-1]=='.'||str[str.length-1]=='!'orstr[str.length-1]==','||str[str.length-1]==';'str.chomp!end我相信有更好的方法来做到这一点。有什么指点吗? 最佳答案 str.sub!(/[?.!,;]?$/,'')[?.!,;]-字符类。匹配这5个字符中的任何一个(注意,。在字符类中并不特殊)?-前一个字符或组