国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

container-as-a-service-0x02 -- 項目構建&部署之道

arashicage / 573人閱讀

container-as-a-service-0x02 -- 項目構建&部署之道

By 蘇依蜀黍 . 2016.06.08

分析

之前寫了兩篇,算是比較完善的稱述了就目前的業務,容器服務在我司的應用,但是沒有比較具體的講如何構建以及部署,所以這一篇主要講如何對項目進行容器化以及如何部署,對我司業務分類以后可以有以下幾種類型:

python應用

node.js應用

php應用

nginx服務

docker服務(server)

進一步分大類就只有兩種:

應用

服務

至于項目代碼,大概是有兩到三個代碼倉:

coding

github

gitlab(私有庫)

構建 配置參考

項目內添加一個Dockerfile在根目錄即可,如下是php-nginx的配置

#++++++++++++++++++++++++++++++++++++++
# Ubuntu 14.04 PHP-Nginx Docker container
#++++++++++++++++++++++++++++++++++++++

FROM webdevops/php:ubuntu-14.04
MAINTAINER info@webdevops.io
LABEL vendor=WebDevOps.io
LABEL io.webdevops.layout=5
LABEL io.webdevops.version=0.21.0

ENV WEB_DOCUMENT_ROOT  /app
ENV WEB_DOCUMENT_INDEX index.php
ENV WEB_ALIAS_DOMAIN   *.vm

# THINKPHP ENV 
# TP_CONFIG maybe one of aliyun-inner-pro,aliyun-outer-pro,aliyun-outer-test,localhost-dev,localhost-test
ENV TP_DEBUG    false    
ENV TP_CONFIG    aliyun_outer_pro      

# Install nginx
RUN /usr/local/bin/apt-install 
        nginx

# Deploy scripts/configurations


RUN     mkdir -p /app
WORKDIR    /app

COPY     src/    /app/
COPY     conf/    /opt/docker/

RUN echo $TP_DEBUG > ThinkPHP.txt
RUN echo $TP_CONFIG >> ThinkPHP.txt

RUN bash /opt/docker/bin/control.sh provision.role.bootstrap webdevops-nginx 
    && bash /opt/docker/bin/control.sh provision.role.bootstrap webdevops-php-nginx 
    && bash /opt/docker/bin/bootstrap.sh

EXPOSE 80 443

CMD ["supervisord"]
鏡像的第三方構建服務(我司在用&以及支持的代碼倉)

阿里云容器服務自動構建

github

bitbucket

local

aliyun code

Daocloud自動構建

github

bitbucket

coding

gitlab(付費&企業版功能)

鏡像的私有構建方案

gitlab-runner

jenkins

local push

#通過webhook實現

不論第三方服務還是私有構建都是做了三件事:

# mkdir dir & pull code
cd workspace &&  mkdir {project name} && git pull {project repo} .

# build 
docker build -t {project imageName}:{project commitId} .

# push image
docker push 
部署 容器部署

前一篇我們使用rancher-server作為docker的管理中心(可選的還有dcos、ucp等),其實在啟動鏡像的時候,我們就已經在選擇鏡像了

“nginx”就是鏡像,這個鏡像可以來自docker-hub也可以來自私有Registry

混合方案

有兩個比較有名的工具,python的用戶應該聽說過fabric,有興趣的可以看下面的參考鏈接;另一個是ansible,同樣也在下面的參考鏈接里。這里要說的是ansible強大的遠程管理功能:

批量在遠程服務器執行命令

可選在那些機器上執行

可選每次執行的數量

強大的playbook

可定義任務隊列以及根據不同的情況決定如何執行

可重復(執行過的不再執行)

more

更多請參考ansible文檔

好像偏題了,那么這樣說,用ansible我們可以至少可以做兩件事:

構建docker鏡像(根據情況選擇海外或者國內)

手動部署&更新代碼 or 更新 容器 或者 容器內的代碼

有這兩項功能,能做的事情,就比較多了,示例如下:

