jjzjj

私有云建设,ALLINONE还是分层自主建设优化?

肖力 2023-03-28 原文
​私有云建设有两种思路,一种是使用整合解决方案,即ALLINONE的思路。一种是将私有云分层每层自主建设,使用不同的产品和解决方案分层优化组合使用。

两种思路各有优缺点,适合不同的场景。

一、ALLINONE思路的优点和缺点

ALLINONE思路建设私有云优点如下:

第一、ALLINONE思路建设私有云是整体解决方案,业主方省心省力。ALLINONE思路往往建设由供应商主导,建设周期短业主方也比较轻松,只需要出费用和监督就可以。日常的运营往往也由建设方主导,业主方只需要使用就可以。ALLINONE是交钥匙工程,业主方可以快速得到一套相对完整的私有云,直接开账号就可以用起来。

第二、ALLINONE思路建设私有云出了问题好界定,直接找服务商解决就可以,不存在扯皮和推诿。对于服务商来说都是自己的产品,知识库建设也会比较完善,碰到问题会更快的找到解决方法。

第三、ALLINONE思路建设私有云产品服务比较全,产品和服务的稳定性可靠性最起码经过了服务商严格的测试,很大程度上能够得到保障。随着时间的积累产品和服务也会越来越多,尤其是一些公有云厂商的私有云解决方案,私有云就是公有云的简化版本,公有云上有的产品服务,私有云上也可能会提供。

第四、ALLINONE思路建设私有云在操作上体验比较一致,统一的产品在操作风格和逻辑上一致,上手会比较容易,使用体验一般来说也不错。也比较容易得到厂商统一的文档支持和培训。

ALLINONE思路建设的私有云缺点如下:

第一、ALLINONE思路建设私有云费用比较高,因为是一揽子解决方案往往必须按照厂商的标准来建设和运营,建设时可能会选择一些不必要的功能和服务。而且因为云的运营非常复杂,如果业主方没有深度参与建设,要自主运营也面临很大挑战,会一直有持续的运营费用支出。

第二、ALLINONE思路建设私有云容易被服务商锁定,如果建设和运营都是由服务商来提供,业主方对于私有云只是使用,以后对私有云的升级和扩容只能继续选择该厂商。甚至因为业务应用已经磨合的比较稳定,建设第二朵、第三朵云的时候,也只能选择该厂商的解决方案和服务。

第三、ALLINONE思路建设私有云往往透明度有限,因为使用的是整体解决方案,业主方更多是使用,其实和公有云差不多,要了解私有云内部的详细信息比较困难。建设私有云最大的动因是安全,如果不了解云的内部信息,在安全上就难以更深入更细粒度的建设。

第四、ALLINONE思路建设私有云默认服务必然有限,统一厂商的产品必然不能提供所有业主方需要的服务,尤其是和业务相关的一些基础服务。这时候必然需要在引入一些第三方的服务商,就存在稳定性、可靠性、安全性方面的挑战。

第五、ALLINONE思路建设私有云的业务层还需要业主方建设,业务应用和私有云之间也存在稳定性、可靠性、安全性方面的挑战。当出现问题的时候,业主方也必须自己解决,这时候就要求业主方对私有云了解的越深入越好,最终业主方还是避免不了要深入研究云。

二、分层自主建设优化的优点和缺点

分层自主建设的私有云优点如下:

第一分层自主建设的私有云性价比更高,因为是定制化方案丰俭由人,所以可以选择最适合业主方的服务和产品,性价比会比较高。因为是业主方主导私有云设计和建设,所有业主方也很容易自主运营。

第二分层自主建设的私有云更可控更透明更安全,因为是分层设计分层建设,每层业主方都比较熟悉,所有私有云对业主方来说更可控更透明,业主方的架构师了解私有云的细节也更方便做细粒度的安全配置。

第三分层自主建设的私有云更灵活,私有云在升级扩容方面都可以分层进行,建设二期、三期的时候,也可以根据实际情况,分层选择不同的产品。

第四分层自主建设的私有云具有规模优势,私有云规模越大性价比越高。越是集团企业要建设多朵云或者分布式云,使用分层资质建设的私有云越有适应性更可能落地。

分层自主建设的私有云缺点如下:

