使用NetApp云原生解决方案创建可扩展的JFrog生态系统[swampUP 2021]
Anuj Kumar Netapp云销售高级副总裁,Fabian Duarate Netapp战略云销售,Shankar Hariharan Netapp高级产品经理
2021年6月30日
< 1
使用NetApp的云原生数据服务解决方案——云卷服务(CVS),我们将向您展示如何:减少/消除故障防止区域性故障。根据需求增加容量和性能。通过Terraform管理NetApp和IaC解决方案,请加入我们的会议,这将包括一步一步的演练演示,可以轻松地在您自己的环境中重新创建,而无需呼叫存储管理员!
大家好,我是Fabian Duarte。我在云数据服务网站NetApp工作,
我专攻谷歌云平台。
我是NetApp的市场专家,
谈到各种不同的解决方案,
尤其是在DevOps领域。
我们和JFrog有很好的合作关系
在今天的SwampUP会议上,我们想和你谈谈如何建造这些
具有云卷服务的高度可扩展环境直接进入您的JFrog人工生态系统。
废话不多说,我想介绍尚卡尔。
谢谢你们的到来。我叫Shankar Harihara,是JFrog的高级产品经理。
在过去15年左右的时间里,我在产品管理和工程方面担任过几个职位。
我非常热衷于开发产品和服务来提供帮助hth华体会最新官方网站
企业加快数字化转型计划,
尤其对DevOps和可观察性充满热情。
但是今天,我们在这里有一个关于使用JFrog HA和NetApp扩展DevOps的很棒的会议。
现在,你们中的很多人可能在这里用了一段时间的artifactory。
我想说的是,你已经熟悉了artifactory中大量丰富的功能,
包括无限的可扩展性,通用兼容性,
虚拟和远程回购;
灵活的可搜索性和广泛的自动化。
有了人工工厂的这些功能,
我们在这里关注JFrog HA架构的另一个方面,
这是关于存储层的。
现在,那些已经使用过artifactory一段时间的人,你知道你的二进制文件的体积和大小
随着时间呈指数增长,对吧?
如您所知,今天,像Docker这样的映像可以占用1gb或更多
Java应用程序可以占用100兆甚至更多,对吧?
现在,在存储方面,我们看到的是不同的客户有不同的存储需求
这取决于它们的具体用例。
例如,其中一些可能需要几十tb的数据,然而
其他人可能需要数百tb的数据,对吧?
所以现在,当你处理如此大规模的数据时,
您经常需要了解如何增加或扩展存储需求
随着需求的增加
这是我们今天要讨论的云服务的一个方面。
另一件事是当你处理如此大规模的数据时,
本地化很重要,对吧?因为
物理服务器的位置非常重要,
因为这与性能有关
您能够多快地解决依赖项并上传下载工件,对吗?
在一天结束的时候,它确实影响了开发人员的生产力。
您的开发人员每分钟都在等待一个工件下载
难道一分钟都不用花在写代码上吗?
所以数据架构很重要
这就是我们将在下一张幻灯片中看到的。
JFrog HA的架构是什么样的
存储在这里是如何起作用的呢?
现在,当你看这个图表时,
您可以看到JFrog HA架构
因为artifactory在前端有一个负载均衡器,
它有几个无状态的人工节点服务于流量。
在后端,我们有一个共享存储,它可以基于S3,也可以基于NFS
还有一个数据库,它保存着所有软件二进制文件的元数据。
当你看到这个JFrog HA架构时,
它的目标之一是真正最大化你的正常运行时间。
这里没有单点故障,对吧?
只要其中一个人工节点可以运行,您的系统就可以继续运行。
这个架构也允许,如果你能看清楚的话
更大的负载爆发不会影响性能,对吧?
所以你可以很容易地横向扩展服务器,
还可以增加容量,以满足组织增长时的任何负载需求。
该体系结构还允许您最大限度地减少维护停机时间。
现在有了这个建筑的所有这些不同方面,
我们将重点关注如何从云卷服务作为存储解决方案之一中获益
在这个JFrog HA架构中。
现在我将交给费边,他将从这里接手。
绝对的,谢谢分享。
让我们回到刚才看的那张图
它开始向我们展示如何利用存储来实现可伸缩性。
所以当你看着我们的时候,
你开始看到你真的想要建立这些大规模可扩展的环境
如果你有很多开发者来到这里并且开始
在这些人工环境中产生大量负载,
你希望他们能够横向扩展以满足你的需求,
如果需求减少,你可能想要,你知道,一些例子消失。
所以你可以再一次跟上并保持与你拥有的需求的比例
这就是NFS外部存储真正有价值的地方
当你努力成长的时候,因为它会和你一起成长,
不仅仅是便携性,
但它也会随着你的规模而增长,
就你非常需要的特性而言
在这些日常操作中。
这就是为什么我想和你们特别谈谈云服务。
公平地说,云容量服务
是一个实际的存储阵列,位于谷歌云或谷歌云数据中心附近,
我们窥探了你们的谷歌云环境,
所以你可以通过市场获得它,然后只需要三个命令来对等
我们的网络,你的网络,然后你就可以开始使用云卷服务了。
它的美妙之处在于你不需要任何管理经验和存储。
您不必了解管理这些环境的复杂性。
如果你知道如何使用你的云控制台,
你已经可以使用云卷服务了,它不再是原生的了
比这更简单。
同样,我们正在寻找的工作负载是基于Linux的工作负载
以及基于SMB的工作负载,它的传导速度非常快。
它会提供一个非常简单的配置UI。
如果你不想用我这样的UI,你可以用terraform
或者你也可以使用我们为Ansible启用的API
让您能够自己去部署这些环境。
在数据平面层进行存储的好处是,
您是否能够根据需要获得功能,这将帮助您扩展性能
在存储方面,扩展数据的可访问性,
在增长方面也要扩大规模。
所以如果你的人工制品和二进制文件在增长,
我们也能够跟上这种增长。
如果它缩小了,我们也可以缩小它。
不仅如此,我们还将讨论如何复制内容
在存储层将数据从一个区域移动到另一个区域。
由于这是一个云原生解决方案,
你可以从市场上买到它,
也就是说你会处理你所有的账单
通过你的谷歌账户或AWS账户或Azure,
你可以用他们现有的工具集来监控它,
您将能够使用现有的IAM功能来配置存储,以及更多。
我们将在下一张幻灯片中详细介绍这些。
现在,它的一个好处是它可以在谷歌云上使用,
在亚马逊网络服务中以云卷服务的名义
我们也在Azure的Azure NetApp文件下。
我们还有另一种工具,这里不会涉及到,但它被称为云卷。
这是一个实际的虚拟存储阵列
这消耗了云资源,2022世界杯阿根廷预选赛赛程
并允许您提供这些完全相同的文件共享
从一个地方。
最酷的是它的水龙头部分
和今天在你的数据中心里运行的操作系统一模一样,
如果你是现有客户,
这意味着如果你有一个大的回购
它位于数据中心,它有一个来自NetApp的NFS挂载点
在数据中心里,你想把那个坏家伙移到云端,
这只是一个非常简单的抓拍镜,
你会看到所有的内容,
一旦内容出现在那里,
在云中构建计算节点,您应该能够立即启动并运行。
回到云容量服务,
正如我们之前提到的,云卷服务是一个完整的NAS工具
以及存在于谷歌云生态系统中的NFS挂载。
它是高度可用的,所以你不必担心
您在该地区的可用性。
它有多个存储类,这也是一个很好的工具。
如果你的性能要求提高了,因为你有更多的开发人员检入代码,
您可以很容易地从一个层更改到另一个层,而无需迁移数据。
它只是简单的地形、API或GUI调用
同样的道理也适用于增长和收缩的体积。
一切都很安全,对吧?
我们与LDAP集成,
如果你在windows网站上,我们会整合AD,
内容在飞行和静止时都是加密的。
我们监控我们的环境,你可以进入谷歌云堆栈驱动程序并建立你自己的
用于监控环境的控制台。
你可以去
订阅呼机值班,以防万一有什么事情需要提醒你,
最重要的是,我们提供了即时克隆和快照的功能,
它们确实是即时的。
所以如果你想创建一个你的整个
工件环境或任何其他使用它的环境,
你只需要通过API或UI执行快照,
你已经可以使用它了
使用完全相同的概念,我们可以从一个地区复制你的内容
把它移到云中的另一个区域。
所以这是一个非常有用的工具。
所以我们将讨论如何开始实施它。
这就是下一张幻灯片,Shankar和我将带你们大致了解一下
我们如何进行初始设置,
将该设置扩展为高可用性设置,并最终结束
具有真正的业务连续性设计。
在这里,我们将向你们展示
这看起来像是一个初始部署。
那么,尚卡尔,你为什么不给我们讲讲我们在右手边看到的东西呢?
确定。关于这个架构,你会注意到的一件事是
应用程序确实与数据解耦了,对吧?
这是一个建筑的例子
使用云卷启动单个人工实例。
现在,正如你在这里看到的,我们有美国西部地区,
哪里有Linux服务器
使用Google提供的一些持久磁盘
和Adobe操作系统,以及JFrog数据库和应用程序。
现在,JFrog DB也可以依赖于不同的持久磁盘,
这是一个外部数据库,
这是一些客户的特定用例。
右边是NetApp云卷,
它本质上是你的存储方案,
它托管着所有的JFrog二进制文件。
完全正确。所以你可以看到,这是一个非常简单的设置,对吧?
所以你继续使用本地云存储来容纳OSD应用程序,
让NetApp处理你的数据,对吗?
我们是处理它的专家,
我们知道如何保证这些数据的安全,如何将数据从一个地方转移出去
来帮助你建立一个可扩展的环境。
太好了,你完成了这项工作,
我们已经建立了初始环境。
让我们进行下一步吧。
Shankar解释了我们所做的。
他们在这里所做的是在两个不同的区域中启动两个JFrog实例。
如你所见,这里是美国东部4A和美国东部4B,
用你们在上一张幻灯片中熟悉的架构。
现在,这两个实例共享相同的云卷服务,
它托管着所有的JFrog二进制文件。
此外,你会注意到你有外部数据库,这是Postgres的续集,
在不同的子网中。
它在不同子网中的原因是
我们希望确保只有JFrog应用程序能够访问外部数据库
而且数据库无法接入公共网络。
有了这个,
我们所实现的类似于使用NetApp的云卷服务的JFrog HA架构。
完全正确。如果你注意到,当我们从一个运行NetApp的独立环境
对于高可用性环境,我们不会在云卷端复制任何数据,
我们只是简单地将新服务器指向NetApp存储系统
我们要确保它每天都能访问它。
我们可以用它做一些很好的事情,
你会看到的。
我们要讲的是一个类似这样的环境设置。
让我们来谈谈我们在环境中建立了什么。
所以如果我们进来,我们开始看我们的谷歌云控制台,
这实际上是云服务,
你可以访问市场的云卷服务,正如你在这里看到的,
只要进入市场,搜索NetApp,
NetApp、云卷服务或随时可用的云卷将出现
或Azure NetApp文件,具体取决于所处的超标量。
就像我们说的,一旦你启用了这项服务,你就可以看到它,你就可以开始竞争了。
使用云卷服务的美妙之处在于它是一个完全的云构建工具,对吗?
确保您访问的环境与在云中的环境完全一样。
如果你要从控制台配置,
这是一个非常简单的设置,你只要进来说,
这是我的文件共享的名称,
我将在这里提供性能存储。
如果你要在一个全新的地区创建一个副本,这就是你的副本,
选择这个。如果没有,请忽略它。
确定你要建这个的区域。
保留路径名。
但这就是我们所说的,服务水平。
注意你是如何从每秒16兆提高到16兆的
到每秒64兆比特。每秒128兆
从你提供的相同容量中,
这很神奇,因为您不需要实际迁移数据
从你的存储中获得更多的性能。
所以我们把它建在那里,
你可以来这里决定你需要多大的产能,
你可以来到这里,然后选择你最喜欢的协议来操作
当然,还有网络。
作为一名云计算工程师,你已经熟悉了所有这些东西,
作为一个SRE,作为一个DevOps,
然后,决定哪些服务器可以访问存储,然后
如果你想保持一个快照时间表,
你从这里启动它。
所以你可以看到,使用它是非常简单的。
现在我们已经进去了,我们已经讨论了我们建立的环境
这是我们的负载均衡器,它已经启动并运行了,
我们有计算引擎实例
在美国东部4和美国东部2也都在运行。
这是我们从谷歌获得的运行Postgres的云SQL数据库
以确保元数据保持一致
你的环境。
所以我们要进来,我也想利用这一刻,展示一些东西。
我冒昧地来到这里,创造了整个环境
离开地形。
你可以看到这里有我们的主TF文件。
不好意思,搞错地方了。
我们的主要TF文件在这里
你可以看到我们调用了NetApp dash GCP提供商
我们是terraform内部的供应商,
只需将其添加到主TF文件中,
你可以走了。
然后我们来到这里,开始创造资源。2022世界杯阿根廷预选赛赛程
因为这是在我的笔记本电脑上,而且是本地部署,
我调用了一大堆的局部变量,
如果你更愿意使用全局变量,
把它加进去。
但正如你在这里看到的,我给我的卷取了一个源名称,
我已经选择了区域,我已经选择了我想要它所在的区域,
卷的大小,以及它运行的存储类型。
我对我的目标环境做了同样的事情
这里是调用环境的模块,如你所见,
就像控制台一样,你给它一个名字,一个区域,一个协议,选择网络,大小,
以及你想要的环境速度。
这里我导出了所有内容,你可能想要更有选择性地选择IP地址范围
可以访问它,快照时间表,我们就可以开始了。
在底部,您还可以找到我们在每个地区建立的服务器。
我们还创建了一个引导程序,以确保在部署服务器时,
他们进来的时候已经内置了JFrog,
它会自动安装NetApp共享存储,这样我们就可以根据需要进行扩展。
所以其中一个。
我假设这个bootstrap
包括安装工件的所有说明。
对,这是安装人工制品的说明
减去云SQL部分,对吧?
我们是手动完成的。
再一次,你可以把它放到terrtransform中,
创建一个单一的交钥匙环境。
好,我们回到这里
快速展示一些东西。
你可以在这里看到,我已经在美国东部4创建了我的主卷。
它很容易使用。就像我说的,我告诉了你如何提供它。
一旦你到了这里,准备好使用它,
我们甚至为您提供了如何将其安装到系统中的安装说明。
你看,我们在做Debian。
sudo apt安装NFS常用文件,
我创建了一个目录,然后用这些指令挂载该目录。
实际上我用了这些,稍微修改了一下,因为我想给我的特定文件共享
一个我喜欢的名字。
所以我把这个目录命名为JFrog CVS Vol。
但这是一模一样的指令。我只需要修改一件小事。
复制粘贴。我是说没有比这更容易的了。
Shankar,就像你提到的,
你如何增加这些数量?如何缩小这些体积?
正如你所看到的,这里,我的音量达到了极限,
它位于一个4tb的容量中。
我已经更新了地形
因此,如果我们进入我们的地球在这里的资源,2022世界杯阿根廷预选赛赛程
你会看到我更新了它的容量是原来的两倍。
我要把它从极值调到优质。
我已经完成了我的改造计划
我要做的是tertransform apply。
我要开始了
到80年
我们就等着那个yes回来吧。
然后我们要到这里来改变体积的大小。
现在,再一次,如果我们在我们的环境中这样做,
假设我们取这个家伙,
我们决定点击编辑。
我们将会看看这个环境是如何被改变的。
所以我们也会改变这里的性能等级,
我们要改变,这是一个全新的体积。
请听我说,我们将把它改为保费
我们要把尺寸缩小一半,
4096.我点击保存。
这些东西现在开始在后台发生。
所以当我们来到这里,
能让我们了解跨区域复制的有趣的事情之一
我们几分钟后会讲到,
这其实很简单。
在同一个云卷服务控制台中,
你就可以来到这里说,我要创建一个关系
在我建立了这种关系之后,
我要遍历并选择源卷,
也就是JFrog的音量源
我要把我的内容复制到西方
目标体积很快就会出现在这里。
你可以看到,我把它命名为JFrog CVS Destination,
我要每10分钟复制一次以确保它是最新的,
如果你喜欢每小时、每天、每周、每月做一次。
同样,你可以选择重复这个过程的频率,
但这是一个连续的复制过程。
所以我要来这里,我需要给我的…
复制一个名字,
让它在后台运行。
这些东西都在后台处理。
虽然这些都是在后台完成的,
让我们回过头来谈谈我们到底在做什么。
所以我们来到这里,
我们就发生了什么进行了对话。
我们基本上复制了整个环境,
然后我们回到一个完全相同的环境,在一个全新的地区。
那么,Shankar,你为什么不从复制的角度给我们介绍一下呢?
是的,当然。这基本上就是我们想出的参考架构
使用云卷服务启用跨区域复制。
正如您在这里看到的,存储层复制发生了
在NetApp层,它横跨云卷服务。
但是元数据级别的复制将跨JFrog人工应用程序进行。
这就是我们如何真正利用
基于存储的复制以及使用JFrog的元数据复制。
没错,这里的一个好处是实际的数据都是二进制的
从一个地区复制到另一个地区
是在存储层完成的,
这意味着你在这个图的最上面释放了所有的CPU周期,
使用你真正想要的CPU周期
增加你的部署,确保你的管道运行顺畅,
它会跟上不断增长的需求
用你的申请。
当你看到这个特殊的建筑时,最棒的一件事就是
如果你需要取出一个节点进行维护,
你可以取下任何节点而不会造成影响,
因此,您的开发人员将拥有所有的正常运行时间
这对他们继续进行日常运作是必要的。
如果需要添加更多服务器,只需将它们添加到
中断配置。
你也可以避免区域性的失败,对吧?
所以如果你让一个特定的地区下线,
你可以很容易地从NetApp端暂停复制,
然后你就可以在二级区域上运行了。
一旦你准备好把它拉回之前的区域,
这很简单,你只需要反向复制,确保它们都同步了,
然后你就能像停电前一样正常运作了。
再一次,我们向你展示了一个可以很容易地以云原生方式构建的基础设施。
建立云卷服务需要几分钟,
再多一点时间来建立这个构型
这会让你完全
独立,具有高可用性等。
但更重要的是,
我们在这里向您展示的是一个实际的客户用例。
这就是我和尚卡尔最初的联系,对吧?
通过为我们的客户构建一个实际的用例。
这个客户就是Dexcom。
他们是一家很棒的医疗设备公司,专门从事
糖尿病患者的设备;
还有他们的团队,高效的团队。和他们一起工作非常棒。
他们实际上是为了让我们帮助他们建立这样的环境而与我们合作
这对他们来说是可扩展的。你可以在这里看到用例,
你可以看到,我们在这个特定场景中展示的所有东西
是在我们的生产环境中实现的实际用例。
我们欢迎您对您的工件环境做同样的事情。
感谢Fabian的精彩演示,以及通过工作
Dexcom的用例。
我希望每个人都能从这次会议中学到一些东西,
比如如何用JFrog HA扩展你的DevOps环境。
当然,谢谢你抽出时间。
我和你的团队一起工作很愉快。
JFrog太棒了,它们太有趣了。
我们希望你们能参与进来。
如果你有任何问题,你可以在聊天流中联系我们。
如果你有任何离线问题,
在领英上找我,我的名字是法比安·杜阿尔特
从NetApp,你应该能很容易地找到我。
尚卡尔,他们有办法联系上你吗?
我也是,你也可以在领英上找到我。
再次感谢大家的聆听。
好了,朋友们,最后,我们做了第四个,我们做了第六个
愿DevOps与你同在。谢谢你!
你的行动很成功
请稍后再试
模态信息