草庐IT

Linkerd 通过 ServiceProfile 实现超时和重试

Linkerd服务网格解决的最重要问题之一是可观察性:提供服务行为的详细视图,Linkerd对可观察性的价值主张是,它可以为你的HTTP和gRPC服务提供黄金指标,这些都是自动执行,无需更改代码或开发人员参与的。开箱即用,Linkerd在每个服务的基础上提供这些指标:跨越服务的所有请求,无论这些请求是什么。然而,有时需要获得更细粒度的指标。例如前面的 Emojivoto 应用程序中的Emoji微服务,前面章节中看到的Linkerd报告的指标是在该服务的所有端点上聚合的。在实际场景下面,我们可能还希望看到特定端点的成功率或延迟,例如,一个端点可能对服务特别关键,或者特别慢。为了解决这个问题,Li

像 Chrome DevTools 一样的后台调试工具 Sidekick

Sidekick 是一个开源的实时应用程序调试器,可让你在应用程序运行时对其进行故障排除。添加动态日志并在你运行的应用程序中放置不间断的断点,而无需停止和重新部署。Sidekick 允许我们进行自托管使实时调试更易于访问,专为需要从运行的应用程序中获取额外信息的开发者而设计的。简介在远程环境中调试应用程序很痛苦,因为你无法像在本地环境中那样为远程应用程序设置断点。Sidekick 背后的主要动机是帮助开发人员减轻在分布式环境的远程开发过程中由于缺乏调试工具而造成的痛苦。Sidekick 消除了调试的负担,使开发人员能够为你的代码设置一个非侵入式断点,这不会中断执行,即使你的应用程序已启动并正在

聊一聊Kubernetes工作负载管理

在Kubernetes中,Pod是最小的管理单元,是一组紧密关联的容器组合。但是,单独的Pod并不能保障总是可用,比如我们创建一个nginx的Pod,因为某些原因,该Pod被意外删除,我们希望其能够自动新建一个同属性的Pod。很遗憾,单纯的Pod并不能满足需求。为此,Kubernetes实现了一系列控制器来管理Pod,使Pod的期望状态和实际状态保持一致。目前常用的控制器有:DeploymentStatefulSetDaemonSetJob/CronJob这里只介绍Deployment、DaemonSet、Job/CronJob。StatefulSet留到后面​​Kubernetes有状态应用

在 Argo CD 中使用 Sops 增强 GitOps 安全性

GitOps的核心理念就是一切皆代码,意味着用户名、密码、证书、token等敏感信息也要存储到Git仓库中,这显然是非常不安全的,不过我们可以通过Vault、Keycloak、SOPS等Secret管理工具来解决,最简单的方式是使用SOPS,因为它可以使用PGP密钥来加密内容,如果你使用kustomize则还可以在集群内使用相同的PGP密钥解密Secret。ArgoCD虽然没有内置的Secret管理,但是却可以与任何Secret管理工具集成。sops​ 是一款开源的加密文件的编辑器,支持YAML、JSON、ENV、INI和BINARY格式,同时可以用AWSKMS、GCPKMS、AzureKey

一篇文章教你如何开发ChatOps

目的是什么为啥要开发ChatOps,那是个啥玩意?现在各种Ops,比如DevOps,AIOps,ChatOps,NoOps等等,反正其背后的意义就是各种卷运维,让运维无路可走。既然如此,为何咱还出力不讨好的开发ChatOps呢?我的理解是“闲的”,用聊天的形式来做一些运维工作。典型的应用场景如下:(1)、和Jenkins、GitLab、GitHub等CI/CD工具结合,执行构建、发布,代码合并等。(2)、和JIRA、Trello、Tower、禅道、邮件等办公系统结合起来,处理任务。(3)、和Kubernetes云平台结合起来,执行容器的创建、发布等管理。(4)、和Zabbix、Promethe

一篇文章教你如何开发ChatOps

目的是什么为啥要开发ChatOps,那是个啥玩意?现在各种Ops,比如DevOps,AIOps,ChatOps,NoOps等等,反正其背后的意义就是各种卷运维,让运维无路可走。既然如此,为何咱还出力不讨好的开发ChatOps呢?我的理解是“闲的”,用聊天的形式来做一些运维工作。典型的应用场景如下:(1)、和Jenkins、GitLab、GitHub等CI/CD工具结合,执行构建、发布,代码合并等。(2)、和JIRA、Trello、Tower、禅道、邮件等办公系统结合起来,处理任务。(3)、和Kubernetes云平台结合起来,执行容器的创建、发布等管理。(4)、和Zabbix、Promethe

Compose组件下对Modifier中padding的理解

Compose组件下对Modifier中padding的理解前言开发原生安卓对padding的理解相信对一个成熟的android开发者是非常熟悉的,但是在申明式UI的大背景下,padding却没有了原有的意思,取而代之的只留白的思想,所以本文对Modifier下的padding进行一下分析理解问题的引出首先看下面两段代码:代码一:Text(text="这是一个textView",textAlign=TextAlign.Center,fontFamily=FontFamily.Cursive,modifier=Modifier.wrapContentWidth().wrapContentHeig

Compose组件下对Modifier中padding的理解

Compose组件下对Modifier中padding的理解前言开发原生安卓对padding的理解相信对一个成熟的android开发者是非常熟悉的,但是在申明式UI的大背景下,padding却没有了原有的意思,取而代之的只留白的思想,所以本文对Modifier下的padding进行一下分析理解问题的引出首先看下面两段代码:代码一:Text(text="这是一个textView",textAlign=TextAlign.Center,fontFamily=FontFamily.Cursive,modifier=Modifier.wrapContentWidth().wrapContentHeig

项目管理和缺陷跟踪系统 Redmine

1.Redmine概述Redmine是用Ruby开发的基于web的项目管理软件,是用ROR框架开发的一套跨平台项目管理系统,支持多种数据库,有不少自己独特的功能,例如提供wiki、新闻台等。还可以集成其他版本管理系统和BUG跟踪系统;例如SVN、CVS、TD等。这种Web形式的项目管理系统通过项目(Project)的形式把成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,项目成员参与更新任务、文档等内容来推动项目。安装Redmine一些有用的知识点Redmine集成环境(RedminepackagedbyBitnami)https://bitnami.com/stack/redmin

项目管理和缺陷跟踪系统 Redmine

1.Redmine概述Redmine是用Ruby开发的基于web的项目管理软件,是用ROR框架开发的一套跨平台项目管理系统,支持多种数据库,有不少自己独特的功能,例如提供wiki、新闻台等。还可以集成其他版本管理系统和BUG跟踪系统;例如SVN、CVS、TD等。这种Web形式的项目管理系统通过项目(Project)的形式把成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,项目成员参与更新任务、文档等内容来推动项目。安装Redmine一些有用的知识点Redmine集成环境(RedminepackagedbyBitnami)https://bitnami.com/stack/redmin