作者简介:Sirish Raghuram是提供托管私有云部署方案的Platform9公司的首席执行官。
云头条摘要:“KEG”架构会取代LAMP架构吗?
多年来,LAMP架构(Linux、Apache、MySQL和PHP/Python/Perl)一直是许多开发人员心目中的绿洲,他们想构建现代应用程序,又不想深陷于某些大厂商的生态系统这片沙漠。LAMP是一种很方便、广泛使用的开源框架;有了它,开发人员很容易构建应用程序架构。
然而,正如上世纪90年代后期迅速变化的技术格局为LAMP架构的崛起创造了条件,如今Web开发领域的新变化和新趋势导致LAMP架构迎来了所谓的“日落时期”(sunset period)。
今天,如果你不将应用程序分解成可以独立部署和扩展,具有应对故障的灵活性和弹性的小型组件,实际上死路一条。两大趋势彰显了这个转变:首先,LAMP架构的每一层现在“作为一项服务”来提供,让开发人员能够将许多职责外包出去,并且最终更快地交付更好的产品。
其次,近些年来移动使用模式的兴起使得这种重组加快了步伐。移动技术现在是用户与应用程序连接的主要方式。这意味着开发人员必须构建这样的应用程序:具有高度弹性,在全球范围内可用,具有极高的扩展性,足以处理数百万个客户。无论你怎么来搞,LAMP架构都根本无法满足这些要求。
那么,下一步该何去何从?从开发框架、编程语言到介于之间的一切,如今开发人员拥有比以往任何时候都要多的选择,这只工具箱只会越来越庞大。因此,开发人员期望我们一直称为LAMP的架构的各个部分能够不断发展。下面简单描述一下如果我们用更现代的工具和框架来重新塑造LAMP架构,新的LAMP架构应该会是什么样:
Kubernetes同时取代Linux和Apache
传统上,设计应用程序时着眼于某种特定的操作系统。对于LAMP架构而言,这意味着Linux。而如今,新的思路青睐Linux无力提供的更出色的可移植性。这使得Kubernetes这种开源容器编排引擎成为取代Linux的一种很好的替代平台。Kubernetes将Linux抽取出来的能力让它成为如今许多应用程序的记录操作系统。
一个额外的好处是,Kubernetes还擅长路由网络流量,这意味着它也可以取代Apache。多亏有了Kubernetes,需要变更时,开发人员再也不需要处理配置文件和静态配置了。使用诸如Ingress、Services和LoadBalancer之类的Kubernetes构件来路由网络请求,开发人员可以随意采用一种更分布式、更有弹性的方法,这种方法又具有很强的动态性和适应性。
Etcd或许取代替换MySQL
MySQL仍然是一种颇受欢迎的关系数据库管理工具。然而,如果你想要又有弹性的持久性数据,那么需要将它存储在某个地方,这个地方自然允许横向扩展,还可以透明地处理节点故障。换句话说,你想要分布数据层以便能够支持这种属性,MySQL可能不是最佳选择。