第一分层自主建设的私有云对云团队要求比较高,云团队需要熟悉私有云架构设计、建设、运营和云安全。团队成员需要由云架构、云运维、云安全等不同能力的技术人员组长,要有丰富的经验,能够把控云的建设和运营,能够解决棘手的问题。

第二分层自主建设的私有云出了问题有时候难以界定,尤其是两层之间耦合的问题往往容易扯皮。这时候就要求云团队依靠经验和逻辑快速定位问题厘清责任,才有可能快速解决问题。

第三分层自主建设的私有云需要解决统一操作的问题,由于是分层建设必然存在操作不统一的问题,解决方案就是使用云管平台。云管平台可以基于商业产品定制开发,也可以自主开发。随着云的建设,云管平台功能也必须不断完善,因此云团队最好也有开发能力。

在了解了各自的优缺点以后,什么场景下使用ALLINONE思路,什么场景下使用分层自主建设思路?

最主要的因素是规模,规模越大越应该使用分层自主建设的私有云的思路。如果在规模比较大的情况下,还使用ALLINONE思路建设私有云,随着规模的增加,必然成本飙升并且可控性越来越差,到最好甚至只能推倒重来。

如果要分层自主建设的私有云,应该关注哪些要素,下面在分别讨论下。

三、分层自主建设的私有云需要关注要素

业务应用

云是为业务服务的,云的建设要充分考虑到业务,这也是私有云的强项。可以根据业务需要配置云资源,针对业务定制备份和恢复方案,针对业务定制安全方案。让业务在云上用的更稳定更高效更安全,是建设云的目标。

云管平台

云管平台是分层自主建设私有云的粘合剂和界面,云管平台的可操作性决定了私有云是否能够成功。云管平台建议选择成熟稳定的产品进行二次开发,成熟稳定的产品经过打磨,在可操作性和易用性方面有一定基础,并且不用重复造轮子,可以提升效率。

数据库

分层建设必然面临数据库的问题,目前商业数据库的选择也比较多,具体使用什么数据库还是看业务需求。如果把数据库建设成好用的RDS服务,可以借助云管平台落地。

中间件

中间件和数据库类似,可以借助云管平台落地。但是因为大部分开源中间件比较成熟稳定,私有云可以考虑直接使用开源中间件,如果对可用性要求比较高,可以考虑选择能够提供开源产品服务的服务商。

安全

建设私有云最大的动因就是安全,私有云的安全建设非常重要。要符合等级保护的要求,要考虑使用安全中心,主机安全等第三方安全产品。安全方面可以考虑组建专业的云安全团队,统一协同规划逐步建设。

容器

容器现在基本上是私有云的标配,容器和IaaS层可以是同一厂商,也可以使用不同厂商的产品,当然也可以裸金属上直接跑容器服务。按照分层自主建设的思路,容器的选择很多,建设的时候要关注功能和稳定性。

IaaS层

按照分层自主建设的思路,成熟稳定IaaS产品选择很多。IaaS层建议抽象出适合业主方的标准,根据标准选择产品,不同的云可以选择不同的产品,在实际使用的时候只使用标准的IaaS功能。

最后总结下,私有云建设ALLINONE和分层自主建设是两种思路适合不同场景,私有云规模越大越要考虑分层自主建设。分层自主建设虽然是一条挑战更大的路,但是能够保证私有云有足够的韧性,从长远看能够保护投资,做到真正的可靠可控。​

