过去二十年来,网站支持流程发生了怎样的变化

信息技术专家和Ars Technica杂志Jason Marlin的技术总监在支持信息基础架构方面拥有20多年的经验-在他看来,该领域发生了许多变化




坑游戏,用作BBS门。 在此屏幕截图中,李·哈钦森(Lee Hutchinson)攻击了这些家伙。 还是他们是他。

在1980年代,我长大了一个真正的书呆子-不是赶时髦的人,而是因为我总是随身携带五公斤重的《 计算机购物者 》杂志(是的,这些出版物确实很大)。 我十岁就迷上了电子公告板系统。 最终我成为该站点的技术主管,涉及科学和技术问题也就不足为奇了。

在支持BBS的工作(即sysop的工作)和管理现代Web基础结构之间,我可以得出明确的相似之处。 为了纪念Ars网站成立20周年,我们来标记这些相似之处。 本文将不会是详尽的网站历史,在这里我将描述自己在网站管理方面的经验,以及它在过去20年中的发展以及工具和思维方式的变化。

加载“ *”,8、1


我最初作为sysop的经验是在Commodore 128(当然是在64位模式下)上运行的,Greg Pfountz的Color 64程序在那里工作。我寄了Greg支票(好,那是我母亲签名的),并收到了一张5.25英寸软盘,手工缝制的指令在矩阵打印机上打印,然后开始。

由于采用ANSI标准绘制的ASCII,Color 64看起来令人惊叹,这与大多数其他产生无色普通文本的BBS程序不同。 Color 64可以创造用户体验。 我不再记得我的BBS的名称,但我保证主要主题与龙和/或功夫有关。 我有点my愧地承认我的绰号是DragonMaster,但我只确认了与书呆子相关的刻板印象。

不幸的是,我的网络基础设施只有一条电话线,这意味着我必须断开所有呼叫设备(即壁挂式磁盘电话)的工作,并且需要23到5个小时才能工作。 这也意味着很少的BBS交互性。 使用单行和单个Commodore 1571驱动器,用户将无法彼此聊天或一次下载多个游戏。


准将1670仍使心脏跳动更快

在不久的将来,我梦dream以求地经营着真正的BBS,就像当时我经常去过的著名的拉斯维加斯恐惧与憎恶之类。 在我的梦想中,有10条电话线,以便用户可以彼此实时通信,并连接1200个调制解调器-不,甚至2400波特! 并且在容量高达Lt系统10 MB的神话般的硬盘驱动器上。 内核会保留无数的游戏库存。

las,我无法获得所有这些信息,但是我显然感染了某种新疾病,这种新疾病激发了人们对创建用户可以聚集的数字场所的异常渴望

1990年代


我继续搞弄BBS软件,其中包括一个非常有趣的HTML前身,例如Excalibur BBS 。 查看Google 图片搜索结果 ,了解该软件的领先优势。

$:cd〜/ public_html


我在90年代中期第一次在大学认识HTML; 然后我做完作业并将其上传到公共主目录,教师可以在空闲时间使用Netscape或Mosaic浏览器对其进行查看。 当时的优秀动机是“使用技术”额外获得10分。

Apache + Perl + XML +共享主机


我作为网络开发人员创建的第一个真正的“应用程序”之一是电信公司的新闻部门。 所有这些工作在一个捆绑软件上广泛传播:Apache作为HTTP服务器,Perl作为服务器语言,数据库作为文本文件。 那时,我对真正的数据库并不熟悉,但是我知道如何编写和解析XML。 所有这些都托管在一个非常出色的协作平台上,在该平台上,我可以将服务器的所有规则写入.htaccess文件。 我很快了解到,这个文件给了我经验不足的双手太多的力量!

协作托管解决了我的问题,但是当时开发人员在所有与软件版本和扩展有关的方面都依赖于管理员。 您还必须担心邻居使用共享资源(包括各种不愉快的事情)在做什么。 入侵一台计算机可能会危害数百个站点。

IIS,FrontPage扩展和访问


结果,我工作的代理商获得了足够的客户来负担自己的服务器。 令我烦恼的是,它原来是一台运行IIS(Internet信息服务)的Windows计算机。 这个领域对我来说是完全陌生的,但是在启动Frontpage IDE之后,我惊讶于Microsoft如此简单地完成了通常难以完成的任务,即将经过验证的输入存储到数据库中。 (不,真的,太棒了)。 结果,我一直在寻找完美的图形IDE,包括与Macromedia Dreamweaver的简短而令人沮丧的混乱。 很快,我得知自动创建代码的工具通常会产生大量的面条,然后只有那些相同的工具才能解开。

对于在Unix上有经验的人来说,在Windows NT 3.5下管理IIS看起来也是一项危险而容易的任务。 同时,人们感觉到了严格的限制-.conf文件在哪里可以进行微调(并且非常混乱)?

该程序集成为我平台的一段时间,我们为客户定购了多个CMS,而没有考虑维护通用代码库,长期支持或版本控制的想法。 真是恐怖

2000年代初期,始于ColdFusion


现在我了解了这种情况的恐怖,但是后来我真的很喜欢Allaire ColdFusion环境,并且我用了至少四年的时间来创建足够大的应用程序和公司网络。 她在CFML(ColdFusion标记语言)的基础上工作。 它看起来像HTML,但它对数据库及其与Java Servlets或CORBA等外部技术的集成进行了琐碎的查询。 ColdFusion有很多反对者,但我从来都不是特定技术的支持者,只是选择了使我最快完成任务的方法。

Web框架出现


