跳转到主要内容

云原生应用——软件的未来

winniewei 提交于

<p><span>如今</span><span>,</span><span>在构建新的应用时,很多公司都会想到</span><span lang="EN-US"> “</span><span>云端优先</span><span lang="EN-US">”</span><span>。但随着</span><span>科技的</span><span>发展,更好的方法是考虑</span><span lang="EN-US"> “</span><span>云原生</span><span lang="EN-US">”</span><span>应用。</span></p>

<p><span>云原生应用利用了诞生于云端的平台和流程</span><span>的优势</span><span>。它们具有高可扩展性,易于修改,无需大量编码即可连接到云服务以扩展功能。一个典型的例子是</span><span lang="EN-US">Mendix</span><span>,作为一个从底层构建的云原生应用平台,一直在使用开放互补的云技术为企业提供领先的多云部署、可移植性、可扩展性和高可用性。</span></p>

<p><strong><span>什么是云原生应用?</span></strong></p>

<p><span>云原生应用通常使用一个或多个源自云的技术架构理念</span><span>,其中</span><span>有四个理念值得关注。</span></p>

<p><strong><span lang="EN-US">1. </span></strong><strong><span>软件容器</span></strong></p>

<p><span>软件容器是一个可移植的、集成的操作环境,其中包含了一个应用程序和运行它所需的所有软件组件。值得注意的是,容器已经成为</span><span>一个非常流行的</span><span>虚拟机替代方案,因为它们体积小、部署快,且可以存储在库中以便开发者重复使用。在容器中编写的应用程序可以</span><span>迁移</span><span>到任何支持该容器的平台上运行。这</span><span>就</span><span>意味着你的应用不再受制于单一的云平台</span><span>,</span><span>它可以运行在任何有足够资源支持的设备上,无论是笔记本电脑还是超级计算机。</span></p>

<p><strong><span lang="EN-US">2. </span></strong><strong><span>微服务</span></strong></p>

<p><span>微服务是一种松散耦合的软件服务,可以被组合起来用于创建应用程序。开发人员不用耗费时间再</span><span>“造轮子”,</span><span>应用程序也更加灵活和可扩展。简单来说,由微服务组成的应用程序就像乐高积木一样,开发者只需要最少的自定义编码就可以将其按照设想拼接起来,让开发更加快速可靠。</span><span>这项</span><span>新服务可以在不需要大量集成测试的情况下进行交换或添加</span><span>,极大提高了使用的便利性。</span></p>

<p><strong><span lang="EN-US">3. </span></strong><strong><span>软件定义基础设施</span></strong></p>

<p><span>如今,硬件几乎已完全实现了虚拟化,开关、刻度盘和插头等被软件所取代。</span><span>开发者仅</span><span>通过软件</span><span>就</span><span>可以轻松地扩大</span><span>或</span><span>缩小容量、重新分配资源以及自动启动</span><span>或</span><span>停止服务。云原生应用的前提是假定底层基础设施是流动的,</span><span>从而</span><span>适应不断变化的需求。</span></p>

<p><strong><span lang="EN-US">4. </span></strong><strong><span>应用程序接口(</span></strong><strong><span lang="EN-US">API</span></strong><strong><span>)</span></strong></p>

<p><span lang="EN-US">API</span><span>作为软件连接器向其他软件展示了更多可用的功能。它们使扩展或定制应用程序因</span><span>不再需要触及底层代码而</span><span>变得</span><span>更加容易</span><span>。与此同时,</span><span lang="EN-US">API</span><span>还使开发人员能够深入挖掘其他应用程序中的丰富功能。</span></p>

<p><span>例如谷歌地图</span><span>就是一个支持</span><span lang="EN-US">API</span><span>的应用程序,通过</span><span>谷歌地图,房地产应用的开发者可以通过</span><span lang="EN-US">API</span><span>请求地理信息,</span><span>然后</span><span>将</span><span lang="EN-US">Google</span><span>的地图功能集成到其程序中。开发者无需从底层开始构建地图功能或在自己的服务器上安装应用程序,从而节省许多时间。</span></p>

<p><strong><span>为何云原生开发如此重要</span></strong><strong><span>?</span></strong></p>

<p><span>云开发引起众多关注的原因主要在于以下</span><span>三个特质所体现的巨大价值。</span></p>

<p><!--[if !supportLists]--><strong><span lang="EN-US"><span>1.<span>&nbsp;</span></span></span></strong><strong><span>适应性强</span></strong></p>

<p><span>云原生应用程序可以随着业务需求而改变,且不会产生依赖性,避免了客户被软件的特定版本锁定。例如,如果一家公司希望提供移动端应用程序,它可以选择构建移动前端,并使用</span><span lang="EN-US">API</span><span>来访问服务器上的数据,</span><span>而</span><span>无需修改后端的任何代码。这种松散的耦合可以在不</span><span>破坏</span><span>组合的前提下更改任意应用程序。</span></p>

<p><!--[if !supportLists]--><strong><span lang="EN-US"><span>2.<span>&nbsp;</span></span></span></strong><strong><span>可扩展性</span></strong></p>