有关私有云建设,ALLINONE还是分层自主建设优化?的更多相关文章

  1. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  2. ruby - 具有身份验证的私有(private) Ruby Gem 服务器 - 2

    我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..

  3. Ruby - 如何处理子类意外覆盖父类(super class)私有(private)字段的问题? - 2

    假设您编写了一个类Sup,我决定将其扩展为SubSup。我不仅需要了解你发布的接口(interface),还需要了解你的私有(private)字段。见证这次失败:classSupdefinitialize@privateField="fromsup"enddefgetXreturn@privateFieldendendclassSub问题是,解决这个问题的正确方法是什么?看起来子类应该能够使用它想要的任何字段而不会弄乱父类(superclass)。编辑:equivalentexampleinJava返回"fromSup",这也是它应该产生的答案。 最佳答案

  4. ruby-on-rails - Ruby 流量控制 : throw an exception, 返回 nil 还是让它失败? - 2

    我在思考流量控制的最佳实践。我应该走哪条路?1)不要检查任何东西并让程序失败(更清晰的代码,自然的错误消息):defself.fetch(feed_id)feed=Feed.find(feed_id)feed.fetchend2)通过返回nil静默失败(但是,“CleanCode”说,你永远不应该返回null):defself.fetch(feed_id)returnunlessfeed_idfeed=Feed.find(feed_id)returnunlessfeedfeed.fetchend3)抛出异常(因为不按id查找feed是异常的):defself.fetch(feed_id

  5. ruby - 从另一个私有(private)方法中使用 self.xxx() 调用私有(private)方法 xxx,导致错误 "private method ` xxx' called” - 2

    我正在尝试获得良好的Ruby编码风格。为防止意外调用具有相同名称的局部变量,我总是在适当的地方使用self.。但是现在我偶然发现了这个:classMyClass上面的代码导致错误privatemethodsanitize_namecalled但是当删除self.并仅使用sanitize_name时,它会起作用。这是为什么? 最佳答案 发生这种情况是因为无法使用显式接收器调用私有(private)方法,并且说self.sanitize_name是显式指定应该接收sanitize_name的对象(self),而不是依赖于隐式接收器(也是

  6. ruby - 使用哪个,eruby 还是 erb? - 2

    eruby和erb有什么区别?哪些考虑因素会促使我选择其中之一?我的应用程序正在为网络设备(路由器、负载平衡器、防火墙等)生成配置文件。我的计划是对配置文件进行模板化,在源文件中使用嵌入式ruby​​(通过eruby或erb)来执行诸如迭代生成路由器的所有接口(interface)配置block之类的操作(这些block都非常相似,仅在标签上有所不同和IP地址)。例如,我可能有这样一个配置模板文件:hostnamesample-routerlogging10.5.16.26当通过嵌入式ruby​​解释器(erb或eruby)运行时,会产生以下输出:hostnamesample-rout

  7. ruby - 如何在 Ruby 中实现私有(private)内部类 - 2

    来自Java,我正在尝试在Ruby中实现LinkedList。我在Java中实现它的通常方法是有一个名为LinkedList的类和一个名为Node的私有(private)内部类,其中LinkedList的每个对象都作为Node对象。classLinkedListprivateclassNodeattr_accessor:val,:nextendend我不想将Node类暴露给外部世界。然而,通过Ruby中的这个设置,我可以使用这个访问LinkedList类之外的私有(private)Node类对象-node=LinkedList::Node.new我知道,在Ruby1.9中,我们可以使用

  8. ruby 私有(private)类方法助手 - 2

    您好,我正在尝试创建一个帮助程序,用于将ruby​​方法大量定义为私有(private)类方法。通常,可以通过使用private_class_method键工作将方法定义为私有(private)类方法。但我想创建一个以下样式的助手:classPersondefine_private_class_methodsdodefmethod_oneenddefmethod_twoendendend我计划通过以下方式动态定义它,但根本不起作用:classObjectdefself.define_private_class_methods&blockinstance_evaldoprivate&bl

  9. ruby - 使实例方法在运行时私有(private) - 2

    在另一个对象中注册该对象后,我需要将一些实例方法设为私有(private)。我不想卡住对象,因为它必须保持可编辑状态,只是功能较少。而且我不想取消定义这些方法,因为它们是在内部使用的。我需要的是这样的:classMyClassdefmy_methodputs"Hello"endenda=MyClass.newb=MyClass.newa.my_method#=>"Hello"a.private_instance_method(:my_method)a.my_method#=>NoMethodErrorb.my_method#=>"Hello"有什么想法吗?

  10. ruby - Ruby 导入的方法总是私有(private)的吗? - 2

    最好用一个例子来解释:文件1.rb:deffooputs123end文件2.rb:classArequire'file1'endA.new.foo将给出错误“':调用了私有(private)方法'foo'”。我可以通过执行A.new.send("foo")来解决这个问题,但是有没有办法公开导入的方法?编辑:澄清一下,我没有混淆include和require。另外,我不能使用正常包含的原因(正如许多人正确指出的那样)是因为这是元编程设置的一部分。我需要允许用户在运行时添加功能;例如,他可以说“run-this-app--includefile1.rb”,应用程序的行为将根据他在file1

随机推荐