AWS IAM 基本概念介绍
序使用角色使用角色委托权限不共享访问密钥定期轮换凭证删除不需要的凭证使用策略条件来增强安全性监控 AWS 账户中的活动关于 IAM 最佳实践的视频演示 User Group Role Temporary Security Credentials Permissions Policies 目录...阅读全文
序使用角色使用角色委托权限不共享访问密钥定期轮换凭证删除不需要的凭证使用策略条件来增强安全性监控 AWS 账户中的活动关于 IAM 最佳实践的视频演示 User Group Role Temporary Security Credentials Permissions Policies 目录...阅读全文
(SARAO),加州大学圣克鲁兹分校开放源码软件研究中心(CROSS)等。 Linux基金会执行董事Jim Zemlin说:"Ceph在帮助企业有效管理高增长和扩展数据存储需求方面有非常丰富的经验,在Linux基金会下,Ceph基金会将能够利用更多资源来帮助完善Ceph生态系统建设。" Ceph联合创始人&Red Hat Ceph首席架构师 Sage Weil说:"Ceph基金会的成立证明了一个多元化的开源社区的力量所在,各方共同联合起来致力于解决数据存储和数据服务的爆炸性增长。" Ceph被世界各地的云提供商和企业使用,包括金融机构(Bloomberg,Fidelity),云服务提供商(Rackspace,Linode),学术和政府机构(Massachusetts Open Cloud),电信基础设...阅读全文
,使用了很多叫做arena的memory pool,缺省配置在64bit下面是每一个arena为64M,一个进程可以最多有 cores * 8个arena。假设你的机器是4核的,那么最多可以有4 * 8 = 32个arena,也就是使用32 * 64 = 2048M内存。 当然你也可以通过设置环境变量来改变arena的数量.例如 export MALLOC_ARENA_MAX=1 hadoop推荐把这个值设置为4。当然了,既然是多核的机器,而arena的引进是为了解决多线程内存分配竞争的问题,那么设置为cpu核的数量估计也是一个不错的选择。设置这个值以后最好能对你的程序做一下压力测试,用以看看改变arena的数量是否会对程序的性能有影响。 mallopt(M_ARENA_MAX, xxx)如果...阅读全文
程技术平台。而到了 Novell 之后用了不到三年就使这家公司扭亏为盈,最后的亏损其实很大程度上需要归结为微软的打压和互联网泡沫的破裂,那次失败真不是施密特能控制的。所以 Novell 公司在他担任谷歌 CEO 之后依然为他保留了董事会主席席位,以示尊重。 施密特的地位堪比二位创始人 谷歌由佩奇和布林创立于1998年,但是直到2001年施密特担任 CEO,谷歌依然只是一个技术还不错,但是完全没办法赚钱的小公司,施密特本人就曾直言:“他们在各个方面的看法,都与我不尽相同。让人搞不清他们的思路究竟是令人耳目一新的远见,还是单纯天真。” 而施密特的加入,正好为两位创始人天马行空的设想打下了良好的基础——钱。施密特发现了搜索业务和广告之间的高度关联性,并由此创造了搜索广告这一革命性的盈利模式,直到现...阅读全文
Linus Torvalds揭示了为什么在2018年夏天将会有一个Linux Kernel 5的理由。他还讨论了对新的Linux Kernel维护者的需求。 在最近结束的布拉格开源峰会上,Linux创始人Linus Torvalds与VMware副总裁进行了座谈,并讨论了Linux内核的相关问题。 Linux内核需要新的维护者 Linux内核已经有26岁,内核维护者比26岁还要老。这就产生了一个问题,因为虽然内核开发有很多年轻的贡献者,但是内核维护者(负责审核向内核提交代码的人)是40多岁的人, 甚至50多岁了。部分问题是维护内核的复杂性。 但是Torvalds认为,内核维护者的主要原因是“老”,因为他们需要从疯狂的邮件流入中了解补丁。这需要良好的经验。 第二个原因是内核维护者应该足够长的...阅读全文
当我们还在体验 Linux 5.5 稳定发行版带来更好的硬件支持时,Linux 5.6 已经来了。说实话,Linux 5.6 比 5.5 更令人兴奋。即使即将发布的 Ubuntu 20.04 LTS 发行版将自带 Linux 5.5,你也需要切实了解一下 Linux 5.6 内核为我们提供了什么。 我将在本文中重点介绍 Linux 5.6 发布版中值得期待的关键更改和功能: Linux 5.6 功能亮点 当 Linux 5.6 有新消息时,我会努力更新这份功能列表。但现在让我们先看一下当前已知的内容: 1、支持 WireGuard WireGuard 将被添加到 Linux 5.6,出于各种原因的考虑它可能将取代 OpenVPN。如果你使用过它,那你可能已经知道它比 OpenVPN 更好的...阅读全文
文件的偏移的组合. PG的位点概念对于物理流复制和逻辑流复制是统一的. 1) PG对应逻辑 slot 的位点信息保存在数据库端,具有断点续传特性. 2) 除非需要跳过某部分数据,则使用 0/0 去请求拉取对应 slot 的逻辑日志. 3) PG的位点不对应时间点. 对于客户端,在建立连接后,读到的增量信息以消息的形式出现,可以分为三类信息 1) 事务开始,begin 2) 事务结束,commit 3) 事务中单个表的变化信息,分为 a) insert b) update c) delete 根据表 REPLICA 的状态不同,各类DML收到的信息略有变化. ## 五:编译和使用 ### 1 编译 1 编译机上下载安装 PG94 或更高版本的二进制,或用源码安装. 2 使用软链接或别的方式,把...阅读全文
,例如支付等。 ** 史上最硬核“销毁”,CET进入全流通状态 ** 2021年3月CoinEx团队决定一次性销毁剩下10.8亿尚未解锁的CET后,CET 已正式进入全流通状态。根据《关于CET流通及未来应用的信息披露》公告的约定,[CoinEx](http://cet.im) 每天将平台手续费收入的50%用于回购CET,并在每个自然季度结束时将当季回购的CET全部销毁。当 CET 的总量减至30亿后,[CoinEx](http://cet.im) 继续将平台手续费收入的20%用于回购并销毁CET,直至CET全部销毁。 无论是号称要与以太坊竞争的波场链,还是最近一度火热的币安BSC智能链,抑或是 [CoinEx](http://cet.im) 即将推出的 CSC 智能链,无不意味着交易所公链的...阅读全文
Systemd 是 Linux下的一款系统和服务管理器,兼容 SysV 和 LSB 的启动脚本。Systemd 的特性有:支持并行化任务;同时采用socket式 与 D-Bus 总线式激活服务;按需启动守护进程(daemon);利用 Linux 的 cgroups 监视进程;支持快照和系统恢复;维护挂载点和自动挂载点;各服务间基于依赖关系进行精密控制。 其中的监视和控制功能的主要命令就是systemctl。 Systemd 有很多不同类型的使用单元,主要包括:系统服务(.service)、挂载点(.mount)、sockets(.sockets)、系统设备(.device)、交换分区(.swap)、文件路径(.path)、启动目标(.target)。一般我们常用的是其中的系统服务。 对于系...阅读全文
->A4};……; {A1,A2,...,Ai}->Ai+1. 这种方式就是第二数学归纳法。对于Ai+1需要前面的所有前序状态才能完成推理过程。我们将这一模型称为高阶马尔科夫模型。对应的推理过程叫做“动态规划法”。 上述两种状态转移图如下图所示: 能用动规解决的问题的特点 能采用动态规划求解的问题的一般要具有3个性质: (1) 最优化原理:如果问题的最优解所包含的子问题的解也是最优的,就称该问题具有最优子结构,即满足最优化原理。 (2) 无后效性:即某阶段状态一旦确定,就不受这个状态以后决策的影响。也就是说,某状态以后的过程不会影响以前的状态,只与当前状态有关。 (3)有重叠子问题:即子问题之间是不独立的,一个子问题在下一阶段决策中可能被多次使用到。(该性质并不是动态规划适用的必要条件,但是如果没...阅读全文
: path: /data/thanos-receive-data type: DirectoryOrCreate - name: thanos-receive-config configMap: name: thanos-receive-config 细节大家可以自己慢慢看,我讲一下关键: 用statefulset部署集群,因为这是一个有状态的存储集群,不能随便漂移。 因为是分布式存储集群,要通过POD亲和性避免2个POD跑到1个Node上。 核心配置是声明receive集群的地址列表,这里利用headless service可以直接拿到每个POD的dns name,是有规则的。 每个thanos receive实例的启动参数中指定replica标签唯一标识它。 thanos-receive集群的...阅读全文
去五张碟片。 当然,熟悉计算机发展史的应该知道,服务器也有充氦调试一说,只是真正投放的时候就改换了空气。 其实,科学家最早考虑的是氢气,它的密度更小,但因为易燃爆,最后换为了惰性气体氦气。...阅读全文
Python 之父在 2018 年就宣布了这则消息。自此各大发行版和开源软件就开始着手减少对 Python 2 的依赖。比如 NumPy、Requests 和 TensorFlow 等许多知名项目在 2020 年停止支持 Python 2.x,而发行版中,先是 Fedora 33 最早完全结束对 Python 2.6 的支持 ,紧接着 Ubuntu 20.04 LTS 开始移除 Python 2,Mageia 8 也移除了对 Python 2 的依赖。在 Python 2 刚结束支持时,Debian 维护者称该发行版中仍然存在大约 3300 个与 Python 2 软件包相关的错误,以及大量为了兼容性而保留的软件包。由此可见,要从 Debian 中完全删除 Python 2 是一项大工程。所以...阅读全文
60k 服务器可以被利用,并且这些服务器往往拥有较高的带宽资源。 基于以上特点,作者认为该攻击方式可以被利用来发起大规模的DDoS攻击,某些小型攻击团队也可能因此获得原先没有的大流量攻击能力。 在 DDoSMon 上观察到的现网趋势 自批露以来,我们就一直利用 DDoSMon 的统计页面 持续监控Memcache DRDoS在实际现网中的情况。在过去的几个月中,这种类型攻击的频率和单次破坏性都不大,但是自2018-02-24开始,这种情况发生了较大变化。 近期,Memcache DRDoS 的攻击频率上升到了平时的10+倍,从每天小于50件,上升到每天300~400件,直到今天的1484件(实际上,离今天结束还有1个小时),如下图所示。 需要指出,当前 Memcache DRDoS 仍然还不是...阅读全文
ATOM feeds 使用 Django,你可以通过创建一个简单的Python类来快速创建 RSS 和 ATOM feeds。 在数据库中自动创建表 如果你的数据库中缺失了某一个表,你可以通过执行 Django 的迁移命令来自动创建它。 容易的数据迁移 数据迁移是 Django 中最有用的功能之一。通过使用 Django 的迁移方法,你可以在短时间内改变一个数据库模式。同样也容易就能跟踪你的数据库模式和相关的改变。为数据迁移所做的命名能够帮助你进行版本控制,还有很多选项可以用来合并版本和进行修改。 安全性 Django非常安全,该框架默认情况下可以防止 XSS 攻击、CSRF 攻击,SQL 语句注入、点击劫持、用户管理、cookies、邮件标头注入、密码攻击、目录遍历攻击等等。 Django有一个...阅读全文
一个根据make的Map-Reduce解决构架和一个轻巧的分布式存储。小编迄今依然仍在应用GXP开展日常的管理方法和规模性数据处理方法实际操作这些,有感兴趣的大家能够到GXP首页查询:qnu/gxp。 SaltStackSaltStackautomationforCloudOps,ITOps&DevOpsatscale SaltStack也是根据Python的一种系统软件布署管理系统软件。和Ansible相近,SaltStack也是根据ssh和服务项目上的SaltStack过程(minions)通讯并根据YAML叙述环境变量。可是有别于Ansible,SaltStack选用的是主从关系式的多级别系统架构,因而必须在服务端事先安裝一个SaltStackminion软件包。 系统架构图自动...阅读全文
个轻巧的分布式存储。小编迄今依然仍在应用GXP开展日常的管理方法和规模性数据处理方法实际操作这些,有感兴趣的大家能够到GXP首页查询:qnu/gxp。 SaltStackSaltStackautomationforCloudOps,ITOps&DevOpsatscale SaltStack也是根据Python的一种系统软件布署管理系统软件。和Ansible相近,SaltStack也是根据ssh和服务项目上的SaltStack过程(minions)通讯并根据YAML叙述环境变量。可是有别于Ansible,SaltStack选用的是主从关系式的多级别系统架构,因而必须在服务端事先安裝一个SaltStackminion软件包。 系统架构图自动生成可视化工具...阅读全文
双因子身份验证就是指,需要两种身份验证才能完成账号有效性的验证,可以是密码、SSH 密钥,也可以是第三方服务,比如 Google Authenticator。这意味着单个验证方式的缺陷,不会影响账号的安全。本文我们将介绍如何在 Debian 服务器上启用双因子验证。 请注意,本文涉及到多次修改 SSH 配置,当你修改配置时,请确保有至少两个到服务器终端的连接。打开的终端将一直保持,即便 SSH 服务重启。第二终端意味着你可以修复你在SSH配置的错误。 密钥和密码验证的SSH SSH 支持对登录要求不止一个身份验证方法,我们首先启用密钥和密码验证。 在 /etc/sh/sshd_config 中的 SSH 服务器配置文件中的 AuthenticationMethods 选项中设置了身份验证方...阅读全文
。Blackbox Exporter 最重要的功能之一是测量 Endpoint 的可用性。 当然, Blackbox Exporter 探测 HTTPS 后就可以获取到证书的相关信息, 就是利用这种方式实现对 Kubernetes apiserver 证书过期时间的监控. 配置步骤 调整 Blackbox Exporter 的配置, 增加 insecure_tls_verify: true, 如下: 重启 blackbox exporter: kubectl rollout restart deploy ... 增加对 Kubernetes APIServer 内部端点https://kubernetes.default.svc.cluster.local/readyz的监控. 如果你没有使用...阅读全文
使用,帮助他们减少在集群管理和资源整合方面的工作和投入。例如,我们网络能力、存储能力和计算能力的整合,就是让用户享受到原生K8S的好处,同时避免了很多运维的负担。 公有云的 K8S 处在底层 IaaS 和上层应用之间,一方面向下整合IaaS能力,一方面向上托管客户的应用。在整合 IaaS 方面,不改变 K8S原生特性,因为 K8S 本身架构足够开放,例如在我们实现的网络插件,是基于我们 IaaS 的 VPC 网络,让 pod 可以和我们托管区和物理云区域打通,这是我们 IaaS 能力在 K8S 产品上的体现,算是我们的特色之一,但这是在 K8S 体系支持下的插件方式实现的,不影响我们提供原生 K8S;在应用层面,厂商也可以基于 K8S 提供一些周边的功能以帮助用户提高效率,但它和提供一个一致...阅读全文
,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 56:7b:98:07:30:bc brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 192.168.134.93/27 brd 192.168.134.95 scope global eth0 valid_lft forever preferred_lft forever 通过内网 IP 地址,我们得知已成功进入容器内部。 原理 namespace namespace 是 Linux 中一些进程的属性的作用域,使用命名空间,可以隔离不同的进程。 Linux在不断的添加命名空间,目前有: mount:挂载命名空间,使...阅读全文
influxdb在内存中引入了大量文件,在内存充足时,会占用较多的空间,用于提高程序读取性能。5.SMP与NUMA?cpu硬件体系架构可以分为:SMP(Symmetric Multi-Processor)/UMA(Uniform Memory Access)模式SMP架构,所有的CPU争用一个总线来访问所有内存,优点是资源共享,而缺点是总线争用激烈。 实验证明,SMP服务器CPU利用率最好的情况是2至4个CPUNUMA(Non-Uniform Memory Access)模式NUMA架构引入了node和distance的概念。对于CPU和内存这两种最宝贵的硬件资源, NUMA用近乎严格的方式划分了所属的资源组(node),而每个资源组内的CPU和内存是几乎相等。在influxdb服务器上,查看当前cpu及...阅读全文
我们将介绍,如何在三个树莓派上,创建出一套 Kubernetes 集群并正常使用。在这种场景下,主节点的内存和 CPU 资源较有限,执行 Kubernetes 任务时性能会有折扣,想做升级也不容易。 在开始之前,我们先介绍 K3s 这个项目。K3s 被誉为是最轻量级的 Kubernetes 发行版,它针对低配的 x86 和 ARM 处理器优化,可以让 Kubernetes 在树莓派上运行得更好。 基于 Raspbian 的 kubernetes 集群 本文我们将介绍如何使用 K3s 在树莓派上创建 Kubernetes 集群。系统我们用的是树莓派最流行的 Raspbian。 准备工作 在开始创建 Kubernetes 集群之前,我们需要准备, 至少一个树莓派,包括 SD 卡和电源网线,普通...阅读全文
写给五年陈的自己 写周报,写的兴起,编写周报,还边用虎跑泉,泡铁观音喝。自己写周报的**惯还是要改一改,自己是个性情中人,写个周报也透露了太多情感在周报里。有很多人肯定觉得不好,也许以后我也会改,改的越来越干练,掏心的话少说。 兴奋了,喝了茶,睡不着了。灵感闪动,本周是个值得纪念的日子,写个文章纪念下过去。 回想这一路路走来,还是很感恩收获的一切,我渐渐从一名菜鸟,成长为一位架构师,记得毕业的时候我给自己定的目标是:五年要成为一方面的专家。虽然,实际的成长比这个慢了两年,但是我还是庆幸自己当初果断的裸辞,然后进入支付宝。 每个架构师都是独立无二的,每个架构师都应该有自己的情怀,这些情怀是你的世界观。 我是如何成长为一个架构师的,我姑且给自己定的 title 就是架构师,不要认为有架构师的...阅读全文
且需要单独的网络组件,该组件可以透明地将来自一个节点上的pod的流量路由到另一个节点上的pod。 此功能由pod网络插件提供。 对于这个群集,您将使用Flannel ,一个稳定且高性能的选项。 在本地计算机上创建一个名为master.yml的Ansible playbook: nano ~/kube-cluster/master.yml 将以下播放添加到文件以初始化集群并安装Flannel:〜/ KUBE群集/ master.yml - hosts: master become: yes tasks: - name: initialize the cluster shell: kubeadm init --pod-network-cidr=10.244.0.0/16...阅读全文
解决方案的可扩展性时,我们也从中受益,也可以扩大规模。“解决现实问题2012 年左右,CERN 正在研究如何为大型强子对撞机扩展计算能力,但难点是人员而不是技术。CERN 雇用的员工人数是固定的。“我们必须找到一种方法来扩展计算能力,而不需要大量额外的人来管理。”Bell 说,“OpenStack 为我们提供了一个自动的 API 驱动和软件定义的基础架构。”OpenStack 还帮助 CERN 检查与服务交付相关的问题,然后使其自动化,而无需增加员工。“我们目前在日内瓦和布达佩斯的两个数据中心运行大约 280000 个处理器核心和 7000 台服务器。我们正在使用软件定义的基础架构使一切自动化,这使我们能够在保持员工数量不变的同时继续添加更多的服务器。“Bell 说。随着时间的推移,CERN...阅读全文
kubernetes,简称K8s,是知名的开源容器编排与调度平台,它的目标是让容器化部署、资源分配简单且高效。K8s是绝对主流且流行的容器管理平台,据说在合肥运维同学不会k8s是找不到工作的。本文我们将列举常用的kubernetes命令,后续会完善内容并提升易读性。 想起十几年前,我曾在Linux伊甸园的论坛,整理过一份rpm常用命令的列表,不知有多少朋友看过? 查看所有namespace的pods运行情况 kubectl get pods --all-namespaces 查看具体pods,记得后边跟namespace名字哦 kubectl get pods kubernetes-dashboard-76479d66bb-nj8wr --namespace=kube-system 查看...阅读全文
Channel 1. 概述 “网络,并发”是Go语言的两大feature。Go语言号称“互联网的C语言”,与使用传统的C语言相比,写一个Server所使用的代码更少,也更简单。写一个Server除了网络,另外就是并发,相对python等其它语言,Go对并发支持使得它有更好的性能。 Goroutine和channel是Go在“并发”方面两个核心feature。 Channel是goroutine之间进行通信的一种方式,它与Unix中的管道类似。 Channel声明: ChannelType = ( "chan" | "chan" "<-" | "<-" "chan" ) ElementType . 例如: var ch chan int var ch1 chan<- int //ch1只能写...阅读全文
Jim Keller堪称微处理器行业的传奇人物,多年来转战AMD、苹果、特斯拉,设计了众多优秀的CPU架构,尤其是K7/K8、Zen架构两度帮助AMD崛起,苹果A4/A5也是他的大手笔。今年早些时候,Jim Keller加盟了Intel,虽然肯定还是从事高性能CPU方面的工作,但具体职责一直未对外公布。他本人接受采访时对此也是避而不谈。 根据外媒最新挖掘到的内部消息,Jim Keller目前在Intel的主要工作并不是全力研究全新的x86 CPU架构,而是开发14nm、10nm工艺产品,并与晶圆厂合作推进两种新工艺。 我们知道,Intel 10nm工艺已经迟到了两年多,而且还需要继续等待,目前看最乐观的情况也是2019年底开始问世,2020年逐渐普及,而相比之下台积电、三星...阅读全文
指Intel处理器的散片CPU,这类处理器在售价上因为远低于官方售价而被DIY玩家所认可。 盒装CPU也就是我们日常所见到的官方正品,配备有处理器散热风扇以及一颗CPU。具备质保等正常商品具备的一切售后服务。 相对于盒装处理器,这类散片基本上是走私或者从某些品牌商那里流出,但不管是盒装CPU还是散片CPU,只要型号正确,几乎没有造假之说,毕竟他是即高科技与一身的产物,哪怕中国作为全球的加工大厂,也只能做到生产,而无法做到造假,通常如果打算购入性能更强的CPU散热装置(水冷或品牌风冷)的玩家才会选择CPU散片来降低装机成本。如果型号没有问题,计算机识别型号无误,那么即为一颗正品CPU。...阅读全文
个版本的数据对比,因为两个版本的数据对比可能存在版本偶然性,三个版本的数据趋势会更明显一些;2) 数据分析时可以使用Excel的一些方便功能,提高效率,如透视表、宏等。4.暴露(验证)问题数据会诚实地反映项目实际情况。通过数据分析的结果,我们会验证在指标选取环节收集的问题是否真实存在,如存在则此问题分析会出现在项目总结报告中。在数据分析时,也可能会暴露出一些我们没有明显感知的问题,这类问题也会出现在项目总结报告中。5.提出解决方案暴露问题不是最终目的,解决问题才是终极目标。所以,当发现问题时,项目经理要找存在问题的相关人员,让其针对问题提供解决方案。问题和解决方案都有了,报告内容基本完成,剩下的就是排版的问题。总结报告排版时一定要注意关键的信息放到最前面(遵循结论先行)。在进行分段时一定要注...阅读全文
过 iptables 实现 IP 端口数据包转发服务配置关于 NAT VPS 的使用说明NAT VPS 的正确食用方式NAT VPS 主机端口转发(流量中转)教程国内中转高性价比方案:NAT VPS + iptables 端口流量转发通过国内服务器转发流量Ubuntu UFW 防火墙设置Setup a Shadowsocks relay在 Azure 搭建 ShadowSocks 国内跳板,并开启 UDP 转发UFW Essentials: Common Firewall Rules and CommandsHow To Setup a Firewall with UFW on an Ubuntu and Debian Cloud ServerConfigure Uncomplicated...阅读全文
本教程将讨论如何在Debian(或Ubuntu)配置一个可工作的邮件服务器。我们知道在邮件服务器使用的主要协议有SMTP、POP和IMAP。在本教程中,SMTP协议使用postfix,POP/IMAP协议使用dovecot。两者都是开源的、稳定的和高度可定制的。本教程中不会介绍邮件服务器的安全性,这超出了本文的范围。 1.先决条件 每个域必须有一个DNS服务器。建议不要使用Live域用于测试目的。在本教程中,将在实验室环境中使用测试域example.tst。在这个假设域名的DNS服务器应该在至少以下记录。 example.tst的forward zone配置: IN MX 10 mail.example.tst. mail.example.tst. IN A 192.168.10.1...阅读全文
注释,后面的Entity表示该注释的名称。 注释的元素 一个注释可以包含多个可以被赋值的元素。一个元素就像是一个属性或者参数。下面是一个包含一个元素的注释 @Entity(tableName = "vehicles") 元素紧跟在注释之后,并放置在圆括号中,没有元素的注释,不需要圆括号。注释可以包含多个元素,当只包含一个元素时,可以省略元素名,只提供元素值既可,如下: @InsertNew("yes") 注释的位置 你可以将注释放置到类、接口、方法、方法参数、成员变量、局部变量之前。下面是一个将注释放到类之前的例子: @Entity public class Vehicle { } 下面是一个更大的例子,演示了在类、成员变量、方法、参数以及局部变量之前添加注释。仅作演示之用,并没有什么特别的...阅读全文
,这是系列博客的第一篇,深入探讨Docker对namespace技术的应用。 Namespaces 在第一部分,我会在文章中讨论Docker在使用Linux namespace时,如何创建Linux namespace。在之后的博客中我们会讨论namespace如何与其它特性如cgroups和隔离的文件系统相结合,去实现更多有用的功能。 从根本上说,namespace是Linux系统的底层概念,有一些不同类型的命名空间被部署在核内。跟踪docker run -it --privileged --net host crosbymichael/make-containers这段代码,我们就可以深入到每个不同的namespace。开始会有一些预加载文件和配置。尽管我们也会在用Docker为我们运行的...阅读全文
HOSTNAME=nginx-test-2 DB_PORT=6379 HOME=/root PKG_RELEASE=1~stretch TERM=xterm KUBERNETES_PORT_443_TCP_ADDR=10.96.0.1 NGINX_VERSION=1.17.1 ...... PWD=/ TZ=Asia/Shanghai # date Sun Jul 7 12:17:26 CST 2019 可以看到,该 Namespace 下的两个 Pod 都成功注入了配置信息,时区也改过来了,是不是很方便了。不过,如果想指定该 Namespace 下某个 Pod 不使用该 PodPreset 该如何配置呢?毕竟有些个性化的 Pod 不使用通用配置。我们可以配置...阅读全文
的9.2%的被动股份。这一披露促使这家社交媒体巨头的首席执行官帕拉格-阿格拉瓦(Parag Agrawal)向马斯克提供了一个Twitter董事会席位。然而,马斯克拒绝成为Twitter董事会的一员,因为该提议有一个条件,即阻止特斯拉CEO将其在Twitter的股份增加到15%以上,可以预见的是,这引起了人们的猜测,即马斯克正在对整个公司发起恶意收购。 就在这些戏剧性事件发生几天后,马斯克正式公布了他以每股54.2美元的价格将Twitter私有化的提议,相当于超过430亿美元的价格。马斯克还写了一封致Twitter董事会的公开信,指出。 "我投资Twitter是因为我相信它有可能成为全球自由言论的平台,我相信言论自由是一个正常的民主社会所必需的。然而,自从投资以来,我现在意识到...阅读全文
一、SVN切换分支操作介绍SVN(Subversion,下文简称SVN)是一种版本控制系统,它提供了一系列的命令行工具来管理源代码。在代码的开发过程中,可能会需要更改当前工作目录下所处的分支。SVN提供了switch命令供用户进行分支切换操作,该命令只修改当前工作目录下原本的模块链接并不会真的修改目标URL中的版本库。在SVN中,一个版本库可能会有多个分支,我们可以通过checkout命令来创建这些分支,也可以使用branches工具来进行分支的删除、移动、查看等,这些工具都是由SVN提供的。SVN提供了非常完善的分支管理机制,让我们可以方便地在开发过程中,随时随地地更换所处的分支。二、SVN切换分支常用命令及其参数介绍切换分支是SVN的基本操作之一,下面是一些常用的命令及其参数。大家可以...阅读全文
玲珑,面面俱到 作为一个开发者,你很可能希望为开源项目解决一个特定的痛点。或许你想要运行在一个目前还不支持的系统上,抑或你很希望改革社区目前使用的安全技术。想要引进新技术,特别是比较有争议的技术,最好的办法就是让人无法拒绝它。你需要透彻地了解底层代码,考虑每个极端情况。在不影响已实现功能的前提下增加新功能。不仅仅是完成就行,还要在特性的完善上下功夫。 糜不有初,鲜克有终 开源社区也有许多玩玩就算的人,但是承诺了就不要轻易失信。不要就因为提交被拒就离开社区。找出原因,修正错误,然后再试一试。当你开发时候,要和整个代码库保持一致,确保即使项目发生变化而你的补丁仍然可用。不要把你的代码留给别人修复,要自己修复。这样可以在社区形成良好的风气,每个人都自己改。 这些“潜规则”看上去很简单,但是还是有许...阅读全文
。比如它的线程优先级太低,而高优先级的线程不断抢占它所需的资源,导致低优先级资源无法工作。 3、活锁的情况是线程一种非常有趣的情况,在生活中我们可能会碰到这样的情况,那就是出门的时候可能会遇到有人要进门,你打算让他先进门,他又打算让你先出门,结果,两个人都互相退后了,然后你打算先出门时对方也向前一步,来来回回就一直卡在门口。当然,这种事情正常人很快就能解决,但如果是线程碰到就没那么幸运了。 如果两个线程占用着公共的资源,并且秉承着 “谦让” 的原则,主动把资源让给他人使用,你让我也让,这样就造成资源在两个线程间不断跳动但线程之间都拿不到资源的情况,这样的情况就是活锁了。 线程安全 线程安全指的是多线程的安全。如果一段程序可以保证被多线程访问后仍能保持正确性,那么程序就是线程安全的。一般来说,线...阅读全文
工作规范和工作流程,并跟踪开发过程实际合规性; 8. 指导. 审核项目总体技术方案,对各项目进行最后的质量评估; 9. 负责技术团队建设和管理,注重人才培养和营造创新的研发文化; 10. 完成各项技术工作相关数据统计分析报告,并据此对公司发展提出合理化建议。 ** 岗位要求:** 1. 本科及以上学历,计算机. 软件工程相关专业,互联网行业优先考虑; 2. 10年及以上技术研发. 软件开发相关行业工作经验,5年以上互联网行业技术研发团队管理经验, 精通基于Java. PHP等语言的开发,熟悉服务端软件架构设计与开发流程;有互联网CTO或技术总监工作经验,带过百人以上团队; 3. 熟悉互联网领域业务,深刻理解产业发展方向,具备敏锐准确的洞察力和缜密的逻...阅读全文
内容,请查阅GitLab Runner。 缓存key GitLab Runner v1.0.0 开始引入。 key指令允许我们定义缓存的作用域(亲和性),可以是所有jobs的单个缓存,也可以是每个job,也可以是每个分支或者是任何你认为合适的地方。 它也可以让你很好的调整缓存,允许你设置不同jobs的缓存,甚至是不同分支的缓存。 cache:key可以使用任何的预定义变量。 默认key是默认设置的这个项目缓存,因此默认情况下,每个pipelines和jobs中可以共享一切,从GitLab 9.0开始。 配置示例 缓存每个job: cache: key: "$CI_JOB_NAME" untracked: true 缓存每个分支: cache: key...阅读全文
对 Docker 的使用大部分都比较熟悉,但是说到 docker 的实现原理很多人还是一知半解。我把在团队内部做的一次 Docker 核心原理分享总结到文章里,以供参考。 Docker 的优势 Build once, Run anywhere 上面这句话很精辟的总结了 docker 的优点。我从下面几点具体描述 docker 带给开发者的能力 应用标准化 无论什么语言开发的应用,我们都能用 dockerfile 和构建脚本方便的进行应用构建打包,代码库 + 构建 + registry 统一了 CI/CD 流程,也提升了效率。 环境一致 由于应用和依赖全部构建成镜像,做到了一次构建多次交付,无论是开发,测试还是上线环境都是一致的。大大提高了开发效率 应用隔离 由于通过 docker 部署的应...阅读全文
。Debian计划并没有盈利组织支援,它的开发团队完全由来自世界各地的志愿者。Debian经常被认为是一个Linux发行版,但实际上Debian所涵盖的并不仅仅是Linux,还有GNU、FreeBSD等多种作业系统,因此Debian的官方称呼叫做“Debian通用操作系统”。 采用Linux核心的Debian GNU/Linux是后来很多Linux发行版的基础,Ubuntu正是其中最知名的一个发行版。Ubuntu的官方支持者是Canonical公司,六个月一次的Ubuntu新版本发布都是由Canonical负责,但大部分编码、分发、文档、翻译等工作都是由社区志愿者完成。 接下来,让我们进一步了解这两个项目的成员结构。 Debian的成员结构 Debian只有两种官方背景的成员角色:Debian开发者...阅读全文
Ian Murdock 走了,但 Debian 常在。今天就从与 Ian Murdock 的访谈来回顾一下 Ian 的 Debian 往事。 Debian 社区前几日宣布,Debian 的著名创始者 Ian Murdock 已经去世,死因至今不明。到官方公布具体死因之前,恐怕我们多猜测也无益。今天,不如让我们一起来回顾一下 Murdock 对免费软件的发展做出的贡献。 1999 年 11 月,我曾有幸与 Murdock 有过一次访谈。我为写《Rebel Code:Linux and the Open Source Revolution》这本书共做过 50 多次访谈,这就是其中一回。虽说在书中我只引用了 Murdock 所说的寥寥几句,不过如今,借着这个时机,我想用 Murdock 自己的话...阅读全文
同一台主机,同样的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...阅读全文
在Linux的内存分配机制中,优先使用物理内存,当物理内存还有空闲时(还够用),不会释放其占用内存,就算占用内存的程序已经被关闭了,该程序所占用的内存用来做缓存使用,对于开启过的程序、或是读取刚存取过得数据会比较快。 一. 内存使用说明 Free 命令相对于top 提供了更简洁的查看系统内存使用情况: [root@debian ~]$ free total used free shared buffers cached Mem: 1035108 1008984 26124 0 124212 413000 -/+ buffers/cache: 471772 563336 Swap: 2096472 842320 1254152 这里显示的单位是KB。 在Linux的内存分配机制中,优先使用物...阅读全文
Ruby on Rails 是一个快速开发的Web框架,Web设计人员和开发人员利用它能实现动态的全功能Web应用程序。 本文使用 Phusion Passenger 或mod_rails 方法部署 Rails 应用程序。 Passenger 允许您直接在Apachen应用程序中嵌入 Rails 应用程序,而无需使用FastCGI或复杂的Web服务器代理。 安装Passenger和依赖关系 1.安装使用Ruby,构建Ruby模块和运行Rails应用程序所需的系统包 sudo apt-get install build-essential libapache2-mod-passenger apache2 ruby ruby-dev libruby zlib1g-dev libsqlite3...阅读全文
媒体援引消息人士的话说,经过几个月的测试和bug修复,谷歌已经准备好让Debian 10 “Buster” 作为 Chrome OS 中默认的 Linux 容器。值得一提的是,尽管Debian project在今年早些时候发布了 Debian 10 “buster”,但谷歌当时并没有做想用的准备工作!感兴趣的朋友,不妨来了解一下。 根据在 Chromium Gerrit 中发现的最近合并的 commit,默认情况下,新的Crostini(Chrome OS上Linux应用程序的代号)安装将获得Debian 10。 该commit并未提及如何将安装了Debian 9的Chromebook迁移到较新版本,但是用户可以通过运行一些命令轻松地自己升级容器。升级到较新版本的Debian可以启用新功能...阅读全文
日前,虽然 谷歌 宣布消灭Chrome浏览器的应用已经过去一段时间,也的确有一部分应用转换成了插件,但谷歌似乎一直没有采取相应的行动。但在近日,该公司却突然动手。 事实上,谷歌早在一年前就宣布,Windows、Mac和Linux版Chrome浏览器将无法使用应用,但这些应用仍将兼容Chrome OS。而现在,该公司已经彻底从Chrome Web Store中删除了应用板块。 应用板块和游戏板块在Chrome浏览器中一同消失,但仍然可以在Chrome OS上找到。谷歌之前表示,之所以做出这一决定,是因为几乎没有人使用这些应用。 但Chrome插件显然会在可以预见的未来继续存在下去。谷歌已经发邮件给开发者,向其告知了这一变化,该公司还将在2018年第一季度从Chrome浏览器中彻底删除应用功能...阅读全文