Home >
  • 【分享】Saltstack在实际电商网站中的应用

    本文以一个小的电商网站(www.mall.com)为例,讲述Saltstack在真实场景中的应用。主要介绍如何使用salt对电商网站各种服务进行管理、基于角色对应用进行自动化监控、基于Saltstack runner的代码部署系统等,主要包括以下主题: 网站架构介绍 Saltstack安装 基础服务部署 服务部署 代码部署系统搭建 自动化监控 Salt模块的扩展 项目代码已放到GitHub上,地址:https://github.com/ist0ne/salt-states 网站架构介绍 网络架构 使用Haproxy做负载均衡,一主一备,当主服务器宕机后备服务器自动接替主服务器角色对...
    阅读全文 →
  • 【工作】CentOS下搭建sftp服务并指定不同用户的访问目录和权限

    【写在前面】 客户现在有个需求,需要创建个文件服务器,可以实现对不同用户访问不同目录,且用户拥有不同访问权限。 目前文件服务器有很多种,常见的有vsftp、samba、sftp等,为了省事,我直接采用sftp实现这个需求。 目前服务器上都安装了ssh服务,则默认就包含sftp功能,只要sshd服务器启动了,sftp功能也就可以直接使用,端口就是ssh服务设置的登录端口,默认是22。 所需实现功能: userA用户:对/opt/sftp/userA/UploadFiles目录有读写权限,限制其只能通过sftp登录服务器,且只能在userA目录下操作 userB用...
    阅读全文 →
  • 【工作】Docker实践记录(二):使用Harbor搭建Docker私有仓库

    摘星怪  /
     / 工作记录
    写在前面: 针对于公司内部使用的镜像,我们希望推送到本地的私有docker仓库中,以供公司内部相关人员下载使用,所以准备研究使用harbor完成此功能,此文章只是研究,实际生产环境需要采用高可用的架构,之后也会搭建研究。 Harbor介绍: Harbor是VMware公司开源的企业级DockerRegistry项目,项目地址为https://github.com/vmware/harbor。其目标是帮助用户迅速搭建一个企业级的Dockerregistry服务。它以Docker公司开源的registry为基础,提供了管理UI,基于角色的访问控制(Role Based Access Control),AD/LDAP...
    阅读全文 →
  • 【工作】Centos下静默(命令行)方式安装Oracle 11g

    【准备环境】 一般来说,对于生成环境运行的linux系统,都不会安装图形界面,所以如果想要在没有图形界面的Linux上面安装Oracle,我们需要使用Linux的静默安装方式,以下为所需资源: 硬件需求: 物理内存不少于1G 硬盘空间不少于5G swap分区空间不少于2G 软件需求: OS:CentOS release 6.8 Oracle:11gR2 【安装步骤】 --------------------------------------以下命令使用root用户操作-------------------------------------- 1. 下载地址: # wget http://v.yingsun.net/cobra/download/linux.x64_11gR2_...
    阅读全文 →
  • 【工作】Docker实践记录(一):Docker 17.06 版本安装

    摘星怪  /
     / 工作记录, 虚拟化
    【写在前面】 公司打算要把线上服务器上面的微服务迁移到docker上运行,之前研究过1.13版本的docker,现在docker版本经历了大的变动,之前的笔记已经无法使用,所以打算把部署过程中的一些心得记录下,以便以后查阅使用。有不足之处欢迎指正,文章内容参考了网上很多博客,就不一一列举了。 【文章内容】 一、关于Docker: Docker老版本(例如1.13),叫做docker-Engine,Docker从17.03版本开始采用基于时间的YY.MM形式的版本命名方案,分为企业版(docker-EE)和社区版(docker-CE)。 CE版又分为edge版(测试)和stabl...
    阅读全文 →
  • 【理论】Docker网络详解及Libnetwork前瞻

    本文主要介绍了Docker网络的基础。紧接着讨论了网络配置工具pipework的使用,以及跨主机通信的几种方法。最后介绍了Docker的网络新项目Libnetwork。 网络基础 Docker现有的网络模型主要是通过使用Network namespace、Linux Bridge、Iptables、veth pair等技术实现的。 Network namespace:Network namespace主要提供了关于网络资源的隔离,包括网络设备、IPv4和IPv6协议栈、IP路由表、防火墙、/proc/net目录、/sys/class/net目录、端口(socket)等。 Linux Bridge:功能相当于物理交换机,为连在其上的设备(容...
    阅读全文 →
  • 【理论】秒杀系统架构优化思路

    一、秒杀业务为什么难做 1)im系统,例如qq或者微博,每个人都读自己的数据(好友列表、群列表、个人信息); 2)微博系统,每个人读你关注的人的数据,一个人读多个人的数据; 3)秒杀系统,库存只有一份,所有人会在集中的时间读和写这些数据,多个人读一个数据。 例如:小米手机每周二的秒杀,可能手机只有1万部,但瞬时进入的流量可能是几百几千万。 又例如:12306抢票,票是有限的,库存一份,瞬时流量非常多,都读相同的库存。读写冲突,锁非常严重,这是秒杀业务难的地方。那我们怎么优化秒杀业务的架构呢...
    阅读全文 →
  • 【分享】LVS实现负载均衡原理及安装配置详解

    【写在前面】 网上转载的一篇介绍LVS的文章,内容包含实现原理和具体实例,图文并茂,非常详尽,值得推荐学习! 【文章正文】 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群。常用的负载均衡开源软件有nginx、lvs、haproxy,商业的硬件负载均衡设备F5、Netscale。这里主要是学习 LVS 并对其进行了详细的总结记录。 一、负载均衡LVS基本介绍 LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分发到Director Server上,然后它把用户的请求根据设置好的调度算法,智能均衡地分发到...
    阅读全文 →
  • 【工作】Centos 7/6 内核版本由3.10.0 升级至 4.12.4方法

    【写在前面】 公司打算上Docker服务,目前需要安装运行环境,Docker新的功能除了需要Centos 7系统之外,内核的版本高低也决定着使用的效果,所以在此记录下系统内核版本升级过程。 注:对于线上环境的内核版本还需要根据实际情况谨慎选择,越新的版本未来可能遇到的问题越多,此文只是记录升级方法而已。 【文章内容】 关于内核版本的定义: 版本性质:主分支ml(mainline),稳定版(stable),长期维护版lt(longterm) 版本命名格式为 “A.B.C”: 数字 A 是内核版本号:版本号只有在代码和内核的概念有重大改变的时候...
    阅读全文 →
  • 【理论】用Harbor实现企业级Docker容器镜像仓库的管理和运维

    【编者的话】 本次分享主要讲述了在开发运维中的管理容器镜像方法。为了便于说明原理,较多地使用Harbor作为例子。 内容主要包括: 开发和生产环境中镜像仓库的权限控制; 镜像远程同步(复制)的原理; 大规模应用镜像发布方式; 镜像删除和空间回收; Registry高可用性设计。 首先简单介绍一下Harbor项目。Harbor是由VMware中国研发团队负责开发的开源企业级Registry,可帮助用户迅速搭建企业级的Registry服务。该项目发布5多个月以来,深受用户喜爱,在GitHub获得了近1000个点赞星星和200多个Forks。有兴趣...
    阅读全文 →
  • 【案例】云智慧:如何进行PB级别数据的架构变迁

    随着DT时代的来临,数据对于企业经营决策的价值日益凸显,而企业在进行互联网+转型的过程中,如何让数据架构平滑迁移到大数据平台,对于传统业务的转型升级至关重要。企业IT部门该如何进行PB级别大数据平台的迁移规划呢,请看云智慧运维总监张克琛带来的经验分享。 提到PB级别的大数据解决方案市面上有很多,比较火的有Hadoop、Spark、Kafka等等,如果是一个新上线的系统,相信大家都能找到适合自己的方案。但“大数据”在09年才逐渐成为互联网信息技术的流行词汇,一个较老的系统如何平滑迁移到PB级数据架构呢? 云...
    阅读全文 →
  • 【基础】小谈keepalived vip漂移原理与VRRP协议

    简介 什么是keepalived呢?keepalived是实现高可用的一种轻量级的技术手段,主要用来防止单点故障(单点故障是指一旦某一点出现故障就会导致整个系统架构的不可用)的发生。之所以说keepalived是轻量级的,是相对于corosync + ldirectord来说的。   keepalived也可以实现高可用集群,而且配置起来比corosync + ldirectord简单方便很多,keepalived与corosync的工作机制相差很多。corosync + ldirectord实现的功能虽然强大,但配置起来比较麻烦,而keepalived功能虽然简单,但配置起来比较容易。也就是说keepalived可...
    阅读全文 →
  • 【基础】怎样在 CentOS 里下载 RPM 包及其所有依赖包

    前几天我尝试去创建一个仅包含我们经常在 CentOS 7 下使用的软件的本地仓库。当然,我们可以使用 curl 或者 wget 下载任何软件包,然而这些命令并不能下载要求的依赖软件包。你必须去花一些时间而且手动的去寻找和下载被安装的软件所依赖的软件包。然而,我们并不是必须这样。 在这个简短的教程中,我将会带领你以两种方式下载软件包及其所有依赖包。我已经在 CentOS 7 下进行了测试,不过这些相同的步骤或许在其他基于 RPM 管理系统的发行版上也可以工作,例如 RHEL,Fedora 和 Scientific Linux。 方法 1 利用 “...
    阅读全文 →
  • 【工作】Cobbler安装系统报错Nothing to boot: No such file or directory

    【问题描述】: 很早之前使用笔记本的虚拟机安装过cobbler批量安装系统,后来离职,电脑还给上家公司,现在新公司也有批量安装系统需求,于是在新笔记本的虚拟机安装cobbler,安装过程是按照之前的笔记,按理说没有问题,但是安装完毕后,新建一个虚拟机模拟装机,发现报如下错误: Nothing to boot: No such file or directory (http://ipxe.org/2d03e13b)”. 且报错上面的信息显示虚拟机已经获得了dhcp分配的IP地址。 查询资料也没找到解决办法,开始觉得应该tftp的问题,但是看了很多文章,也查看了配置,觉得并...
    阅读全文 →
  • 【工作】无网环境下使用pip离线安装Python包

    【写在前面】: 对于有些线上服务器是无法连接外网的,而安装一些python包所需依赖太多,如果无法在线安装会被依赖搞到死...,所以记录下离线安装python包的方法。 【文章内容】 主要涉及的思路: 1.在可以上网的服务器下载所有的安装依赖包 2.将下载好的依赖包上传到目标服务器使用pip离线安装 操作步骤: 1.首先需要保证两个服务器上面都安装了pip,安装方法如下:   方法一:在线安装 # yum install pip   方法二:离线安装 (1).安装setuptools 从setuptools官网 https://pypi.python.org/pypi/setuptools下载...
    阅读全文 →
  • 【理论】Linux bond 网卡绑定配置和模式详解

    摘星怪  /
     / 基础知识
    【文章内容】 bonding简介 将多个Linux网络端口绑定为一个,可以提升网络的性能,比如对于备份服务器,需要在一个晚上备份几个T的数据,如果使用单个的千兆网口将会是很严重的瓶颈。其它的应用,比如ftp服务器,高负载的下载网站, 都有类似的问题。因此使用Linux teaming或bond来绑定多个网卡作为一个逻辑网口,配置单个的IP地址,会大幅提升服务器的网络吞吐(I/O)。 Linux的多网卡绑定功能使用的是内核中的"bonding"模块,关于此模块可以参考Linux Ethernet Bonding Driver文档, 但是目前发布各个Linux版本内核...
    阅读全文 →
  • 【案例】荔枝FM架构师刘耀华:异地多活IDC机房架构

    多机房架构存在的原因 单机房一旦死机,断电、维护根本无法挽回整个数据,想离线读取等都不行。当一个机房不可用,所有的业务就都不可用。荔枝 FM 要求业务离用户最近,南方的用户连南方的机房,北方的用户连北方的机房,国外的用户连国外的机房。大陆的网络和国外的网络有一定的隔离性,如果没有做多机房的连通性,数据的传输和实时性就会有问题。 跨机房的作用是为了备份,一个机房的数据放在另一个机房是异地多活。上面是数据容灾,下面的是业务容灾,第三个是让服务离用户最近。这是荔枝 FM 做跨机房的原因...
    阅读全文 →
  • 【分享】线上环境到底要不要开启query cache

    【文章内容】 Query Cache(查询缓存,以下简称QC)存储SELECT语句及其产生的数据结果,特别适用于:频繁提交同一个语句,并且该表数据变化不是很频繁的场景,例如一些静态页面,或者页面中的某块不经常发生变化的信息。QC有可能会从InnoDB Buffer Pool或者MyISAM key buffer里读取结果。 由于QC需要缓存最新数据结果,因此表数据发生任何变化(INSERT、UPDATE、DELETE或其他可能产生数据变化的操作),都会导致QC被刷新。 根据MySQL官方的测试,QC的优劣分别是: 1、如果对一个表执行简单的查询,但每次查询都不...
    阅读全文 →
  • 【理论】Ansible常用模块汇总详解

    摘星怪  /
     / 自动运维
    【写在前面】 文章内容是我很早之前搜集网上的资料归纳总结的Ansible常用的一些模块介绍,原文那些地址忘记了,权当记录查询使用,今后有新的模块资料也会记录到这篇文章中。 【文章内容】 (1)、fetch模块: 作用: 文件拉取模块,主要是将远程主机中的文件拷贝到本机中,和copy模块的作用刚刚相反,并且在保存的时候使用hostname来进行保存,当文件不存在的时候,会出现错误,除非设置了选项fail_on_missing为yes 参数说明: Dest :用来存放文件的目录,例如存放目录为backup,源文件名称为/etc/profile在主机py...
    阅读全文 →