经验分享:大型网站架构技术的演变与核心原理总结

Posted Posted in Web, 负载均衡, 运维, 集群, 高可用

很多人可能都觉得大型网站的架构肯定是非常复杂的,而且开始建设时肯定花费了很多功夫。如何做一个大型的网站,这个网站需要考虑的基本信息,什么行业,什么类型,有木有相似的等,其实大多数的大型网站都是从小网站发展起来的,其演变的过程是下面这样的。

….[阅读全文]

经验分享:小米手机官网抢购系统架构的思路解析与开发经验

Posted Posted in Web, 经验, 菜鸟, 运维

2014年4月的“米粉节”对小米网来说意义非凡,是其彻底重构后迎来的一次全面压力测试,涉及网站前端、后台系统、仓储物流、售后等各环节。高并发的负载能力、稳定性、准确性等已不是问题,灵活性与可运营性成为关键。

引言

2014年4月9日凌晨,我和同事们对小米网的抢购系统做了最后的检查与演练。几个小时后,小米网今年开年来最重要的一次大型活动“米粉节”就要开始了。

这次米粉节活动,是小米电商的成人礼,是一次重要的考试。小米网从网站前端、后台系统、仓储物流、售后等各个环节,都将接受一次全面的压力测试。

10点整,一波流量高峰即将到来,几百万用户将准点挤入小米网的服务器。而首先迎接压力冲击的,就是挡在最前面的抢购系统。 ….[阅读全文]

Ceph分布式储存系统之 常见PG状态States中文详解

Posted Posted in Ceph, 云计算

Creating(创建)

当创建一个池的时候,Ceph会创建一些PG(通俗点说就是在OSD上建目录),处于创建中的PG就被标记为creating,当创建完之后,那些处于Acting集合(ceph pg map 1.0 osdmap e9395 pg 1.0 (1.0) -> up [27,4,10] acting [27,4,10],对于pg它的三副本会分布在osd.27,osd.4,osd.10上

那么这三个OSD上的pg1.0就会发生沟通,确保状态一致)的PG就会进行peer(osd互联),当peering完成后,也就是这个PG的三副本状态一致后,这个PG就会变成active+clean状态,也就意味着客户端可以进行写入操作了。 ….[阅读全文]

Ceph分布式储存系统之横向扩展简单实例(增加新节点实现容量)

Posted Posted in Ceph, 云计算

Ceph支持在一个已有的集群中增加一个带有一组磁盘的新节点来扩展其容量,而且在服务部宕机的情况下进行扩展。

Ceph 不仅仅是一个文件系统,还是一个有企业级功能的对象存储生态环境。
现在,Ceph已经被集成在主线 Linux 内核中,但只是被标识为实验性的。在这种状态下的文件系统对测试是有用的,但是对生产环境没有做好准备。但是考虑到Ceph 加入到 Linux 内核的行列,不久的将来,它应该就能用于解决海量存储的需要了。

….[阅读全文]

详谈Ansible的工作原理以及优势/使用Ansible实现网络自动化批量部署应用的实例

Posted Posted in Ansible, Playbook, 自动化, 运维

Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。

Ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。这是一个无代理的、可扩展的配置管理系统。

….[阅读全文]

经验技巧:系统管理员必备的16个经典iptables使用技巧

Posted Posted in Linux, 系统, 经验, 菜鸟

iptables 是一款控制系统进出流量的强大配置工具。

IPTABLES 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。

现代 Linux 内核带有一个叫 Netfilter 的数据包过滤框架。Netfilter 提供了允许、丢弃以及修改等操作来控制进出系统的流量数据包。基于 Netfilter 框架的用户层命令行工具 iptables 提供了强大的防火墙配置功能,允许你添加规则来构建防火墙策略。iptables 丰富复杂的功能以及其巴洛克式命令语法可能让人难以驾驭。我们就来探讨一下其中的一些功能,提供一些系统管理员解决某些问题需要的使用技巧。 ….[阅读全文]

如何让RHEL/CentOS系统全自动打补丁/自动保持安全补丁更新 详细教程

Posted Posted in Linux, 系统

在 Linux 系统上,其中一个最重要的需求就是保持定期更新最新的安全补丁,或者为相应的 Linux 版本更新可用的安全补丁。

在之前的文章中,我们分享了《如何让Debian和Ubuntu系统全自动打补丁/自动保持安全补丁更新》,在这篇文章中,我们将分享如何在 CentOS/RHEL 6/7/8版本中设置在需要时自动更新重要的安全补丁。

和它同一家族的其它 Linux 版本(Fedora 或 Scientific Linux)中可以用类似的方法进行配置。

为了执行这篇文章中所讲到的任务,你需要有超级用户root特权。 ….[阅读全文]

如何让Debian和Ubuntu系统全自动打补丁/自动保持安全补丁更新 图文教程

Posted Posted in Linux, 系统

之前已经说过,一些最优秀的系统管理员看上去(注意这里使用的词是 seem(看上去))总是很“懒”的,这句话我再同意不过了。

虽然这句话听起来有点荒谬,但我敢打赌在大多数情况下它是对的-不是因为他们不去做他们原本应该做的事情,而是因为他们已经让系统自动去完成这样的事情了。

对于 Linux 系统来说,一个最关键的需求是为相应的 Linux 版本保持更新最新的安全补丁。

在这篇文章中,我们将讨论如何在 Debian 和 Ubuntu 系统上进行设置,从而实现自动安装或更新重要的安装包或补丁。 ….[阅读全文]

如何在微软Azure云平台中部署Kubernetes(K8s)容器集群 快速入门教程

Posted Posted in Azure, Kubernetes, 云计算

Windows Azure是微软基于云计算的操作系统,现在更名为“Microsoft Azure”,和Azure Services Platform一样,是微软“软件和服务”技术的名称。Windows Azure的主要目标是为开发者提供一个平台,帮助开发可运行在云服务器、数据中心、Web和PC上的应用程序。云计算的开发者能使用微软全球数据中心的储存、计算能力和网络基础服务。

在这个快速入门教程中,我们使用 Azure CLI 创建一个 Kubernetes 集群,然后在集群上部署运行由 Web 前端和 Redis 实例组成的多容器应用程序。一旦部署完成,应用程序可以通过互联网访问。 ….[阅读全文]

如何在Ubuntu系统中共存多个PHP版本并快速切换 实例教程

Posted Posted in Web, 运维

有时,最新版本的安装包可能无法按预期工作。你的程序可能与更新的软件包不兼容,并且仅支持特定的旧版软件包。在这种情况下,你可以立即将有问题的软件包降级到其早期的工作版本。请参阅我们的旧指南,在这了解如何降级 Ubuntu 及其衍生版中的软件包以及在这了解如何降级 Arch Linux 及其衍生版中的软件包。但是,你无需降级某些软件包。我们可以同时使用多个版本。例如,假设你在测试部署在 Ubuntu 18.04 LTS 中的LAMP 栈的 PHP 程序。过了一段时间,你发现应用程序在 PHP 5.6 中工作正常,但在 PHP 7.2 中不正常(Ubuntu 18.04 LTS 默认安装 PHP 7.x)。你打算重新安装 PHP 或整个 LAMP 栈吗?但是没有必要。你甚至不必将 PHP 降级到其早期版本。在这个简短的教程中,我将向你展示如何在 Ubuntu 18.04 LTS 中切换多个 PHP 版本。它没你想的那么难。请继续阅读。

….[阅读全文]