首页 文章 精选 留言 我的

精选列表

搜索[知识管理],共10000篇文章
优秀的个人博客,低调大师

每日一博 | DevOps 知识点——3C 知多少

CI / CD是任何DevOps操作的两大基石,这是一种开发软件的方式,旨在生产快速而强大的软件,随时以可持续的方式发布更新。 当例行更改代码时,开发周期会更加频繁、更有意义且更快速。通过此过程,我们可以确保只有已知良好的代码才能成为软件产品的一部分。 Continuous Integration,Continuous Delivery,Continuous Deployment,即持续集成、持续交付和持续部署构成DevOps的3C。在这篇文章中,将从以下几个方面阐述:传统集成、持续集成及过程、持续交付、持续部署、3C优势。 传统集成 传统集成时,团队没有任何类型的中央构建服务器。源代码可以存储在中央源代码存储库中,但是开发人员不必定期提交更改。在计划发布之前,开发人员可能会手动集成更改,这会导致许多问题,例如由于许多开发人员同时集成而带来的最后一刻的冲突,或者由于集成而导致的组件故障。 传统集成的某些缺点如下:开发人员不经常集成代码,导致最后一刻的隐患;反馈回路慢;由于需要修复许多组件而无法轻松解决问题;难以按时交付产品;高成本。为了克服这些问题,CI和CD应运而生,它们从技术角度和业务角度都具有许多优点。 持续集成Continuous Integration 持续集成是一种开发实践,要求开发人员每天多次将代码集成到共享存储库中,以避免代码冲突。 然后,每个签入均由自动构建进行验证,从而使团队可以及早发现问题。这使团队可以花更少的时间进行回溯,而将更多的时间用于构建新功能。 这里的概念是在一个项目上有多个开发人员,以将资源库的主分支保持为最新形式的源代码,因此每个开发人员都可以签出或者从最新的代码中提取,以避免发生冲突。 集成过程 开发人员在自己特定的分支中开发其功能,然后将其新分支推送到协作存储库中。 运行自动化的单元测试和集成测试,并将错误和其他代码质量问题通知团队。一旦自动测试通过,开发人员就会创建拉取请求。开发人员和审阅者可以直接对开发人员提交给主分支的更改发表评论。 完成评审过程并将新代码合并到主分支后,功能开发和错误修复周期将从集成的主分支继续运行。这在团队内(特别是每个人都在处理许多小任务的大型团队)通常会在一天内发生多次,这意味着每个人都在同一个通用代码库上工作。这样就大大减少了代码的差异以及功能开发人员彼此之间不同步而引起的相关问题。 持续交付Continuous Delivery 持续交付是一个更改代码会自动生成、自动测试并为发布到生产环境中做好准备的过程,软件可以在任何时候发布到生产环境中。 持续集成的代码提交将进一步进行性能和功能测试,直到批准发布为止。要有效执行持续交付,需要强大的持续集成。如果正确实施,开发人员将始终拥有已通过标准化测试过程的可部署的构建工件。 这个过程在开发人员提交代码时开始,在登台环境中完成测试后结束,以便代码可以部署到生产环境中。如果在自动测试过程中出现任何错误或Bug,CI工具将自动通过任意一种通知(如电子邮件或短信)告知开发人员。 持续交付通常涉及一个类似于生产的暂存区域,在将更改发布到生产之前,需要手动接受这些更改。 发布到生产环境的决策更多地是业务决策,而不是技术决策。 持续部署Continuous Deployment 持续部署与持续交付非常相似。二者唯一区别是,在持续部署中,所有通过自动化测试阶段的代码提交都将自动发布到生产环境中。 持续部署不需要在登台环境中进行任何手动测试,因为自动化测试将在发行版的所有阶段中执行。 这两种CD都依赖于实时基础设施配置和应用程序监视工具,用以在部署之前发现由于缺乏人工验证而在测试反馈循环中没有被找出的问题。 3C的优势 1、缓解风险 许多开发人员面临这样的问题:应用程序在本地环境可运行,但是在面对更高级可用性时无法运行。这是因为在本地环境和投入生产的地方可能存在很多不同之处。一些质量保证任务如浏览器测试,可以降低将Bug一直传播到活动站点的风险。 2、加快上市时间 持续集成、持续部署和持续交付的应用可以让团队更快地发现故障并快速修复,从而提高软件发布率,加快交付速度。 3、更改可追溯 所有团队成员必须使用相同的源存储库来维护其代码。很明显,可以看到代码库被进行了哪些更改以及由谁进行了更改。 4、提高代码覆盖率 CI服务器检查每一次构建的测试覆盖率。无论你在何处提交未经测试类的新代码,服务器都会显示错误,因为没有足够的代码覆盖率,因此开发人员将致力于增加低层级可用性的覆盖率,以便在部署到更高级的可用性时不会出现与代码覆盖率有关的问题。 5、质量:从优秀到卓越 CI有助于测试人员将项目总时间的50%用于运行集成的标称测试、查找Bug和其他细微问题。这使得测试团队能够更深入地研究问题,测试更多的场景,并产生更好的总体质量和结果。 6、更少的积压工作 将CI/CD纳入团队的开发过程中可以减少积压工作中非关键缺陷的数量。这些小缺陷会在生产前被检测出来,并在发布给最终用户之前被修复。 7、用户满意度 随着部署在连续的周期中运行,这将使团队能够跟踪项目并实时提供反馈,并在必要时修复团队中的缺点。通过一致的评审,新产品的开发将更加精细,并将更加符合终端用户的期望。 8、减少团队成员之间的摩擦 确保跨多个位置的多个开发人员工作的代码始终集成到一个公共存储库中。这避免了由于大量和冲突的代码提交而导致的混乱。 结论 在当今瞬息万变的竞争环境中,开发商正努力将他们的产品快速投放市场,如果没有一套简洁而合适的流程,几乎不可能发布高质量的代码。因而,转向持续集成和持续部署将极大地改变软件开发过程。它将简化整个过程,从而帮助团队提供更稳定、更安全、更优质的产品。 参考文献:Krishnagayathri Gopinath .Continuous Integration And Delivery [OL].(2020-04-27)https://dzone.com/articles/continuous-integration-and-delivery

