如何搞清楚云计算编程

在过去的12年的时间里,人们目睹了从通用数据库(Oracle、SQL Server等)到专用数据库(其中有360个还在不断增加)的巨大转变。现在,编程语言似乎正朝着同一方向发展。


随着开发人员转向使用API驱动的高度灵活的基础架构,他们正在以代码(IaC)的形式构建基础架构。但是如何构建IaC仍然是一个悬而未决的问题。由于各种原因,显而易见的起点是使用命令式语言(例如C或Java Script),告诉程序如何达到所需的结束状态。


但是出现了一种新的声明性语言模型,例如Hashi Corp的HCL或Oso的Polar,在该模型中,开发人员告诉程序所需的最终状态是什么,而不必过分担心它如何达到该状态。在这两种方法中,其声明性编程可能是更好的选择,从而使代码更精简,更安全。让我们看看为什么会这样。

如何搞清楚云计算编程_娱乐产业_游戏行业

 声明性编程的原因


Oso公司联合创始人兼首席技术官Sam Scott表示,组织真的需要另一种编程语言。他说,“使用命令式语言时,语言与其用途之间常常会出现不匹配;也就是说,这些语言是专为人们从头开始构建应用和脚本而设计的,而不是定义配置和策略等。”


Scott表示,新的声明性语言实际上可以使免于语言扩散。Scott继续说道:“这不仅仅在于引入另一种语言来解决特定的问题。与其相反,它正在创造一些东西来避免人们不得不一次又一次地发明自己的语言来进行某种形式的嵌入式逻辑。”


以为AppSync授权编写的JSON代码为例:


为了在数据和逻辑之间取得平衡,开发人员已使用Apache Velocity模板语言编写了内联的注释式权限。这只是体操开发人员尝试使用静态配置和模板的组合来表达授权(“authZ”)逻辑的一个示例。


但是实际上,这与是否应该使用命令式编程无关,VMware公司的Jared Rosoff在一次采访中强调说,“这是一个问题,'我们目前不使用编程语言来表达授权规则,但也许使用数据而非编程语言来表达authZ规则。当authZ规则非常简单时,这很好。基本上有一个查询表,可以在请求进入时查询该表,以决定请求是否被授权。”


 当务之急可能不适合IaC


但是上面的AppSync示例显示了面向数据的命令式方法如何迅速变得复杂。Rosoff继续说道,“最初是从一个相对简单的JSON文档演变为带有分支,条件和变量的东西。在采用这种方法时,开发人员试图在静态数据的语法内重新创建类似于语言的语义,从而导致一种糟糕的编程语言,其语法没有库,没有调试器等。很难用传统语言对授权逻辑进行编码。”“用Polar这样的特殊用途的声明性语言来做,更具表现力和简洁性。”


正如Scott进一步解释的那样,存在很多问题领域,如果开发人员尝试使用Java或Python编码流程,则将需要成千上万行代码,这本身就是一个问题,但在问题上变得更加棘手。它掩盖了实际的业务逻辑。相比之下,声明性语言可以完成相同的工作,但可以用数十行代码代替。


Rosoff说,因此,与其将配置语法强加于命令式语言,不如说应该使用小的程序来处理authZ和相关功能。Rosoff说,当今有许多编程问题,在其中使用数据来配置系统,但是使用程序可能更有意义。仅举几例:


•授权


•部署模板(例如Terraform,Ansible等)。


•工作流程。时间性是一个有趣的示例,它采用以前以图解工作流语言完成的工作,并将其转变为更通用的编程语言格式。


 足够的自由、简单和安全


Rosoff说,诀窍在于为程序员提供足够的语言来表达授权规则,但又没有太多的自由,以至于他们遇到错误时就可以破坏整个应用程序。如何确定使用哪种语言?Rosoff提供了三个决策标准:


•语言是否允许表达需要编写的程序的完整范围?(在授权的情况下,是否可以表达所有authZ规则?)


•语言简洁吗?(与YAML等效语言相比,是否更少的代码行且更易于阅读和理解?)


•语言安全吗?(这是否会阻止程序员甚至故意引入缺陷?)


仍然有一种方法可以使声明性语言成为基础设施即代码编程的简单明了的答案。开发人员选择命令式语言的原因之一是,他们在其周围建立了庞大的生态系统,其中包含文档、工具等。因此,即使命令式语言不适合在IaC中表达授权配置,也可以更轻松地从命令式语言开始。还需要做一些工作,以使声明性语言本身对新手来说变得易于使用。


但是,考虑到声明式方法的好处,将它们变成IaC的标准可能只是时间问题。



1
171
0
6

相关资讯

  1. 1、创业|互联网不应成为90后创业的牢笼1770
  2. 2、从支付宝数据分析网购消费者行为3595
  3. 3、商业的发展的纵横理论:“横”的机遇,“纵”的累积2031
  4. 4、下一个“抖音”在哪?333
  5. 5、电商导购运营解析之首页/搜索目录4982
  6. 6、豆瓣走得并不慢,从阅读到数字出版2312
  7. 7、内容审核基础:审核方式、流程与审核维度2357
  8. 8、项目经验:组织会议中的“小心思”3057
  9. 9、产品经理日报第952期|ofo的又一新动作:签鹿晗为其品牌形象代言人3556
  10. 10、B端运营:产品商业化过程中,运营要做什么?4068
全部评论(0)
我也有话说
0
收藏
点赞
顶部