5.DevOps走向无操作

我们都同意devops对于帮助开发人员快速构建新的应用程序和特性非常重要,同时保持高质量和性能。devops的问题是开发人员需要花费他们60%的时间在方程的操作一边,从而缩短开发的时间。开发人员必须集成各种持续集成和持续交付(CICD)工具,维护这些集成,并随着新技术的发布不断更新CI/CD工具链。每个人都有CI,但没有太多的人做CD。开发人员会坚持使用云服务来帮助钟摆在2018年回归开发。这将需要更大的自动化。

成都软件开发

Docker提供了打包、可移植性以及进行敏捷部署的能力。您需要CD作为Docker生命周期的一部分。例如,如果您正在使用容器,一旦您将代码更改提交给Git,那么构建的默认构件应该是具有新版本代码的Docker映像。此外,映像应该被自动推送到Docker注册表中,并将一个容器从映像部署到devtest环境中。在QA测试和部署到生产之后,应该为您处理容器的编排、安全性和扩展。商业领袖正在向开发者施压,要求他们更快地提供新的创新;devops模型必须为开发人员腾出更多的时间使其成为可能。

6.开源作为一种服务,加速了开源创新的消费

开源模式仍然是创新的最佳引擎之一,但实现和维护创新往往过于复杂。例如:

您想要一个流数据/事件管理平台,所以您可以转向Kafka。当您开始在规模上使用Kafka时,您必须设置额外的Kafka节点和负载平衡大型Kafka集群,随着Kafka的新版本的发布更新这些集群,然后将此服务与您的其他环境集成起来。

您需要容器编排的Kubernetes。平台应该为您的Kubernetes集群服务,而不是为您的Kubernetes集群处理升级、备份、恢复和补丁。Kubernetes每六个星期航行一次,所以这个平台应该有滚动部署和自我修复。

您需要为NoSQL数据库提供Cassandra。您应该希望备份(在计划中是增量的或完整的)、补丁、集群、扩展和高可用的Cassandra集群,由平台来管理。

开发人员将越来越多地寻找云服务,以便在处理这些技术的操作和管理方面的同时,从开放源码中提供所有的高速创新。

7.无服务器计算的架构在生产中会变得很大

无服务器架构的吸引力是显而易见的:当需要基于某个事件执行我的代码时,基础架构被实例化,我的代码被部署和执行,而我只在代码运行的时候被收取费用。假设你想建立一个旅行预订功能来预订/取消航班、酒店和租车。每个操作都可以构建为一个以不同语言编写的无服务器函数,如Java、Ruby、JavaScript和Python。没有应用程序服务器在运行我的代码;相反,只有在需要时,函数才被实例化并在基础结构上执行。

对于开发人员来说,将无服务器的函数串在一起执行复杂的事务会带来新的挑战:描述如何将这些函数链接在一起,调试分布式事务,并决定如何在一个函数的链上失败,从而创建补偿事务来取消不适当的更改。寻找云服务和开放源码工具,比如FN项目,通过帮助开发人员轻松地管理服务器功能的编程、组成、调试和生命周期管理,并在笔记本电脑或on–prem服务器或任何云上部署和测试它们,从而繁荣发展。关键是要选择一个提供最大可移植性的无服务器平台。

8.关于容器的唯一问题是“为什么不呢?”

容器将成为开发/测试工作的默认值,并成为生产应用程序的常见内容。在开源创新和行业标准的驱动下,希望在安全性、可管理性、编制、监控和调试方面持续改进。容器为驱动现代开发的许多趋势提供了构建块,包括微服务体系结构、云本地应用程序、无服务器函数和devops。

容器在任何地方都是没有意义的——例如,当您需要一个更规定性的云平台时,例如集成PaaS或移动PaaS,但是这些更高级别的云服务将自己运行在容器上,并且将是证明规则的异常。

此外,软件许可模型用于高价值、商业、现场的软件,将不得不接受容器采用的传播。软件的定价模型必须支持“打开”和“关闭”许可,因为容器被实例化、放大和缩小。

软件开发

9.软件和系统可以自我修复、自我调节和自我管理

开发人员和生产操作团队正在从日志、web/应用程序/数据库性能监视和用户体验监视和配置中淹没数据。此外,这些不同类型的数据都是竖向的,所以您必须将许多人带入一个房间来调试问题。然后就是知识转移的问题:开发人员花了大量的时间来讲述他们的应用程序的输入和输出、设置的阈值、用于监视事务的服务器拓扑,等等。

通过聚合大量的数据到一个存储库(在日志、性能指标、用户体验,和配置,例如),并应用大量的计算能力,机器学习,和专用算法,基于云计算的系统管理服务将大大缓解性能/日志/配置监视。这些云服务将通过观察事务来建立基线,通过观察事务(从必须管理阈值来节省ops团队),并了解与事务自动关联的服务器拓扑。使用针对这些基线的异常检测,系统管理服务将自动能够告诉开发人员,当事情偏离正常的行为时,并能够显示特定事务的问题的根源。

开发人员需要考虑如何在编写应用程序时利用这种自动化,以便能够在云中这些智能管理系统之上创建自管理应用程序。

10.高度自动化的安全性和遵从性努力成为开发人员的新同盟

尽管开发人员通常认为安全性和遵从性是“其他人的工作”或“交付代码的瓶颈”,但基于机器学习和交付的综合安全性和遵从性机制的出现,将有助于使这些努力与快速的开发步调一致。具体地说,高度自动化的网络防御将被部署到“上游”,以识别和纠正开发和“下游”的潜在安全风险,从而自动调整公司的安全配置文件,以适应正在进行的应用程序和环境变化(识别攻击、修复漏洞和评估持续的遵从性)。

在某些情况下,这种保护是必要的,持续的合规评估是GDPR和类似任务的标志。开发人员、安全专业人员和最终用户都将受益于在devops生命周期中更加严格的、自动化的安全方法。

相关阅读:

成都软件开发项目三大主要来源及安全设置

成都企业软件开发测试该怎么进行?优点是什么

成都软件开发教程培训之GDB工具的应用

评论

电子邮件地址不会被公开。