The implementation was a cluster, and they decided not to touch Kubernetes until they could use a managed service.
The team needed to move to Azure, and once on Azure, they felt ready to adopt Kubernetes as a managed service.
They used Azure DevOps to automate builds, deployments, and monitoring, with a Rube Goldberg-like system that included webhooks and automated testing.
They needed to maintain configuration manifests between two different clusters for redundancy, and GitOps allowed them to manage this more efficiently.
Azure AD required going through the public internet for authentication, which conflicted with security policies, and they had to create an email forwarding service to handle external users.
They ran an email forwarding service in a container within their Kubernetes cluster, forwarding emails through AWS SES to avoid being blocked by email providers.
They plan to convert OpenUnison configurations to use CRDs dynamically, move to the External Secrets Operator, and revamp their user interface using React and Material Design.
Marc Boorshtein prefers Argo because of its GUI features, which he finds more user-friendly for enterprise use.
COVID accelerated the need for identity infrastructure as work-from-home became prevalent, highlighting the importance of SSO and cloud-based identity solutions.
They were mostly insulated from Azure-specific vulnerabilities because they didn't use the services that were affected, but they did face challenges with log4j due to their Java-based systems.
<context>公共安全Kubernetes 来自Tremolo Security的Marc Boorshtein与Justin和Autumn一起讨论在公共部门运行Kubernetes的所有内容。 加入讨论Changelog++会员在本集节省了8分钟,因为他们让广告消失。今天就加入吧!赞助商:System Initiative – DevOps自动化的未来(就在这里!)— System Initiative是一个直观、强大、协作的基础设施即代码(IaC)替代品。免费套餐非常棒(无需信用卡),您可以在3次点击内开始使用。
Kubernetes身份验证和命名空间即服务 Kubernetes身份验证和SSO 介绍 - 外部秘密操作员
<raw_text>0 一。
这是与Justin Garrison和Autumn Nash的Ship It。如果你喜欢这个节目,你会爱上The Change Log。周一的软件新闻,周三的深度技术访谈,周五的精彩脱口秀供你周末享受。在你获取播客的地方搜索The Change Log即可找到它。Ship It由Fly.io提供支持。五分钟或更短时间内启动你的应用程序。了解更多信息,请访问Fly.io。♪
好吧,朋友们,我和我的一个好朋友在一起,也许也是你们的好朋友。Adam Jacob,System Initiative的联合创始人兼首席执行官。他们正在定义DevOps自动化的未来,协作替代基础设施即代码。现在,Adam,我知道有时候人们尝试新事物时,他们只需要一个邀请。
给他们一个邀请。是的,看看,如果今天或者在过去的一周里,你所要做的就是登录GitHub或其中一个云平台,审查一个计划,然后再应用它,考虑云状态。
以及你如何同步你的基础设施即代码,你需要做的就是使用System Initiative,看看通过使用System Initiative来完成同样的工作,你的生活会变得多么美好。像在实时发生的架构图中看到这一点,与朋友一起玩耍是多么美好。你将会发现你能节省多少时间,以及再次做这项工作的乐趣有多大。实际上,想要审查你工作的那些人
来和你一起工作是太棒了。以这种方式彼此合作真的好得多。你应该尝试。
因为这太棒了。好吧,他们有一个慷慨的免费套餐供你玩耍。所以如果你第一次听到这个,想要尝试一下。你只需访问systeminit.com,试用他们的免费套餐,看看你觉得怎么样。它是未来吗?是还是不是。再次强调,systeminit.com。
你好,欢迎来到Ship It,这是一档关于Git Push之后一切的播客。我是你的主持人Justin Garrison,和我在一起的仍然是Autumn Nash。最近怎么样,Autumn?这一周过得怎么样,大家。是的,我想说得很好,但我甚至不知道我是否可以在这一点上撒谎。是的,你在这里。我们出现了,就像...
现在是11月7日,我们正在录制这个节目,我想它将在11月底发布。我们在这里,我们清醒。为我们感到自豪。真是太好了,感谢上帝我和Justin并不喝酒,因为那会很疯狂。
你听到的第三个声音是Mark Borstein。他是Tremolo Security的首席技术官。欢迎来到节目,Mark。是的,谢谢你邀请我。我们在LinkedIn上聊了一点关于你在公共部门运行Kubernetes的事情。那么你能具体告诉我们你负责什么基础设施或软件吗?当然。在华盛顿特区地区,这里是一个独特的地方。我们有很多不同的政府,很多层级的政府。
所以我们在这里所做的,至少在这里,是为第一响应者运行一个身份系统。回到20年前,911事件,你知道,飞机飞入五角大楼,你有来自阿灵顿县(五角大楼所在的地方)、亚历山大市、华盛顿特区、马里兰州等不同辖区的单位在响应。而他们无法相互沟通。
我甚至不是在谈论数字通信。他们的无线电无法相互工作。这太疯狂了。是的,想想都很疯狂。因此,从中产生的许多事情之一是一个报告,基本上说,尤其是在华盛顿特区地区,由于我们在国家首都地区的独特性,我们需要有一种方式让每个人都能相互沟通。
因为不仅仅是不同的辖区需要相互沟通,而且这些辖区还与联邦政府、军警合作,因为这里有大量的军事存在,还与州政府合作。因此,从公共安全的角度来看,有许多不同层次的互动。
因此,他们建立了一个来自国土安全部(DHS)的巨额拨款,特别是来自联邦应急管理局(FEMA)。所以他们是每当发生自然灾害时,响应的那些人。因此,这笔巨额拨款用于各种公共安全事务。其中一件事情是建立一个光纤网络,可以在商业互联网瘫痪的情况下存活下来,以便仍然有一个通信骨干。
所以他们建立了它。一个巨大的管道。运作得非常好。没有人想使用它,因为他们不想再创建一个用户名和密码。这太疯狂了。因此,他们有一个巨大的网络,没有人想使用。所以他们都使用Google单点登录,对吧?甚至不是。不是,这太棒了。这会很惊人。不,这个——所以我们第一次参与这个是在2011年,对吧?
当我们第一次参与时,实际上有点好笑,因为我刚刚离开我的全职工作,开始在Tremolo工作。我当时在一个推介比赛上,Mass Challenge。
所以我和我的合作伙伴在马萨诸塞州,我当时为一家咨询公司工作,他们把这个东西扔给我。我当时想,你们已经把这个东西给了出去。我根本无法实施这个并盈利。然后,我回去开始和我的客户交谈,我说,你知道,Tremolo可以做到这一点。他们说,好吧,让我们向他们推介。然后,太阳、月亮、星星都对齐了。
他们说,好吧,让我们来做。效果非常好。但这是Active Directory。使用Active Directory时,当地政府通常非常依赖微软。因此,从他们的本地到云几乎完全是微软,至少在这个地区。不同地区会有所不同。但至少我的经验是,大多数地方非常依赖微软。
所以他们有Active Directory。如果你曾经与Active Directory合作过,你知道,让两个Active Directory相互沟通的唯一方法就是把所有防火墙扔出窗外。因此,他们不想直接将它们连接到这个东西上。他们不想让它们相互沟通。你知道,Active Directory,这意味着你整个王国的钥匙。
所以你不想只是说,是的,我们只是将这些东西合并在一起,让它们一起工作。这有点危险。因此,我们进来并说,好吧,我们可以以安全的方式将这些东西连接在一起。当时,我们通过LDAP虚拟直接进行所有操作。
所以如果你曾经与LDAP目录合作过,你会在前面放一个知道LDAP的代理。想象一下像HTTP代理,但用于LDAP。因此,它在前面使用LDAP,然后在后面使用你需要的任何东西,并创建这个巨大的虚拟树。因此,我们创建了这个环境,它是一个包含所有不同基础设施的大虚拟树。
然后我们当时正在与SharePoint 2011合作。因此,我们必须将其集成,这是一种有趣的经历。我们一切运作得非常好。因此,他们说,是的,这太好了。我们想继续前进。然后我了解了政府采购。因此,我们花了几年时间。
几乎两年的时间才能完成采购。我们终于让它上线。仅仅是为了让他们能够说,是的,我们想为此付费,你可以继续。是的。只是通过并弄清楚,比如说,我们将通过谁来购买它?因为如果你曾经向大型公司销售过东西,你必须通过像CDW这样的转售商,这是一个大型软件商店,你可能必须通过它。Insight是另一个大型商店。Cinex.com。
从Insight分拆出来,但你知道,如果任何正在收听的人知道这些名字中的任何一个,我很抱歉,好的人们,你已经在这一集中有很多触发词了,关于代理,所以你知道,这是我们的第一个客户,我们只是像
我坐在那里给我的合作伙伴发短信。我想,我们有银行账户吗?我们把钱放在哪里?我们该怎么处理这个?因此,这大约花了两年的时间来处理所有不同层次的采购细节。当我们上线时,我们与五个不同的辖区一起上线,全部通过LDAP。
这是一个LDAP虚拟目录。非常有趣的是,当时,他们说,嗯,支付这笔费用的拨款是非常具体的拨款,称为UASI,U-A-S-I。UASI拨款的目标是,所有用于建设这一基础设施的资金应该是临时资金。就像它并不是为了无限期资助而设的。它是为了资助到维护的程度。
然后在维护阶段,当地政府接管它。因此,假设是,我们将建设它,然后移交给某人。因此,他们希望一切尽可能依赖微软。现在,当时,这是在我们成为一家开源公司或拥有任何开源项目之前。因此,当时我们有一个虚拟设备,对吧?你知道,在有容器之前的容器,它是基于CentOS 6构建的。
你知道,我们会把它放进去。他们说,好吧,你能给我们一个物理设备吗?我说,好吧,你知道,我只是打算从Dell.com上买一些东西,喷成红色,贴上我的标志。你会得到比我更好的价格。所以,只需购买它,让我们部署它。因此,我们这样做了。当时我们没有界面,所有的都是API。因此,我们为他们基于.NET构建了一个界面,那是有史以来最丑陋的界面。
我希望我仍然有它的截图,但想象一下最丑陋的HTML跑马灯。真糟糕。但它有效,人们真的很喜欢它。我们起步了,我们经历了...
三个数据中心,最终才能上线。他们不断将我们从数据中心移动。就像他们不会,最初他们没有硬件给我们。因此,我们有这台二手硬件。
他们说,所以,你知道,你必须在上面放一个虚拟机监控程序。因此VMware,他们说,不,不,我们不会给你任何这样的东西。不,你得用Hyper-V。我说,好吧,我以前从未做过。然后,好的。我坐在那里在数据中心部署它。然后他们把我们移到另一个数据中心。最后,当我们上线时,他们把我们放在第三个数据中心。
所以我们终于上线了。具有讽刺意味的是,我刚才告诉你这个大网络,对吧?我们第一次上线的应用程序并没有在那个网络上运行。它托管在商业互联网中。因此,你知道,我们想,好吧,客户就是客户。我们不在乎。这是一个应用程序。因此,我们在2013年7月上线了它。人们开始使用它时,他们会问,你是什么意思,我不需要另一个密码?
用户无法理解,因为在这一点上,SSO并不是一个大问题。你知道,这是我们与当时的NetEgrity竞争的时期,后来被CA收购,Oracle Access Manager,你知道,ForgeRock,很多这些传统身份名称。
因此,SSL仍然不是一个非常普遍的东西。在这种情况下,你放在网络上的应用程序,人们来使用它。你有这个LDAP代理,而那个代理会去每个组自己的Active Directory服务。因此,用户只需存在,他们只需要在任何域下的完整用户名和密码,他们不需要再次注册。因此,你只是将所有这些代理回到任何LDAP。你就像,你是一个代理,你在那时就像一个路由器。你就像,哦,是的,你去这里,我们会弄清楚那
是否是正确的密码和哈希,然后我们会发送回去并说是或不是。
确切地说。因此,没有哈希。没有,我们得到了密码。我们只是把它交回给AD。当然。这是2013年。是的。谢谢你给我留有余地,但不。好吧,我不喜欢它,你知道,这很痛苦。我的最大痛点是网络和证书,对吧?因为证书会过期。没有人告诉我们任何事情,你知道吗?
我们不知道,直到用户开始抱怨,对吧?当时,获得新的证书签署大约需要一个月的时间,对吧?获得证书并不需要一个月,不,获得证书实际上相当简单,因为我的意思是,这是AD,所以都是自签名证书。当然。我的意思是像一个公开信任的证书。是的。好的。因此,发生的事情是,人们开始抱怨AD坏了。因此,我来自一个必须处理坏证书的背景。
因此,我们在技术中内置了直接吸入证书的能力。但我仍然必须进去做这件事。当时,现有的监控能够执行一些类似LDAP合成事务的操作,可以告诉我们它是坏的。但是我当时的团队不知道如何做到这一点。每次我试图向他们解释时,他们都会说,
所以这是HTTPS。
不。并且尝试,网络设置从未成功。他们总是说,是的,监控显示一切正常。我说,但我可以告诉你,客户抱怨他们无法登录。因此,我们处于一个糟糕的地方。随着技术的进步,我们在将其引入我们的系统方面做得非常好。
就像,我的意思是,这是一个已经投入生产超过十年的系统,它并没有静态。它一直在增长和变化,随着可用技术的变化。我很幸运,因为作为客户,当我说我们应该尝试这种新技术时,你知道,你会认为他们会因为我们在谈论公共安全系统而对风险持谨慎态度。他们会说,不,我们信任你。你告诉我们我们应该尝试这个。让我们试试。因此,我很幸运能有一个非常前瞻性的客户。
因此,我们慢慢迁移。我们从完全的Windows基础设施转变为我们的Linux虚拟机,然后我们的门户从.NET和那个丑陋的界面转变为一个基于Bootstrap的Java界面。
然后,你知道,我们最终摆脱了AD,转向Azure,我们从仅仅是安装在ISO中的虚拟设备转变为运行在,我称之为伪容器的地方,我有Ansible剧本来部署一切。但我们会像从头开始一样玩它,对吧?就像我可以指向一个空的Ubuntu服务器,整个东西就会运行。
随着这一切的发生,我们摆脱了虚拟目录。因此,随着ADFS(Active Directory Federation Services)在辖区中变得更加普遍,我们正在摆脱虚拟目录组件,这真的使事情变得很好。然后当我们迁移到Azure时,我们做了一件非常酷的事情,我们接管了所有监控,我们停止了这种像,好的,运营团队和开发团队之间的分工。就像,不,我们只是要拥有一切。
这是我们现在的问题。因此,我们能够构建一个Prometheus基础设施,我现在知道在客户之前何时出现问题。我们运行那些合成事务,我们有一个仪表板,我们有警报,它在跟踪事情。就像那是第一次。因此,大约在2019年。那是我第一次感觉,哇,我真的知道这个基础设施是什么。它是...
这一切都是自动化的。太棒了。太美妙了。我觉得那种可观察性是人们应该追求的目标。归根结底,技术是一项业务,对吧?你希望你的客户满意,你希望在他们之前了解他们的体验。人们只是像睡着了一样,认为
这将使迭代和改进你的产品变得容易得多。真让我感到困惑。好吧,我的意思是,那里还有一个重要的部分,就是组织结构图,谁在接收警报,重要吗?因为如果是运营团队接收警报,那么他们必须去叫醒开发团队。这不够快。这实际上没有帮助。你只是把其他人放在中间。我知道开发人员通常不喜欢携带警报器,他们一直对此持抵触态度,但当他们这样做时,产品也会变得更好。真的有开发组织不
携带警报器吗?哦,是的。哦,是的。我要怎么进入那些组织?那些工作在我一生中在哪里?任何正在收听的听众,如果你是一个应用程序的开发人员,而你在你的组织中不携带警报器,或者开发人员不携带警报器。是的。这是一个大问题。我需要知道。像,
即使在2024年,几乎2025年,这绝对仍然是一个问题。我还认为这取决于反馈循环有多大。有些应用程序,即使通过运营和开发的反馈循环,仍然会比等待客户的票据或人们决定不再使用你的东西要好。你知道我的意思吗?就像即使在最糟糕的情况下...
情况也比许多高质量的团队在FANG领域从客户那里获取产品反馈的方式要好。有时我只是想,你们在做什么?如果我可以谷歌,如果你正在使用某种技术,我可以谷歌其他人询问你关于我问题的帖子,而你在多个论坛上没有解决这些问题,
你在做什么?我的意思是,直到今天,我一生中设置的最佳警报是在迪士尼+推出的前一天晚上。我在Twitter上设置了一个如果这样那样的警报,表示#DisneyPlus宕机。这在我的警报到达之前就把我叫醒了。但这就是我想说的,像,去
获取一个RSS源。你可以查看像Stack Overflow的数据。像有很多方法可以了解你的客户在哪里遇到困难。我们一半的时间都在处理一些对客户影响不大的事情,因为你没有获得正确的反馈循环。像获得那个适当的反馈循环将会让你知道优先考虑什么。你知道我的意思吗?就像,你知道在哪里投入你的开发时间,这是你拥有的最昂贵的东西。因此,这让我感到困惑的是,
有些事情你可以做来自动化,使其变得如此简单,你知道,外面有很多工具和免费的方式来收集这些数据。而人们只是像,我不想在我的工作中变得更好。好吧,这就是其中一个非常困难的事情。因此,回到公共安全,我们与之合作的所有公共安全人员,如果是一些真正生死攸关的事情,
他们有手动的后备方案,他们接受过培训,如果技术不起作用,不要只是退回到手动操作。是的。因为人会死。
因此,我们的反馈,你会认为我们会立即知道,哦,我们无法进入这个东西。像,好吧,他们只是切换到手动,然后在一周后的每周会议上回到CIO。因此,有时我们甚至不知道发生了问题,直到发生一周或两周后。是的。他们绕过了这个问题。他们需要完成某件事情。他们说,我不能,我没有时间处理这个。有人处于危险之中。对。是的。因此,对于我们来说,变得至关重要的是,不仅仅是从便利的角度出发,有时我们甚至不知道是否存在问题。如果我们不运行合成事务来确保发生的事情,我们甚至不会知道存在问题。
这个应用程序是在911呼叫的热路径中,还是在之后的调度中?好的。这真是一个有趣的用例。因为有时我喜欢技术,有时我们会对解决一些随机问题感到兴奋,我不知道是否有人真的要求过,但这是一个如此酷的用例,因为你真的在改善人们的生活,但这仍然是深具技术性的。
世界上只有那么多原创想法仍然存在。你解决了这样一个酷的、重要的问题,真的很不错。谢谢你。我真的很感激。因此,公共安全的问题是,他们是一个非常孤立的行业。我的意思是,甚至比你习惯的许多企业技术还要孤立,它不习惯与其他系统合作。它不是为了与其他系统合作而设计的。
我的意思是,他们为此建立了整个互联网。这是一个私人光纤网络,其他人不允许使用,以便我们可以。好吧,即使如此,你知道,你正在处理一个行业,它非常习惯于更新缓慢和变化缓慢。我不想羞辱那个做这件事的大公司。如果我告诉你他们是谁,并向你展示他们在哪里,你会说,哦,那是他们。
而且,他们是如此孤立,以至于当我们第一次与他们集成SSO系统时,他们只是说,嗯,你能不能把每个人的密码同步到180,让我们运行它?这就像,不,我们在与20个不同的辖区跨越三个州和哥伦比亚特区进行交谈。你想在关闭软件交易之前告诉他们的CIO这样做吗?就像,是的,不,我们不想要那样。
因此,非常孤立。然后因为我们与联邦政府打交道,联邦安全标准,我总是喜欢说,在合规性和安全性之间的斗争中,合规性每次都获胜。就像它总是获胜。
安全性在那场斗争中从未获胜。难道它们不应该几乎是手牵手的吗?我觉得它们总是被视为两个独立的问题,这让我感到奇怪。我知道从逻辑上我们知道这一点,但它们是如此分离,你会认为很多合规性也会像,
我不知道,因安全性而强制或影响。它们是如此奇怪的独立主题,这使得你知道我的意思吗?就像你只是坐在那里,想,既然你不打算互相交流,那有什么意义?好吧,完美的例子。因此,CJIS,刑事司法信息系统,这是FBI发布的IT安全标准。因此,如果你要与他们的系统合作,你必须遵守这一系列功能。
因此,在华盛顿特区地区,你被逮捕时,你的照片会进入一个数据库,而我们为该数据库提供安全性。好吧,CJIS规定的事情之一是,你不能从你正在使用的工作站访问公共网络,因为他们不希望你将这些照片外泄给某人,对吧?这很有道理。除了记住我说的每个辖区都使用微软?
好吧,从2020年开始,这变成了Azure和Azure AD以及Entra。因此,我们不再将你交给在企业网络内部运行的ADFS,
我们开始将每个人交给Entra和Azure AD。因此,Azure AD现在重新品牌为Entra,给任何正在收听的人,如果你没有注意到新的文档。我没有跟上这一点。谢谢。是的,这只有六个月的历史。因此,大多数云,我会在这一点上羞辱微软,大多数云都有某种直接连接,对吧?我忘记AWS称之为什么。
因此,你不会访问公共互联网,对吧?大型企业不会通过公共互联网访问他们的EC2实例,对吧?有一个与Equinix或其他东西的直接连接,对吧?这要么是直接光纤,要么甚至是虚拟设备VPN,类似的东西。对。微软为Azure提供了这个,但不为Entra。你必须访问公共互联网才能对Entra进行身份验证。
没有办法绕过这一点,这在多个层面上让我感到疯狂。但这就是他们的设置方式。因此,现在我在向这些警察解释,嘿,你需要打开所有这些防火墙端口去交谈。当然,微软,不仅仅是一个URL。你必须白名单大约30个不同的URL。</raw_text>
来自Tremolo Security的Marc Boorshtein与Justin和Autumn一起讨论在公共部门运行Kubernetes的所有内容。 加入讨论Changelog++会员在本集节省了8分钟,因为他们让广告消失。今天就加入吧!赞助商:System Initiative – DevOps自动化的未来(就在这里!)— System Initiative是一个直观、强大、协作的基础设施即代码(IaC)替代品。免费层非常棒(无需信用卡),您可以在3次点击中开始。
Kubernetes身份验证和命名空间即服务 Kubernetes身份验证和SSO 介绍 - 外部秘密操作员
<raw_text>0 而且你也不能通过IP来做,因为它们都是动态生成的IP。你知道,范围是0.0.0.0到255.255.255.255。这是微软的IP块。是的,没错。我想微软仍然有slash 8,对吧?没错。但在那个特定的情况下,我想,听着,你可以给每个人发自己的用户名和密码。
或者你必须对这个规则获得一个例外。这是安全性胜出的唯一一次。但Autumn,关于安全性与合规性的问题,为什么会这样?因为很多合规规则并不是以我们今天的集成理念为基础编写的。它们是以非常狭隘的视角编写的。但当你从更广泛的角度来看,这显然是行不通的,对吧?所以这一直是我们斗争的重要部分。
尤其是当我们与联邦政府合作时,我们有一个联邦机构,名字不便透露,他们最初打算将我们集成作为身份提供者,以便让地方更容易访问他们的系统。所以我们有联邦用户访问地方系统。
因为我们已经将所有地方集成,这个小组想要反向操作。他们问,你们是四级认证吗?不,根本不是。做到这一点的成本高得离谱。他们说,是的,不,我们不打算这样做。我们只会发放用户名和密码。
这就像,但那里没有多因素认证。是的,但我们不想,你的合规性对我们来说太麻烦了。所以我们宁愿使用用户名和密码。我们就像,真的?这就是你们想要的?他们说,是的。好吧。这种情况时常发生,看到这一点真让人痛苦。♪
好吧,我和我的好朋友David Hsu在Retool一起。非常喜欢Retool。非常喜欢用Retool构建的内部工具。但David,并不是每个人都知道如何使用Retool。用Retool无法构建什么?是的,Retool非常适合构建任何类型的CRUD应用程序,尤其是你主要关注安全性、身份验证、授权等内部相关的东西。
如果你想构建,比如说,像Google Maps那样的应用,可能不应该使用Retool。你知道,去写一些自定义的JavaScript或React来构建一个像Google Maps那样复杂的应用。但如果你想构建一个CRUD应用,Retool非常适合。而我们特别看到的是,后端工程师对前端经验较少或对前端兴趣不大的工程师非常倾向于使用Retool。
因为对于后端工程师来说,有时你只想获取一个正式类型的数据库,测试它是否正常工作。你想测试一个API,例如。在Retool中快速启动一个应用程序要快得多。他们试图学习React,学习Redux,学习状态管理,学习前端堆栈的所有不同部分。这有点复杂。因此,我认为后端工程师特别倾向于使用Retool来构建快速代码应用。
好的,朋友们,构建内部软件的最佳方式是访问retool.com。您可以无缝连接数据库,使用优雅的组件构建,并在此基础上添加自己的代码。您可以通过不学习React、不学习Redux来加速日常任务,从而腾出时间来处理最重要的事情。再次强调,retool.com。免费开始或预约演示。Retool.com。
回到你正在设置的基础设施,因为你在2019年或其他时间停止销售大部分内容。你已经将所有这些自动化,并且你开始进入开源。之前,你在那里设置了很多东西。都是AD集成。添加更多应用程序。为第一响应者提供网络上的身份。之后发生了什么?发生了什么变化,或者自那时以来你在做什么?我不想说COVID在任何方面都是好的。
它确实加速了对身份基础设施需求的理解,因为每个人都转向在家工作。所以我给你一个例子。我们系统的主要客户是弗吉尼亚州的费尔法克斯县。大约110万人。我们比八个州还大。我们往往在这里的所有区域倡议中处于领先地位。
在一个110万人的县里,你知道,他们有一个非常庞大的县政府。我是大约10个人中唯一拥有VPN的人。
在我认为的3000名IT人员中,我是唯一拥有VPN的10个人之一。他们在2020年没有发放笔记本电脑。他们仍在发放台式机。所有的身份仍然基于网络访问。就像你说的,即使是VPN也是,哦,你有我们其中一个IP地址?我们信任你。你很好。是的。所以,你知道,COVID发生了,在家工作发生了,突然间,身份变得重要。
而且,他们正在淘汰ADFS。他们正在升级到Entra。就像他们正在建立身份基础设施。因此,这使我们能够更加灵活,因为我们可以抛弃我们正在使用的遗留虚拟目录技术。于是发生了这种情况。发生的另一件事是Kubernetes。我们在2015年尝试过使用Docker容器。这是我见过的最美丽的失败之一。
就像它是一个集群,我们想,好的,你知道吗?我们不会碰这个Kubernetes的东西,直到我们可以使用托管服务。我从2015年开始使用Kubernetes。所以,是的,我觉得部署Kubernetes很舒服。对吧。我想,不,我不会处理这个,直到我们有托管服务可以使用。
所以我们最终迁移到了Azure。你知道,这是一种事情,我们会迁移,我们会在某个时候迁移。哦,合同到期了。你需要在接下来的30天内将我们迁移到Azure。走吧。数据中心合同?数据中心。是的。好的。与县的数据中心合同已经到期。所以我们进行了提升和迁移,将所有内容迁移到Azure,仍然在VM上运行。然后在那时,当我们在Azure上时,就像,好的,我们现在可以使用Kubernetes了。
所以我们开始了Kubernetes,并且我们在Kubernetes上的第一次版本迁移比我们想象的要困难得多,这没有人以前说过。这仍然是Windows和.NET吗?不,不。这完全是Java。此时没有.NET。你们什么时候从.NET切换到Java?所以我们的后端一直是Java。我们唯一的前端部分是一个.NET前端。
所以在2017年到2018年左右切换到Java。然后我们实际上摆脱了一个单独的门户应用程序。最初的架构是门户应用程序是一个J2EE Web应用程序,通过使用相互TLS进行安全通信的OpenUnison API。
然后在2018年,我们摆脱了它,切换到AngularJS前端,前端完全在前端,并直接使用令牌与API进行通信。然后我们将这些API代理回来。所以那里有一个DMZ。这确实简化了我们的架构,因为现在我们不必再担心这个门户的事情。
然后我们在2021年迁移到Kubernetes。我们上线了。这很好,因为我们已经将一切自动化到极致。甚至到达这样的程度,如果Ubuntu修补了一个在源容器上的库,那将触发重建,部署到开发环境。
我们有自动化和开发监控。现在,开发并不是24/7运行的,出于成本原因,但我会知道有一些东西发生了变化。我可以启动开发,快速扫描一下,看看一切是否正常,然后推送到产品。这很好。我们已经自动化了我们的监控,然后一旦我们运行了一段时间,我们决定迁移到GitOps。
并将我们所有的清单迁移到Git。你能告诉我们更多关于你是如何自动化的吗?是的,几乎所有的东西都是Azure DevOps。所以,你知道,Azure DevOps就像Azure的GitHub Actions,基本上,对吧?因此,我们能够建立一个组合。我的意思是,这有点像一个鲁布·戈德堡机器,但它运作得很好,因为我们是供应商,对吧?因为我们是一个软件供应商。我们不仅仅是专业服务。我们不是,你知道,我们是供应商,承担了这个责任,而不是,这成为我们的主要产品。因此,我们能够以这样的方式将其集成到我们的供应商系统中,当我们知道OpenUnison被修补时,
这将触发一个Webhook,修补一个私有Git仓库,然后触发Azure DevOps运行并重新运行构建,将容器推送到Azure注册表。然后在我们迁移到GitOps之前,它会修补开发Kubernetes实例,开发AKS实例。
然后这将开始进程。当我们对一切感到满意时,我们只需运行一个简单的脚本,该脚本将获取在开发中运行的版本,并修补所有生产中的清单以迁移一切。因此,这一切都非常干净,非常简单。
Azure DevOps的后端是一个开源工具吗?它不仅仅是像Jenkins或Spinnaker之类的东西,对吧?它是一个自定义的东西吗?我不知道。好的。我不确定。我不知道。我从未使用过它。所以我对此有点好奇。我们的东西都是YAML bash,混合体。但我不知道这是个好问题。我不知道它是否是开源后端。我认为不是。
我认为这是某种自定义的东西,但我从未真正研究过。所以我对此有点好奇。第二个问题是,从我们有这个基于推送的管道到一个基于拉取的控制器的转变,对吧?GitOps控制器与之前的...你仍然可以在Azure DevOps中存储清单。你仍然可以做很多相同的事情,但推送与拉取...
你为什么觉得你必须转向这个?是什么促使的?这将是一堆工作。这将改变我们的工作方式。你预计会获得哪些好处?所以实际上有一个非常具体的原因促使它。这是我们一直想做的事情,只要我们有时间和预算。但促使它的实际原因是,我们想要一个备用实例。因此,当一切开始时,我们意识到,
我们非常专注于这个光纤网络,对吧?在光纤网络上运行的东西,通过它可访问的东西,我们有几个应用程序托管在互联网上,但大多数情况下,一切都在这个光纤网络上。
好吧,时代在变。已经过去20年,大多数应用程序已经转移到商业互联网。同时,我们现在处于这样一个阶段,如果美国关闭我们的互联网,世界将会在没有我们的情况下生存。对吧。从互联网的角度来看,我们不再是。我认为这是真的。我不认为我在编造这个。我认为在过去十年中发生了这种情况。
即使美国东部1区宕机,世界一半也会停止。我不知道。好吧,那有点不同。但仅从通过电缆传输的字节来看,我认为在某个时候,我想说是在2010年左右,有一个阈值被突破,全球有足够的电缆基础设施和骨干网,如果有人切断美国与物理互联网的连接,
全球互联网将继续存在。这在美国也是如此,对吧?互联网的骨干网变得越来越多,尤其是在华盛顿特区,你随便扔一块石头就能砸到三个数据中心。因此,人们对这个骨干网络的依赖减少了。商业服务对政府服务变得越来越重要。因此,我们的更多应用程序开始在互联网上运行。
包括一些我们关键的公共安全应用程序,作为互联网的SaaS解决方案。此外,我们正在使用的身份都是来自Azure。它们不是来自某个AD,也不是来自某个正在运行的ADFS,或者某个正在运行的ping联合服务器。它们都是来自Azure。因此,
除了NCRnet仅限于应用程序外,没有其他联系。所以有人说,如果这个网络宕机怎么办?现在怎么办?这是否意味着所有这些关键服务都会因为这个网络宕机而消失?
并不是要贬低那些建立了一个拥有多个冗余和其他所有东西的惊人网络的工程师。但这是一种故障模式。因此,他们说,我们需要有另一个实例。我想,这一切都是自包含的。这不是火箭科学。归根结底,这只是一堆Web应用程序。但我不想在两个不同的集群之间维护配置清单。这是一个失败的游戏。我永远不会赢得这个游戏。
所以这是主要驱动因素,决定说,你知道吗,我们将从将所有内容存储为API服务器内的清单转向GitOps。这样我们就可以在两个不同区域拥有这两个环境的实例,以便在NCRN宕机时能够存活。
但像GitOps并不是一个要求,因为你可以在两个不同区域有两个DevOps,使用一个Git仓库推送到两个地方,对吧?这不是一个...你可以这样做,但这是我们想要的方式。我们希望能够说,这是我们的清单,因为如果我们需要快速重建这个系统,我们希望能够说,这里是所有的清单,准备好了,而不必说,好的,我们将不使用像terraform或...
Pulumi来构建它,对吧?我们依赖于Kubernetes API。清单本身都是相对静态的。这些基础设施来处理这个实际上并不复杂。这是一个Web应用程序。它有一个数据库。
你知道,它有一个消息总线。有几个不同的应用程序与之集成。但,你知道,你有一个前端应用程序。你有一个后端应用程序。你有几个不同的API。你知道,我们依赖于Azure的秘密管理和数据库等等。但这不是一个无状态应用,但大多数关键部分都是相对无状态的。因此,GitOps是我们能够走这条路的一个好选择。
Azure有,我不知道,我真的不知道这个。他们有像AWS那样的GovCloud吗?这是你在运行这个还是在标准公共云上?这都是商业的。是的,都是商业的。作为一个构建非常敏感、信息敏感且对很多人生活至关重要的团队,我想说,总体而言,这些是紧急服务。Azure的所有安全漏洞在过去对你产生了什么影响,我的意思是,你已经在那里待了很长时间。我们自2020年以来一直在这里。所以我们已经待了大约四年。对吧。就像是,他们没有减少,呃,
随着时间的推移。我有点好奇,这对你正在做的事情有什么影响?因为如果你不在一个特殊的云环境中,你可以尽可能保护你的应用程序。但如果底层,比如说,实际上只是像,你可以读取另一个帐户的数据库,对吧?就像Cosmic或其他什么的,简直就是,哦,这只是像,我们发现了这个东西,人们可以在没有任何安全指南的情况下跨帐户读取。那这对你正在做的事情和你的思考有什么影响?
我们实际上没有受到任何Azure特定安全问题的影响。像Cosmo的那个没有影响到我们。log4j对我们来说是一个大问题,因为我们是基于Java的。那是一天奇怪的日子,因为我在县里还有其他合同使用我们。然后,我起床开始查看Twitter。我想,嗯,log4j,哦,太好了。好吧,让我们看看发生了什么。我想,哦,天哪。
妻子,请去把孩子送掉。我现在得专注于这个。
所以那是一天。但从安全的角度来看,Azure的问题,我们大多是隔离的,因为我们没有使用那些受到严重攻击的服务。我的意思是,你在运行Java和Kubernetes。这是一个相当不错的服务领域。我不接受对Java和Kubernetes的任何仇恨。它运作得很好。谢谢你。告诉他。告诉他。是的。Java,Kubernetes。
好吧?他们彼此相爱。看吧?我喜欢Mark。是的,我们很酷。他理解我。作为一家公司,Tremolo,我们在流行之前就一直在做整个S-bomb的事情。我们的发布回溯至少七到八年...
我们的目标始终是在我们发布时在扫描器上保持零蛋。你知道,它不会保持这种状态超过30秒,但至少我们尝试过,对吧?你知道,Bart,你知道,像蛋糕一样,至少你试着把它扔进垃圾桶。但,你知道,所以我们不断保持更新,从这个角度保护前门。
不,我们在Azure上遇到的痛苦是,他们总是不断更改东西,并且不断弃用东西。像我用来在一年内部署AKS集群的模板完全无法使用。他们总是倾向于做这些破坏性更改。
而且这并不是Kubernetes本身的问题。就像,哦,我们正在改变日志聚合的方式到这个东西。而我只是想运行一个Kubernetes集群。
我能否只运行一个Kubernetes集群?可以吗?你知道,他们总是在做那些小的变化,这使得自动化变得困难。这让生活变得令人愤怒。你知道,我下周要在盐湖城做一个演讲,我需要一个Kubernetes集群,而我有所有这些免费的Azure积分。我去启动它,我无法访问我的Ingress控制器。我无法访问Ingress Nginx。
这不是网络策略。它只是,知道,KubeNet。因此没有政策可言。这不是我到公共IP地址的网络问题,健康探测看起来正常。我无法访问它。我想,发生了什么?
所以我发现Azure在运作良好时,运作得非常好。我觉得他们从AWS那里招募了那些在界面设计上失败的人,并为Azure Cloud构建了他们的界面。你在说失败的AWS设计师是Azure的设计师,哇。
我知道。我不喜欢抨击,但我会给你一个例子。我们使用Azure Secret Manager。在AWS方面,我是ParamStore的忠实粉丝。ParamStore,它有点笨重的界面,但只要你知道如何进行基于路径的处理,你可以在最糟糕的情况下缩小范围,对吧?
你在Azure中无法做到这一点。没有办法。所以你只是在点击下一步,下一步,下一步。如果你必须通过UI做某事。这是一个辛辣的观点,但我迫不及待想看看这将如何发展,因为结果不会好。如果你现在有这样的感觉,给它六个月。因为另一个不会更好。是的。因此,Azure确实面临许多挑战,
我会给Azure一个大大的赞。我们正在使用他们的MySQL数据库,他们需要我们从一个产品迁移到他们的新产品。你知道,我们没有一个大型数据库,但这算是关键数据。
所以,你知道,我在试图弄清楚如何做到这一点。我想,不,我们想和你通话。我想,哦,天哪,他们会有500个人在电话上,没人知道他们在说什么。他们都是销售代表。我上了电话,他们上面有非常聪明的人,他们知道自己在做什么。他们说,是的,我们理解你担心的是什么。这是正确的做法。它顺利进行。
我会说,基于过去的经验,我没有预料到这一点。他们把这个迁移做得很好,正如他们所说的那样。它进行了单次迁移加实时数据。因此,我们能够让整个系统正常运行。然后我们能够选择一个日期进行切换,一切运作得非常顺利。我想,耶,
你们值得赞扬。我不会撒谎。我对这一切能顺利进行没有任何信心。我们唯一的停机时间是因为我犯了错误。你当时是零信心。你当时是说,我没有希望。但你们做到了。你们做得很好。我们唯一的停机时间是因为我自己的愚蠢。我犯了一个错误。否则,我们将没有停机时间。太美好了。谢谢。
所以
好的,朋友们,我和我的好朋友Avtar Swithin在Timescale。他们将Postgres定位于从物联网、传感器、AI、开发工具、加密和金融应用程序的一切。所以Avtar,帮我理解为什么Timescale认为Postgres最适合用于AI应用程序。
根据Stack Overflow开发者调查,它是最受欢迎的数据库。Postgres的一个显著特点是它是可扩展的。因此,您可以将其扩展到超越关系和事务数据的用例,例如时间序列和分析。这就是Timescale公司起步的地方,现在更近期的向量搜索和向量存储,对像RAG这样的应用程序产生了超级影响。
推荐系统,甚至AI代理,我们今天看到的这些东西越来越多。是的,Postgres非常强大。开发人员非常喜爱它。我觉得更多的开发人员,因为他们了解它,可以使更多的开发人员成为...
AI开发人员,AI工程师,并构建AI应用程序。从我们的角度来看,我们认为Postgres确实是一个不二之选。您不必管理不同的数据库。您不必处理数据同步和数据隔离,因为您有三个不同的系统和三个不同的真相来源。我们在
性能和可扩展性方面做了一些工作。因此,我们构建了一个名为PG Vector Scale的扩展,增强了Postgres的性能和可扩展性,以便您可以自信地将其用于大规模AI应用程序,如RAG和代理等。此外,另一个领域是,回到你所说的,帮助越来越多的开发人员跳入构建AI应用程序并成为AI工程师,利用他们已经拥有的专业知识。因此,这就是我们构建的
PGAI扩展,它将LLM引入Postgres,以便在您的Postgres数据上启用LLM推理,以及嵌入创建。基于所有这些原因,我认为在构建AI应用程序时,您不必使用新的东西。您可以直接使用Postgres。好吧,朋友们,了解Timescale如何使Postgres强大。超过300万个Timescale数据库为物联网、传感器、AI、开发工具、加密和金融应用程序提供支持,他们都在
Postgres上运行。Timescale为一切使用Postgres,现在您也可以。了解更多信息,请访问timescale.com。再次强调,timescale.com。
您正在运行的应用程序如何?这不仅仅是身份,现在对吧?这仍然是针对那些地区、第一响应者的身份,还是超越了这一点?所以我们还有几个其他应用程序在里面管理。所以主要的是一个开放的统一实例,处理身份方面以及门户。
所以这是主要应用程序。我们有一个Mattermost。这是一个Slack克隆。我们推出了它。我们称之为区域聊天。我喜欢它。我觉得它运作得很好。但问题是,我们在与Teams竞争。因此,这有点困难,这让我感到奇怪,但有点难以说,不要使用Teams。使用这个东西。因为即使每个人都喜欢Teams,
它在那里并且99%的时间都能正常工作。因此,这从未真正获得我们希望的关注。我们运行一个Wikijs实例,我们用它来托管我们需要的文档。因此,这些是主要的。我们有一个电子邮件服务器,这实际上有点有趣。但Office 365就在那儿。什么...
不。你在2024年运行你的电子邮件服务器。所有看不到Justin脸的人。在他说那句阴暗话之前,他的脸上笑容是如此灿烂。就像我只是为了上下文,在他甚至没有说完之前,他就笑了。
<context>公共安全Kubernetes 来自Tremolo Security的Marc Boorshtein与Justin和Autumn一起讨论在公共部门运行Kubernetes的所有内容。 加入讨论Changelog++会员在本集节省了8分钟,因为他们让广告消失。今天就加入吧!赞助商:System Initiative – DevOps自动化的未来(就在这里!)— System Initiative是一个直观、强大、协作的基础设施即代码(IaC)替代品。免费层非常棒(无需信用卡),您可以在3次点击中开始。
Kubernetes身份验证和命名空间即服务 Kubernetes身份验证和SSO 介绍 - 外部秘密操作员
<raw_text>0 就像他的微笑就像他节拍的一半。我在试图理解。就像你有,你就像,哦,Teams在那边。但你也有Office 365。就像有一些邮件服务器。- 不,你比你想的更正确。- 他并不是在试图理解。他把你引入阴影。他就像,来和我一起工作。
哦,不,我是自愿去的。我知道那会发生。我想看看你们是否会提到这个。邮件服务器是什么?你在运行什么?你在DoveCut上吗?你在运行什么?等等,Mark就像,我是自愿去的。我太乐意了。就像,我无法和你们一起。等等。所以,好吧。这儿有个故事。所以SharePoint现在是SharePoint Online。
所以我们这个服务的最大客户之一是一个区域SharePoint系统,我们为其提供了SSO已经五六年了。它是一个本地系统,我们必须做一些有趣的事情才能使其工作。好吧,他们厌倦了管理SharePoint系统。他们想把它搬到线上。是的,不,这就像第一天。不要运行自己的SharePoint服务器。对。这是第二次迭代。所以他们想迁移到SharePoint Online。
当你做SSO时,Azure有这个B2B的概念,对吧?公司与公司进行某种SSO。
还有B2C,公司与客户。好吧,我们是一个SSO系统,对吧?我们是一个身份聚合系统。所以理论上,我们想要的是,抱歉,你去SharePoint Online,他们把你转到我们这里进行身份验证,然后我们把你路由到正确的东西。这在两个层面上都是一个问题。第一层是如果你是Azure内部的租户,
他们直接去你那里,对吧?所以我输入我的fairfaxcounty.gov电子邮件地址。他们直接绕过我们的系统。IAMS就是它的名字。国家首都地区IAMS。身份和访问管理。所以这是第一个问题,这并不是那么大的问题,因为我们仍然有一些与配置相关的事情要做。第二个问题是美国联邦政府。所以我提到我们在一个商业租户中运行。SharePoint也是如此。
联邦政府不在商业租户中运行,如果你是商业的,你不能邀请客人进入你的租户。那是政府。所以我们有两个问题需要处理。一个,我们不仅仅维护与其他身份系统的代理。我们还维护所谓的外部账户。
所以也许你是一个承包商,也许你在为一个非政府组织工作,但与政府合作,对吧?你不是我们SSO派对的一部分。所以我们为你维护一个凭证。所以我们也有那些凭证。现在我们与联邦政府集成,因此我们可以验证任何美国联邦用户。那么问题是,我们如何让Azure将我们识别为身份提供者?
我们遇到的另一个技术问题是,你可以对微软说,嘿,对于tremolosecurity.com,去SAML给他们。
问题是我们必须证明我们拥有tremolosecurity.com,因为他们不想让某人进行代理攻击。我明白这一点,对吧?但他们也没有任何机制来解决这个问题。他们有非常具体的例外,比如Okta作为一个例子。你可以绕过这个。所以我们最终不得不为美国联邦用户和这些没有管辖账户的外部用户,
创建一个电子邮件域别名,以便被识别。所以我们运行一个电子邮件服务。我们必须完全重新架构一切,以确保它是隔离的。但我们运行一个电子邮件转发服务,你必须有一个电子邮件,对吧?否则它会被拒绝。所以你必须知道你发送的人的电子邮件。它必须存在。
它会转发给他们。所以现在当我们向微软注册邀请时,它是在我们的域名下,而不是他们的主域名。所以他们仍然使用他们的主凭证,但他们使用我们的电子邮件转发服务。所以我们不维护像电子邮件箱那样的东西。我们必须转发它。
但这又是另一件有趣的事情,因为我们最初是用简单的SMTP来做的。当我们第一次上线时,它工作得很好。然后大约三周后,人们停止收到电子邮件。我们发现基本上如果电子邮件来自任何三个主要公共云,它会被所有人阻止。所以如果它来自Azure,来自Google,来自AWS,无论如何,它都会被阻止。
所以我们最终去AWS说,好吧,我们将所有内容转发到SES。
这解决了问题,因为现在我们能够用所有正确的头信息和一切重写它。然后我去SES。这实际上是运行电子邮件服务器的虚拟机吗?你是将其转发到,是的,因为你需要那个信任,对吧?就像,电子邮件有一个巨大的网络,我在什么IP地址上接收这个?你是垃圾邮件还是不是?因为它只是被滥用,对吧?这只是一个开放的东西,在互联网上。
所以有人注册,他们说,我是一个承包商。我没有这个账户。我需要注册,但我会在你的域名下注册。我仍然会通过亚马逊的服务将电子邮件转发给我,回到我实际的正确域名。但当我登录时,我是在你的子域名下登录,因为这是在这里被信任的,像,是的,我拥有那个子域名。即使电子邮件返回给我。是的。
这有点像鲁宾戈德堡。它工作得很好。一旦我们搞清楚了,好的,我们不能自己发送电子邮件。我们必须通过类似SES的服务发送它。一旦我们搞定了所有的头信息和一切,它就美妙地工作。但不,这是一种在集群中运行的容器。我们用网络策略锁定了一切。所以,你知道,那个特定的容器没有服务账户。
所以它没有,如果那个东西被攻破,你无法从中逃脱。就像,你可以上网,但你无法访问API服务器。你无法从这些容器内部访问任何东西。而且没有身份。所以即使你确实尝试了,即使你有访问API服务器的权限,也没有什么可以滥用的。没有密钥。但我的意思是,他们有流动的电子邮件。是的,电子邮件流动。是的。
这就像人们可能想要的东西。唯一的事情是,它是通知。就像,嘿,你被邀请到这个租户。有人更新了这个文档。它不是一个通用的目的。但我的意思是,你正在收集电子邮件地址,在哪里,不是SES会知道它的去向。好吧,单独的电子邮件地址并不算作PII。
因为它没有与任何东西关联。你必须有,我认为是三部分。是的,我认为回到这一点,像...
电子邮件不是一个好的身份。我们已经将其用作身份很长时间了。不,这是一个糟糕的身份。这是一个问题,像,是的,这个东西必须在某个地方存在,因为这仍然是以某种形式将信息传递给某人的方法,对吧?我们没有其他系统可以做到这一点,但同样,它根本不应该是你的身份。不,绝对不。我总是对所有愿意倾听的人说,不要使用电子邮件地址。这是一种反模式。
名字因无数不同的原因而不断变化,对吧?域名也会变化等等。但不仅如此。人们会改变他们的名字。
这并不是一个不常见的事情。在许多不同的背景下,这是一件相当普遍的事情。伙计,没有人谈论离婚后你改变名字的事实。你不能改变你的电子邮件,所以你就永远被困在那儿。是的,你被困在那儿。是的,这太烦人了。我想,我想我可以重定向它,但这会是个麻烦。而且你必须有这么多的登录。这真是个坏主意。
所以,你知道,有名字变化。还有过渡。有很多人只是说,我不想再用这个名字了。对吧?人类的名字是计算机识别孩子的糟糕方式。我甚至没有选择我的名字。对吧?我的父母决定这是个男孩。没错。没错。有很多人说,我不想要我父母给我的名字。我是谁能告诉他们不?
是的。这是一个糟糕的标识符。所以你在Azure。你有GitOps。系统的下一步是什么?有哪些新改进?你在未来五年里关注什么?哦,五年。我是说,我们不必谈论所有五年,但一般来说,你正在朝着什么方向前进?我们现在处于一个相对稳定的状态。我们总是在添加新的应用程序。我真正想做的事情是,OpenUnison...
有两种配置方式。传统方式,即嵌入容器中的XML,以及新方式,实际上并不算新,我们已经做了几年了,就是在集群内部运行的CRD。自定义资源定义,供任何人使用。是的,自定义资源定义,没错。所以今天...
我为系统内的不同角色准备了不同版本的OpenUnison。我有一个身份提供者。我有一个配置系统。这是我们现在唯一的两个角色。我们曾经有一个虚拟目录。我们曾经有一个代理。
所以,你知道,那些是它们自己的代码库,如果我想做出更改,我必须运行构建,生成一个新的容器,推送那个容器,测试它,然后移动它。这是一个漫长的周期。就像,这,知道,可能需要几分钟才能完成这个漫长的周期。在这种情况下,现在我开始查看Twitter或Blue Sky,我的心理健康就崩溃了。
所以我理想中想做的是将其转换为大多数人今天运行OpenUnison的方式,其中有一个基础容器,所有内容都作为CRD动态拉入。它是热的,对吧?就像它不仅仅是很棒,而是实时的,对吧?我做出更改,OpenUnison本身就是一个操作员。所以它看到更改并立即拾取。
所以然后我也可以将所有这些清单移动到存储所有操作清单的同一个repo中。这样我就可以有一个巨大的repo来存储所有内容。所以这将是我未来想去的地方。现在我们正在更改我们的界面,我对此非常高兴,因为我们已经有了相同的基于bootstrap的界面大约...
快10年了。我们正在切换到,如果任何正在收听的人使用,就像bootstrap V2。是的,不,我们正在切换到一个漂亮的基于材料的UI。我们重写了OpenUnison UI,使用react和material。如果我必须做前端,像react和material是我最喜欢的。这是唯一一个不会让我全身起疹子的东西。是的,
这是最好的。这对我来说是一个调整,因为我不是专业的前端开发人员,但我喜欢它。它就是快。我从未意识到我们旧界面是多么缓慢和笨拙,直到我开始使用基于React的界面。我想,哦,我的天,这太快了。它也非常用户友好。它对我的大脑比许多其他前端方式更有意义。是的。是的。
所以,是的,这将是下一个主要项目,完成界面改造。然后像,这些是大项目。我们在许多事情上已经相当前沿,我们已经将我们的秘密管理外部化。