理解裸机部署过程ironic

理解裸机部署过程ironic

閱讀本文約花費: 27 (分鐘)部署物理机跟部署虚拟机的概念在nova来看是一样,都是nova通过创建虚拟机的方式来触发,只是底层nova-scheduler和nova-compute的驱动不一样。虚拟机的底层驱动采用的libvirt的虚拟化技术,而物理机是采用Ironic技术,ironic可以看成一组Hypervisor API的集合,其功能与libvirt类似。 操作系统安装过程 Linux系统启动过程 bootloader(引导程序,常见的有GRUB、LILO) kernel(内核) ramdisk(虚拟内存盘) initrd/initramfs (初始化内存磁盘镜像) 下面我们分别介绍每个概念: 引导加载程序是系统加电后运行的第一段软件代码。PC机中的引导加载程序由BIOS(其本质就是一段固件程序)和位于硬盘MBR(主引导记录,通常位于第一块硬盘的第一个扇区)中的OS BootLoader(比如,LILO和GRUB等)一起组成。BIOS在完成硬件检测和资源分配后,硬盘MBR中的BootLoader读到系统的RAM中,然后控制权交给OS BootLoader。 bootloader负责将kernel和ramdisk从硬盘读到内存中,然后跳转到内核的入口去运行。 kernel是Linux的内核,包含最基本的程序。 ramdisk是一种基于内存的虚拟文件系统,就好像你又有一个硬盘…

Read More Read More

Redis的内存和实现机制

Redis的内存和实现机制

閱讀本文約花費: 23 (分鐘)1. Reids内存的划分# 数据 内存统计在used_memory中 进程本身运行需要内存 Redis主进程本身运行需要的内存占用,代码、常量池等 缓冲内存,客户端缓冲区、复制积压缓冲区、AOF缓冲区。有jemalloc分配内存,会统计在used_memory中 内存碎片 Redis在分配、回收物理内存过程中产生的。内存碎片不会统计在used_memory中。如果Redis服务器中的内存碎片已经很大,可以通过安全重启的方式减小内存碎片:因为重启之后,Redis重新从备份文件中读取数据,在内存中进行重排,为每个数据重新选择合适的内存单元,减小内存碎片。 2. Redis的数据存储的细节# 涉及到内存分配器jemalloc, 简单动态字符串(SDS),5种值类型对象的内部编码,redisObject, DictEntry: Redis 是key-value数据库,因此对每个键值对都会有一个dictEntry,里面存储了指向Key和Value的指针;next指向下一个dictEntry,与本Key-Value无关 Key: 并不是以字符串存储,而是存储在SDS结构中 RedisObject: 5种值对象不是直接以对应的类型存储的,而是被封装为redisObject来存储 jemalloc: 无论是DictEntry对象,还是redisObject, SD…

Read More Read More

JVM各种垃圾收集算法

JVM各种垃圾收集算法