优秀的个人博客,低调大师

hanlp汉语自然语言处理入门基础知识介绍

自然语言处理定义: 自然语言处理是一门计算机科学、人工智能以及语言学的交叉学科。虽然语言只是人工智能的一部分(人工智能还包括计算机视觉等),但它是非常独特的一部分。这个星球上有许多生物拥有超过人类的视觉系统,但只有人类才拥有这么高级的语言。 自然语言处理的目标是让计算机处理或说“理解”自然语言,以完成有意义的任务,比如订机票购物或QA等。完全理解和表达语言是极其困难的,完美的语言理解等效于实现人工智能。 自然语言处理涉及的几个层次: 作为输入一共有两个来源,语音与文本。所以第一级是语音识别和OCR或分词(事实上,跳过分词虽然理所当然地不能做句法分析,但字符级也可以直接做不少应用)。接下来是形态学,援引《统计自然语言处理》中的定义:形态学(morphology):形态学(又称“词汇形态学”或“词法”)是语言学的一个分支,研究词的内部结构,包括屈折变化和构词法两个部分。由于词具有语音特征、句法特征和语义特征,形态学处于音位学、句法学和语义学的结合部位,所以形态学是每个语言学家都要关注的一门学科。 Hanlp自然语言处理开发包: 从事大数据方面工作的人对自然语言处理必然都是不陌生的,在Github上用户量最多的开源汉语自然语言处理工具是HanLP。HanLP的初始版本是在2014年初开发的,3月份的时候开始在Github上开源。2015年的时候集成在了大快搜索的DKNLP中,目前大快已经把DKNLP技术成果已经开源,并且整体装如HanLP项目,HanLP的版本已经到了V1.50。 Hanlp自然语言处理技术优势: 支持中文分词(N-最短路分词、CRF分词、索引分词、用户自定义词调、词性标注),命名实体识别(中国人民、音译人民、日本人民,地名,实体机构名识别),关键词提取,自动摘要,短语提取,拼音转换,简繁转换,文本推荐,依存句法分析(MaxEnt依存句法分析、神经网络依存句法分析)。提供Lucene查件,兼容Solr和ElasticSearch。 Hanlp自然语言处理应用领域: Hanlp已经被广泛应用于Lucene、Solr、ElasticSearch、hadoop、android、Resin等平台,有大量开源作者开发各种查件与拓展,并且被包装或移植到Python、C#、R、JavaScript等语言上去。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册