您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
DevOps第一级:个人级,人人都要装备的DevOps工具箱
 
  3016  次浏览      14
 2017-12-14
 
编辑推荐:
本文来自于DevOps教练,本文的目标是开启DevOps的第一个阶段- Level 1 个人级别的DevOps,除了要具备DevOps的思想之外,还要按照DevOps的原则和工具处理自己的工作。

做为一名DevOps人士,或者您正在成为一名DevOps人士,不管是工程师、产品经理、领导还是任何其他角色的相关人员。本文中即将谈的的软件都应该在你的电脑上存在,废话不多说,即使是你不编写代码,也应该对这些程序混个脸熟才对。

本文的目标是开启DevOps的第一个阶段- Level 1 个人级别的DevOps,除了要具备DevOps的思想之外,还要按照DevOps的原则和工具处理自己的工作。分享各种工具的效用和体验也是改进,不仅自己可以收益,还可以为DevOps的下个级别-团队级别的DevOps做好准备。

本文描述的软件不区分操作系统类型,所谈到的工具一般都支持Win,MacOS,Linux等平台。注意本文提到的工具,不是说建议安装,而是建议全部安装和正常使用。

1 环境准备类 - JDK 8

如果要编译Java项目的话,则会用到JDK,而且它还是运行其它很多Java类型DevOps工具的依赖。

下载和安装地址:

http://www.oracle.com/technetwork/java

/javase/downloads/jdk8-downloads-2133151.html

校验方法,打开命令行工具,运行 java --version

martin@mbp:dev/bin $ java -version
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.

111-b14, mixed mode)

2 环境准备类 - Git客户端

码农必备工具,如果你需要与版本控制系统GitHub、GitLab等打交道的话。Git客户端是必须安装的。

下载安装网址: https://git-scm.com/downloads

校验方法,打开命令行工具,运行 git --version

martin@mbp:dev/bin $ git --version
git version 2.13.1

建议熟练掌握这篇 “Git作弊小抄”里的命令。

https://github.com/arslanbilal/git-cheat-sheet/blob/master/other-sheets/git-cheat-sheet-zh.md

如果想学习到更全面的Git知识,请参考这份指引:

https://web.archive.org/web/20161121145226

/http://rypress.com:80/tutorials/git/index

校验方法,能在GitHub上完整的操作一次GitHub Flow流程。

如果你是Windows操作系统的话可以尝试 http:// cmder . ne t/ 这个终端模拟器,它能运行linux命令,融合了git和ssh的客户端,可以在Windows下面找到类似Unix的体验。

3 容器管理 - Docker

在本机使用Docker快速体验相关的软件应该是目前很流行的做法,Docker也是软件工程师(本文中不区分Dev还是Ops,统称工程师-engineer)在笔记本或者工作站上运行开发和测试环境的绝佳方法。容器化应用,快速的测试Dockerfile等等也都是DevOps工程师必备的技能,为了保证持续的可用性,建议安装最新的社区CE稳定版,这样既可以用到最新的feature,又可以避免新版本的毛病。

下载安装网址:

https://docs.docker.com/engine/installation/

校验方法,打开命令行工具,运行下列命令:

martin@mbp:dev/bin $ docker version
Client:
Version: 17.06.1-ce
API version: 1.30
Go version: go1.8.3
Git commit: 874a737
Built: Thu Aug 17 22:53:38 2017
OS/Arch: darwin/amd64

Server:
Version: 17.06.1-ce
API version: 1.30 (minimum version 1.12)
Go version: go1.8.3
Git commit: 874a737
Built: Thu Aug 17 22:54:55 2017
OS/Arch: linux/amd64
Experimental: true

martin@mbp:dev/bin $ docker-machine version
docker-machine version 0.12.0, build 45c69ad

martin@mbp:dev/bin $ docker-compose version
docker-compose version 1.14.0, build c7bdf9e
docker-py version: 2.3.0
CPython version: 2.7.12
OpenSSL version: OpenSSL 1.0.2j 26 Sep 2016

熟悉掌握Docker相关命令的小抄在这里:

https://github.com/wsargent/docker-cheat-sheet/tree/master/zh-cn

要能参考小抄熟练地在本地管理和构建镜像,管理容器的生命周期,访问容器里的服务,运行docker compose文件。

校验方法,能在本机运行一个web服务器容器,并访问到web服务器的网页。

4 代码版本管理工具

注册GitHub的账户,它的功能太多了,要熟练使用GitHub里的所有主要功能,能熟练地管理自己的项目,克隆和学习别人的项目。尽可能的通过GitHub和同事或者朋友协作一些感兴趣的东西。

Git Flow 是团队协作不可缺少的分支策略模式,需要熟练掌握这个小抄上的知识:

