管理员自动化:网站服务器的低端成果

 服务器问题     |      2019-09-26 09:10:40

  如果我们可以回到过去,并在2009年开始使用公共云,那么今天我们可能会更好。AWS Beta开始于2006年,完全由API驱动,没有控制台或命令行界面,因此与服务的交互比我们现在所知道的要容易得多。三年后,它变得更加成熟。早期采用者开始使用它来解决实际问题,以前所未有的方式填补简历并为组织带来价值。

  2018年的网站服务器计算与2009年的云计算差不多。但是网站服务器到底意味着什么,有什么简单的入门方法?

  功能即服务:使网站服务器架构成为可能

  尽管技术如此酷,但网站服务器计算却是一个糟糕的名字,因为(破坏者警报)实际上有很多服务器在后台。这个名称来自于这样的想法,即开发人员不必再担心服务器或容器作为计算单位,因为AWS Lambda,IBM OpenWhisk,Google Cloud Functions和Azure Functions等公共云服务可以处理细节。 。

  考虑网站服务器计算的一种更好的方法是,网站服务器是建立在功能即服务(FaaS)之上的软件体系结构,它是使小型软件可以从磁盘中的内容加载到内存中的基础。几毫秒。

  怎么样?

  想象一下,有许多容器在待机状态下启动并加载了诸如Node.js,Java,Go,.NET或Python之类的语言运行时,但是其中没有应用程序代码。仅当发生某些事件(例如,写入数据库表或在对象存储中显示文件)时,功能形式的应用程序代码才会加载到该备用容器中。它在此处执行,完成后,整个容器将被删除,尽管在某些情况下可能会对其进行缓存以备后用。公共云提供商仅向您收取计算时间和所用内存的毫秒数,否则,您的功能将停留在磁盘上等待以更低的成本执行。

  在这种设计中,这些函数是没有状态的小段代码,它们根据触发它们的事件来获取输入。通过将事件和功能链接在一起,可以形成一个更大的应用程序体系结构,但是它的组件要小得多,并且易于迭代。考虑有人将图像文件放入对象存储桶的情况。该动作触发了三个并行运行的功能,每个功能负责拍摄原始图像并创建三种不同尺寸的缩略图。当这些函数中的每一个将其结果写入第二个对象存储桶时,另一个函数获取结果并将其缓存在CDN上。

  第一个功能不知道第二个功能,第二个功能不知道第一个功能如何完成工作。它们不是通过API合同相互依赖,而是通过事件触发器相互通信。用第四个图像缩略图转换器扩展此体系结构,使其与其他三个缩略图转换器独立运行,并利用相同的CDN转发功能,从而使体系结构的更改变得更加简单。

  通过管理员自动化学习网站服务器

  网站服务器提供的好处需要权衡。通常,每个函数执行被限制为五分钟,并且可用内存受到限制。并非所有功能都可以设为无状态,因此在通过事件触发器传递某些键的情况下进行数据库调用以获取上下文可能会占用五分钟的时间限制。要利用这些新范围内的收益,就需要采取不同的思维方式。

  幸运的是,如果您已经是公共云用户,则您可能已经通过日常操作在各地产生了事件。学习网站服务器的低调成果是使用这些事件来找到使常见管理功能自动化的方法。

  例如,也许您想在EC2实例启动时自动执行它们的DNS名称。您可以在实例上达到执行Lambda函数的运行状态时,在CloudWatch上设置触发触发器,该触发器可以与Route 53进行对话,以从您的自定义域中发出新的子域名。在此方案的更复杂版本中,也许您在调用Lambda中的Route 53之前,使用DynamoDB表跟踪唯一的DNS名称使用情况。

  简单的任务(例如您可能通常在EC2实例中使用bash shell脚本)可以被外部化,并且可以更容易地作为Lambda函数重用。这样,您就可以执行简单的已知任务,并将其用作低风险的新编程范例的学习机会。

  从那里,您可以毕业到批处理作业,然后再升级到成熟的多层Web应用程序。

  FaaS和网站服务器将成为未来吗?

  除了将基于使用的成本削减到毫秒之外,FaaS和网站服务器展示了编程的未来,因为它们具有将组件彼此分离的能力,使开发团队能够设计更小,更独立的组件,从而可以更快地进行迭代。即使使用微服务和容器,这也可能会带来创新上的收益,但这还为时过早。您会发现缺乏测试和调试工具,可靠的CI / CD以及当今在VM和容器世界中常见的其他工具。不过,是时候通过一些简单的用例来学习网站服务器了,因此您可以在个人和组织方面保持领先。这将确保您能够利用下一轮创新收益。