InfraPub 为您找到相关结果 372

六个开源软件开发的潜规则

玲珑,面面俱到 作为一个开发者,你很可能希望为开源项目解决一个特定的痛点。或许你想要运行在一个目前还不支持的系统上,抑或你很希望改革社区目前使用的安全技术。想要引进新技术,特别是比较有争议的技术,最好的办法就是让人无法拒绝它。你需要透彻地了解底层代码,考虑每个极端情况。在不影响已实现功能的前提下增加新功能。不仅仅是完成就行,还要在特性的完善上下功夫。 糜不有初,鲜克有终 开源社区也有许多玩玩就算的人,但是承诺了就不要轻易失信。不要就因为提交被拒就离开社区。找出原因,修正错误,然后再试一试。当你开发时候,要和整个代码库保持一致,确保即使项目发生化而你的补丁仍然可用。不要把你的代码留给别人修复,要自己修复。这样可以在社区形成良好的风气,每个人都自己改。 这些“潜规则”看上去很简单,但是还是有许...阅读全文

博文 2017-05-20 10:27:11 debian.cn

欧洲核子研究组织(CERN)是如何使用 Linux 和开源的 - 云+社区

解决方案的可扩展性时,我们也从中受益,也可以扩大规模。“解决现实问题2012 年左右,CERN 正在研究如何为大型强子对撞机扩展计算能力,但难点是人员而不是技术。CERN 雇用的员工人数是固定的。“我们必须找到一种方法来扩展计算能力,而不需要大量额外的人来管理。”Bell 说,“OpenStack 为我们提供了一个自动的 API 驱动和软件定义的基础架构。”OpenStack 还帮助 CERN 检查与服务交付相关的问题,然后使其自动化,而无需增加员工。“我们目前在日内瓦和布达佩斯的两个数据中心运行大约 280000 个处理器核心和 7000 台服务器。我们正在使用软件定义的基础架构使一切自动化,这使我们能够在保持员工数量不的同时继续添加更多的服务器。“Bell 说。随着时间的推移,CERN...阅读全文

博文 2021-11-29 13:20:55 腾讯云

kubelet 绑核与不绑核的性能差别

