柚子快報(bào)激活碼778899分享:DevOps運(yùn)維開發(fā)一體化
柚子快報(bào)激活碼778899分享:DevOps運(yùn)維開發(fā)一體化
研發(fā)分享了DevOp的實(shí)踐,發(fā)現(xiàn)我們項(xiàng)目組還在使用傳統(tǒng)的方案開發(fā)項(xiàng)目。
CI與CD工具確實(shí)能提交交付的能力,自動(dòng)化是大方向。
以下兩幅圖都是關(guān)于Devops的工具鏈,近年來由于云計(jì)算,互聯(lián)網(wǎng)的發(fā)展,促進(jìn)了DevOps的基礎(chǔ)設(shè)施及工具鏈的發(fā)展,涌現(xiàn)了一大批優(yōu)秀的工具,這些工具包括開發(fā)、測(cè)試、運(yùn)維的各各領(lǐng)域,例如:GitHub、Git/SVN、Docker、Jenkins、Hudson、Ant/Maven/Gradle、Selenium、QUnit、JMeter等。下圖是DevOps相關(guān)的工具集:
DevOps 的工具鏈
DevOps中包括版本控制&協(xié)作開發(fā)工具、自動(dòng)化構(gòu)建和測(cè)試工具、持續(xù)集成&交付工具、部署工具、維護(hù)工具、監(jiān)控,警告&分析工具等等,補(bǔ)充了一些國(guó)內(nèi)的服務(wù),可以讓你更好的執(zhí)行實(shí)施 DevOps 工作流。
版本控制&協(xié)作開發(fā):GitHub、GitLab、BitBucket、SubVersion、Coding、Bazaar
自動(dòng)化構(gòu)建和測(cè)試:Apache Ant、Maven 、Selenium、PyUnit、QUnit、JMeter、Gradle、PHPUnit、Nexus
持續(xù)集成&交付:Jenkins、Capistrano、BuildBot、Fabric、Tinderbox、Travis CI、flow.ci Continuum、LuntBuild、CruiseControl、Integrity、Gump、Go
容器平臺(tái): Docker、Rocket、Ubuntu(LXC)、第三方廠商如(AWS/阿里云)
配置管理:Chef、Puppet、CFengine、Bash、Rudder、Powershell、RunDeck、Saltstack、Ansible
微服務(wù)平臺(tái):OpenShift、Cloud Foundry、Kubernetes、Mesosphere
服務(wù)開通:Puppet、Docker Swarm、Vagrant、Powershell、OpenStack Heat
日志管理:Logstash、CollectD、StatsD
監(jiān)控,警告&分析:Nagios、Ganglia、Sensu、zabbix、ICINGA、Graphite、Kibana
代碼管理(SCM):GitHub、GitLab、BitBucket、SubVersion
構(gòu)建工具:Ant、Gradle、maven
自動(dòng)部署:Capistrano、CodeDeploy
持續(xù)集成(CI):Bamboo、Hudson、Jenkins
配置管理:Ansible、Chef、Puppet、SaltStack、ScriptRock GuardRail
容器:Docker、LXC、第三方廠商如AWS
編排:Kubernetes、Core、Apache Mesos、DC/OS
服務(wù)注冊(cè)與發(fā)現(xiàn):Zookeeper、etcd、Consul
腳本語言:python、ruby、shell
日志管理:ELK、Logentries
系統(tǒng)監(jiān)控:Datadog、Graphite、Icinga、Nagios
性能監(jiān)控:AppDynamics、New Relic、Splunk
壓力測(cè)試:JMeter、Blaze Meter、loader.io
預(yù)警:PagerDuty、pingdom、廠商自帶如AWS SNS
HTTP加速器:Varnish
消息總線:ActiveMQ、SQS
應(yīng)用服務(wù)器:Tomcat、JBoss
Web服務(wù)器:Apache、Nginx、IIS
數(shù)據(jù)庫:MySQL、Oracle、PostgreSQL等關(guān)系型數(shù)據(jù)庫;cassandra、mongoDB、redis等NoSQL數(shù)據(jù)庫
項(xiàng)目管理(PM):Jira、Asana、Taiga、Trello、Basecamp、Pivotal Tracker
2.1.Git/GitLab介紹安裝使用
2.1.1.介紹
Git是一個(gè)版本控制系統(tǒng),GitLab是一個(gè)遠(yuǎn)程的Git倉(cāng)庫,GitLab與GitHub及國(guó)內(nèi)的碼云類似,用戶在GitLab上注冊(cè)賬號(hào),上傳項(xiàng)目到GitLab,通過GitLab對(duì)項(xiàng)目進(jìn)行版本控制。
2.1.2.安裝 Git及GitLab
查詢user.age和uesr.sex
git config user.age
git config user.sex
設(shè)置:
git config --global user.age “itcast”
git config --global user.sex"baidaguo@baidaguo.cn"
2.1.3.在GitLab創(chuàng)建項(xiàng)目
進(jìn)入首頁 點(diǎn)擊New Project
輸入對(duì)應(yīng)信息并提交,創(chuàng)建成功后,進(jìn)入項(xiàng)目主頁,通過項(xiàng)目主頁即可訪問項(xiàng)目?jī)?nèi)容,并得到項(xiàng)目的Git項(xiàng)目倉(cāng)庫地址:
2.1.4.使用Git管理項(xiàng)目(Idea繼承Git并對(duì)項(xiàng)目進(jìn)行管理)
2.1.5.從GitLab檢出項(xiàng)目
2.1.6.提交代碼到GitLab
提交到暫存區(qū)->確認(rèn)無誤->push
如果用過svn的話都懂得 大差不差 總體沒有什么難度
2.2.Docker
介紹就不多說 是在不知道是個(gè)啥玩意可看:
引用百度百科(百度百科Docker)
Docker 源代碼托管在 Github 上, 基于go語言并遵從Apache2.0協(xié)議開源。
官網(wǎng):docker官網(wǎng)
2.2.1.組成
1、Docker daemon(Docker守護(hù)進(jìn)程):
Docker守護(hù)進(jìn)程是部署在操作系統(tǒng)上,負(fù)責(zé)支撐Docker Container的運(yùn)行以及本地Image的管理。
2、Docker client:
用戶不直接操作Docker daemon,用戶通過Docker client訪問Docker,Docker client提供pull、run等操作命令。
3、Docker Image:
Docker 鏡像就是一個(gè)只讀的模板。
例如:一個(gè)鏡像可以包含一個(gè)完整的 ubuntu 操作系統(tǒng)環(huán)境,里面僅安裝了 Tomcat或用戶需要的其它應(yīng)用程序。
鏡像可以用來創(chuàng)建 Docker 容器。
Docker 提供了一個(gè)很簡(jiǎn)單的機(jī)制來創(chuàng)建鏡像或者更新現(xiàn)有的鏡像,用戶甚至可以直接從其他人那里下載一個(gè)已經(jīng)做好的鏡像來直接使用。
4、Docker Container:
Docker 利用容器來運(yùn)行應(yīng)用。容器是從鏡像創(chuàng)建的運(yùn)行實(shí)例。它可以被啟動(dòng)、開始、停止、刪除。每個(gè)容器都是相互隔離的、保證安全的平臺(tái)。打個(gè)比方,鏡像相當(dāng)于類,容器相當(dāng)于對(duì)象。
5、Docker Registry:
Docker 倉(cāng)庫分為公開倉(cāng)庫(Public)和私有倉(cāng)庫(Private)兩種形式
最大的公開倉(cāng)庫是 Docker Hub,存放了數(shù)量龐大的鏡像供用戶下載。
用戶也可以在本地網(wǎng)絡(luò)內(nèi)創(chuàng)建一個(gè)私有倉(cāng)庫。
當(dāng)用戶創(chuàng)建了自己的鏡像之后就可以使用 push 命令將它上傳到公有或者私有倉(cāng)庫,這樣下次在另外一臺(tái)機(jī)器上使用這個(gè)鏡像時(shí)候,只需要從倉(cāng)庫上 pull 下來就可以了。
2.2.2.部署微服務(wù)到Docker
1.安裝
centos7:
直接通過yum安裝即可:yum install -y docker
啟動(dòng)docker:service docker start
查詢docker版本:docker version
centos6:
rpm -ivh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install -y docker-io
service docker start
2.部署
1、工程最終打成 Jar包
2、創(chuàng)建Docker鏡像
3、創(chuàng)建容器
4、啟動(dòng)容器
3.打包(省略了 大家都會(huì))
4.創(chuàng)建鏡像
上一步j(luò)ar包拷貝到linux服務(wù)器先測(cè)試jar包是否可以運(yùn)行:java -jar test-1.0-SNAPSHOT.jar
在test-1.0-SNAPSHOT.jar 位置編寫Dockerfile文件
FROM java:8
ENV ARTIFACTID test
ENV ARTIFACTVERSION 1.0-SNAPSHOT
ENV HOME_PATH /home
WORKDIR $HOME_PATH
ADD /
A
R
T
I
F
A
C
T
I
D
?
ARTIFACTID-
ARTIFACTID?ARTIFACTVERSION.jar
H
O
M
E
P
A
T
H
/
HOME_PATH/
HOMEP?ATH/ARTIFACTID.jar
ENTRYPOINT [“java”, “-jar”, “test.jar”]
在Dockerfile文件所在目錄執(zhí)行:docker build -t test:1.0-SNAPSHOT.jar
鏡像創(chuàng)建成功,查詢鏡像:
[root@localhost xc-govern-center]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test 1.0-SNAPSHOT ad14dcce6666 35 seconds ago 684 MB
5.創(chuàng)建容器
基于test:1.0-SNAPSHOT鏡像創(chuàng)建容器,容器名稱為test-demo
docker create --name test-demo -t -p 50101:50101 -e PORT=50101 -e EUREKA_SERVER=http://192.168.101.64:50101/eureka/,http://192.168.101.64:50102/eureka/ test:1.0-SNAPSHOT
創(chuàng)建成功后 可通過docker ps -a命令查看
6.啟動(dòng)容器
docker start test-demo
7.停止與刪除
1、停止正在運(yùn)行的容器
docker stop 容器名
例如:docker stop test-demo
2、刪除容器
docker rm 容器名
例如:docker rm test-demo
3、刪除鏡像
docker rmi 鏡像名或鏡像Id
例如:docker rmi test:1.0-SNAPSHOT
8.maven構(gòu)建鏡像
a.編寫pom_docker.xml
b.將Dockerfile文件拷貝到src/main/resource下
c.刪除之前創(chuàng)建的xc-govern-center鏡像
d.進(jìn)入工程根目錄(pom_docker.xml所在目錄)執(zhí)行:mvn -f pom_docker.xml clean package -DskipTests docker:build
創(chuàng)建鏡像成功,結(jié)果如下:
Successfully built 64682c9ba311
[INFO] Built xc-govern-center:1.0-SNAPSHOT
[INFO] Tagging xc-govern-center:1.0-SNAPSHOT with 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.409 s
[INFO] Finished at: 2018-07-19T14:21:16+08:00
[INFO] Final Memory: 52M/414M
[INFO] ------------------------------------------------------------------------
2.3.持續(xù)集成
問題描述:
傳統(tǒng)的軟件開發(fā)流程如下:
1、項(xiàng)目經(jīng)理分配模塊給開發(fā)人員
2、每個(gè)模塊的開發(fā)人員并行開發(fā),并進(jìn)行單元測(cè)試
3、開發(fā)完畢,將代碼集成部署到測(cè)試服務(wù)器,測(cè)試人員進(jìn)行測(cè)試。
4、測(cè)試人員發(fā)現(xiàn)bug,提交bug、開發(fā)人員修改bug
5、bug修改完畢再次集成、測(cè)試。
問題描述:
1、模塊之間依賴關(guān)系復(fù)雜,在集成時(shí)發(fā)現(xiàn)大量bug
2、測(cè)試人員等待測(cè)試時(shí)間過長(zhǎng)
3、軟件交付無法保障
解決上述問題的思考:
1、能否把集成測(cè)試時(shí)間提前?
2、能否使用自動(dòng)化工具代替人工集成部署的過程?
持續(xù)集成的思想是每天要多次將代碼合并到主干,并進(jìn)行集成、測(cè)試,這樣就可以提早發(fā)現(xiàn)錯(cuò)誤,進(jìn)行修正。持久集成也屬于DevOps
優(yōu)點(diǎn):
1、自動(dòng)化集成部署,提高了集成效率。
2、更快的修復(fù)問題。
3、更快的進(jìn)行交付。
4、提高了產(chǎn)品質(zhì)量。
1.此處測(cè)試項(xiàng)目集成流程如下:
2.環(huán)境搭建
a.安裝Jenkins 官網(wǎng)地址:Jenkins官網(wǎng)
具體安裝文檔網(wǎng)上都有的 沒有私信博主也可以
b.安裝GitLab(見上文)
c.pom
此文件相比工程原有pom.xml增加了docker-maven-plugin插件,其作用是構(gòu)建docker鏡像并將鏡像推送到Docker私有倉(cāng)庫(192.168.101.64:5000)
2.4.創(chuàng)建持續(xù)集成任務(wù)
1.Jenkins構(gòu)建一個(gè)任務(wù)
2.配置git倉(cāng)庫
a.配置git憑證
此憑證用于遠(yuǎn)程從git倉(cāng)庫克隆工程源代碼
輸入git倉(cāng)庫的賬號(hào)和密碼,這里如果使用碼云,下邊需要配置碼云的賬號(hào)和密碼。
b.配置git倉(cāng)庫地址,此地址即構(gòu)建項(xiàng)目的地址
3.maven構(gòu)建
1、使用shell腳本停止容器、刪除容器、刪除鏡像
遠(yuǎn)程登錄192.168.101.64(測(cè)試服務(wù)器)
停止test-center容器
刪除test-center容器
刪除192.168.101.64:5000/test-center:1.0-SNAPSHOT鏡像
shell腳本如下:
自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過,也去過華為、OPPO等大廠,18年進(jìn)入阿里一直到現(xiàn)在。
深知大多數(shù)Linux運(yùn)維工程師,想要提升技能,往往是自己摸索成長(zhǎng)或者是報(bào)班學(xué)習(xí),但對(duì)于培訓(xùn)機(jī)構(gòu)動(dòng)則幾千的學(xué)費(fèi),著實(shí)壓力不小。自己不成體系的自學(xué)效果低效又漫長(zhǎng),而且極易碰到天花板技術(shù)停滯不前!
因此收集整理了一份《2024年Linux運(yùn)維全套學(xué)習(xí)資料》,初衷也很簡(jiǎn)單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時(shí)減輕大家的負(fù)擔(dān)。
既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗(yàn)的小伙伴深入學(xué)習(xí)提升的進(jìn)階課程,基本涵蓋了95%以上Linux運(yùn)維知識(shí)點(diǎn),真正體系化!
由于文件比較大,這里只是將部分目錄大綱截圖出來,每個(gè)節(jié)點(diǎn)里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實(shí)戰(zhàn)項(xiàng)目、講解視頻,并且后續(xù)會(huì)持續(xù)更新
如果你覺得這些內(nèi)容對(duì)你有幫助,可以添加VX:vip1024b (備注Linux運(yùn)維獲取)
系的自學(xué)效果低效又漫長(zhǎng),而且極易碰到天花板技術(shù)停滯不前!**
因此收集整理了一份《2024年Linux運(yùn)維全套學(xué)習(xí)資料》,初衷也很簡(jiǎn)單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時(shí)減輕大家的負(fù)擔(dān)。 [外鏈圖片轉(zhuǎn)存中…(img-2OepUIPS-1712829407326)] [外鏈圖片轉(zhuǎn)存中…(img-hn26AI3K-1712829407327)] [外鏈圖片轉(zhuǎn)存中…(img-dEEk6PC1-1712829407327)] [外鏈圖片轉(zhuǎn)存中…(img-xuW4yfVn-1712829407328)] [外鏈圖片轉(zhuǎn)存中…(img-XO50oWdI-1712829407329)]
既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗(yàn)的小伙伴深入學(xué)習(xí)提升的進(jìn)階課程,基本涵蓋了95%以上Linux運(yùn)維知識(shí)點(diǎn),真正體系化!
由于文件比較大,這里只是將部分目錄大綱截圖出來,每個(gè)節(jié)點(diǎn)里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實(shí)戰(zhàn)項(xiàng)目、講解視頻,并且后續(xù)會(huì)持續(xù)更新
如果你覺得這些內(nèi)容對(duì)你有幫助,可以添加VX:vip1024b (備注Linux運(yùn)維獲?。?[外鏈圖片轉(zhuǎn)存中…(img-F8SHEo1h-1712829407329)]
柚子快報(bào)激活碼778899分享:DevOps運(yùn)維開發(fā)一體化
推薦鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。