如今,在构建新的应用时,很多公司都会想到 “云端优先”。但随着科技的发展,更好的方法是考虑 “云原生”应用。
云原生应用利用了诞生于云端的平台和流程的优势。它们具有高可扩展性,易于修改,无需大量编码即可连接到云服务以扩展功能。一个典型的例子是Mendix,作为一个从底层构建的云原生应用平台,一直在使用开放互补的云技术为企业提供领先的多云部署、可移植性、可扩展性和高可用性。
什么是云原生应用?
云原生应用通常使用一个或多个源自云的技术架构理念,其中有四个理念值得关注。
1. 软件容器
软件容器是一个可移植的、集成的操作环境,其中包含了一个应用程序和运行它所需的所有软件组件。值得注意的是,容器已经成为一个非常流行的虚拟机替代方案,因为它们体积小、部署快,且可以存储在库中以便开发者重复使用。在容器中编写的应用程序可以迁移到任何支持该容器的平台上运行。这就意味着你的应用不再受制于单一的云平台,它可以运行在任何有足够资源支持的设备上,无论是笔记本电脑还是超级计算机。
2. 微服务
微服务是一种松散耦合的软件服务,可以被组合起来用于创建应用程序。开发人员不用耗费时间再“造轮子”,应用程序也更加灵活和可扩展。简单来说,由微服务组成的应用程序就像乐高积木一样,开发者只需要最少的自定义编码就可以将其按照设想拼接起来,让开发更加快速可靠。这项新服务可以在不需要大量集成测试的情况下进行交换或添加,极大提高了使用的便利性。
3. 软件定义基础设施
如今,硬件几乎已完全实现了虚拟化,开关、刻度盘和插头等被软件所取代。开发者仅通过软件就可以轻松地扩大或缩小容量、重新分配资源以及自动启动或停止服务。云原生应用的前提是假定底层基础设施是流动的,从而适应不断变化的需求。
4. 应用程序接口(API)
API作为软件连接器向其他软件展示了更多可用的功能。它们使扩展或定制应用程序因不再需要触及底层代码而变得更加容易。与此同时,API还使开发人员能够深入挖掘其他应用程序中的丰富功能。
例如谷歌地图就是一个支持API的应用程序,通过谷歌地图,房地产应用的开发者可以通过API请求地理信息,然后将Google的地图功能集成到其程序中。开发者无需从底层开始构建地图功能或在自己的服务器上安装应用程序,从而节省许多时间。
为何云原生开发如此重要?
云开发引起众多关注的原因主要在于以下三个特质所体现的巨大价值。
适应性强
云原生应用程序可以随着业务需求而改变,且不会产生依赖性,避免了客户被软件的特定版本锁定。例如,如果一家公司希望提供移动端应用程序,它可以选择构建移动前端,并使用API来访问服务器上的数据,而无需修改后端的任何代码。这种松散的耦合可以在不破坏组合的前提下更改任意应用程序。
可扩展性
云原生应用通过使用软件定义基础设施来减少或消除对硬件的依赖。这种方式实现了商用服务器的横向扩展,而不再需要在现有服务器上增加更昂贵的处理器、存储和内存。横向扩展也是亚马逊和Facebook等大规模云服务得以实现的原因。
可移植性
开发人员可以使用容器编写应用程序,不用更改代码,就能让程序在智能手机乃以及大型机等各种设备上运行。随着 “边缘计算”(一种将自动决策推向网络远端的分布式处理架构)日渐流行,将应用程序部署到任何需要的地方才是理想的状态。
低代码为构建云原生应用插上翅膀
直接使用容器、微服务和API会给初学者带来许多挑战,而低代码平台凭借其特性大大降低了开发门槛。在选择供应商时,开发者可以先询问该平台是否支持上述的云原生技术架构理念,然后寻找一个功能齐全的,包括一套全面的开发、运营和维护工具的APaaS(应用平台即服务)。
由于许多低代码开发工具是在云原生技术广泛使用之前建立的,因此开发者需要对其进行改造,以便在云中运行,但云兼容和云原生之间存在着巨大的区别。即便大多数原先的应用程序可以在云中运行,它们无法享受云原生架构所提供的可扩展性、可伸缩性和可移植性优势。
云原生公司所采用的新的敏捷开发方法更强调模块化、可复用性和频繁的代码发布,使开发人员从挖掘已有服务的角度考虑问题。Mendix低代码开发平台具备复杂的云原生架构并对开放云生态系统提供深度支持,适用于广泛的部署方案。从完全托管的Mendix 公有云到基于Cloud Foundry或基于Docker/ Kubernetes的PaaS,再到使用Docker、Kubernetes和Jenkins等工具的自定义CI/CD和容器堆栈,为企业提供多种选择,使企业既可以实现易用性,也可以根据业务和运营要求进行控制。
背景
受制于疫情对全球的影响,当下软件成为我们日常生活和连接全球经济的新命脉。但传统软件开发花费的时间过长,且经常无法满足业务需求,为用户提供优质的体验。即使在疫情爆发之前,具备专业软件开发能力人员的数量也无法满足全球对软件的需求。而此次全球疫情更是让软件和商业危机雪上加霜。低代码软件开发时代,Mendix通过低代码提供了一种企业级可视化开发方法,让普通和专业开发者只需要通过一个直观的图形用户界面,并借助拖放式组件和模型逻辑,就能把在网络和移动设备上实现云原生应用的速度提高10倍以上。
责编:Luffy Liu