https://danielkummer.github.io/git-flow-cheatsheet/index.zh_CN.html

GitHub Flow的分支策略模式是Git FLow的简化版,它的操作方式在这里:

https://guides.github.com/introduction/flow/

分支管理的图形工具包括GitHub Desktop版和Atlassian的SourceTree,下载和安装网址如下:

https://desktop.github.com/
https://www.sourcetreeapp.com/

校验方法,能在本机运行运行git命令行、GitHub DeskTop和SourceTree,能完成一次GitHub Flow流程。

5 编码工具

Visual Studio Code 这是不仅是一个编辑代码的IDE环境,还是一个Git客户的,用起来很方便。

下载和安装网址 :

https://code.visualstudio.com/

校验方法,能在本机编辑并提交一个自己的GitHub项目的源代码。能安装Jenkinsfile、Ansible和Dockerfile等插件。

Atom是一个我用了很久的文本文件编辑工具,吸引人之处也是大量的扩展插件,变化无穷。

下载和安装网址 :https://atom.io/

校验方法,能在本机编辑一个GitHub项目的目录,尝试全局替换关键字功能。

STS - spring-tool-suite

Spring项目的开发工具,是Eclipse的一个变体。校验方法,能在本机打开和编辑更新一个GitHub里的Spring示例项目。

6 构建工具 Maven

Apache Maven它可能是最流行的Java项目构建工具。不做过多解释。注意和本机Java的依赖关系。

下载安装网址:

http://tomcat.apache.org/download-70.cgi

校验方法,打开命令行工具,运行 mvn --version

martin@mbp:dev/bin $ mvn --version
Apache Maven 3.2.2 (45f7c06d68e745d0561

1f7fd14efb6594181933e; 2014-06-17T21:51:42+08:00)
Maven home: /Users/martin/Documents/apache-maven-3.2.2
Java version: 1.8.0_111, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_111.

jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.13.1", arch:

"x86_64", family: "mac"

7 测试运行环境 Tomcat

是运行和测试Java项目的服务器端的最简单的运行环境。注意和本机Java的依赖关系。

下载安装网址:http://tomcat.apache.org/download-70.cgi 下载二进制压缩包的版本,不要用服务安装版本。这样的好处是,可以复制这个文件夹在本机运行多个实例。

校验方法,打开命令行工具,运行 Tomcat服务器端bin目录里的启动脚本,服务器可以正常启动,可以通过网页浏览到Tomcat的默认网页

8 制品库 Artifactory OSS 版本

Artifactory OSS是Frog的免费开源版本是一个不需要申请License,可以在本机长期使用的工具,是非常好的本地制品库缓存服务器。如果你在本地编译的Java项目都是访问的这个制品库的话,那么你离线了也基本上是能正常工作的,即使在飞机上,在没有互联网的条件下,Java项目还是可以照常编译的,不会遇到下载不了依赖包的尴尬情况。建议尝试专业版。

下载安装网址:https://www.jfrog.com/open-source/ 下载ZIP包的版本,可以一条命令启停服务器,使用非常方便。

校验方法,打开命令行工具,运行 Artifactory服务器端bin目录里的启动脚本,服务器可以正常启动,可以通过网页浏览到Artifactory的默认网页 http://localhost 第一次启动接受所有默认选项即可

9 代码持续检查 SonarQube

它是一个支持多种语言的代码静态扫码工具。在不需要你做很多配置的情况下,就可以扫码代码库,这里假设你的本地有几乎所有的项目文件夹。用这个工具提高代码质量,消除技术债务和安全隐患。该软件也有大量的插件。

下载安装网址:https://www.sonarqube.org/downloads/ 下载ZIP包的版本,可以一条命令启停服务器,使用非常方便。

校验方法,打开命令行工具,运行 SonarQube服务器端bin目录里的启动脚本,服务器可以正常启动,可以通过网页浏览到Tomcat的默认网页 http://localhost:9000/sessions/new 第一次启动接受所有默认选项即可,默认密码是 admin / admin


martin@mbp:bin/macosx-universal-64 $ pwd
/Users/martin/Downloads/devops/sonarqube-6.7/bin/macosx-universal-64
martin@mbp:bin/macosx-universal-64 $ ./sonar.sh console
Running SonarQube...
wrapper | --> Wrapper Started as Console
wrapper | Launching a JVM...
jvm 1 | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
jvm 1 | Copyright 1999-2006 Tanuki Software, Inc. All Rights Reserved.
jvm 1 |
jvm 1 | 2017.12.05 23:58:35 INFO app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /Users/martin/Downloads/devops/sonarqube-6.7/temp
jvm 1 | 2017.12.05 23:58:35 INFO app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001
jvm 1 | 2017.12.05 23:58:35 INFO app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/Users/martin/Downloads/devops/sonarqube-6.7/elasticsearch]: /Users/martin/Downloads/devops/sonarqube-6.7/elasticsearch/bin/elasticsearch -Epath.conf=/Users/martin/Downloads/devops/sonarqube-6.7/temp/conf/es

