从软件部署看运维的四种境界

从软件部署看运维的四种境界

       首先,博文的名字很难取啊,叫什么都感觉不太对,这里就暂定这样吧。不可否认这里有点哗众取宠的动机,不谈境界总感觉格局不够大哈。

      中国哲学家冯友兰先生说过,人生有四种境界:自然境界、功利境界、道德境界、天地境界。经过长期的部署安装软件服务,感觉最近手熟多了,通过实践可以得出一些方法,方法总结起来就可以组成一套方法论了,但作为国人,还是用格局,境界之类的词更有亲切感。

不多说废话了,下面上干货。(我所理解的干货,也可能不是,牛人请忽略)

下面通过具体的安装redis这个小软件来说明问题,我分别附上四种安装方法从而感悟出四种不同的境界。

一,传统手动安装(著名的三板斧)

config

make

make install

wget http://download.redis.io/releases/redis-2.8.17.tar.gz

tar -zxvf redis-2.8.17.tar.gz

cd  redis-2.8.17.tar.gz

先安装tcl,否则下面会报错

yum install tcl -y

make MALLOC=libc 

make test

make install 

/root/redis-2.8.17/utils/install_server.sh 

Welcome to the redis service installer

This script will help you easily set up a running redis server

Please select the redis port for this instance: [6379] 

Selecting default: 6379

Please select the redis config file name [/etc/redis/6379.conf] 

Selected default - /etc/redis/6379.conf

Please select the redis log file name [/var/log/redis_6379.log] /data/redis/redis_6379.log

Please select the data directory for this instance [/var/lib/redis/6379] /data/redis/6379

Please select the redis executable path [/usr/local/bin/redis-server] 

Selected config:

Port           : 6379

Config file    : /etc/redis/6379.conf

Log file       : /data/redis/redis_6379.log

Data dir       : /data/redis/6379

Executable     : /usr/local/bin/redis-server

Cli Executable : /usr/local/bin/redis-cli

Is this ok? Then press ENTER to go on or Ctrl-C to abort.

Copied /tmp/6379.conf => /etc/init.d/redis_6379

Installing service...

Successfully added to chkconfig!

Successfully added to runlevels 345!

Starting Redis server...

Installation successful!

这种传统安装方法主要是费时,例如想redis这个1M多的小软件安装多花费了半个多小时,这种方法类似冯友兰的自然境界。这种方法有一个好处就是能让你快速熟悉一个陌生的软件,第一次安装不得不走一遍这样的流程。

