系統架構設計師論文分享-論云原生技術的應用

我的軟考歷程

摘要

2023年2月,我所在的公司做了開發紗線MES系統的決定,該系統為國內紗線工廠提供SAAS服務,旨在提高紗線工廠的智能化和數字化水平。我在該項目中被任命為系統架構設計師,全面掌管該項目的架構設計工作。該項目涉及參與者眾多,邏輯復雜,需求變化快,要求具有高性能、高可用、高可靠性以及靈活發布等特點。基于此,我們采用云原生技術,把系統中的非功能性特性剝離出來,具體而言,我們用到了彈性、可觀測性、微服務等特性,如此,開發人員就可以專注業務功能的開發,從繁重的底層搭建中解放出來。借助云原生技術的加持,最終在2023年10月,該系統正式上線并運行至今,目前已經有879家工廠接入了我們的系統,系統運行穩定,表現優異,得到了客戶工廠和公司領導的一致贊揚。

項目背景

隨著我國從制造業大國升級為制造業強國以及工廠數字化和智能化的持續推進,我所在的某地某科技公司基于自研的物聯網平臺相繼開發了染整一體化和織布一體化等系統,這些系統上線后,得到了工廠的追捧,也為公司帶來了豐厚的經濟回報。基于此,我司于2023年2月開始研發紗線MES系統,該系統總投資730萬,開發周期10個月,涵蓋紗線工廠從清花、梳棉、并條、精梳、粗紗、細紗到絡筒的全流程工序,將為紗線工廠提供全面的生產管理解決方案以及基于數據的智能決策分析能力。該項目采用物聯網層次架構,整體分為感知層、網絡層和應用層。其中網絡層為公司已有的物聯網平臺,這次重點建設內容為感知層和應用層,感知層使用Golang語言開發,作為聯網網關部署在工廠側,負責工廠數據的采集和云端指令的下發。應用層為紗線MES系統主體,采用Java語言開發,使用Spring Cloud微服務架構,數據庫使用Mysql,緩存使用Redis,前端框架使用vue.js,日志、監控和鏈路追蹤采用skywalking、prometheus、grafana和ELK,最終通過devops的方式部署在kubernetes集群中。系統上線后,將提供以下:基礎管理、數據接入、工單排產、數字孿生、工資計算、智控中心和數據分析等等功能,通過以上功能,可以全面提升紗線工廠的數字化和智能化水平,使其運營水平和生產效率得到質的提升。

論述內容

由于該系統涉及參與者眾多,功能復雜,需求變化快,接入工廠設備達到483萬多臺,這就要求該系統必須具備快速部署、迭代速度快、高可用、高并發、高可靠性、高性能、高伸縮性等特性,基于此,我們團隊一致同意采用云原生技術。目前云原生有多種架構模式,比如微服務、無服務、mesh化架構、事件驅動等等架構模式,每一種架構模式都有自己的應用場景。像無服務架構模式,它就適合消息驅動的處理任務,像事件驅動架構模式,它適合需要解耦的系統,具有良好的擴展性和可維護性。在本項目中,我們采用了微服務架構模式,微服務架構模式把系統按照領域分為一個個具體的模塊,每一個模塊作為微服務可以單獨部署、開發、運行在獨立的進程中,它具有獨立管理、獨立部署、技術異構、高容錯性、高可靠性等特點。所以,為了實現我們的項目目標,我們使用了云原生中的微服務架構,通過領域驅動,把系統分解成領域獨立的多個微服務,并在微服務架構中采用了云原生的彈性、可觀測性、自動化等原則,幫助紗線MES系統實現快速部署、高迭代速度以及滿足高并發、高可用、高性能的非功能質量目標,保證了紗線MES系統按時上線。

一、彈性原則