閱讀本文約花費: 7 (分鐘)前言 从如何判定对象消亡的角度出发,垃圾收集算法可以划分为“引用计数式垃圾收集”(Reference Counting GC)和“追踪式垃圾收集”(Tracing GC)两大类,这两类也常被称作“直接垃圾收集”和“间接垃圾收集”。由于束流Java虚拟机中使用 的都是“追踪式垃圾收集”,所以后续介绍的垃圾收集算法都是属于追踪式的垃圾收集。 分代式收集理论 当前商业虚拟机的垃圾收集器,大多数都遵循了“分代收集”的理论进行设计。主要简历在两个分代假说之上:1、弱分代假说:绝大多数对象都是“朝生夕灭”的。2、强分代假说:熬过越多此垃圾收集过程的对象就越难以消亡。这两个分代假说奠定了多款常用的垃圾收集器的一致设计原则:收集器应该将Java堆划分出不同的区域,然后将回收对象依据其年龄(对象熬过垃圾收集过程的次数)分配到不同的区域之中存储。把分代收集理论具体放到现在商用的Java虚拟机里,设计者一般至少会把Java堆划分为新生代(Young Generation) 和 老年代(Old Generation两个区域。在新生代中,每次垃圾收集时都有大批对象死去,而每次回收后存活的少量对象,将会逐步晋升到老年代中存放。 标记-清除算法 标记-清除算法,分为“标记”和“清除”两个阶段:首先标记所有需要回收的对象,标记完成后,统一回收掉所有被标记的对象,也…

Read More Read More

云原生应用 Kubernetes 监控与弹性实践

云原生应用 Kubernetes 监控与弹性实践

閱讀本文約花費: 8 (分鐘) 本文向大家介绍一个云原生应用该如何在Kubernetes中无缝集成监控和弹性能力。希望对您的学习有所帮助。 前言 云原生应用的设计理念已经被越来越多的开发者接受与认可,而Kubernetes做为云原生的标准接口实现,已经成为了整个stack的中心,云服务的能力可以通过Cloud Provider、CRD Controller、Operator等等的方式从Kubernetes的标准接口向业务层透出。开发者可以基于Kubernetes来构建自己的云原生应用与平台,Kubernetes成为了构建平台的平台。 阿里云容器服务Kubernetes的监控总览 云服务集成 阿里云容器服务Kubernetes目前已经和四款监控云服务进行了打通,分别是SLS(日志服务)、ARMS(应用性能监控)、AHAS(架构感知监控服务)、Cloud Monitor(云监控)。 SLS主要负责日志的采集、分析。在阿里云容器服务Kubernetes中,SLS可以采集三种不同类型的日志 APIServer等核心组件的日志 Service Mesh/Ingress等接入层的日志 应用的标准日志 除了采集日志的标准链路外,SLS还提供了上层的日志分析能力,默认提供了基于APIServer的审计分析能力、接入层的可观测性展现、应用层的日志分析。在阿里云容器服务Kubernetes中,日志组件…

Read More Read More

Java 中队列同步器 AQS(AbstractQueuedSynchronizer)实现原理

Java 中队列同步器 AQS(AbstractQueuedSynchronizer)实现原理

閱讀本文約花費: 29 (分鐘)前言 在 Java 中通过锁来控制多个线程对共享资源的访问,使用 Java 编程语言开发的朋友都知道,可以通过 synchronized 关键字来实现锁的功能,它可以隐式的获取锁,也就是说我们使用该关键字并不需要去关心锁的获取和释放过程,但是在提供方便的同时也意味着其灵活性的下降。例如,有这样的一个场景,先获取锁 A,然后再获取锁 B,当锁 B 获取到之后,释放锁 A 同时获取锁 C,当获取锁 C 后,再释放锁 B 同时获取锁 D,依次类推,像这种比较复杂的场景,使用 synchronized 关键字就比较难实现了。在 Java SE 5 之后,新增加了 Lock 接口和一系列的实现类来提供和 synchronized 关键字一样的功能,它需要我们显示的进行锁的获取和释放,除此之外还提供了可响应中断的锁获取操作以及超时获取锁等同步特性。JDK 中提供的 Lock 接口实现类大部分都是聚合一个同步器 AQS 的子类来实现多线程的访问控制的,下面我们看看这个构建锁和其它同步组件的基础框架——队列同步器 AQS(AbstractQueuedSynchronizer)。 AQS 基础数据结构 同步队列 队列同步器 AQS(下文简称为同步器)主要是依赖于内部的一个 FIFO(first-in-first-out)双向队列来对同步状态进行管理的,当线程获取同步状…

Read More Read More

杯 中 窥 人

杯 中 窥 人

閱讀本文約花費: 5 (分鐘)by 韩寒   我想到的是人性,尤其是中国的民族劣根性。鲁迅先生阐之未尽。我有我的看法。南宋《三字经》有“人之初,性本善”,说明人刚出生好比这团干布,可以严谨地律己;接触社会这水,哪怕是清水,也会不由自主如害羞草掞叶,本来的严谨也会慢慢被舒展开,渐渐被浸润透。思想便向列子靠近。中国人向来是品性如钢,所以也偶有洁身自好者,硬是撑到出生后好几十年还清纯得不得了,这些清纯得不得了的人未浸水,不为社会所容纳,“君子固穷”了。写杂文的就是如此。   《杂文报》、《文汇报》上诸多揭恶的杂文,读之甚爽,以为作者真是疾恶如仇。其实不然,要细读,细读以后可以品出作者自身的郁愤———老子怎么就不是个官。倘若这些骂官的人忽得官位,弄不好就和李白一样了,要引官为荣。可惜现在的官位抢手,轮不到这些骂官又想当官的人,所以,他们只好越来越骂官。写到这里,那布已经仿佛是个累极的人躺在床上伸懒腰了,撑足了杯子。   接触久了,不免展露无遗。我又想到中国人向来奉守的儒家中庸和谦虚之人起先再狂傲,也要慢慢变谦虚。钱钟书起初够傲,可怜了他的导师吴宓、叶公超,被贬成“太笨”和“太懒”,惜后来不见有唯我独尊的傲语,也算是被水浸透了。李敖尚好,国民党暂时磨不平他,他对他看不顺眼的一一戮杀,对国民党也照戮不误。说要想找个崇敬的人,他就照照镜子,但中国又能出几个这类为文为人都在二十四品之外的叛才?然而…

Read More Read More

云和虚拟化有何区别?[云计算]

云和虚拟化有何区别?[云计算]

閱讀本文約花費: 6 (分鐘)由于虚拟化和云的核心理念都是从抽象资源中创建可用的环境,所以很容易被混为一谈。虚拟化是一种技术,可让用户以单个物理硬件系统为基础,创建多个模拟环境或专用资源。而云是一种能够抽象、汇集和共享整个网络中的可扩展资源的 IT 环境。简而言之,虚拟化是一项技术,而云是一种环境。 人们创建云通常是为了进行云计算,也就是在系统中运行工作负载。  云基础架构可以包含各种裸机、虚拟化或容器软件,它们可用于抽象、汇集和共享整个网络中的可扩展资源,以此来创建云。稳定的操作系统(如 Linux®)是云计算的基础。这一层架构可让用户独立于公共、私有和混合环境之间。 如果您能访问内部网和/或互联网,则可以使用虚拟化来创建云,但这不是唯一的选择。  通过虚拟化,虚拟机监控程序会监控物理硬件,并抽象机器中各项资源,之后把这些资源提供给叫做虚拟机的虚拟环境。这些资源可以是原始处理能力、存储或基于云的应用,其中包含了部署所需的所有运行时代码和资源。 如果就此停止,则不能叫做云——这仅仅是虚拟化。  只有向中央池分配了虚拟资源,才能被称为“云”。增加一层管理软件后,即可管控将在云中使用的基础架构、平台、应用和数据。再增加一层自动化工具,用来替换或减少人工操作可重复指令和流程,从而为云提供自助服务组件。 如果您建立的 IT 系统满足以下条件,则说明您…

Read More Read More

为什么在做微服务设计的时候需要DDD?

为什么在做微服务设计的时候需要DDD?

閱讀本文約花費: 9 (分鐘)记得之前在规划和设计微服务架构的时候,张队长给了我一个至今依然记忆深刻的提示:『你的设计蓝图里为什么没有看到DDD的影子呢?』 随着对充血模型的领域认知的加深,我越加感觉到DDD的重要性。但是DDD内容繁多,是不是要深入去了解呢,我觉得不必入坑太深,个人浅见,它最核心的一点就是针对贫血模型的不足而设计,把原先传统的贫血模型里的业务逻辑层拎出来,融入到Domain层,这样面对复杂业务的规模化变更,我们只需要专注于Domain即可。 回到主题,我们要了解的是微服务和DDD到底有什么关系呢? 因为在互联网时代,软件所面临的问题域比以往要复杂得多,这种复杂性来源于不断扩展的问题域自身,也来源于创新变化,以及这种规模性增长所带来的挑战。 然而一个人一个团队,他对复杂的事物的认知是有极限的,面对这种复杂问题唯一的方法就是分而治之。分主要考虑的是如何去分;治意味着分出来的每一个部分要能够独立的运行,能够互相的协作,完成整体的目标,能够一来应对外部变化所带来的冲击。 微服务的缺陷 微服务架构在分和治两个方面都给出了很好的理论指导和最佳实践,那微服务是不是解决复杂问题的银弹呢?其实不然,很多团队在应用了微服务架构来构建他们的系统以后,发现并没有完全解决这种复杂性问题,甚至还带来了一些其他的问题。比如: 服务并没有解决复杂系统如何应对需求变化这个问题,甚至还加剧了这个问题…

Read More Read More

就要做个臭公知

就要做个臭公知

閱讀本文約花費: 10 (分鐘)by 韩寒 (2012-04-20 07:44:51)       公知”这两个字越来越臭,还株连到了“知识分子”这个名词。“公知”被污名化应该就是这两年的事情。记得以前,很多杂志还会评选年度公知,我也曾入选过,但不知何时,大家就开始用“公知”两字骂人了,明明两方都是公知,观点之争到一半,一方忽然大喊,你们是公知,另一方就不辩自败了,比“对方开着宝马扬长而去”还要有效。后来大家又聪明了,一上来先全部变成草根,但很快又发现草根和草根之间的争论就像屁民与屁民之间的互掐一样,两败俱伤且无人关心。很快,又冒出来一个词,叫意见领袖,但没过多久,网络上意见领袖又泛滥了,每次公众事件,看着意见领袖自动排成一个连,还不如去看易建联。终于,大杀器出现了,“公民”两字隆重登场,作为“公共知识分子”的平民化变种,这个词又安全又不容易被污名,但最近也有人说,什么公民,也是图“功名”,都是大尾巴狼。于是很多人都不知道这个群体应该叫什么了。        “公知”的臭掉和“公知”自己也有一定的关系,知识分子的确有一堆的臭毛病,有的迂腐,有的圆滑,有的好色,有的没谱,有的投机,有的唠叨,有的粗鲁,有的装逼,有的故作高深,有的哗众取宠,有的拉帮结派,有的…

Read More Read More

微服务划分的姿势

微服务划分的姿势

閱讀本文約花費: 10 (分鐘)我们知道微服务是一种理念,没有确切的定义和边界,好比设计原则,是属于抽象的概念。在定义不明确的情况下谈划分也是一种各说各话,具体问题需要具体分析,所以这篇文章谈到的划分也不是绝对标准,仅供参考。 有人说微服务不难,难的是服务的划分,虽然我持保留意见,但是从侧面也反应了划分具有一定的困难。这里的矛盾在于粒度,如果粒度太大了,分和不分似乎都差不多;如果粒度太小了,聚合、发布、调用链、调试等都是坑。 以下谈到的拆分是前人经验的总结,我罗列了三种行家的拆分姿势,每个的的经验和视野不同,各有偏颇,我在这里更多的是谈共鸣和感受,希望对你有所启发。 拆分姿势 姿势一:新浪微博微服务专家胡忠想从纵横两个维度来划分,简单粗暴。 纵向拆分 从业务维度进行拆分。标准是按照业务的关联程度来决定,关联比较密切的业务适合拆分为一个微服务,而功能相对比较独立的业务适合单独拆分为一个微服务。 横向拆分 从公共且独立功能维度拆分。标准是按照是否有公共的被多个其他服务调用,且依赖的资源独立不与其他业务耦合。 纵向以业务为基准,关系铁的在一起;横向功能独立的在一起。我想如果拆分这么简单,你有底气拆,敢拆吗?所以我们又继续比对一下其他专家的言论。 姿势二:阿里的小伙伴从综合的维度来看,部分维度和上面会有重合 服务拆分要迎合业务的需要 充分考虑业务独立性和专业性,避免以团队来定义服务边界,从…

Read More Read More

“莫道士林尽媚骨,拍案一怒于先生”

“莫道士林尽媚骨,拍案一怒于先生”

閱讀本文約花費: 2 (分鐘)于建嵘受邀参加统战部组织的一个党外高级知识分子研修班,活动结束当天是学习后的发言,其实也就是政治表态。当着LYD的面,海归经济学家李稻葵的发言令于建嵘讶异,大意是:我在美国待过多年,回到中国才知道社会主义民主才是真民主…… 轮到于建嵘了,他起初不愿发言,FBZ主持人坚持让他“讲几句”。于建嵘只好实话实说:刚才李稻葵的发言实在让我听不下去,我们这些知识分子这样违心地讲话,坐在台上的LYD等领导瞧得起我们吗? 言毕,台下鸦雀无声。FBZ主持人愣在那里,不知如何收场。好在LYD及时出来打圆场,以“午饭时间到”为由结束了这场尴尬。 更有意思的一幕还在后面:午餐时,于建嵘坐的那张桌子没有一个人过来,那些高级知识分子都躲着他。孤独无趣的他“悻悻”地抓起包打道回府了。 于建嵘讲起这一幕时,说他能够理解那些人的选择:权力给人带来的诱惑和好处有多大啊,不是一般人可以抗拒得了的!与他同期的研修班同学随后大都当上全国政协委员,那位海归经济学家李稻葵后来还当上了央行货币委员,成为炙手可热的人物。 “莫道士林尽媚骨,拍案一怒于先生”。 No tags for this post.

护网行动2019

护网行动2019

閱讀本文約花費: 6 (分鐘)在信息化社会中,计算机和网络在军事、政治、金融、商业、人们的生活和工作等方面的应用越来越广泛,社会对计算机和网络的依赖越来越大。如果网络安全得不到保障,这将给生产、经营、个人资产、个人隐私等方面带来严重损害,甚至会使金融安全、国防安全以及国家安全面临非常严重的危险。“护网行动”是国家应对网络安全问题所做的重要布局之一。 “护网行动”怎么来的? 1、网络安全态势严峻 当前,随着大数据、物联网、云计算的快速发展,愈演愈烈的网络***已经成为国家安全的新挑战,国家关键信息基础设施可能时刻受到来自网络***的威胁。网络安全的态势之严峻,迫切需要我们在网络安全领域具备能打硬仗的能力,“护网行动”应运而生。 2、国家政策导向 2016年4月,×××总书记在网络安全和信息化工作座谈会上发表重要讲话,×××总书记指出,“网络安全的本质是对抗,对抗的本质是***两端能力的较量”。 2016年,公安部会同民航局、国家电网组织开展了 “护网2016”网络安全***演习活动。 同年,《网络安全法》颁布,出台网络安全演练相关规定:关键信息基础设施的运营者应“制定网络安全事件应急预案,并定期进行演练”。自此“护网行动”成为惯例。 “护网行动”为什么今年这么火? 1、“护网行动”涉及范围越来越广 2016年仅公安部、民航局、国家电网三个事业单位参与“护网2016”行动。 2017年…

Read More Read More

武书连2020中国762所大学综合实力各省排行榜

武书连2020中国762所大学综合实力各省排行榜

閱讀本文約花費: 9 (分鐘)第一部分请点击查看: 武书连2020中国大学综合实力排行榜 十六、武书连2020中国762所大学综合实力各省排行榜 综合实力在600名以后的,不列名次,排名不分先后。 (一)2020中国华北地区各省大学综合实力排行榜 华北地区包括北京市、天津市、河北省、山西省、内蒙古自治区,共5个省级行政区。 1、2020北京市大学综合实力排行榜 2020年评价北京市53所普通本科大学。北京市大学教师学术水平1.9164,全国第1名,教师绩效2.0422,全国第1名。 2、2020天津市大学综合实力排行榜 2020年评价天津市18所普通本科大学。天津市大学教师学术水平1.3263,全国第5名,教师绩效1.2985,全国第4名。 3、2020河北省大学综合实力排行榜 2020年评价河北省34所普通本科大学。河北省大学教师学术水平0.3827,全国第24名,教师绩效0.5683,全国第24名。 4、2020山西省大学综合实力排行榜 2020年评价山西省21所普通本科大学。山西省大学教师学术水平0.4398,全国第22名,教师绩效0.6278,全国第19名。 5、2020内蒙古自治区大学综合实力排行榜 2020年评价内蒙古自治区13所普通本科大学。内蒙古自治区大学教师学术水平0.2572,全国第30名,教师绩效0.4464,全国第31名。 (二)2020中国东北地区各省大学…

Read More Read More

武书连2020年中国大学排行榜发布 清华北大浙大位列前三

武书连2020年中国大学排行榜发布 清华北大浙大位列前三

閱讀本文約花費: 11 (分鐘)由中国管理科学研究院《中国大学评价》课题组组长武书连主持的《2020中国大学评价》课题,于2020年5月结题,内容由中国统计出版社出版发行。书名为《挑大学 选专业–2020高考志愿填报指南》。这是中国统计出版社连续第19年出版发行这部深受考生和考生家长欢迎、有着广泛社会影响力的高考志愿填报参考书。 武书连大学排行榜包含国家财政拨款的普通本科高校、非财政拨款的民办大学和独立学院、高等职业学校、高等专科学校。 本次发布的武书连2020中国大学排行榜是国家财政拨款的762所普通本科高校。 对762所普通本科高校的主要评价指标有:综合实力,自然科学、社会科学,理学、工学、农学、医学、哲学、经济学、法学、教育学、文学、历史学、管理学、艺术学等12个学科门类,663个本科专业。中国大学择校顺序,本科毕业生就业质量、本科毕业生升学率、新生质量;教师平均学术水平、教师教学科研效率。 一、《2020中国大学评价》重要数据来源变更 既往人才培养基础数据源于教育部公开信息,自2017年起,该类数据不再公开。《2020中国大学评价》人才培养基础数据来源,变更为各大学在教育部网站和省教育厅网站发布的年度《毕业生就业质量报告》和《本科教学质量报告》。 教育部公开数据准确且稳定,各大学发布的上述两个报告数据质量不及教育部公开数据。 上述人才培养基础数据来源变更,会对很…

Read More Read More

美国宪法修正案

美国宪法修正案

閱讀本文約花費: 6 (分鐘)宪法修正案是美国宪法规定的正式改变宪法的形式之一(另一形式是召开另一次制宪会议,但并未被使用过),是美国宪法的重要组成部分,代表了美国宪法制度的基本发展方向。其中具有重大影响的是关于公民权利的宪法前10条修正案(即”权利法案”)。 自宪法签署完成后,已有二十七项修正案经批准,其中前十项统称权利法案。对美国宪法的修正程序受美国宪法第五条所规定。另有其他许多已向国会提议,但是未向各州提交的美国宪法修正提议。 修正案在生效之前,须经国会参众两院的三分之二表决通过,或是由三分之二的州会议(称作宪法第五条会议)的要求,而后才能提呈给各州,并经过四分之三州份或其会议的批准,批准的方式是由国会在提案时决定。迄今为止,没有任何一个修正案是由州会议的要求而提出。只有1933年的第二十一修正案,是采行州会议的方式来批准。 目前美国宪法共存在27个有效的修正案。其中,最初的10个修正案是一次性被通过的,因为其主要规定了人民的权利和对政府的限制,因此被统称为权利法案。此后的17个修正案则是逐次获得通过的。 顺序 修正案 提出日期 生效日期 第一修正案 保护言论自由、信仰自由、出版自由,以及集会的权利、抗议的权利和请愿的权利 1789年9月25日 1791年12月15日 第二修正案 保护持有与携带武器的权利 1789年9月25日 1791年12月15日 …

Read More Read More

代码,到底该如何分层,才能给人赏心悦目的感觉?

代码,到底该如何分层,才能给人赏心悦目的感觉?

閱讀本文約花費: 8 (分鐘)# 背景 说起应用分层,大部分人都会认为这个不是很简单嘛 就controller,service, mapper三层。看起来简单,很多人其实并没有把他们职责划分开,在很多代码中,controller做的逻辑比service还多,service往往当成透传了,这其实是很多人开发代码都没有注意到的地方,反正功能也能用,至于放哪无所谓呗。这样往往造成后面代码无法复用,层级关系混乱,对后续代码的维护非常麻烦。 的确在这些人眼中分层只是一个形式,前辈们的代码这么写的,其他项目代码这么写的,那么我也这么跟着写。但是在真正的团队开发中每个人的习惯都不同,写出来的代码必然带着自己的标签,有的人习惯controller写大量的业务逻辑,有的人习惯在service中之间调用远程服务,这样就导致了每个人的开发代码风格完全不同,后续其他人修改的时候,一看,我靠这个人写的代码和我平常的习惯完全不同,修改的时候到底是按着自己以前的习惯改,还是跟着前辈们走,这又是个艰难的选择,选择一旦有偏差,你的后辈又维护你的代码的时候,恐怕就要骂人了。 所以一个好的应用分层需要具备以下几点: 方便后续代码进行维护扩展; 分层的效果需要让整个团队都接受; 各个层职责边界清晰。 # 如何进行分层 1、阿里规范 在阿里的编码规范中约束的分层如下: 开放接口层:可直接封装 Service 方法暴露成 R…

Read More Read More

     
Scroll Up