<p><span>云原生应用通过使用软件定义基础设施来减少或消除对硬件的依赖。这种方式实现了商用服务器的横向扩展,而不再需要在现有服务器上增加更昂贵的处理器、存储和内存。横向扩展也是亚马逊和</span><span lang="EN-US">Facebook</span><span>等大规模云服务得以实现的原因。</span></p>

<p><!--[if !supportLists]--><strong><span lang="EN-US"><span>3.&nbsp;</span></span></strong><strong><span>可移植性</span></strong></p>

<p><span>开发人员可以使用</span><span>容器</span><span>编写应用程序,不用更改代码,就能让程序在智能手机乃以及大型机等各种设备上运行。随着</span><span> </span><span>“边缘计算”(一种将自动决策推向网络远端的分布式处理架构)日</span><span>渐</span><span>流行,将应用程序部署到任何需要的地方才是理想的状态。</span></p>

<p><strong><span>低代码为构建云原生应用插上翅膀</span></strong></p>

<p><span>直接</span><span>使用</span><span>容器、微服务和</span><span lang="EN-US">API</span><span>会</span><span>给初学者带来许多挑战</span><span>,而低代码平台凭借其特性大大降低了开发门槛。在选择</span><span>供应商</span><span>时,开发者可以先询问该平台是否支持上述的云原生技术架构理念,</span><span>然后</span><span>寻找一个功能齐全的,包括一套全面的开发、运营和维护工具的</span><span lang="EN-US">A</span><span lang="EN-US">PaaS</span><span>(应用</span><span>平台即服务</span><span>)</span><span>。</span></p>

<p><span>由于许多低代码开发工具是在云原生技术广泛使用之前建立的,因此开发者需要对其进行改造,以便在云中运行,但云兼容和云原生之间存在着巨大的区别。即便大多数原先的应用程序可以在云中运行,它们无法享受云原生架构所提供的可扩展性、可伸缩性和可移植性优势。</span></p>

<p><span>云原生公司所采用的新</span><span>的</span><span>敏捷开发方法更强调模块化、可复用性和频繁的代码发布,使开发人员从挖掘已有服务的角度考虑问题。</span><span lang="EN-US">Mendix</span><span>低代码开发平台具备复杂的云原生架构并对开放云生态系统提供深度支持,适用于广泛的部署方案。从完全托管的</span><span lang="EN-US">Mendix </span><span>公有云到基于</span><span lang="EN-US">Cloud Foundry</span><span>或基于</span><span lang="EN-US">Docker/ Kubernetes</span><span>的</span><span lang="EN-US">PaaS</span><span>,再到使用</span><span lang="EN-US">Docker</span><span>、</span><span lang="EN-US">Kubernetes</span><span>和</span><span lang="EN-US">Jenkins</span><span>等工具的自定义</span><span lang="EN-US">CI/CD</span><span>和容器堆栈,</span><span lang="EN-US">Mendix</span><span>以独一无二的方式为企业提供多种选择,使企业既可以实现易用性,也可以根据业务和运营要求进行控制。</span></p>

<p><strong><span>背景</span></strong></p>

<p><span>受制于疫情对全球的影响,当下软件成为我们日常生活和连接全球经济的新命脉。但传统软件开发花费的时间过长,且经常无法满足业务需求,为用户提供优质的体验。即使在疫情爆发之前,具备专业软件开发能力人员的数量也无法满足全球对软件的需求。而此次全球疫情更是让软件和商业危机雪上加霜。低代码软件开发时代,</span><span lang="EN-US">Mendix</span><span>通过低代码提供了一种功能强大的企业级可视化开发方法,让普通和专业开发者只需要通过一个直观的图形用户界面,并借助拖放式组件和模型逻辑,就能把在网络和移动设备上实现云原生应用的速度提高</span><span lang="EN-US">10</span><span>倍以上。</span></p>

<p><strong><span>关于</span></strong><strong><span lang="EN-US">Mendix</span></strong></p>

<p><span lang="EN-US">Mendix</span><span>,</span><span lang="EN-US">a Siemens business</span><span>是全球企业级低代码的领导者,正在从根本上重塑数字化企业构建应用的方式。企业可通过</span><span lang="EN-US">Mendix</span><span>开发平台来扩展自身的开发能力,打破软件开发的瓶颈。借助</span><span lang="EN-US">Mendix</span><span>开发平台,企业可以打造具备智能、主动性和人机互动等原生体验的智能化应用,对核心系统进行现代化升级并实现规模化应用开发,以跟上业务增长的速度。</span><span lang="EN-US">Mendix</span><span>开发平台可在保持最高安全、质量和治理标准的前提下,促进业务与</span><span lang="EN-US">IT</span><span>团队之间的密切合作,大大缩短应用开发周期,帮助企业自信迈向数字化未来。</span><span lang="EN-US">Mendix</span><span>的”</span><span lang="EN-US">Go Make It</span><span>”平台已被全球</span><span lang="EN-US">4000</span><span>多家领先公司采用。</span></p>