我們采用了云原生中的微服務架構模式,其中就用到了云原生中的的一個很重要的特性:云原生的彈性原則。我們項目針對紗線工廠,而紗線工廠的生產具有很強的季節性,每年的10月到來年的2月是一個旺季,這時候,紗線MES系統就需要應對海量生產數據的上報,而到了紗線工廠的淡季,就不需要應對海量并發請求,也就不需要那么多服務器資源。基于此,采用了云原生技術架構之后,就可以利用kubernetes中的機制,通過對容器的資源占用率做閾值設置,當資源利用率很低時,達到了閾值下限,就可以關閉一些容器,釋放掉一些服務器資源,讓服務器資源得到充分的利用,避免資源的浪費,提高系統的效益。當到了旺季后,大量生產數據的上報就會占用服務器的資源,此時,服務器的資源利用率就會上升,當達到閾值上限時,kubernetes就會自動分配新資源,啟動新的容器。來應用海量的請求。我們的系統就是借助了云原生的彈性原則,有效了提高了系統的效益,降低了系統資源的浪費,以最小的代價,保障了系統的運行。

二、可觀測性原則

由于本項目業務復雜,涉及參與者眾多,同時需求變化快,迭代速度也快。這就要求當系統出現問題,或者在出現問題之前,就需要能夠快速發現并處理掉問題,此外,由于需求變化快的緣故,這就要求我們的系統必須具備良好的測試性。這些特點就決定了我們的系統要具備可觀測性,能夠實時看到系統的狀態,對于具體請求而言,要能夠觀察到這個請求從進入到結束的全流程鏈路。基于此,我們就用到了云原生中的又一個特性:可觀測性。為了實現可觀測性,我們使用了Skywalking、grafana、elk以及prometheus。通過它們,我們系統可以做到,每一個請求都能夠清晰地看到它的完整鏈路,同時這些信息可以在頁面上通過圖形化展示出來,同時,系統的各項系統參數,比如cpu利用率、內部使用率、磁盤io等等都能在頁面上清楚地看到。不僅如此,我們還可以實現實現自定義的報警,在設置一些閾值后,當系統的參數達到閾值之后,就可以通過電話、短信、釘釘、微信等方式直接通知到相應關系人,做到問題的快速響應。可以看到,借助云原生的可觀測性,有效地提高了我們系統的可用性和可靠性。

三、自動化原則

在以前,項目的測試和部署都是通過手動的方式或者是腳本的方式執行的,但是,在本項目中,系統被分為了很多微服務,每一個微服務又是集群運行的。如果采用手動或者是腳本的方式去部署和運行,這是難以想象也是難以實施的。而云原生中的自動化原則就可以幫助我們項目解決這個問題。在項目代碼開發過程中,每一次開發人員的代碼提交都會觸發自動的代碼編譯和代碼檢查任務,當代碼有問題時,就會提示相關開發人員去修改代碼,之后,CI/CD會自動地運行單元測試,但出現失敗后,也會生成報告提示相關開發人員。當都沒有問題后,就可以對代碼生成版本號,生成對應的項目鏡像,然后一鍵發布到對應的環境之中。不僅如此,發布還支持藍綠發布和灰度發布,這有效提升了系統地連續運行能力。也正是接住了云原生的自動化原則,我們實現了四天一迭代,兩周一個大版本的開發速度,有效保證了項目的順利上線。

總結

通過采用云原生架構技術,我們的項目進展順利,最終在2023年12月,該項目正式投產并對外提供服務,至今穩定運行,各項功能和性能指標均遠遠超過了客戶的預期,得到了客戶工廠和公司領導的一致贊揚。雖然項目取得了成功,但是也遇到過一些問題,在項目初期,由于產品經理對紗線業務的不熟悉,導致很多功能的調整和返工,這打擊了開發人員的士氣,基于此,我提出兩個解決方式:1、派產品進入工廠一線,與工人交流,熟悉操作流程,徹底摸清紗線業務,保證需求質量;2、開發人員也要學習紗線業務,遇到問題反饋給產品,同時在做設計時,采用靈活的設計模式,為需求的變動留下可操作的空間。我們通過這兩個方法解決了這個問題,保證了項目的進展。通過這次實踐,我不僅學習到了云原生的相關技術,也鍛煉了自己的架構和管理能力,我意識到只有不斷地學習和實踐才能讓知識融匯于自己的技術體系之中,才能在未來的工作中游刃有余、勇擔大任,為祖國的信息化建設貢獻自己的力量。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/89205.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/89205.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/89205.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