同一台主机,同样的workload,kubelet 中配置CPU绑定后的性能化: 绑核的配置放在 /etc/kubernetes/kubelet 中的这两行: ``` FEATURE_GATES="--feature-gates=CPUManager=true" CPU_MANAGER_POLICY="--cpu-manager-policy=static" ``` 绑核前: ``` procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in...阅读全文

Kubernetes 1.9发布:Apps Workloads通用版本与生态系统扩展

期,并使得更多贡献者乐于投身其中并建立起更具活力的生态系统。 项目态势 CNCF方面已经建立起一个野心勃勃的项目,希望以可视化方式呈现Kubernetes项目中各项贡献的具体内容。K8s DevStats[10]则展示了各大型企业贡献者带来的成果。在本轮版本发布期间,开放问题的数量基本保持不,但fork与项目各独立库数量则上涨了约20%。自上次发布以来,提交者数量略有上升,但整体来看基本保持稳定。Kubernetes目前拥有75000多条评论,仍然是GitHub上最受关注的项目之一。 原文参考这里。相关链接: https://kubernetes.io/docs/reference/workloads-18-19/ https://github.com/kubernetes...阅读全文

博文 2017-12-17 01:00:00 debian.cn

Kubernetes v1.21 新特性预览

Kubernetes v1.21 下个月就要发布了(v1.21.0 将于 4 月 8 日发布),本文梳理该版本带来的新特性,以便你为下个月的升级做好准备。PodSecurityPolicy 弃用PodSecurityPolicy(PSP)是 Kubernetes 1.8 开始就支持的 Beta 特性,大量应用于容器的安全策略控制。但由于其 API 不够灵活、认证模型不够完善且配置更新繁琐等缺陷,PodSecurityPolicy 将在 v1.21 正式弃用[1],并将在 v1.25 中从代码库中删除。已经使用 PodSecurityPolicy 的用户建议迁移到 Gatekeeper[2]。不可 ConfigMap/Secret 进入稳定版当集群包含大量 ConfigMap 和...阅读全文

博文 2021-03-30 20:24:36 mp.weixin.qq.com

如何在 Debian服务器 上启用双因子身份验证

pam_google_authenticator.so 此外,我们还需要注释掉这一行 "@include common-auth”,这样 PAM 就不会提示输入密码,修改后如下: # Standard Un*x authentication. # @include common-auth 接下来,我们需要编辑 SSH 服务器配置文件: vim /etc/ssh/sshd_config 改 ChallengeResponseAuthentication 的值为 yes,以便我们启用键盘交互的认证方式: ChallengeResponseAuthentication yes 接下来,添加以下代码行来启用两个身份验证方案:SSH 密钥和谷歌认证器(需要键盘交互): AuthenticationMethods "publickey,keyboard...阅读全文

博文 2018-12-05 11:44:56 debian.cn

Docker 快速入门之 Dockerfile

用 docker inspect 命令查看。可用来代替被舍弃的 MAINTAINER 命令。语法: LABEL = = = ... 3.5 EXPOSE EXPOSE 指令用于告诉 Docker 容器监听的特殊端口,但是此时端口还没有暴露给 host ,只有当在运行一个容器显式用参数 -p 或者 -P 的时候才会暴露端口。语法: EXPOSE [/...] 3.6 ENV ENV 指令用于设定环境量。语法: ENV ENV = ... 3.7 ADD ADD 指令用于复制新文件,目录,远程文件到容器中。其中 可...阅读全文

博文 2017-12-16 13:50:31 debian.cn

大起底:揭开亚马逊云计算丰厚利润的秘密 - 电子商务

需要租赁托管的服务器来运行网站,他们必须支付足够费用才能获得想要的性能。阿尔瓦雷兹介绍说,科技公司租用的服务器往往超过了实际所需,造成浪费。亚马逊联系到了他,介绍即将推出的新服务,并提供了提前试用。阿尔瓦雷兹回忆说:“一瞬间我明白了,亚马逊提供了一个改我一生的产品,这将改我的人生,以及所有开发者的人生。”这样的评价并不夸张。S3蓬勃发展,时至今日已经在网络上保存了100万亿个数据对象。亚马逊云计算负责对象和块存储的副总裁麦兰·汤姆森·布科维奇(Mai-Lan Tomsen Bukovec)在接受电视媒体采访时介绍说,今天一些企业客户存储的数据多达几百PB(1PB等于1024TB),某些案例下甚至多达1EB(等于1024PB)。有时候,企业在S3上保存的数据超出了必要。上述业内人士金塞拉回...阅读全文

博文 2021-09-07 11:41:54 cnBeta.COM

分布式任务调度平台 XXL

任务,”CommandJobHandler”);业务方只需要提供命令行即可; 6、任务状态优化,仅运行状态”NORMAL” 任务关联至 quartz,降低 quartz 底层数据存储与调度压力; 7、任务状态规范:新增任务默认停止状态,任务更新时保持任务状态不; 8、IP 获取逻辑优化,优先遍历网卡来获取可用 IP ; 9、任务新增的 API 服务接口返回任务 ID,方便调用方实用; 10、组件化优化,移除对 spring 的依赖:非 spring 应用选用 “XxlJobExecutor” 、spring 应用选用 “XxlJobSpringExecutor” 作为执行器组件; 11、任务 RollingLog 展示逻辑优化,修复超时任务无法查看的问题; 12、多项 UI 组件升级到最新...阅读全文

博文 2018-11-05 21:47:15 JOB 2.0.0 发布

什么是线程安全,以及并发需要知道的几个概念

的资源一直不释放的话,那么其他阻塞的线程就都不能工作了。 非阻塞则相反,强调的是线程之间并不互相妨碍,所有的线程都会不断尝试向前执行。 死锁、饥饿和活锁这三种情况表示的是多线程间的活跃状态,对于线程来说,以上的情况都是 “非友好” 的状态。 1、死锁一般是指两个或者两个以上的线程互相持有对方所需的资源,并且永远在等待对方释放的一种阻塞状态。例如有两个线程A和B同时共享临界区的资源C,当A占用C时,B处于阻塞状态,然而A的释放需要用到B的资源,这样一来,就成了A一直在等待B,B也一直在等待A,互相之间永远在等待对方释放的状态。 一般来说,死锁的发生是由于程序的设计不合理导致,而且死锁很难解决,最好的方式就是预防。 2、饥饿是指某一个或者多个线程因为种种原因无法获得所需的资源,导致一直无法执行...阅读全文

博文 2018-12-31 20:44:06 debian.cn

Golang 中的 channel 通道详解

,channel的零值也是nil。两个相同类型的channel可以使用==运算符比较。如果两个channel引用的是相同的对象,那么比较的结果为真。一个channel也可以和nil进行比较。通道的操作发送ch := make(chan int,0) // 创建一个无缓存区的int channel ch <- 998 // 向通道发送一个int类型的值10 接收receiver := <-ch //将通道ch的值取出,赋值给量receiver <- ch //将通道ch的值取出,忽略结果 关闭close(ch) // 关闭通道 关于关闭通道需要注意的事情是,只有在通知接收方goroutine所有的数据都发送完毕的时候才需要关闭通道。通道是可以被垃圾回收机制回收的,它和关闭文件是不一样的,在结束操作之后关闭...阅读全文

在TKE上使用Kubecost进行成本管理

的资源。例如,如果您的集群的利用率仅为25%,以资源的最大使用量和 Request 来衡量,则 Allocate idle costs 会按比例增加每个 pod/NS/Deployment 的成本到原来的4倍。 6. **图表选择**: 切换到条形图视图以查看所选窗口的汇总成本,或切换到时间序列视图以查看成本随时间的化。 7. **附加选项**: 查看其他选项以将成本数据导出为 CSV 或查看帮助文档。 ### Assets ![img](https://main.qcloudimg.com/raw/275c22510f157d3b3710aa147eb2f69f.png) Kubecost Assets 视图显示了按集群中单个资源细分的 Kubernetes 集群成本(例如,按节点、磁盘...阅读全文

隐私声明

我们会时常更新本隐私权声明,以反映我们的操作实践、相关服务和法律法规的化。我们会在修订本隐私权声明时更新文首所载的“生效日期”,请您定期查阅。您继续使用本网站,即视为您同意本隐私权声明的更新。 8. 问题与投诉 如果您对本隐私权声明或个人信息保护有任何问题,请与我们联系,我们会尽最大努力在合理时间内回复您。...阅读全文

Docker 17.06 社区版发布

今天我们发布了Docker CE 17.06,它包含了诸多新特性、优化和bug修复。我们在四月份的DockeCon上公布了Moby项目,Docker CE 17.06是第一个完全构建在它基础上的Docker版本。更日志中能看到完整的更新列表,我们来看看它的一些新特性。 我们也为这篇文章制作了一个视频版本。 多阶段构建 17.06 CE最大的特性是它的多阶段构建(multi-stage builds),它最初在四月的DockerCon被公布,现在已经达到了稳定版本。多阶段构建能从一个Dockerfile中构建出更加简洁、体积更小的Docker镜像。 多阶段构建通过构建过渡镜像并产生输出。这样就能在一个过渡镜像中编译代码,在最终的镜像中只使用它的输出。例如,Java开发者通常使用Apache...阅读全文

博文 2017-06-30 23:08:57 debian.cn

Debian Live 项目的剧变

live-config 的支持情况来确定 vmdebootstrap 的功能。 这些抱怨听起来合情合理,但是它们可能已经在目前的项目中得到了解决。然而一些秘密的项目有很明显的取代 live-build 的意图。正如 Baumann 指出的,这些计划没有被发布到 debian-live 的邮件列表中。人们首次从 Debian Live 项目中获知这些计划正是因为这一次的ITP事件,所以它看起来像是一个「秘密计划」——有些事情在像 Debian 这样的项目中得不到很好的安排。 人们可能已经猜到了,有很多帖子都支持 Baumann 重命名 live-build-ng 的请求,但是紧接着,人们就因为他要停止继续在 Debian Live 上工作的决定而得沮丧。然而 Learmonth 和...阅读全文

博文 2021-01-28 17:50:14 debian.cn

架构师详解 Nginx 架构

立好需要 listen 的 socket(listenfd)之后,然后再 fork 出多个 worker 进程。所有 worker 进程的 listenfd 会在新连接到来时得可读,为保证只有一个进程处理该连接,所有 worker 进程在注册 listenfd 读事件前抢 accept_mutex,抢到互斥锁的那个进程注册 listenfd 读事件,在读事件里调用 accept 接受该连接。当一个 worker 进程在 accept 这个连接之后,就开始读取请求,解析请求,处理请求,产生数据后,再返回给客户端,最后才断开连接,这样一个完整的请求就是这样的了。我们可以看到,一个请求,完全由 worker 进程来处理,而且只在一个 worker 进程中处理。 在 Nginx 服务器的运行过程中...阅读全文

博文 2018-05-01 23:10:47 debian.cn

分布式运行时 Dapr 知多少

制以完成诸如服务发现、流量控制、重试熔断、安全访问等,而这相关的网络控制功能就是集成在Dapr的Sidecar中,以对应用透明的方式集成进来的。整体的服务调用流程如下图所示: PS:如果对Istio熟悉的同学需要注意,二者虽然都是通过Sidecar的模式进行网络控制,但二者是有有区别的。Dapr是以API的方式,而Istio是以代理的方式(不改HTTP请求URI)。 2. State management(状态管理) 在进行微服务开发时,绕不开的话题就是服务间的状态共享、并发一致性问题。对于状态共享,你可能会说,各个服务连接到同一个Redis实例就OK了。是,但不得不考虑潜在的更新冲突的问题。Dapr 以更友好的HTTP API的方式进行状态的存储和读取,同时支持通过ETags进行并发控制...阅读全文

Cortex: 高可用和水平扩展Prometheus监控系统

/ helm delete --purge cassie helm delete --purge prom-one helm delete --purge grafana 结论Cortex是一个强大的工具,可无缝地运行多个Prometheus服务器,同时简化了用户的操作和使用。虽然Thanos确实提供了非常相似的功能,但它们的实现方式却大不相同。通过尝试实现的用例将推动选择Cortex与Thanos。但是,Cortex确实使运行高度可扩展且具有弹性的基于Prometheus的监视系统得容易。翻译: 云原生生态圈 · Marionxue作者: By Shaunak Deshmukh原文: https://www.infracloud.io/blogs/cortex-prometheus-ha/参考资料...阅读全文

博文 2021-10-09 17:00:22 知乎

译:Kubernetes 最佳实践

探针则不会生效。译者:还有一点尽量为 Pod 内的所有容器都定义探针。使用自动缩放在适当的情况下,可以使用自动缩放来动态调整 pod 的数量(Pod 水平自动缩放器,HPA)、pod 消耗的资源量(Pod 垂直自动缩放器, VPA)或集群中的节点数量(集群自动缩放器,CA),具体取决于 对资源的需求。Pod 水平自动扩缩器还可以根据 CPU 需求扩展复制控制器、副本集或有状态集。使用缩放也带来了一些挑战,例如不在容器的本地文件系统中存储持久数据,因为这会阻止水平自动缩放。相反,可以使用 PersistentVolume。当集群上存在高度可的工作负载并且可能根据需求在不同时间需要不同数量的资源时,集群自动缩放器非常有用。 自动删除未使用的节点也是省钱的好方法!译者:更多自动缩放的内容,可以浏...阅读全文

博文 2022-09-13 19:32:21 atbug.com

在 Kubernetes 上扩展 TensorFlow 模型

,并定义相关的分发策略,就足以实现 Kubeflow 的同步策略。 初始化 TFJob 后,将会在每个 worker 节点上创建一个新的 **TF_CONFIG** 环境量。其中包含了关于训练批次、当前训练迭代以及 TFJob 用于执行分布式训练的其他参数的信息。通过与各种 Kubernetes 控制器、 API 进行交互,Tf-operator 协调训练过程,并维护在清单中定义的预期状态。 另外,通过 tf-operator,异步训练模式可以使用 **ParameterServerStrategy**。在[这里](https://iamondemand.com/blog/scaling-tensorflow-models-on-kubernetes/)(以及下面),你将看到一个由 tf...阅读全文

粘合万种芯片的“万能胶” 是摩尔定律的续命丹吗? - 硬件

展已经有一段时间了,但业内一直各自为政,由于没有统一的接口标准,"胶水"芯片生态难建,大公司止步不前,小公司也不敢迈出第一步。长期以来,摩尔定律的持续演进被视为芯片性能提升的主要途径。经历四十多年的发展,构成芯片的晶体管几乎要缩小到原子级别,不仅面临难以突破的物理极限问题,制程升级的投入产出比也大幅下降,业界开始寻找新的办法提升产品性能,例如,通过改封装的方式提升晶体管密度。提出摩尔定律的戈登本人也意识到了封装的重要性,他在论文中写道:"事实证明用较小的功能模块构建大型系统可能会更经济,这些功能模块将分别进行封装和互连。"简单来讲,也就是将原先生产好的芯片集成到一个封装中,达到减少产品开发时间和成本的目的,这些芯片模块可以是不同工艺节点,最终通过裸片对裸片的方式连接在一起,这一类似于用胶水...阅读全文

博文 2022-04-08 07:35:46 cnBeta.COM

CCPA vs. GDPR:欧美这两部个人数据保护法有什么差异?

境传输提供保障: 若缺少上述“充分性认定”,控制者或者处理者当且仅当其提供了适当的保障时,可以将个人数据传输给第三国及国际组织。 这种“适当的保障”可以通过以下几种方式提供: (a)在公共机构或团体之间有法律约束力和执行力的文件; (b)由欧盟委员会通过的标准数据保护条款(即《欧盟数据跨境转移协议模板(SCC)》所设定的条款,内容一般不可更); (c)由监管机构通过、并由欧盟委员会批准的数据传输方和接收方之间签订的特定标准数据保护协议(即“Ad-hoc data protection clauses”,与上述“SCC标准模板”相互区分。但截至2018年尚未有欧盟成员国的数据保护监管机构批准这类协议); (d)代表不同种类的控制者和处理者的协会和其它机构可以制定行为准则(Code of...阅读全文