ColdFusion的入门门槛非常低,这使它赢得了一种愚蠢的语言的恶名声,这种语言吸引了低质量的程序员进入这一领域-就像PHP过去一样。 我对此不敢苟同,但具有讽刺意味的是,我第一次接触良好的Web框架是通过Fusebox的形式进行的。 它首先尝试使用简单的文件命名和目录系统约定来组织应用程序。 听起来很明显,但是,与当时的大多数Web开发人员一样,我倾向于使用不断发展的应用程序布局方法,并努力解决彼此分离的事物,例如数据库查询和输出组件。 我玩过Struts ,但是由于在主要工作中无法使用Java,所以我仍然不理解它。 但是Fusebox使我对具有MVC (模型视图控制器)范例的平台打开了视野,该范例超越了特定语言的限制。 距离戴维·海涅米耶·汉森David Heinemeyer Hansson)进行的15分钟 破坏性 Ruby on Rails 演示文稿的出现还有很多年。

今天,我永远不会考虑不选择框架就创建大型应用程序,而今天我们有许多有趣的选择。 对于PHP,我最喜欢Laravel



是的,然后就炸毁了屋顶。

集群虚拟主机


我在2002年首次访问了一个人流量大的网站。随着流量的增加,责任感以及深夜的呼叫次数也随之增加,要求重启服务器。 最后,我决定查找有关负载平衡,缓存和群集托管的所有内容。 这是另一个启示,因为它为几乎无限扩展提供了可能性。

如果一台机器脱机,我们会有安全车来确保一切正常。 我们有分析和详细的集群指标。 生活是美好的,就像我的梦想。

虚拟机的兴起:AWS,Vagrant


AWS(Amazon Web Services)似乎一无所获,并向开发人员提供了我们所需要的。 他们还从传统托管中删除了中间商。 我们不必问允许使用什么技术。 突然,一切皆有可能。 想尝试在Django或NodeJS上制作应用程序吗? 没问题 启动几个虚拟机,然后开始。 所有这些都可以通过AWS来完成:虚拟防火墙,负载平衡器,数据库的特殊集群,用于静态资源的CDN(内容交付网络),以及几乎所有您能想到的东西。 它成为了自我制造的数据中心-它既是诅咒也是福。 添加每个新服务时,有必要对其进行跟踪,以便某人知道在一切中断(以及一切中断)之后如何提高它。 太热衷于开发人员了,咬他的东西比他咀嚼的要容易得多。

AWS在云中实现了什么, Vagrant在生产机器上实现了。 Vagrant使我们能够轻松地通过脚本访问各种VM提供程序。 我可以在一个环境中测试新型Linux和各种软件包,当涉及到部署时,可以很容易地在云中重新创建它。 如果在安装过程中出现问题,最简单的vagrant destroy命令可让您从同一映像重新开始。 与在家用OS上运行服务器,或直接使用VMWare或VirtualBox运行服务器相比,这使开发过程更加有趣。

2010年代-从网站管理员到DevOps


让我们放慢一点,谈论我一直讨厌这个术语的网站管理员。

男人:你一生做什么?
我:我使用各种编程语言创建了出色的Web应用程序,并且使用了基础架构。
男人:啊,所以你是网络专家!


我想从使用中删除这个令人恶心的词。

除了将这个词与20面游戏方块相关联之外,它根本没有描述我们许多人在编程和基础架构管理中所扮演的角色。 因此,我非常喜欢过去十年来向DevOps等更受尊敬的术语的转变。 DevOps工程师使用编程来创建,管理和记录现实世界的基础架构。

厨师+ ansible


当我开始在Ars Technica工作时,我们希望能够轻松地在虚拟化环境中添加或删除Web服务器和数据库服务器。 在探索了几种方法之后,我们选择了Chef ,该工具通过层次结构的类比简化了基础架构管理,这些类比主要与厨房有关(刀,菜谱,菜谱等)。 在研究了变量或“属性”的属性(如此处所称)如何从角色产生并落入单独的节点后,从单个平台管理服务器软件和版本变得非常简单。 Chef允许我们停止对集群中单个服务器的微管理,并简化了大规模升级的任务。

今天,就我个人而言,我更喜欢与Redhat开发的基于Python的系统Ansible一起使用-它更易于使用,并且在小型组织中工作时不那么脆弱。 与需要中央服务器的Chef不同,Ansible使用来自主机的SSH(在我们的示例中是从我们正在开发的笔记本电脑中)使用SSH,但对于大型企业,它仍然具有服务器Tower。 Ansible还允许您将大多数配置写入YAML,从而大大提高了其可读性。

几年来,我们一直托管ServerCentral Turing Group 。 它们可以帮助我们在擅长的领域(编写代码和设置虚拟机)与无法完全控制的事物之间做出适当的平衡-这些是安全的柴油发电机,冗余网络或将数据实时复制到设计的数据中心绕过故障。

2019年起


在那些遥不可及的日子里,当我们被The Lawnmower Man或Hal 9000发出的承诺所吸引时,我总是会为那些为调制解调器手动输入命令而度过的宁静时光怀念。但是当前时刻也为基础设施的下一阶段发展提供了巨大的机遇。 我们计划将许多有前途的工具投入业务,例如Docker SwarmKubernetes 。 意识到我们已经走了多远,以及如今的开发人员与过去充满BBS神秘声音的昔日相比,真是太神奇了。 我希望我们将观察到现代Web呈现所需要的复杂多层技术的不断增长的抽象。

因此,祝您在未来20年中取得成功!

Source: https://habr.com/ru/post/zh-CN438694/


All Articles