众所周知,不论是产品还是服务,品质决定竞争力,而对于一个App来说,功能是生命线,确定能否安身立命,而非功能需求则是它的品质。在App如过江之卿的今天,用户们翻身奴隶把歌唱,分分钟可以卸载掉一个哪怕只有一点点让自己不爽的App,转身下载一个同类的,所以在当下的App爆发式增长,并且同质化严重的情况下,非功能需求这些个“软服务”会更好的体现出App差异化的特点,向用户传递特定观点,提供优质服务,从而能够俘获用户的“芳心”。 F5可以帮助应用实现非公能需求,DevOps还能提升App品质。
非功能需求都包括哪些“软”指标。下面是ISO/IEC 25010 软件质量管理模型:
F5如何帮助应用实现非公能需求以及DevOps如何提升App品质?
可以看到,除了功能性外,影响软件产品质量的关键因素还包括效率、兼容性、易用性、安全性、可靠性、可维护性和可移植性7个维度,每个维度又包括了许多方面,涉及到架构、内容、交互、运营、安全等,这些都属于非功能需求的范畴。
非功能需求服务化
非功能需求的有一些共同点:
1、当不仅存在于开发阶段,还存在于运维阶段与运营阶段;
2、在实现自身需求的同事,会涉及或者引发新的需求;
3、对实现手段的灵活程度和后续的管理与维护的便捷度有要求。
基于以上三个特点,F5发现基于非功能性需求的实现不论是单单放在开发阶段,还是只放在运维阶段,都是不完美的,因此,F5大胆假设,独立设计一个应用服务层,用户实现非功能需求的场景,并且贯穿与开发与运维的生命周期内。
非功能需求在运维工作中的体现
F5的应用交付层,能够提供计算、分流、安全、卸载等功能,并且能够无视数据中心数量与形态的变化,与应用紧密结合在一起,旨在为用户提供高品质的应用和服务。针对运维工作中提供非功能需求实现与维护的场景,F5为了弥补环境多样化、效率低、需求不明确等诸多不足,应该做到以下几点:
F5如何帮助应用实现非公能需求以及DevOps如何提升App品质?
01.构建跨平台的应用服务交付层,建设一致交付的能力,满足可靠性的要求;
02.应用服务交付层应具备优秀的应用交付服务能力,满足效率的要求;
03.实现应用的部分非功能性需求解耦,满足易用性与可维护性的要求。
04.要能够实现服务交付即代码,及所有运维平面的工作,能够通过代码来实现;
05.要能够与运维平面的服务等级与能力保持一致性;
06.实现的非功能需求的服务能力要是安全的,可控的;
07.所有开发测代码实现的非功能需求,可以无缝转化为服务交付层的服务能力。
非功能需求在开发工作中的体现
F5的应用独立设计一个服务交付层,将非功能性的需求实现放在这里,而这些需求可以采用更专业的实现的同时,同时也隔离了一些公共代码和库的安全问题,更妙的因为代码实现的场景能够无缝的部署在运维侧,所以能够和运维打通,互通有无,能做更多的事情,提升应用的品质。
F5如何帮助应用实现非公能需求以及DevOps如何提升App品质?
如上图,可以在代码code阶段就设计为App code 和ADC Code,然后再build阶段先集成App的code,然后做测试,在Deploy阶段的时候由CI Server从github上拉取ADC的code,然后一起部署App和ADC Service到服务器或者容器平台,ADC的code部门还可以再细分成ADC code 和Security Code,后者用来做应用层的安全防护,在这样的情境下,在每一次code的阶段就设计好ADC 和Security的实现,和App Code 同时Deploy,实现了整体应用和安全交付的CI/CD和快速迭代,极大的提高了生产和运维效率。
如果想实现开发侧的应用交付层的设计,需要具备以下的能力:1要能够实现独立的服务交付层,与应用核心代码解耦;2要够无缝的集成CI/CD;3实现的功能无开发语言无关为佳。
DevOps提升App品质
前文提到,软件的非功能需求决定了软件的品质,这在某些程度上与DevOps是不谋而合的。在DevOps的文化里,不紧紧的打通了运维与开发的屏障,更是将各个阶段形成了一个生生不息的循环,形成一个持续集成、持续交付的生态,如果说DevOps是一种文化,一种氛围,追求高品质的App是目的,那么,努力发展非功能需求的实现及优化则是一种行之有效的手段。
F5如何帮助应用实现非公能需求以及DevOps如何提升App品质?
由于实现了非功能需求的服务化,在一个良好的DevOps的氛围里,甚至可以利用这些服务来做在线BI甚至精准营销,由运营侧提出需求,指定基于App的用户行为分析图,然后分析收集的数据,反向推动优化非功能需求的实现甚至是主线功能需求的优化,从而达到提升客户满意度,提升市场占有率的目的。由于F5已经打通了应用交付服务的关节,所以这些数据和分析与每个部门各自为战比起来,要精准、快速、高效的多。
总之,F5不但可以帮助应用实现非公能需求,在一个良好的DevOps的氛围里,还可以提升App品质。如果你公司的APP或应用服务有类似的诉求,F5可以帮你很好的解决。