当前位置: 首页 > 后端技术 > Node.js

在云计算和AI时代,公司用于IT现代化的8大技术

时间:2023-04-03 19:01:49 Node.js

在云计算和人工智能时代,云计算的兴起颠覆了IT部门的传统思维。您可以通过从大型公共云(例如AmazonWebServices或MicrosoftAzure)托管来运行您的部分甚至全部基础设施,而不是运行您自己的服务器或数据中心,这样您的效率就会突然提高很多。这种转变催生了新的软件制作和管理方式,可以更好地利用科技巨头超高效数据中心提供的海量计算能力和灵活性。BusinessInsider与专家讨论了基础软件开发人员正在寻求实现下一波数字化转型,因为各行各业的公司都希望实现现代化以应对新十年的挑战并提供更多软件。您可以在下面找到我们为数字化转型提供基础的8大开发人员技术列表。主要趋势之一是关注开源项目,或任何人都可以免费使用、贡献代码或下载的软件。根据BlackDuckSoftware和NorthBridge的调查,四分之三的公司使用开源软件。“在过去的五到十年里发生了一场革命,”云原生计算基金会执行董事DanKohn告诉《商业内幕》。“开源技术一直是驱动力。人们认为基本工具应该是开源的。”另一个重大变化是开发人员现在可以选择他们自己的工具,而不是CIO或IT部门。越来越多的开发人员正在尝试在线找到的免费软件,而公司的其他人可以决定何时采用它,Kohn说。最后,随着所有这些变化,重要的是要确保开发人员自己了解所有选项。无论您是新手还是经验丰富的开发人员,都需要努力工作以跟上行业的重大变化。“我是什么RedMonk的行业分析师KellyAnnFitzpatrick说:“看的是行业知识。如果你想一想开发人员必须学习的所有这些新技术,无论他们是刚刚起步还是处于职业生涯中期。”我们如何真正让开发人员获得他们需要的知识?企业如何弄清楚如何让他们自己的开发人员了解这些事情的最新信息?专家说,这里有八种热门开发技术,公司正在使用这些技术将自己带入现代时代:Kubernetes《财富》被财富500强公司使用。Kubernetes帮助管理所谓的软件容器,它将软件和运行所需的代码打包在一起。这允许这些容器在MacBook上运行,就像它们在数据中心或云中运行一样。这使公司能够比传统方法更轻松、更高效地迁移软件。“容器本身解决了软件开发人员遇到的很多问题,”RedMonk行业分析师KellyAnnFitzpatrick告诉《商业内幕》。开源Kubernetes使公司可以轻松地大规模管理这些容器。Spotify、CapitalOne、eBay甚至“PokémonGo”开发商Niantic等公司都使用Kubernetes来运行处理大量网络流量的大规模云应用程序。451Research的研究副总裁MelaniePosey告诉BusinessInsider:“容器和Kubernetes的结合可以实现更快、更敏捷的应用程序开发,并促进整个组织内更具协作性的跨团队应用程序设计和开发。”VisualStudioCodeVisual由Microsoft打造,StudioCode是一款开源代码编辑器,每月有850万开发人员使用。它可以免费下载、使用和修改,是目前微软旗下GitHub上最受欢迎的开源项目。Amazon、Google、Yahoo和Intuit等公司的工程师使用VisualStudioCode作为编写代码的简单直接的编辑器。RedMonk的Fitzpatrick说她看到代码编辑器和集成开发环境(IDE)的可用性更高,开发人员可以使用它们来编写代码和开发应用程序。而且,有了这么多的选择,大公司不再需要只使用一种代码编辑器并使用他们喜欢的任何一种。“今天,开发人员在使用哪种工具方面有很多选择,”菲茨帕特里克说。“决定使用哪个IDE更像是个人选择。”尽管如此,许多IDE是为特定语言构建的,例如用于Java的Eclipse和用于Python的PyCharm。VisualStudioCode支持多种语言,并被设计成可扩展的,使其易于使用、下载和定制。而且由于它是开源的并且任何人都可以免费使用,所以这个代码编辑器在开发人员中广泛传播。AWSLambda无服务器是公司运行云软件的下一个重要方式。尽管无服务器计算确实需要服务器。但是,有了无服务器,公司无需担心花费大量时间和精力来管理运行其应用程序的服务器基础设施。用户上传他们的代码,Lambda将立即尝试弄清楚如何在需要时最有效地运行和扩展它。它目前被Netflix、Autodesk、AOL和可口可乐等客户使用。RedMonk的Fitzpatrick说:“开发人员不再需要像使用虚拟机和裸机那样担心交付这些服务。”Lambda是AmazonWebServices提供的一种无服务器计算技术,目前是市场上最大和最著名的云。除了AWSLambda之外,无服务器技术的其他流行示例包括AzureFunctions和GoogleCloudFunctions。这三种云都具有类似的功能,可以帮助客户简化应用程序的运行过程。“越来越多的人正在关注无服务器,这不再是关于架构的定义,而是关于如何实际配置和管理某些东西,”菲茨帕特里克说。Git用于软件中的版本控制——基本上,开发人员使用它来协调大型软件项目的联合工作,确保在构建单个功能和系统时没有人编写其他人的代码。Git最初由LinusTorvalds创建,作为流行的开源操作系统Linux的一部分。该技术已成为GitHub、GitLab和AtlassianBitBucket等流行开发人员服务的基础。基于Git的工具已经成为行业标准,因为对软件的需求不断增长,需要更大、更分散的团队跨地域和时区协同工作。Node.jsNode.js为开发人员提供了运行用JavaScript编写的应用程序所需的所有工具,JavaScript是GitHub上全球最流行的编程语言,也是网络的通用语言。Uber、Netflix和Twitter依靠这个流行的Web服务器来构建快速且可扩展的应用程序。Node.js可帮助开发人员创建更快的网页并高效访问运行应用程序所需的文件和数据。它使用GoogleChrome的JavaScript引擎,可以处理大量用户,因此速度极快。由于其速度和可扩展性,它被用于流媒体服务、社交媒体应用程序、即时消息、游戏和其他在压力下需要高性能的应用程序。“就更好的工具和实现更好的开发环境而言,Node.js一直是一个重要因素,”云原生计算基金会执行董事DanKohn说。它最初由开发人员RyanDahl于2009年创建,当时他决定围绕Chrome的JavaScript引擎V8构建服务器技术。如今,PayPal、Netflix、Uber、NASA和LinkedIn等大公司都在使用它。它通常与NPM一起使用,NPM是运行JavaScript软件所需的代码包库。“我不知道今天进行的任何Web开发都没有在他们的过程中使用Node.js,”Kohn说。“实际上,它至少是组织和构建软件前端部分的实际方法。很多人也在后端使用它。这是一套非常强大的工具。”ONNXONNX代表开放神经网络交换,它使公司可以轻松构建人工智能和机器学习应用程序,或者可以在给定大量数据的情况下学习和分析自身的应用程序。该项目将机器学习模型和运行它们所需的工具打包在一起,因此开发人员不必自己构建它。它还允许开发人员轻松使用其他流行的AI框架,例如Facebook的PyTorch和谷歌的TensorFlow。公司越来越多地使用这些框架来分析大量数据并构建更智能的应用程序。它最初由微软和Facebook于2017年开发,现在是Linux基金会下的一个开源项目。微软和Facebook也参与了该项目,亚马逊网络服务、HPE、IBM等其他科技巨头也正在支持该项目。而且因为它是开源的,所以可以免费使用,人们还可以与他人共享他们构建的代码和模型。“这是一种将机器学习模型构建为构建块的格式,”Kohn说。“这是一个并非每个人都必须从头开始的概念。”Spinnaker曾经是公司每年只发布一次软件或者可能只有几个月新版本的.但是现在,如果你看看像Facebook或Netflix这样的大型科技公司,就会发现开发人员发布代码的频率更高——甚至一天数百次。这要归功于持续集成、交付和部署工具(称为CI/CD)。CI/CD是允许开发人员更快、更频繁地测试和发布代码的过程。自动化流程的软件是当今的热门商品。“我们不再对我们的软件进行季度更新,”Kohn继续说道,“我们的许多最终用户每天都会进行数十次部署。“Spinnaker是一个流行的CD平台应运而生。它是由Netflix创建的,旨在帮助工程师全天候高速发布和更新代码,并且因为它是开源的,所以人气爆棚,让更多的开发者可以试用.使用Spinnaker,开发人员还可以测试和监控他们的代码。此外,Spinnaker还可以轻松地将软件部署到多个云,这一点至关重要,因为越来越多的公司选择这样做。它已成为大公司越来越流行的方式来确保他们可以发布代码并跟上硅谷最优秀和最聪明的人。根据项目支持者和风险投资家的说法,Spinnaker似乎与几年前的Kubernetes类似。Armory和OpsMX等基于Spinnaker的初创公司在该领域获得了巨额资金CI/CD软件的其他一些例子包括GitLab、CircleCI和Atlassian的BitbucketPipes。ForresterCondo的首席分析师Chris告诉《商业内幕》:“你看到很多非常有趣的技术和公司试图将这个过程联系在一起建造它们。”“他们帮助管理所有这些发布过程。“IstioIstio是一个开源项目,由谷歌、IBM和Lyft发起,并得到F5Networks、思科和VMware等公司的支持。目前,它是服务网格领域的领先项目。服务网格处理应用程序需要的东西在不同的基础设施服务之间运行通信,并确保通信快速且安全。为了运行应用程序,该应用程序的不同部分(称为“微服务”)需要相互共享数据。Microsoft、Continental等公司,和Walgreens正在使用Istio在他们的应用程序中构建服务网格,以帮助微服务相互通信并避免停机。本质上,服务网格将这些不同的微服务编织在一起,并帮助它们更有效地协同工作。Istio帮助应用程序处理大量网络流量,还包括加密、监控、安全等功能。