• 
    

      <address id="upfr9"><pre id="upfr9"><strike id="upfr9"></strike></pre></address>
      1. <address id="upfr9"><tr id="upfr9"></tr></address><dl id="upfr9"></dl>

        Openstack中Mistral工作流組件的示例分析

        這篇文章主要介紹Openstack中Mistral工作流組件的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

        創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),鑲黃企業(yè)網(wǎng)站建設(shè),鑲黃品牌網(wǎng)站建設(shè),網(wǎng)站定制,鑲黃網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,鑲黃網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

        Mistrial是mirantis公司為openstack開發(fā)的工作流組件,提供WorkFlow as a service。 典型的用戶用例包括云平臺(tái)的任務(wù)計(jì)劃服務(wù)(Cloud Cron),任務(wù)調(diào)度(Task Scheduling), 復(fù)雜的運(yùn)行時(shí)間長的業(yè)務(wù)流程服務(wù)。目前項(xiàng)目還在開始階段。對(duì)應(yīng)的是AWS的SWS(Simple WorkFlow Service)。

        項(xiàng)目wiki:https://wiki.openstack.org/wiki/Mistral

        項(xiàng)目Code: https://github.com/stackforge/mistral

        1. 基本術(shù)語

        Workbook: 工作本,用戶的工作流接口,可以理解成一篇任務(wù)文檔用來錄入用戶的工作流程,步驟,需要完成的任務(wù)。每個(gè)任務(wù)的執(zhí)行順序,依賴關(guān)系,以及每個(gè)任務(wù)完成之后產(chǎn)生的事件。站在用戶的角度,這篇文檔完整的記錄了某項(xiàng)任務(wù)的流程,讓執(zhí)行者能夠清楚怎么完成。站在開發(fā)人員的角度,為了方便編程。定義了一種新的語言DSL(下面會(huì)有介紹),用來描述整個(gè)工作流。

        Task: 即工作流的具體步驟??梢允茿ction的集合。

        Action: Mistral的最小單位。特指一個(gè)具體的工作,比如說發(fā)送一個(gè)HTTP請(qǐng)求,或者運(yùn)行某條命令。

        Flow:工作流。 指的是Mistral系統(tǒng)中如何執(zhí)行task,解析task的依賴關(guān)系等等,從而讓task順利結(jié)束,并返回狀態(tài)。

        WorkFlow Execution: 工作流執(zhí)行紀(jì)錄。就是指某次具體的Flow,每次執(zhí)行task產(chǎn)成的WorkFlow Execution會(huì)永久保存在數(shù)據(jù)庫中,方便后續(xù)查詢,或者重新執(zhí)行Flow。

        2. DSL 介紹

        這是Mistral自定義的工作流定義語言。在業(yè)界,工作流程管理 已經(jīng)存在某些語言,可參考:

        http://en.wikipedia.org/wiki/Business_Process_Execution_Language

        http://en.wikipedia.org/wiki/YAWL

        Mistral 使用YAML 來定義工作流 wiki: https://wiki.openstack.org/wiki/Mistral/DSL

        3. 實(shí)戰(zhàn)

        從Github下載最新的代碼,安裝好運(yùn)行環(huán)境。同時(shí)啟動(dòng)API和executor服務(wù)

        tox -evenv -- python mistral/cmd/launch.py --server executor --config-file etc/mistral.conf
        tox -evenv -- python mistral/cmd/launch.py --server api --config-file etc/mistral.conf

        然后運(yùn)行“scripts/upload_workbook_and_run.py” 腳本,可以清楚看到整個(gè)流程。

        [ray@fedora mistral]$ python scripts/upload_workbook_and_run.py 
        Created workbook: Workbook [description='My test workbook', name='my_workbook', tags='[u'test']']
        
        Uploaded workbook:
        "
        Services:
           MyRest:
             type: REST_API
             parameters:
                 baseUrl: http://localhost:8989/v1/
             actions:
                 my-action:
                   parameters:
                       url: workbooks
                       method: GET
        
        Workflow:
           tasks:
             my_task:
                 action: MyRest:my-action
        
        #   events:
        #     my_event:
        #        type: periodic
        #        tasks: my_task
        #        parameters:
        #            cron-pattern: "* * * * *"
        "
        
        execution: Execution [state='RUNNING', task='my_task', id='b5cf7e00-ef5d-46d7-b505-2d23809d29d0', context='None', workbook_name='my_workbook']
        execution: Execution [state='RUNNING', task='my_task', id='b5cf7e00-ef5d-46d7-b505-2d23809d29d0', context='None', workbook_name='my_workbook']
        execution: Execution [state='SUCCESS', task='my_task', id='b5cf7e00-ef5d-46d7-b505-2d23809d29d0', context='None', workbook_name='my_workbook']

        我們可以裝上Misttral client (https://github.com/stackforge/python-mistralclient)來看看到底發(fā)生了什么。首先看看系統(tǒng)中存在哪些workbook,已經(jīng)剛剛運(yùn)行的my-wokbook

        [ray@fedora mistral]$ mistral workbook-list
        Starting new HTTP connection (1): localhost
        +---------------+------------------+------+
        | Name          | Description      | Tags |
        +---------------+------------------+------+
        | echo_workbook | My test workbook | test |
        | my_workbook   | My test workbook | test |
        +---------------+------------------+------+
        [ray@fedora mistral]$ mistral workbook-get-definition my_workbook
        Starting new HTTP connection (1): localhost
        Services:
           MyRest:
             type: REST_API
             parameters:
                 baseUrl: http://localhost:8989/v1/
             actions:
                 my-action:
                   parameters:
                       url: workbooks
                       method: GET
        
        Workflow:
           tasks:
             my_task:
                 action: MyRest:my-action
        
        #   events:
        #     my_event:
        #        type: periodic
        #        tasks: my_task
        #        parameters:
        #            cron-pattern: "* * * * *"

        這個(gè)workbook,首先定義了一個(gè)服務(wù)(在系統(tǒng)中注冊個(gè)新的服務(wù),服務(wù)一般都包含定義好的action,這樣用戶就可以在task flow中指定運(yùn)行這個(gè)action),這個(gè)服務(wù)類型是REST,然后參數(shù)有哪些等等。然后定義了一個(gè)工作流,其中的任務(wù)列表(tasks)第一個(gè)是my_task (taks名字),這個(gè)task做了一件事情,就是運(yùn)行一次MyRest服務(wù)中的my_action動(dòng)作。

        在看看另外一個(gè)workbook, 就簡單定義個(gè)一個(gè)ECHO type的服務(wù)。這個(gè)服務(wù)僅在內(nèi)部測試使用,就直接返回ECHO值。

        [ray@fedora mistral]$ mistral workbook-get-definition echo_workbook
        Starting new HTTP connection (1): localhost
        Services:
          MyEcho:
            type: ECHO
            actions:
                EchoWords:        
                  parameters:
                    word:
                        optional: False
                        
        
        Workflow:
            tasks:
                logPassTask:
                    action: MyEcho:EchoWords
                    parameters:
                       word: "log pass" 
                MyEchoTask:
                    action: MyEcho:EchoWords
                    parameters:
                       word: "hello, world" 
                    on-success: logPassTask

        具體的運(yùn)行l(wèi)og:

        [ray@fedora mistral]$ mistral execution-get echo_workbook bcf47b8c-6d44-4732-b32d-ebef92662f38
        Starting new HTTP connection (1): localhost
        +----------+--------------------------------------+
        | Field    | Value                                |
        +----------+--------------------------------------+
        | ID       | bcf47b8c-6d44-4732-b32d-ebef92662f38 |
        | Workbook | echo_workbook                        |
        | Target   | MyEchoTask                           |
        | State    | SUCCESS                              |
        +----------+--------------------------------------+
        [ray@fedora mistral]$ mistral task-list echo_workbook bcf47b8c-6d44-4732-b32d-ebef92662f38
        Starting new HTTP connection (1): localhost
        +--------------------------------------+---------------+--------------------------------------+-------------+-------------+---------+--------+
        | ID                                   | Workbook      | Execution                            | Name        | Description | State   | Tags   |
        +--------------------------------------+---------------+--------------------------------------+-------------+-------------+---------+--------+
        | e5cb4a7a-b6c6-46ec-b62b-aa385bd3f8c2 | echo_workbook | bcf47b8c-6d44-4732-b32d-ebef92662f38 | MyEchoTask  | <none>      | SUCCESS | <none> |
        | 1c99cc02-e1b0-44c2-b961-8589164bb851 | echo_workbook | bcf47b8c-6d44-4732-b32d-ebef92662f38 | logPassTask | <none>      | SUCCESS | <none> |
        +--------------------------------------+---------------+--------------------------------------+-------------+-------------+---------+--------+

        4. 最近進(jìn)展

        上面的實(shí)戰(zhàn)例子可能沒讓大家意識(shí)到mistral跟openstack的關(guān)系,然后相信這個(gè)workbook 會(huì)讓大家明白。

        https://wiki.openstack.org/wiki/Mistral/DSL#Full_YAML_example:

        關(guān)于VM的工作流,創(chuàng)建NOVA VM。 Mistral開發(fā)組正在實(shí)現(xiàn)這種類型的workbook,即集成openstack服務(wù)。這樣用戶就不需要用openstack CLI or API來操作,可以直接編寫workbook(簡單編寫文檔,而不是寫code),讓mistral幫你做完整個(gè)工作流程。

        另外關(guān)于Mistral和taskflow的集成:

        Mistral在實(shí)現(xiàn)的過程中,需要開發(fā)大量的工作流代碼。這跟openstack項(xiàng)目庫中TaskFlow 目的有些類似。為了避免重復(fù)勞動(dòng),兩邊的開發(fā)者已經(jīng)在討論,在Mistral代碼中,后端的工作流代碼盡量采用taskflow作為后端。

        以上是“Openstack中Mistral工作流組件的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

        新聞名稱:Openstack中Mistral工作流組件的示例分析
        標(biāo)題路徑:http://www.jbt999.com/article18/ppjedp.html

        成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、面包屑導(dǎo)航App開發(fā)、用戶體驗(yàn)靜態(tài)網(wǎng)站、品牌網(wǎng)站建設(shè)

        廣告

        聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

        營銷型網(wǎng)站建設(shè)

      2. 
        

          <address id="upfr9"><pre id="upfr9"><strike id="upfr9"></strike></pre></address>
          1. <address id="upfr9"><tr id="upfr9"></tr></address><dl id="upfr9"></dl>
            国产女人AV第一 | 丰满大爆乳波霸奶一区 | 蜜臀久久精品久久久久宅男 | 丰满人妻一区二区三区在线视频53 | HYZEO神尾舞视频 | 丰满熟女一区二区三区在线播放 | 蜜桃久久网 | 一本视频无码视频 | 欧美黄色性爱视频 | 国产内射久久 |