首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有一个系统可以将所有的东西(OS发行版和上面的)都自动化,以便在上面托管网站?

是否有一个系统可以将所有的东西(OS发行版和上面的)都自动化,以便在上面托管网站?
EN

DevOps用户
提问于 2018-12-10 20:39:50
回答 2查看 151关注 0票数 3

这实际上不是一个DevOps问题,而是更多的系统自动化问题( DevOps只涉及其中的一部分,以大众的意见,所以我希望它可以)。

我觉得大约5美元的IaaS VPS和Ansible可以让我在一个debian:stable系统上保持技术稳定的心态,比如15年,但是随着时间的推移,debian:stable的发布本身就会变得陈旧和脆弱。

操作系统上的所有东西通常不会过时,因为Ansible (给出了正确编排的剧本)将不断更新和升级它。

然而,操作系统确实会变老的事实不能从我的脑海中消失。转移网站从一个IaaS到另一个,甚至每4年或8年或12年或16年是我不想做的原则上。有人会说,好吧,你不能把蛋糕吃了,让它保持完整。

我曾想过使用PaaS,但PaaS解决方案也不一定会给我带来这种安心,因为我的数据可能会在某些服务器环境中“抛出”,而旧操作系统(可能是20年或25年的旧操作系统),我甚至不知道,而且并不是所有的PaaS公司都能保证流媒体操作系统release_upgrade。

因此,我想要一些完整的系统自动化解决方案。在2018年,地球上是否甚至有这样一种通常稳定可数的东西?我非常认真地问这个问题,也许我需要减轻压力,但是也许这样的技术解决方案(当然不是SaaS )是存在的,并且可能适合我的需要?

我只想建立我的网站(通常Drupal)在最自动化的,最升级的系统(操作系统及以上),在预算的5-30个USD。

注:我从来没有提供托管服务,现在也不提供-通常我的网站是个人网站,只有我自己管理。

EN

回答 2

DevOps用户

回答已采纳

发布于 2018-12-11 07:00:34

TL;DR Pick软件专注于长期支持。使用容器,这样您就可以将应用程序所需的运行时与底层基础结构的安全性修补分离开来。

长答案:

我以前经常运行一些运行流行内容管理系统的旧PHP站点。插件将失去支持,以至于我无法升级内容管理系统,否则插件就会崩溃。因此,我会坚持最新的主要版本的工作,并希望不会出现新的安全漏洞。然后我运行监控软件,手动清除任何通过安全漏洞注入的脚本。那么,支持PHP I旧版本所需的操作系统就会失去支持。然后,我就无法轻易地移动主机,以更好地利用更便宜的交易或高可用性。因此,我会将我需要的遗留PHP端口移植到hosters支持的最老版本的操作系统上。完全是噩梦。

这向我证明了,有些软件的构建时间不会超过三四年。数以百万计的网站都会遇到和我一样的问题,但更多的数千万网站将不会出现,因为它们会被关闭,否则就会从零开始重建更新的软件。因此,这里的第一个教训是,如果您认为您需要进行长期构建,那么您需要弄清楚您使用的软件是否关心长期支持,并且有一个发布的生命周期。

世界已经向前发展,PHP7世界正在采取一种新的方法来拥有一个可预测的软件发布周期和生命周期(我可以补充说,这仍然很短,但更可预测)。你不应该只是假设或期待任何发行版或任何社区将在你的长期,除非这正是他们说,他们试图做的。如果这是他们想要做的,那么他们就不会做其他与之冲突的事情,比如运行新的框架特性,这些特性都是在堆栈溢出的趋势下出现的。

这些天,我碰巧在帮助一家公司在RHEL7容器上运行RHEL7 8和PHP7.x,在AWS上运行kubernetes。他们得到了长期的安全更新支持,并且发布了一生。我已经自动化了对PHP和Node.js容器的新安全补丁的检测。每周一次的任务检查上游容器注册中心,如果有新的安全补丁版本,将向团队聊天室宣布,以及命令对测试环境中的容器进行修补。这些补丁的商业订阅包含在我管理的kubernetes托管成本中。然而,由于它的所有开源,我可以回到使用Centos7,如果我想削减一些成本。

