
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
云原生编程开发技术随着互联网的不断发展而被越来越多的程序员掌握,而本文我们就通过案例分析来简单了解一下,云原生编程应用注意事项。
1、架构与设计:“云原生”中的“原生”是什么意思?
“原生”是指我们将构建的解决方案不仅要“在云上运行”,而且要特别利用云平台的独特性。应用程序不仅神奇地继承了底层云基础架构的优势,还必须教会他们如何操作。
我们并不是指特定云提供商的特定于供应商的方面。那将是“云提供商本机”,实际上,这将完全与围绕可移植性和使用开放标准的目标背道而驰。我们的意思是概念上所有云平台都通用的东西。换句话说,我们在上一节中有关基础结构和技术的内容中强调了这些内容。
对体系结构和设计有重要影响。我们需要编写解决方案以确保例如它们可以水平缩放,并且可以与自动恢复机制一起使用。在这里,云原生可能与微服务概念重叠多。
到目前为止,可能要注意的重要的一点是它们都是高度相互依赖的。例如,如果要创建具有高度状态的一次性组件,则要困难得多。减少依赖关系从本质上将有助于使组件更轻便。具有明确定义的界面将使可抛弃的组件更容易重新实例化,依此类推。这只是一个更广泛点的小例子,即迁移到云原生方法需要同时在许多相关方面进行更改。我们逐渐发现的这些云原生成分是相辅相成的。
2、人员和流程:“云原生”如何改变我们的组织和工作方式?
可能不太明显的是,当我们使用有关架构和底层基础结构的上述假设和决策时,它为我们提供了从根本上改变我们处理人员和流程方式的机会。的确,可以认为必须进行这些更改。
下面,我们探讨了微服务方法对人员/流程的影响:
微服务意味着您是在小型自治团队中构建服务。这只是Conway定律的应用-如果您希望系统由小的,解耦的组件组成,则必须允许您的团队规模较小,并且不能与其他团队紧密耦合-仅允许通过定义明确且受控接口。
微服务还意味着您正在使用敏捷方法并将DevOps原理应用于开发流程。如果没有,您将如何获得端到端的反馈以及对代码的快速迭代,这是该方法的核心优势。反过来,DevOps将意味着进一步的流程改进,例如持续集成和持续交付/部署(CI/CD)。
DevOps要求您采用其他特定的技术流程,例如自动化测试(可能包括测试驱动的开发),并强烈引导您进行基于主干的开发。小化测试周期的渴望可能会进一步导致您探索改变人们与工作相结合的方式(例如,结对编程)。
同样,容器技术也会影响所需的技能,角色和流程:
云基础架构通常使用诸如Kubernetes知识之类的通用云平台技能,而不是特定的运行时或产品技能,在操作(部署,扩展,高可用性等)上实现更多目标。这从根本上减少了跨多个技术领域工作的人员的学习曲线,并实现了更广泛的角色和知识共享,从而提高了效率并降低了成本。它还鼓励现场可靠性工程师转向尽可能使操作任务自动化。
容器,特别是容器映像技术,简化了CI/CD管道的自动化,从而缩短了构建/发布周期时间,并提高了生产率。构建管线实现方式的同质性提高意味着可以更轻松地维护它们,并且确实可以由更广泛的人群使用。
不变的容器映像与声明性的“将基础结构作为代码”结合使用,可以提高跨不同环境的部署的一致性。这降低了测试和诊断成本,提高了部署速度,并减少了停机时间。从过程的角度来看,这可以实现可靠性,性能和安全性测试等方面的“左移”。反过来,这又带来了更多的DevOps/DevSecOps文化,在这种文化中,开发人员对代码的操作质量负有更大的责任。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。