簡易檢索 / 詳目顯示

研究生: 曹祖維
Tsao, Tsu-Wei
論文名稱: NetDevOps 結合程式及自動化工具以達成企業等級網路自動化管理之研究
A Study of Achieving NetDevOps by Conducting Programmability and Automation Tools in an Enterprise network.
指導教授: 林福仁
Lin, Fu-Ren
口試委員: 許裴舫
Hsu, Pei-Fang
薄榮薇
Po, Jung-Wei
學位類別: 碩士
Master
系所名稱: 科技管理學院 - 高階經營管理雙聯碩士學位學程
NTHU-UTA Dual EMBA Degree Program
論文出版年: 2023
畢業學年度: 111
語文別: 中文
論文頁數: 56
中文關鍵詞: 網路自動化網路管理基礎架構即代碼網路即代碼軟體定義網路
外文關鍵詞: NetDevOps, Network Automation, Network as Code, Infrastructure as Code, SDN
相關次數: 點閱:29下載:0
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 大多數系統依靠網路進行通信方能正常運行。但是,網路基礎設施有時可能很脆弱。因此,企業通常盡可能避免網路設定變更,或對網路基礎設施的變更需要經過嚴格且費時的審核。儘管有這些檢查,網路設定變更仍然充滿問題和意想不到的影響。大多數這些問題的發生是由於人為錯誤和缺乏徹底驗證的情況。

    NetDevOps 被定義為 DevOps 文化和 Network 的交集。NetDevOps 使用基礎架構即代碼(IaC)自動執行之前需要手動進行的傳統網路變更流程。NetDevOps 可以提供必要的自動化以避免人為錯誤。透過這些努力,最終的目標是讓「Net」、「Dev」和「Ops」在許多方面趨於協同一致。網路技術趨勢遵循與數據中心趨勢相同的路徑。可編程軟件定義和基於雲的網路環境通過使用基礎架構即代碼(Infrastructure as Code)和自動化使 NetDevOps 成為現實。時至今日,NetDevOps 是網路領域最受關注的創新之一。

    成功佈署的 NetDevOps 可以將日常維運完全自動化、擁有進行跨廠牌網路佈署能力、融入並應用 DevOps CI/CD Pipeline 的手法進行配置的測試及變更。隨著科技及技術的持續演進,NetDevOps 在未來終將成為所有企業或組織的標準
    。本研究主旨在研究 NetDevOps的技術理論架構及其相對應的程式、套件、開源工具,並且實作數種可使用於生產環境的流程,並且對 NetDevOps 導入企業環境所能帶來的好處及其相關的限制進行研究。

    研究中引入設計科學研究(DSR)中的兩個關鍵概念:設計成果物和設計評估。設計成果物是設計科學研究的結果,用於解決組織中的重要問題;本研究建構三組程式碼及實際操作案例為設計成果物(Arfifacts)。設計評估則是確定設計成果物實用性、品質和效能的關鍵步驟,以確保設計成果物能夠滿足問題的需求和限制條件。本研究評估經由問卷進行,經過實際操作與展示,受測者對於 NetDevOps 的概念和應用普遍持正面評價,並認為 NetDevOps 可以提高網路管理的效率、降低風險、提升網路可視性。

    在學術領域,本研究為網路管理和運維的研究提供了新的視角和方法。傳統的網路管理方法往往是手動和分散的,而NetDevOps宣導的自動化和持續交付能夠提高網路管理的效率,並且可以更好地應對不斷變化的網路環境。學術界可以通過研究和探索NetDevOps的原則和實踐,為網路管理和運維領域提供新的理論和方法。

    在實務領域,本研究中NetDevOps的實作範例可以帶來管理上的好處。自動化的網路配置和管理可以減少人為錯誤,提高網路的可靠性和穩定性。此外,持續交付的原則使得網路變更更加靈活和敏捷,能夠快速回應業務需求的變化
    。這些實踐可以使組織建立更高效、可靠和靈活的網路架構。


    Most systems rely on networks to communicate in order to function properly. However, network infrastructure can sometimes be fragile. As a result, enterprises usually try to avoid network configuration changes as much as possible, or changes to network infrastructure that require strict and time-consuming approval processes. Despite these checks, network configuration changes are still full of problems and unexpected effects. Most of these problems occur due to human errors and lack of thorough verification.

    NetDevOps is defined as the intersection of DevOps culture and Network. NetDevOps uses Infrastructure as Code (IaC)to automate traditional network change processes that previously required manual intervention. NetDevOps can provide necessary automation to avoid human errors. Through these efforts, the ultimate goal is to make ”Net”, ”Dev”, and ”Ops” more collaborative in many ways. Network technology trends follow the same path as data center trends. Programmable, software-defined, and cloud-based network environments make NetDevOps a reality through the use of Infrastructure as Code (IaC)and automation. To this day, NetDevOps remains one of the most significant innovations in the field of networking.

    Successfully deployed NetDevOps can fully automate daily operations, have cross-vendor network deployment capabilities, and incorporate testing and changes to configurations using DevOps CI/CD Pipeline techniques. With the continuous evolution of technology and techniques, NetDevOps will eventually become the standard for all enterprises or organizations in the future. The main purpose of this study is to investigate the technical theoretical framework of NetDevOps and its corresponding programs, packages, and open-source tools, and to implement several processes that can be used in production environments. The study also examines the benefits and related limitations of introducing NetDevOps into enterprise environments.

    The research introduces two key concepts from Design Science Research (DSR): design artifacts and design evaluation. Design artifacts are the outcomes of design science research used to address important problems within organizations. In this study, three sets of code and practical use cases were constructed as design artifacts. Design evaluation is a critical step in determining the utility, quality, and performance of design artifacts to ensure they meet the requirements and constraints of the problem. The evaluation in this study was conducted through questionnaires and practical demonstrations. The respondents generally had a positive evaluation of the concept and application of NetDevOps, believing that it can enhance the efficiency of network management, reduce risks, and improve network visibility.

    In the academic field, this research provides new perspectives and methods for the study of network management and operations. Traditional network management methods are often manual and fragmented, while the automation and continuous delivery advocated by NetDevOps can improve the efficiency of network management and better adapt to the ever-changing network environment. Academics can contribute to the field of network management and operations by researching and exploring the principles and practices of NetDevOps, offering new theories and methods.In practical applications, the implementation examples of NetDevOps in this study bring management benefits. Automated network configuration and management can reduce human errors and improve network reliability and stability. Additionally, the principles of continuous delivery make network changes more flexible and agile, allowing organizations to quickly respond to changing business needs. These practices can help organizations establish more efficient, reliable, and flexible network architectures.

    1 第壹章、緒論 1 1.1 研究背景與動機 1 1.2 研究目的 2 2 第貳章、文獻探討 3 2.1 設計科學 3 2.2 相關技術研究 5 2.2.1 軟體定義網路及意圖式網路(SDN and IBN) 5 2.2.2 基礎架構即程式碼(IaC:Infrastructure As Code) 8 2.2.3 網路即程式碼(NaC:Network as Code) 10 2.2.4 編程與應用程式介面(API) 12 2.2.5 自動化佈署及組態管理(Configuration Management) 22 3 第參章、研究方法 26 3.1 設計科學與方法論 26 3.1.1 設計成果物(Artifact) 26 3.1.2 設計評估(Design Evaluation) 26 3.2 專家訪談法 27 4 第肆章、情境設計及展示說明 28 4.1 使用程式化的方式進行網路設定變更管理 - NAPALM 28 4.2 使用自動化框架進行網路設備群組化管理 - Nornir 28 4.3 與外部 API 整合自動化流程 - NETCONF/YANG/RESTAPI 31 5 第伍章、情境展示及分析 32 5.1 情境展示與專家訪談 32 5.2 專家訪談結果與分析 35 5.2.1 訪談文本分析 35 5.2.2 問卷資料分析 39 6 第陸章、討論與未來研究 45 6.1 結果討論 45 6.2 企業網路管理自動化之建議 48 6.2.1 企業網路自動化發展策略 48 6.2.2 NetDevOps 工具組合建議 49 6.3 研究限制 51 6.4 未來研究方向 53 6.4.1 針對服務面向的多點變更 53 6.4.2 自動化工具的進階研究 53 7 第柒章、結論 54 參考文獻 55

    Agapides, L. (2019). Introduction to rest api. Retrieved from https:// networklessons.com/cisco/ccna-200-301/introduction-to-rest-api
    Albrecht, M. (2020). restconf-tutorial-everything-you-need-to-know-about- restconf-in-2020. Retrieved from https://ultraconfig.com.au/blog/ restconf-tutorial-everything-you-need-to-know-about-restconf-in
    -2020/
    Alex. (2022). The 8 most common http error codes–how to easily fix them. Re- trieved from https://blog.Misc-convert.com/the-8-most-common-http
    -error-codes-how-to-easily-fix-them/
    Alley, R. J. (2022). What is a loopback address? Retrieved from https:// www.vpnranks.com/ip-address/loopback-address/
    Beloša, I. (2014). Understanding access control lists (acl). Retrieved from
    https://www.routerfreak.com/understanding-access-control-lists
    -acl/
    Bjorklund, E. (2010). Yang - a data modeling language for the network configura- tion protocol (netconf) (RFC No. 1). RFC Editor. Internet Requests for Com- ments. Retrieved from https://www.rfc-editor.org/rfc/rfc6020 doi: 10.17487/RFC6020
    Chou, E. (2020). Mastering python networking. packt.
    Donato, R. (2020). Network automation 101 - tooling landscape.
    Retrieved from https://www.packetcoders.io/network-automation-101
    -tooling-landscape/
    Fielding, R. T. (2000). Architectural styles and the design of network-based soft- ware architectures (Unpublished master’s thesis). UNIVERSITY OF CALI- FORNIA, IRVINE.
    Gillis, A. S. (2021). Definition:zero-touch provisioning (ztp). Retrieved from https://www.techtarget.com/searchitoperations/definition/ zero-touch-provisioning-ZTP
    Hevner, J. P., Salvatore T. March, & Ram, S. (2004, March). Design science in information systems research. MIS Quarterly, 28(1), 31.
    Huang, P. (2018). Netdevops 風格之網路設備連接方式. Retrieved from https:// blog.pichuang.com.tw/20180825-netdevops/
    Jackson, C., Gooley, J., LLiesiu, A., & Malegaonkar, A. (2020). Cisco certified devnet associate. Cisco Press.
    Kosem, G. (2020). Ansible vs puppet vs chef. Retrieved from https://ipcisco
    .com/lesson/ansible-vs-puppet-vs-chef/
    Neil. (2019). Day12 什麼是 cicd. Retrieved from https://ithelp.ithome.com
    .tw/articles/10219083
    Norcini, S. (2020). The basics of out-of-band management. Retrieved from
    https://opengear.com/blog/what-is-out-of-band-management/
    Offley, G. (2022). What is serialization? Retrieved from https://www
    .freecodecamp.org/news/what-is-serialization/
    Pepelnjak, I. (2019). Paramiko, netmiko, napalm or nornir? Retrieved from https://blog.ipspace.net/2019/09/paramiko-netmiko-napalm-or

    -nornir.html
    Petryschuk, S. (2022). Preventing network configuration drift. Retrieved from https://www.auvik.com/franklyit/blog/network-configuration
    -drift/
    Preston, H. (2018). What does “network as code"mean? Retrieved from https://blogs.cisco.com/developer/what-does-network-as-code
    -mean
    Schults, C. (2019). What is infrastructure as code? how it works, best practices, tutorials. Retrieved from https://stackify.com/what-is-infrastructure
    -as-code-how-it-works-best-practices-tutorials/
    Shash. (2018). Day(-1),day-0,day-1,day-2..n configurations. Retrieved from https://community.cisco.com/t5/nso-developer-hub-blogs/ day-1-day-0-day-1-day-2-n-configurations/ba-p/3658255
    Stretch, J. (2010). Understanding ip prefix lists. Retrieved from https:// packetlife.net/blog/2010/feb/1/understanding-ip-prefix-lists/
    Tao, G. (2018). Ibn(基於意圖的網路) 十問. Retrieved from https://baijiahao
    .baidu.com/s?id=1590017760325925678
    Watts, S., & Raza, M. (2019). Saas vs paas vs iaas: What's the difference & how to choose. Retrieved from https://www.bmc.com/blogs/saas-vs-paas-vs
    -iaas-whats-the-difference-and-how-to-choose/

    QR CODE