10 流水线工具 Jenkins

Jenkins或许是应该第一个介绍的工具,不过它的价值却是把以上的单点工具都串联起来。DevOps工程师可以尽可能地,把所有工作都变成自动化的脚本和程序代码,用git版本控制系统管理起来,管理在内部或外部的代码仓库里(你GitHub里项目的质量就是你的简历),对这些代码的执行和处理应该完全交给Jenkins做,特别是需要重复执行的动作,都可以交给Jenkins完成。

下载安装网址:https://jenkins.io/download/ 下载war包的版本,可以一条命令启停服务器,使用非常方便。在MacOS上也用过后台服务的版本,不过这会新建一个jenkins用户,权限问题也很麻烦,现在只用命令行版本,感觉更易于使用。

校验方法,打开命令行工具,进入 jenkins.war 文件所在目录,运行Jenkins服务器端的启动命令 java -jar jenkins.war ,服务器可以正常启动,可以通过网页浏览到Jenkins的默认网页 http://localhost:8080 第一次启动接受所有默认选项即可,记住新建的第一个管理员用户的用户名和密码。

11 配置管理工具 Ansible

Ansible是一种学习成本较低的配置管理工具,由于它有能很好地和IaaS资源池对接的插件,所以能够方便地调度AWS,Azure的虚拟机,也可以配置F5的负载均衡器。是实现基础架构即代码的很好的工具。使用它可以完成部署环境的搭建过程,用它保证环境搭建的一致性和自动化程度。

下载安装网址:

http://docs.ansible.com/ansible/

latest/intro_installation.html

在MacOS下面推荐用 brew 安装:brew install ansible

martin@mbp:~ $ brew install ansible
Updating Homebrew...
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools),

missing xcrun at: /Library/Developer/

CommandLineTools/usr/bin/xcrun
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core, caskroom/cask).
==> New Formulae
dnsdist
==> Updated Formulae
armadillo folly librdkafka pandoc rtv
ats2-postiats fwup libvirt payara scamper
byobu fzf lua pdftoedn sql-translator
cabal-install gitbucket lua@5.3 pdftoipe syncthing
diff-pdf gopass mpg123 pdnsrec urh
emscripten haproxy ndpi poppler vowpal-wabbit
faas-cli jenkins ntopng re2 weechat
firebase-cli lbdb paket redis you-get
==> Deleted Formulae
geogit

Error: ansible 2.3.2.0_1 is already installed
To upgrade to 2.4.2.0, run `brew upgrade ansible`

在Windows下建议使用虚拟(如Virtual Box的CentOS7)安装,安装方法见上面的文档链接。

校验方法,打开命令行工具,进入运行:

martin@mbp:~ $ ansible --version
ansible 2.3.2.0
config file = /usr/local/etc/ansible/ansible.cfg
configured module search path = Default w/o overrides
python version = 2.7.13 (default, Jul 18 2017, 09:17:00) [GCC 4.2.1 Compatible Apple LLVM 8.1.0 (clang-802.0.42)]

12 监控工具 ELK系列

ELK是很好的日志汇聚和分析工具,在本机安装这个堆栈的好处是,研究起来比较方便,可以轻松地启动这套工具,分析相关的日志文件,开发可视化的仪表盘和展示图表。

下载安装网址: https://www.elastic.co/downloads/past-releases 下载tar/ZIP包的版本,可以一条命令启停服务器,使用非常方便。

校验方法,打开命令行工具,运行 bin目录里的启动脚本,服务器可以正常启动 ;主要默认的情况下只能看到没有数据的 Kibana界面 http://localhost:5601/ 由于ELK的配置文件都需要修改才能看到数据,才能分析。请参考网上的攻略,或者参加DevOps相关培训。

12 看板工具 Trello

Trello:轻量级团队流程协作和列表管理平台。轻量级的Kanban工具,SaaS服务,支持IOS和安卓移动客户端。特别适合DevOps团队进行工作的可视化管理,增加工作的流动性。

   
3016 次浏览       14
相关文章

DevOps转型融入到企业文化
DevOps 能力模型、演进及案例剖析
基于 DevOps 理念的私有 PaaS 平台实践
微软开发团队的DevOps实践启示
相关文档

DevOps驱动应用运维变革与创新
运维管理规划
如何实现企业应用部署自动化
运维自动化实践之路
相关课程

自动化运维工具(基于DevOps)
互联网运维与DevOps
MySQL性能优化及运维培训
IT系统运维管理