思考并建立现代架构
时间:2022-04-06 11:06:01 | 来源:行业动态
时间:2022-04-06 11:06:01 来源:行业动态
正如50年前盖房子的方法和风格,与现代建筑有着显着不同,构建软件也是如此,应当尽可能使用新的工具及方法。
SADA公司CTO Miles Ward说过,如果您打算构建一款应用,请务必采用现代方式!Ward还指出,微服务与十二要素方法论(12-factor) 应该成为现代应用程序开发中的核心原则。
Ward提到,尽管微服务与容器技术可以良好协同,但大多数开发场景其实并不硬性需要这种匹配。微服务也经常与Kubernetes被视为一体,但这绝非必要。单体式开发同样适用,只要保证其既可以作为单体进行部署,又可以作为同一代码库之上的不同端点进行横向扩展即可。Ward还强调,十二要素方法论也是如此,它当然是个良好的起点,但却不是什么不可或缺的教条。
Osnat建议道,为了最大程度利用容器技术,可以把我们的应用程序设计为微服务架构,确保其中单一容器进行刷新时仍可正常运行。同时,还应该进行结构化设计,以便容器镜像只代表独立发布的单元,从而实现有效的CI/CD机制。
现代开发往往通过多种方式进行定义。如果要为容器及Kubernetes构建应用程序,那么就要选择合适的打包与技术部署选型。下面来看另外两个示例:
将容器镜像定义为可以独立扩展的逻辑单元: 将数据库、日志记录、监控、负载均衡以及用户会话组件实现为容器或者容器组。
考虑使用云原生API:Kubernetes拥有强大的API扩展机制。把其与容器工具相集成,可以立即使用生态系统中的现有解决方案选项,例如命令行实用程序以及身份验证等。
从软件开发的角度来看,现代同样是件好事。Harness公司DevOps倡导者Ravi Lachhman表示,对于大多数现代语言及框架来说,它们最佳的特性就是可以与容器顺畅对接。就在几年之前,像Java这样还很难体现容器边界。如今,随着容器以及Kubernetes等编排工具的流行,语言及框架已经迎来了新的发展范式。