重置 MySQL root 密碼

引言 在linux可能存在安裝mysql安裝失敗,一直不出現默認密碼 /usr/local/mysql/mysql-8.0.26/bin/mysqld --defaults-file/etc/my.cnf --usermysql --basedir/usr/local/mysql/mysql-8.0.26 --datadir/usr/local/mysql/mysql-8.0.26/data --lower-case-table-name…

面試八股---HTML

面試八股 1、HTML 1.1 src和href的區別 src 用于替換當前元素,href 用于在當前文檔和引用資源之間確立聯系。 核心區別在于 href 關聯的資源(主要是 CSS)是用于描述頁面外觀的,瀏覽器可以先生成內容再應用樣式,因此…

氣候智能體:AI如何重構人類應對氣候危機的決策體系?

前言 前些天發現了一個巨牛的人工智能免費學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到網站 《氣候智能體:AI如何重構人類應對氣候危機的決策體系?》 展開全景式論述。文章結合2025年最新技術突破與…

UITableView的位置向下偏移, contentInsetAdjustmentBehavior使用詳情

一.contentInsetAdjustmentBehavior 作用: 在iOS 11及以后,蘋果引入了安全區域(Safe Area)的概念,當UITableView的frame超出了安全區域,系統會自定調整SafeAreaInsets的值,它可以自動調整內容的內邊距,使得內容不會被導航欄遮擋。…

騰訊云RayData全新推出“行業解決方案模板”,一鍵快捷制作3D數據可視化作品

點擊藍字? 關注我們 本文共計958字 預計閱讀時長3分鐘 騰訊云RayData Plus是一款專注于高視效的3D數據可視化的實時渲染工具。 功能全面:提供了三維、二維、動畫、數據、交互邏輯等各類能力; 零代碼制作:靈活的節點式創作,即便沒…

深度解析基于貝葉斯的垃圾郵件分類

