Home >
  • 【分享】在生产环境中使用Docker Swarm的一些建议

    译者按: 实践中会发现,生产环境中使用单个Docker节点是远远不够的,搭建Docker集群势在必行。然而,面对Kubernetes, Mesos以及Swarm等众多容器集群系统,我们该如何选择呢?它们之中,Swarm是Docker原生的,同时也是最简单,最易学,最节省资源的,至少值得我们多了解一下。本文将介绍一些非常实用的建议。 原文:Tips for using Docker Swarm mode in production 译者: Fundebug 为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。 如果你在单个生产节点上用过Docker,然后发...
    阅读全文 →
  • 【案例】乐视电商云的整体架构与技术实现

    1. 电商系统发展过程 电商网站在不同时期的架构复杂度有所不同: 初创期:商品类型少,业务复杂度低,系统架构简单。采用高可用数据库、分布式缓存、文件存储等基本组件就可满足需求。 发展期:数据量、业务复杂度、系统复杂度、计算资源需求都剧增。则需要业务拆分并独立部署,采用CDN、高可用数据库、分布式缓存、分布式消息队列、分布式文件存储等。 电商技术基础架构图,如下所示: 2. 高速发展期的电商面临的问题 2.1 业务的快速扩张、资源需求快速扩张,但利用率低下 企业的主要目标是在市场上抢得先...
    阅读全文 →
  • 【案例】谈唯品会的峰值系统应对实践

    区别于其他网购品牌唯品会定位是“一家专门做特卖的网站”, 商业模式为“名牌折扣+限时抢购+正品保险”,即“闪购”(flash sales)模式。每天上新品,以低至1折的深度折扣及充满乐趣的限时抢购模式,为消费者提供一站式优质购物体验, 这种闪购限时特卖业务特点决定了网站随时都需要处理高并发、大流量的用户请求。大量买家在每次新的品牌档期上线后,大量涌入,抢购商品,造成网站承担大量流量。尤其碰到热门商品,网站并发访问剧增,会造成整个网站负载过重,响应延迟,严重时甚至会出现服务宕机的情况。 另外唯品...
    阅读全文 →
  • 【分享】100+个MySQL调试和优化技巧

    MySQL是一个功能强大的开源数据库。随着越来越多的数据库驱动的应用程序,人们一直在推动MySQL发展到它的极限。这里是101条调节和优化MySQL安装的技巧。一些技巧是针对特定的安装环境的,但这些思路是通用的。我已经把他们分成几类,来帮助你掌握更多MySQL的调节和优化技巧。 MySQL 服务器硬件和操作系统调节 拥有足够的物理内存来把整个InnoDB文件加载到内存中——在内存中访问文件时的速度要比在硬盘中访问时快的多。 不惜一切代价避免使用Swap交换分区 – 交换时是从硬盘读取的,它的速度很慢。 使用电池供电的RA...
    阅读全文 →
  • 【分享】亿级Web系统的容错性建设实践

    【背景介绍】 三年多前,我在腾讯负责的活动运营系统,因为业务流量规模的数倍增长,系统出现了各种各样的异常,那个时候,我7*24小时地没日没夜处理告警,周末和凌晨也经常上线,疲于奔命。后来,当时的老领导对我说:你不能总扮演一个“救火队长”的角色, 要尝试从系统整体层面思考产生问题的根本原因,然后推进解决。我幡然醒悟,“火”是永远救不完的,让系统能够自动”灭火”,才是解决问题的正确方向。简而言之,系统的异常不能总是依赖于“人”去恢复,让系统本身具备“容错”能力,才是根本解决之道。三年多过去了...
    阅读全文 →
  • 【工作】Nginx 实现域名的登录验证功能

    摘星怪  /
     / 工作记录, 应用服务
    【背景说明】 研发有个需求,访问公司某个域名下的某个url时候需要认证,只有输入正确的用户密码才允许访问web内容。 【实现思路】 Nginx服务中的"ngx_http_auth_basic_module"模块可以实现此要求,默认情况下编译安装完nginx后,就已经安装启用了ngx_http_auth_basic_module模块,如果不需要这个模块,可以加上 --without-http_auth_basic_module关闭。 ngx_http_auth_basic_module模块指令: 语法: auth_basic string | off; 默认值: auth_basic off; 作用:默认表示不开启认证,后面如果跟上字符,这些字符会...
    阅读全文 →
  • 【分享】Shell 脚本知识点总结

    摘星怪  /
     / 自动运维
    使用 read 命令从 stdin 获取输入并赋值给 PERSON 变量,最后在 stdout 上输出 定义变量 语法格式: variableName="value" 变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则: 首个字符必须为字母(a-z,A-Z) 中间不能有空格,可以使用下划线(_) 不能使用标点符号 不能使用bash里的关键字(可用help命令查看保留关键字) 使用变量 echo ${your_name} 变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情...
    阅读全文 →
  • 【工作】Centos 6.5 PHP 5.3 yum升级到5.5、5.6、5.7版本方法

    系统环境: OS:CentOS 6.5 php version:  5.3.3 1.卸载系统已有php # yum remove php*   注意:对于线上环境运行上面的命令时候,确保机器没有对外提供业务,否则执行后会导致业务异常。 2.安装Remi的YUM源 Remi repository是包含最新版本 PHP 和 MySQL 包的 Linux 源,由 Remi 提供维护。有个这个源之后,使用 YUM 安装或更新 PHP、MySQL、phpMyAdmin 等服务器相关程序的时候就非常方便了。 CentOS 6 Yum源: # rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm # rp...
    阅读全文 →
  • 【工作】线上Nginx升级OpenSSL版本防止安全漏洞

    摘星怪  /
     / 工作记录
    背景说明: 最近公司用网藤对网站业务进行了风险分析,发现了OpenSSL漏洞,由于线上的OpenSSL版本过旧,现在需要着手升级,公司的Web Server是Nginx,而Nginx安装时分为动态编译和静态编译OpenSSL两种方式,所以先查看是由那种方式安装的。 一、判断webserver是动态编译还是静态编译ssl的两种方法: 1.查看Nginx编译参数 输入以下指令,查看Nginx的编译参数: # /opt/nginx/sbin/nginx -V   nginx version: nginx/1.4.7 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC)  TLS SNI support enabled confi...
    阅读全文 →
  • 【分享】JVM内存、GC原理、内存溢出总结

    一、JVM内存介绍: Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个Java虚拟机。Tomcat的内存溢出本质就是JVM内存溢出,JVM管理两种类型的内存,堆和非堆。按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。   堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;   非堆就是JVM留给自己用的,所以方法区、JVM内部处理或优化所需的内...
    阅读全文 →
  • 【分享】JVM性能调优监控工具总结

    摘星怪  /
     / 基础知识
    【写在前面】 在平时的运维工作中,我们经常会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Contention) Java进程消耗CPU过高 导致服务器CPU或者内存飙高影响线上业务,对于解决以上问题,我们常用的JVM性能调优监控工具有:jps、jstat、jstack、jmap、jhat、hprof、jinfo   如果想要查看Java进程中线程堆栈的信息,可以选择jstack,如果要查看堆内存,可以使用jmap导出并使用jhat来进行分析,包括查看类的加载信息,GC算法那,对象的使用情况等,还可以使用jstat来对JVM进...
    阅读全文 →
  • 【分享】Docker五种存储驱动原理及应用场景和性能测试对比

    Docker最开始采用AUFS作为文件系统,也得益于AUFS分层的概念,实现了多个Container可以共享同一个image。但由于AUFS未并入Linux内核,且只支持Ubuntu,考虑到兼容性问题,在Docker 0.7版本中引入了存储驱动, 目前,Docker支持AUFS、Btrfs、Device mapper、OverlayFS、ZFS五种存储驱动。 就如Docker官网上说的,没有单一的驱动适合所有的应用场景,要根据不同的场景选择合适的存储驱动,才能有效的提高Docker的性能。如何选择适合的存储驱动,要先了解存储驱动原理才能更好的判断,本文介绍一下Docker五种存储驱动...
    阅读全文 →
  • 【分享】10个最经典的 MySQL 数据库运维实战案例

    摘星怪  /
     / 数据存储
        今天就给大家列举 MySQL 数据库中最经典的十大错误案例,并附有处理问题的解决思路和方法。希望能给刚入行或数据库爱好者一些帮助,今后再遇到任何报错,我们都可以很淡定地去处理。     学习任何一门技术的同时,其实就是自我修炼的过程。沉下心,尝试去拥抱数据的世界! 案例一:Too many connections(连接数过多,导致连接不上数据库,业务无法正常进行) 问题还原: mysql> show variables like ‘%max_connection%’; | Variable_name   | Value | max_connections | 151   | ...
    阅读全文 →
  • 【分享】Linux下的Squid的配置详解

    一. 代理服务简介 1. 什么是Squid代理服务器(Proxy Server) Squid是一个缓存internet数据的一个软件,它接收用户的下载申请,并自动处理所下载的数据。也就是说,当一个用户象要下载一个主页时,它向Squid发出一个申请,要Squid替它下载,然后Squid连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid把保存的备份立即传给用户,使用户觉得速度相当快。   目前,Squid 可以代理HTTP, FTP, GOPHER, SSL 和 WAIS 协议.   1.1 常用反向代理及缓存软件对比: ...
    阅读全文 →
  • 【工作】解决ACPI Error: No handler for Region错误导致linux系统自动重启

    报错现象: 线上有台服务器运行了了大概半年多,突然收到报警服务器重启了,可以确定不是人为操作导致的重启,以下是排查过程。   服务器品牌:Dell PowerEdge R720  系统版本:CentOS Linux release 7.1.1503 内核版本:3.10.0-229.el7.x86_64   查看messages日志报错信息如下: # tail -1000 /var/log/messages | grep -i error   查看dmesg报错信息如下: # dmesg | grep -E "error|Error|ERROR|fail|Fail|FAIL"  报错原因: 由于BIOS中开启了中断重映射,在ERST(芯片集中的错误校验表)校验时发生错误,...
    阅读全文 →
  • 【分享】详解Overlay网络与物理网络关系

    【文章内容】 无论是云计算还是SDN都把注意力集中在数据中心网络的建设上,各种解决方案层出不穷,其中以VMware为代表的软件厂商提出Overlay网络方案后,为数据中心网络的发展提出了新的思路。那么Overlay是如何与物理网络相互依存的? 在以往IT建设中,硬件服务器上运行的是虚拟层的计算,物理网络为了与虚拟服务器对接,需要网络自己进行调整,以便和新的计算层对接(如图1所示)。 Overlay是在传统网络上虚拟出一个虚拟网络来,传统网络不需要在做任何适配,这样物理层网络只对应物理层的计算(物理机、虚拟化...
    阅读全文 →
  • 【分享】游戏运维编年史:可能是目前最详细游戏运维指南

    编者按:  从端游到页游再到手游,15年来中国网游在世界上都有着举足轻重的地位。但是再好的游戏如果出现连接、延迟等问题时也会造成巨大损失,这时游戏运维便发挥了举足轻重的作用。中国网游的发展史,其实也是游戏运维的变革史,今天便由经典武侠手游《大掌门》运维掌门人吴启超来向我们讲述,进入游戏领域10余年来的风风雨雨。 有服务器的地方就有运维 如今我们说到游戏,可能想到的是火爆异常的VR,办公室里一言不合带上眼镜就地开打;亦或是刚刚虐了李世石的AlphaGo,扬言要挑战《星际争霸2》“教主”Flash。然...
    阅读全文 →
  • 【工作】Centos上ssh连接服务器缓慢的解决办法

    现象: 在机房内网中,用ssh连某台服务器非常慢,基本需要等待15-30秒才会提示让输入密码,但是ping目标机器,延时都是微秒级别,可见并非网络原因造成连接缓慢。 解决办法: 方法一: 修改本机的客户端配置文件ssh_conf,注意,不是sshd_conf  # vi /etc/ssh/ssh_config   找到: GSSAPIAuthentication yes   改为: GSSAPIAuthentication no   保存退出: # service sshd restart   再连目标机器,速度就飞快了。   解释:GSSAPI ( Generic Security Services Application Programming Interface) 是一套类...
    阅读全文 →
  • 【分享】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。 PS:本文只是描述sftp实现需求过程,其中一些安全设置操作省略没写,如果你是搭建用来给外网用户使用,请注意安全加固问题,起码要更改ssh的端...
    阅读全文 →