由于我正在运行容器,所以我不关心将什么补丁应用于IaaS,也不关心托管的kubernetes版本。我在openshift.com上,他们在没有告诉我的情况下通过安全修复升级到3.11。他们只是修补工人VM并弹出它们,kubernetes在其他VM上启动我的容器。我不受集群的所有安全补丁的影响,因为我运行的容器中包含运行我的应用程序所需的最低操作环境。只有当我选择升级到一个新容器并提供长期的安全补丁支持时,这种情况才会改变;我不需要这么做很多年。据我了解,运行我的容器的Kubernetes主机运行一个非常精简的发行版,以最大限度地提高他们的安全性和客户密度。对我来说不重要。对于我来说,一个失去支持的IaaS栈对我来说是一个完全陌生的概念,即使在我为这个问题生活了很多年的过程中。

这也意味着我可以自由地移动到任何可以运行我的容器的云或托管提供商。不一定是库伯内特斯,可能是码头工人,斯温或其他什么的。我所押注的是,长远来说,这个处理货柜的较佳方法,会得到支持。我觉得这是个不错的选择。容器映像只是一个json文件,它命名了图像中的一部分tar文件。是的;它只是tar文件和json。只要容器主机能够从tar加载我的文件并附加TCP/IP堆栈,我的东西就会运行。我很有信心这种方法会有非常非常长的保质期。

我不认为任何试图运行应用程序的人今天都应该从IaaS开始。PaaS是一种解决方案,但往往有非常强的供应商锁定。CaaS是新的亮点。选择。稳定。控制。便携性如果它在你的笔记本电脑下运行,只要把它推到你租用空间的容器上就行了。我的容器里只有一件东西。它们运行的主机只对容器进行安全托管。

票数 5
EN

DevOps用户

发布于 2019-03-24 20:34:28

因此,我想要一些完整的系统自动化解决方案。在2018年,地球上是否甚至有这样一种通常稳定可数的东西?我非常认真地问这个问题,也许我需要减轻压力,但是也许这样的技术解决方案(当然不是SaaS )是存在的,并且可能适合我的需要?

是的,这样的事情是存在的,也是可能的。你自己也提到过:完全自动化给你提供了你所需要的东西,也就是说,不管接下来的15或30年我们遇到什么,系统都会不断发展。

现在您所缺少的唯一一步就是不要在Ansible级别上开始自动化,而是深入挖掘。也就是说,您想要自动安装操作系统(或者选择基本映像,不管您的XaaS提供程序如何调用它),以及创建计算机资源(VM、Docker或其他任何东西)、网络、配额(RAM、CPU、存储等)。诸若此类。另外,重要的是,版本升级需要自动化(例如A/B或蓝绿色部署)。

自动化意味着您需要配置所有这些部件。无论您配置了什么(大概是在一些文本文件中),您都可以或多或少地轻松地在替代的测试/开发环境中运行。因此,你可以(自动)测试任何改变你内心内容的部分的新版本。因此,这意味着,每当任何部分--操作系统是其中之一--发生变化时,您就可以立即进行该更改。

通过坚持不懈地跟踪底层的每一次升级,你可以确保你永远不会变老。

就像您的源代码一样,所有这些配置也需要在您的修订控制系统中进行,所以您可以自由地使用它,尝试新的东西,如果它不能工作,可能会恢复。

为了给您提供具体的例子,作为起点,您可以查看Vagrant或Terraform (google“流浪者替代方案”获得更多信息)。有时,XaaS提供者的选择会引导您找到特定的工具;或者您可能会选择一个工具,然后寻找合适的提供者。但这将是另一个问题的主题。

票数 0
EN
页面原文内容由DevOps提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://devops.stackexchange.com/questions/5674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档