貝葉斯垃圾郵件分類的核心邏輯是基于貝葉斯定理,利用郵件中的特征(通常是單詞)來計算該郵件屬于“垃圾郵件”或“非垃圾郵件”的概率,并根據概率大小進行分類。它是一種樸素貝葉斯分類器,因其假設特征(單詞…

WPF 3D 開發全攻略:實現3D模型創建、旋轉、平移、縮放

🎮 WPF 3D 入門實戰:從零打造一個可交互的立方體模型 標題: 🚀《WPF 3D 開發全攻略:實現旋轉、平移、縮放與法線顯示》 💡 引言 在現代圖形應用中,3D 可視化已經成為不可或缺的一部分。WPF 提供…

Ruby 安裝使用教程

一、Ruby 簡介 Ruby 是一種簡單快捷的面向對象腳本語言,以優雅、簡潔、易讀著稱。它常被用于 Web 開發(如 Ruby on Rails 框架)、自動化腳本、DevOps、命令行工具等領域。 二、Ruby 安裝教程 2.1 支持平臺 Ruby 支持跨平臺運行&#xff0c…

python | numpy小記(五):理解 NumPy 中的 `np.arccos`:反余弦函數

python | numpy小記(五):理解 NumPy 中的 np.arccos:反余弦函數 一、函數簽名與核心參數二、數學定義與取值范圍三、基礎使用示例四、與 Python 內建 math.acos 的對比五、常見問題與注意事項六、典型應用場景1. 三維向量夾角計算…

華為云Flexus+DeepSeek征文 | 華為云ModelArts與Reor的完美結合:創建高效本地AI筆記環境

華為云FlexusDeepSeek征文 | 華為云ModelArts與Reor的完美結合:創建高效本地AI筆記環境 引言一、ModelArts Studio平臺介紹華為云ModelArts Studio簡介ModelArts Studio主要特點 二、Reor介紹Reor簡介Reor主要特點 三、安裝Reor工具下載Reor軟件安裝Reor工具 四、開…

【啟發式算法】Dynamic A*(D*)算法詳細介紹(Python)

📢本篇文章是博主人工智能(AI)領域學習時,用于個人學習、研究或者欣賞使用,并基于博主對相關等領域的一些理解而記錄的學習摘錄和筆記,若有不當和侵權之處,指出后將會立即改正,還望諒…

報告怎么寫

替代方案(按場景選擇) 崗前準備階段 ? "熟悉業務流程/系統操作" ? "掌握XX工具/平臺的核心功能" ? "完成上崗前技術對接" 知識轉化場景 ? "梳理產品知識體系" ? "轉化技術文檔為實操方案" ? &…

大模型——怎么讓 AI 寫出好看有設計感的網頁

大模型——怎么讓 AI 寫出好看有設計感的網頁 你讓 AI 給你寫的網頁大概都是這樣的: 或者這樣: 好點的時候能這樣: 但都不夠高級,尤其是那個像引用一樣的邊框,太 AI 了。 今天教大家一個小技巧,寫出下面這樣的網頁: 或者這樣的

【Torch】nn.Linear算法詳解

1. 定義 nn.Linear 是 PyTorch 中最基礎的全連接(fully‐connected)線性層,也稱仿射變換層(affine layer)。它對輸入張量做一次線性變換: output x W T b \text{output} x W^{T} b outputxWTb 其中&a…

ZGC收集器

ZGC收集器 歡迎來到我的博客:TWind的博客 我的CSDN::Thanwind-CSDN博客 我的掘金:Thanwinde 的個人主頁 0.前言 ZGC收集器完全可以說是Java收集器的一個跨時代的收集器,他真正意義上實現了停頓時間在10ms以內并且幾乎全時段都是…

隧道技術篇2frp代理nps代理shisel代理

FRP代理 1.實現湖北內網控制北京的內網C2上線 2.實現湖北內網探針北京內網 信息收集 (socks建立和端口映射) 1.連接47.98.210.85 7000端口服務端 2.嘗試將服務端的6666轉到127.0.0.1 5555采用tcp協議,備注名proxies serverAddr"47.98…

[Python 基礎課程]PyCharm 的安裝

Python 的編輯器目前主流的有 PyCharm 和 Vscode。 PyCharm 是 Python 目前最主流、最常用、最推薦的 Python 編輯器。 https://www.jetbrains.com/pycharm/ PyCharm 有社區版和專業版,可以根據自己的需要下載對應的版本。社區版是收費的,對于初學者或…

Spread Ribbon 工具欄控件:在WinForms中高效編輯Spread工作簿

引言 在數據密集型應用中,電子表格功能是提升用戶體驗的關鍵要素。GrapeCity Spread.NET V17 推出的獨立 Ribbon工具欄控件,為WinForms開發者提供了與Excel高度一致的UI交互體驗。通過集成此控件,用戶可直觀地進行數據編輯、格式調整等操作&…

leedcode:找到字符串中所有字母異位詞

問題:給定兩個字符串 s 和 p,找到 s 中所有 p 的 異位詞 的子串,返回這些子串的起始索引。不考慮答案輸出的順序。 package com.text;import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;…

華為云Flexus+DeepSeek征文|基于華為云 Flexus Dify平臺開發AI Agent的詳細流程

目錄 一、Dify 應用開發平臺 1.1 什么是 Dify? 1.2 Dify 平臺優勢 二、構建 AI Agent 2.1 創建智能客服助手 2.2 配置 LLM組件 三、訪問智能應用 3.1 應用發布 3.2 智能對話 四、API 調用智能客服助手 4.1 配置 API 訪問接口 4.2 調用智能客服助手API …