【51CTO.com快译】开发云计算应用程序成为企业发展业务的必要措施。如今几乎每一家企业都使用过基于云的应用程序或SaaS产品。由于各种原因,云计算应用程序在桌面软件市场上占据主导地位,其主要优点是可以随时随地使用具有网络浏览器的任何设备访问它们。此外,当企业开发某一云计算应用程序时,它意味着其所有用户都可以使用相同版本的应用程序。这将显著地减少引入新功能、安全更新和同步所需的时间和资源。
本文将介绍云计算应用程序开发的优势。
理解云计算应用程序的概念
云计算应用程序是在远程服务器上运行并由用户通过Web浏览器或本地客户端访问的软件,可作为呈现在云中处理的内容的用户界面。因此,用户的设备仅用于输入数据,然后将数据发送到服务器进行处理并发送给用户。当然,所有数据都存储在同一个云平台环境中,所有有权限的用户都可以访问。
- 快速实施——与桌面应用程序相比,云计算应用程序更易于使用,因为它们不需要用户的任何特定知识和技能。
- 可用性——由于与各种设备的高度集成,只要有稳定的互联网连接,就可以随时随地使用云计算应用程序。
- 维护相对容易——在采用云计算解决方案的情况下,开发人员必须在一个运营环境中调试和更新单个版本,该版本同时为所有用户共享,例如桌面应用程序。
- 可扩展性和灵活性——云计算解决方案可以在流量趋势增长时配置其容量,并在流量下降时降低容量。即使在非高峰时段,云计算应用程序的使用也可以防止企业为高性能服务器支付费用。AWS和Azure等云服务提供商具有用于自动化资源分配的PaaS解决方案,因此应用程序的使用者不会为未使用的资源付费。
云计算应用开发现状
IT市场如今在不断变化,因此跟踪最流行的技术非常重要。StackOverflow调查提供了有关最常用的脚本和标记语言的详细信息,其中Java、Node.js、ASP.NET等语言可用于后端开发。调查中还提供了有关用于前端开发的最流行JavaScript框架的统计数据。
以上已经提到,企业选择开发云计算应用程序是为了降低成本、节省时间、实现高效率,以及提高性能。许多IT行业巨头推出了自己的平台即服务(PaaS)产品,为独立软件开发商(ISV)和企业提供可靠和安全的云托管服务。可选择范围很广,可以满足任何规模的云计算应用程序的开发需求,且它们都有自己的优势和特点。因此选择云计算服务提供商与选择后端或前端技术一样重要。除了节省成本等显而易见的好处之外,它还会影响DevOps使用的难易程度、应用程序的可扩展性等。
例如,从历史上看,Azure更好地与ASP.NET后端配合使用,而AWS更好地与JavaEE配合使用并且具有更好的微服务支持(例如Docker),这对于高负载Java Web应用程序至关重要。
以下是广受欢迎的一些PaaS提供商:
- 亚马逊网络服务(AWS)
- Oracle Cloud
- IBM Cloud
- 谷歌云
- Heroku
这些只是一些全球知名的云计算巨头,当然还有很多云计算服务商。而如今几乎每家企业都在采用云计算服务。
在技术栈方面的年变化不大。JavaScript在Web技术中处于领先地位,而Python、Java和PHP则是后端编程语言中的佼佼者。诸如Dart之类的创新语言正变得越来越流行。它列入了最常用的语言列表中,而在2019年只有1%的程序员使用它。而在2018年,它根本没有在任何StackOverflow的统计数据中提及。与此同时,之前用于原生开发的Swift、Kotlin、Objective-C当时也不为人所知。
在谈到开发云计算应用程序时,人们需要了解三种主要的软件交付模型:
- 软件即服务(SaaS)
- 平台即服务(PaaS)
- 基础设施即服务(IaaS)
SaaS应用程序面向最终用户。这意味着一旦构建并设置了SaaS产品,它就完全可供客户使用。只要互联网连接稳定,客户就可以从任何设备获得现成的产品,并且非常适合协作工作,例如Google Docs和Google Drive。
PaaS应用程序大多是基于各种执行环境、操作系统和数据库的开发环境。它们要求开发人员部署应用程序代码,而供应商执行所有其他流程。PaaS支持通过轻松的私有或公共部署快速开发可扩展的应用程序。PaaS产品包括Heroku、Force.com、MSAzure、AWS等。
对于IaaS应用程序,客户需要的是中间件和支持,而供应商负责数据存储、虚拟化、网络和服务器。这一选项的显著弱点是客户仅限于云计算服务商提供的云应用程序开发工具。IaaS通常被Google Compute Engine、Amazon EC2等采用。
综上所述,SaaS主要面向最终用户,PaaS主要面向开发人员,而IaaS通常面向系统管理员。
云计算应用程序的开发流程
无论创建什么样的软件,为哪一种平台开发,软件开发生命周期(SDLC)都是开发过程中不可或缺的一部分。一旦专门的开发团队开始工作,就开始了SDLC流程。它意味着一系列的阶段。瀑布、迭代、敏捷是SDLC方法。每一个阶段都会影响操作的执行方式,但无论模型如何,其阶段的顺序大多保持不变。
云计算应用程序开发生命周期包括:
- 需求分析——在这个阶段,将会估算开发成本,并且设定开发时间表。如果出现一些组织方面问题,开发人员需要与客户沟通解决。
- 设计——这个阶段基于设计师的工作。用户界面(UI)/用户体验(UX)专家会检查未来程序的功能,以构建一个涵盖所有功能的界面。在工作完成之后,他们将其呈现为模型或线框。
- 开发——这是持续时间最长的一个阶段,在这个阶段需要完成几乎所有的编码工作。程序员必须将其设计布局编码到工作应用程序中。IT专家通常将所有工作划分为更小的部分,并根据事先设定的优先级执行任务。
- 测试——这一阶段涵盖软件测试生命周期(STLC)。除了SDLC外,它还包括质量保证(QA)工程师交付最终产品的一系列阶段。在这里,应用程序代码被发送给质量保证(QA)工程师,他们使用特定的方法来测试和调试程序,使其以正确的方式工作。
- 部署——这一阶段将现成的程序交付给最终用户,并在用户的运营环境中进行设置。其部署包括发布、安装、激活和版本跟踪。
- 维护——这个阶段只有在软件售出之后才会出现。它旨在解决应用程序发布后弹出的所有问题。
云计算开发技术
(1)后端技术
后端开发的技术堆栈多年变化不大,以下了解处于主导地位的开发语言和工具。
- .NET
.NET是微软公司开发的混合框架。它让程序员有机会使用不同的语言、库和工具来构建可扩展的Web、移动和桌面应用程序。在.NET支持的语言中,有C#、Visual Basic和F#。它还拥有自己的包管理器——NuGet,其中包含9万多个包。.NET允许使用那些已经存在的云计算服务器以及创建和部署用户自己的云计算服务器。因此,它是云应用程序开发的强大工具。
- Java
Java是一种创建于1995年的成熟的多功能多用途编程语言。这些年来,Java获得了世界各地IT人员的青睐。面向对象的基于类的语言可以在开发云计算、移动、桌面和Web应用程序中实现。它有很多优点,例如定义明确的规范、预期的行为,从而减少开发时间、大量的工具和库,以及无论底层架构是什么,Java应用程序都可以在任何设备上运行。
Java适用于需要高难度计算和数据处理的企业级项目。然而,尽管具备诸多优点,Java开发人员认为使用Java成本昂贵,并且在启动时使用这种语言被认为是不体面的。
- PHP
PHP设计用于在各种领域创建软件。因为它的代码是在Web服务器上用特定的解释器处理的,所以它使PHP成为自定义云计算应用程序开发的一种绝佳选择。它经常用于中型项目或初创公司。PHP拥有多达500万名专业人员支持的开发者社区,帮助用户解决学习阶段或后期出现的问题。其非常清晰的文档简化了学习过程。
由于数据库集成是后端开发的关键方面之一,它使PHP成为最佳选择之一,因为它可以连接到各种数据库,例如MySQL、PostgreSQL、Redis、MongoDB等。此外,PHP的托管服务成本低廉,因为PHP应用程序使用的组件(MySQL数据库、HTTP服务器等)是免费的。
- Node.js
Node.js是一个执行JavaScript代码的开源运行时环境。它的特殊性在于将整个软件开发过程统一在一种语言(JavaScript)上,而不是在后端和前端使用多种技术。填补服务器端和客户端之间的空白可以节省时间和资金等重要资源。Node.js允许构建具有出色性能的高度可扩展的应用程序。它特别适合创建高流量的企业应用程序,其中包括提出更高要求的网络游戏或在线聊天。它具有广泛的框架,可以简化工作。
使Node.js在开发人员中非常受欢迎的另一件事是它很容易学习,尤其是考虑到它拥有一个庞大的支持社区。
- RoR
Ruby on Rails是一个用于后端开发的应用程序框架。它的目标是简单的开发。由于类似英语的语法和易于理解的文档,它相对容易掌握。这种简单性可以最大限度地缩短开发时间。其高可读性使更新和维护更容易,这反过来又使RoR开发极具成本效益。此外,Ruby on Rails有许多专门针对它的测试框架,这使得测试更快更容易。
(2)前端技术
- Angular
最流行的JavaScript框架之一是Angular。它于2016年发布,但其质量已在IT社区中得到广泛认可。它是由2010年创建AngularJS的同一团队在TypeScript的基础上构建的。与其前身相比,Angular具有更简单的基于组件的架构以及JavaScript,其系统更加模块化,并且支持异步编译。
然而,尽管有良好的文档和支持性社区,但有IT专家通常不会选择这项技术,因为其学习曲线可能有点复杂。谷歌公司在谷歌云平台或Ad Words等解决方案中使用Angular,这一事实证明了它的质量。
- React
React.js(简称React)是一个开源框架,特别适合开发云计算应用程序。它是一个JavaScript库,最初设计用于构建单个网页解决方案。它由Facebook公司于2013年创建,并立即被用于Facebook新闻源和Instagram。React的目标是简单、快速和高度可扩展。它的特殊性是可重用的用户界面(UI)组件,如果出现问题,可以节省大量时间和精力来重建整个应用程序。
React还提供了服务端渲染,无需更新页面。此外,与其他一些JS框架不同,React具有平滑的学习曲线,这使得那些曾经使用过JavaScript的人很容易学习。
- Vue.js
Vue.js是Evan You公司在2014年创建的另一个开源JavaScript框架。它是云计算应用程序开发、单个网页解决方案或网站建设的可靠选择。Vue.js的组件库基于HTML/CSS/JS的事实使得Vue.js非常容易掌握,因为每个Web和云计算开发人员都使用过这三种核心技术。高质量的文档也简化了学习过程。它也非常灵活。这提供了构建SPA(单页应用程序)以及一些单独的交互式组件的可能性,这些组件可以在一些其他技术的帮助下轻松集成。
结论
很多企业采用云计算开发技术开发应用程序,因为它可以开发出快速、可扩展、安全的高性能的应用程序。在决定开发应用程序的类型时,它有助于节省时间和成本,这也是决定应用程序类型的一个关键因素。由于创新的工具、技术和通用的SDLC方法,开发方法已经变得更好、更容易。
在确定技术堆栈、产品特性、团队组成和SDLC模型之后,开发团队就可以开始启动云计算应用程序的开发工作。
原文标题:How to Start Cloud Application Development,作者:Victor Osetskyi
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】