云应用开发与传统开发有何区别?云时代程序员需做何改变?
IT行业日新月异,作为开发人员的我也在不断地更新自己的认知。比如说“云计算”这个词,刚出现的时候我并没觉得他跟我有多大关系,谁知道后来他却深刻影响了我的工作和生活。最早深入接触“云”是在做小程序开发时,了解到的“云开发”可以不用借助后台,而是通过 API 调用,便可以完成前后台交互功能。这就可以不再看后台的脸色,同时开发节奏能掌握在自己的手中,这种感觉很美妙。可以不用自建服务器,数据库,存...
IT行业日新月异,作为开发人员的我也在不断地更新自己的认知。比如说“云计算”这个词,刚出现的时候我并没觉得他跟我有多大关系,谁知道后来他却深刻影响了我的工作和生活。
最早深入接触“云”是在做小程序开发时,了解到的“云开发”可以不用借助后台,而是通过 API 调用,便可以完成前后台交互功能。这就可以不再看后台的脸色,同时开发节奏能掌握在自己的手中,这种感觉很美妙。
可以不用自建服务器,数据库,存储,CDN等,这在传统开发都是要进行考虑的,而如今通过"云开发”可以简化上述措施。
从那时候起,我对“云计算”多了一份关注,也了解到越来越多的云知识。比如:IaaS,PaaS,SaaS……,也了解到电商老大亚马逊还有另一个牛人之处——`AWS(Amazon Web Services)`,做云服务也做到世界老大,当真是不同凡响。
Photo by Joshua Earle on Unsplash
云应用开发与传统应用开发有什么区别?云计算时代的程序员与传统程序员相比又该做些什么改变呢?以下是我的一点思考:
1. 逃离避风港
传统开发依赖自己习惯的技术栈(.net, java...),但是在云时代,平台之间的语言很难保持一致,甚至对开发人员而言,会是一个全新的技术。因而需要开发者尽快适应新的平台,提升自己的学习能力和适应能力。
2. 层层深入
当信息在服务器数据库等之间传送时,开发人员必须意识到潜在的滞后时间并进行设计(也许数据库跟服务器还有存储不在同一台机器上,eg:裸金属)。此外,计算机可能以同步或异步模式运行,这也会影响性能。应用程序设计必须考虑潜在的服务器负载或带宽问题,以确保系统满足服务级别协议目标。
3. 涟漪效应
由于使用云,意味着需要将应用程序搭建在外部系统,因而意味着对云进行共享数据和流程。开发者需要了解向其他人开放的后果。传统开发中,你完全可以不用去了解放到云上的后果。但是现在需要清楚这些情况,在开发应用程序外,还要检查所有连接的组件。
4. 整合挑战
集成是另一个长期存在的错误,而云只会增加集成的复杂性。
有时,企业可能需要观测连接并确保各种要素正常运行。不幸的是,并非所有的连接都拥有较好的可见性。比如,你的云服务供应商可能会使用与组织内部使用的开发和监视工具不同的工具。你需要确定云供应商所依赖的产品和工具,并估算连接各种解决方案所需的工作量,尤其是在使用公共云服务时。
5. 查看系统资源
如果不加注意,你可能会在不知不觉中浪费云服务的潜力。因为在云端,应用程序开发是动态的,系统配置在不断变化。你可能分配了虚拟机进行一天的测试,但随后忘记处理,数周后这台机器仍在运行。
在传统系统中,这样的监督并不重要。您需要支付保持该服务器运行所需的电费,但这不会显著增加运营支出。但是,对于按使用情况计费的云上资源来说,费用会随资源运行的每时每刻而增加,并且可以迅速加起来。
总结:
云计算技术的确为我们带来了许多潜在的好处,例如更高的灵活性和更低的成本。但是,为了适应新的工作环境和工作方式,开发人员需要在能力、态度、习惯等各方面做出改变。唯此,你才能享受到云时代带来的各种好处。(文/光环云 李世龙)
更多推荐
所有评论(0)