二,脚本安装

       随着时间的推移,服务器越来越多,自己每天都重复这样的工作是不是觉得很烦,很没有技术含量不能提高呢?大部分运维人员都不会满足于现状,特别是当老板说找一个快速部署的方法奖励2K时,是不是动力来了,此时天时地利人和都来了,于是就开始想办法了,大部分人最先想到的就是脚本。

       关于脚本呢,我本人bash都不是很熟,但是拷贝修改别人的还可以,更别说3P(别想错了,好多人说要学会(python,perl,php),如果你是天生的技术高手这些都会或者会一两种当然是最好了。

      如果对3P不感兴趣或者力不从心也没关系,只要学会shell就行了,至少这个阶段够用。

只安装redis这一个服务弄一个脚本其实还显现不出脚本此时的好处,要是一个LNMP环境,脚本的优势就突显出来了,键盘Enter键一敲,你就可以去喝咖啡了,但是这时候一般你还有其他事情,两个小时后基本环境就完成了。

要是redis真写一个简单的脚本,就是上述命令行之前加一个#!/bin/bash就行了。

#!/bin/bash

wget http://download.redis.io/releases/redis-2.8.17.tar.gz

tar -zxf redis-2.8.17.tar.gz

cd  redis-2.8.17.tar.gz

yum install tcl -y |tail -n 6

make MALLOC=libc   |tail -n 6

make test          |tail -n 6

make install    |tail -n 6

/root/redis-2.8.17/utils/install_server.sh 

友情提示:这脚本我没有试用过,不一定能用。因为这时我对这种安装方式还不是很满意。

三,绿色安装

        绿色安装,这个词我以前听到最多是windows环境下,linux下倒是很少听说,难道linux喜欢难度高的操作方法对简单易行的方法不感冒吗?哪这样是不是有点不道德啊?所谓的道德境界我觉得应该是这样的:把复杂的事情简单化,越简单越好。我不认为简单是没有技术含量,简单是我一生追求的最高境界。

       说到这里,那有什么根基支持绿色安装了,其实我想我有一段时间忘记了一句含义很深的话:一切皆文件!我记得刚开始学习linux时候就听说过这句话,但是一直没有时常想起这句话。以至于曾经走过不少弯路。话说回来,不走这么多的弯路,对这句话的领悟也不会这么深。

       回到正题,绿色安装就是把第一次在一个环境安装的软件包,打个包,拷贝过来就行了。比如这里的redis只需要拷贝二进制程序和配置文件即可,二进制程序唯一要依赖的就是一些开发库之

类的软件。这个得提前安装。

yum install tcl -y

mkdir /etc/redis

ls /etc/redis

6379.conf

ls /etc/init.d

redis_6379 

tar zxvf redis_data.tar.gz  -C /

tar zxvf redis.2.7.17.tar.gz -C /

这里redis第一次安装分布了几个目录,如果第一次安装时指定了安装目录,只需要拷贝那一个整目录过来就行了。是不是很简单啊?

四,克隆模板

        第四种境界叫天地境界,用在这里有点亵渎的感觉,但是管不了那么多了,为了博文的完整性我已经很拼了。天地境界我理解的是天人合一,难道让我们人机合一不成?那么深奥的问题我也考虑不了,都说了我很简单的。幸亏现在虚拟化技术很发达,千万不要说云计算啊我对哪个比较过敏,我还没有看到哪个搞云计算的活人在我面前呢。

        其实这种方法和第三种差不多,只是这种连系统一块都部署了,操作系统不是最大的软件吗?对了,哪个谁不是说过mac和windows是最大的恶意程序嘛!

       这种方法步骤也比较简单,但是格局大多了。比如各种所谓的云的各种SAAS,由于要那redis举例,我记得青云的redis云缓存服务器,应该比我这种说的高一个层次。这时我突然想把这个境界一分为二,因为我突然想加一种情况进去。

第一种我猜大家已经想到了:

1,在虚拟机或者物理机上部署redis服务,可用第三种方法。

2,PtoV或者VtoV的方法转换成模板。

3,下次要用到时候直接从模板部署虚拟机即可,目前哪一种虚拟化技术都支持这个。

第二种我这里讲的是分布式集群环境,这个不是每个软件都通用,正好这里举例的redis通用

1,部署redis集群(redis3.0支持,不过我没有试过redis集群,我试过codis集群)

2,下次有需求时,直接在集群上(这里以codis集群举例)扩展codis-group再添加codis-server实例即可

3,这个分布式集群环境支持横向扩展,在线伸缩,可以满足各种苛刻的话需求

话说到这里改结束了,本来还想说点什么可以是说不出来,那个天地境界确实不好理解啊。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java后端技术栈

Redis 深度历险:核心原理与应用实践!

Redis 是如今互联网技术架构中,使用最广泛的缓存。支持复杂的数据结构,支持持久化,支持主从集群,支持高可用,支持较大的value存储...

25610
来自专栏FreeBuf

物联网安全研究之二:IoT系统攻击面定义分析

在前文中,我们了解了IoT技术的基本架构,本文我将来说说IoT安全,在此过程中,我们会尝试定义一种新方法来理解IoT安全,同时也会创建一个结构化流程来方便认知I...

41190
来自专栏友弟技术工作室

工欲善其事,必先利其器之------Ubuntu工具类正文

背景: 1.自己接触linux,也有3年了,从大三开始.最早是redhet桌面版.然后linux的字符界面.上家公司的职位是运维开发工程师,一直操作的都是lin...

46390
来自专栏北京马哥教育

计算机浅谈及Linux简谈

一、计算机浅谈: 电子计算机(英语:computer),亦称电脑,是一种利用电子学原理,根据一系列指令对数据进行处理的工具。 在现代,机械计算机的应用已经完全被...

42960
来自专栏芋道源码1024

Redis 深度历险:核心原理与应用实践

Redis 是如今互联网技术架构中,使用最广泛的缓存。支持复杂的数据结构,支持持久化,支持主从集群,支持高可用,支持较大的value存储...

23520

无服务器架构简介

无服务器架构与函数即服务(FaaS)是云计算领域的热门趋势。除了微软和亚马逊以外,还有很多其他厂商提供FaaS。本文是一个无服务器架构的简短介绍,我将尝试解释无...

274110
来自专栏人人都是极客

蓝牙遥控平衡小车的制作

出于业余爱好,以及学习自动化控制PID理论,经过多种选择后决定制作平衡车进行实际操练。刚开始试着用单纯的裸机,完成直立控制,然后慢慢的又增加了屏幕显示,用于参数...

10710
来自专栏北京马哥教育

解决数据中心网速变慢的八个检查必备步骤

在数据中心运行过程中,不可避免会出现各种各样的问题。若网络发生信息不通、网页不能浏览等连通性故障时,这类故障现象的故障点很容易检查和定位, 解决起来并不困难。但...

36950
来自专栏FreeBuf

Google发现Windows 8.1 0day漏洞并公布漏洞验证程序(PoC)

Google安全研究人员发现了一枚Windows 8.1权限提升漏洞,攻击者可以借此漏洞修改系统内容甚至完全控制受害者计算机。目前Google已经公布了漏洞验证...

21670
来自专栏视频云

腾讯云直播答题方案解析

基于腾讯云业界领先的视频云技术,提供一站式在线知识竞技接入方案,并独家提供微信小程序接入方案。

6.7K90

扫码关注云+社区

领取腾讯云代金券