---
- hosts: webservers
  vars:
    http_port: 80
    max_clients: 200
  remote_user: root
  tasks:
  - name: ensure apache is at the latest version
    yum: name=httpd state=latest
  - name: write the apache config file
    template: src=/srv/httpd.j2 dest=/etc/httpd.conf
    notify:
    - restart apache
  - name: ensure apache is running (and enable it at boot)
    service: name=httpd state=started enabled=yes
  handlers:
    - name: restart apache
      service: name=httpd state=restarted
CI 第三方服務的持續集成

Daocloud支持持續集成

阿里云在容器服務控制臺可以配置

私有構建方案的持續集成

這里就更明確了,即在playbook執行完以后,通過rancher的api去更新容器或者服務,這里可參考文檔rancher文檔。

參考

dockerizing-your-frontend-project

dockerizing-a-node-js-web-app

python-fabric

ansible documents

rancher api documents

基于Docker & Fabric的Web項目部署方案

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/26618.html

相關文章

  • container-as-a-service-0x01 -- 基于Docker的私有云&混合

    摘要:基于的私有云混合云構建方案蘇依蜀黍是一個開源的引擎,可以輕松的為任何應用創建一個輕量級的可移植的自給自足的容器。開發者在筆記本上編譯測試通過的容器可以批量地在生產環境中部署,包括虛擬機集群和其他的基礎應用平臺。 container-as-a-service-0x01 -- 基于Docker的私有云&混合云構建方案 By 蘇依蜀黍 . 2016.06.07 what Docker是一...

    import. 評論0 收藏0
  • container-as-a-service-0x00 -- 基于Docker的私有云&混合

    container-as-a-service-0x00 -- 基于Docker的私有云&混合云搭建需求 preface 使用docker對node以及php等程序進行打包以實現快速分發部署上線后,隨之而來的需求是: 統一更大規模的服務器集群為資源池,即不再區分具體的服務器,而是將所有的服務器資源歸為一個資源池,根據需要,隨時創建移除資源,以應對更大數量的資源請求以及,減少資源浪費。故而,我們使用n...

    Julylovin 評論0 收藏0
  • Gitlab CI/CD執行流程

    一、什么是CI/CDCI 持續集成CD 持續交付CI/CD就是在開發階段,通過自動化發布,來頻繁部署應用的一種方式二、為什么要配置CI/CD想象一下,一個項目的發布如果手動部署,需要的操作有:單元測試打包文件上傳服務器等等如果每個過程都需要手動執行,每次都要保證不出錯,這個已經很繁瑣了。而現在大的前端項目多達10+的人開發,而且人員流動大。如果每個人都這么發布,快速迭代就容易出錯。這時候就需要CI...

    社區管理員 評論0 收藏0
  • PHP新手開發者的路線建議

    摘要:年開發者應該熟練使用,并且知道版本更新內容。對開發和運維人員來說,最希望的就是一次性創建或配置,可以在任意地方正常運行。是標準規范,是開發的實踐標準。對開發者來說語言推薦和,全棧的選擇非常多,推薦熱門的 前言 在前天(2018-08-02)已經發布了PHP 7.3.0.beta1 Released 如果你還沒有使用 PHP7 ,那真的很遺憾。2018年PHP開發者應該熟練使用 PHP7...

    klinson 評論0 收藏0
  • 企業互聯網應用高性能解決之道

    摘要:本文介紹了企業互聯網開發及運維的一些實踐,深入剖析了互聯網項目開發及上線過程中的各種痛點及解決之道。線上出錯,我們通過收集服務器端應用性能數據的方式,實時展示應用的調用拓撲圖,并根據出現異常的請求,進行下鉆,定位出具體出現問題的代碼。 本文介紹了企業互聯網開發及運維的一些實踐,深入剖析了互聯網項目開發及上線過程中的各種痛點及解決之道。一個互聯網項目的上線并不是那么容易,需要經過很多的環...

    Alan 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<