当前位置:网站首页>提高應用程序性能的7個DevOps實踐
提高應用程序性能的7個DevOps實踐
2022-07-05 17:32:00 【軟件測試網】
DevOps 主要與開發人員和運營之間的合作有關,以改善生產中應用程序的交付和可靠性。最常見的最佳實踐旨在用更强大的自動化來取代在開發和運營團隊之間管理的手動、易出錯的程序。這包括用CI/CD(持續集成和持續交付)實現交付管道的自動化,用容器實現標准化配置,並將基礎設施配置為代碼。在運營方面,提高應用程序可靠性的 DevOps 最佳實踐包括提高應用程序的可觀察性,增加監控,以及自動化雲和基礎設施的操作。
但如何提高應用程序、數據庫、數據管道和雲基礎設施的性能呢?本文將分享7個可以影響性能和用戶體驗DevOps 實踐和方法。
1. 從一開始就在應用程序中構建安全實踐
DevOps 團隊最不需要的就是部署具有安全漏洞的新功能。安全中斷或降級會影響用戶體驗並產生重大的業務問題。一個 DevOps 的最佳實踐是,通過與信息安全部門在需求方面的合作,測試CI/CD管道內的代碼漏洞,以及在軟件開發中實施其他安全實踐,來實現安全轉移。
Akamai 的高級開發人員倡導者 Mike Elissen 說:“應用程序可靠性的一個關鍵組成部分是可用性,采取適當的措施來正確保護應用程序免受 Web 應用程序攻擊、DDoS 攻擊等可能意味著保持在線和離線之間的區別。”
Elissen 說,向左轉移是從 DevOps 轉變為 DevSecOps 的一部分。他繼續說道,“我們看到在 DevOps 中添加安全性的‘左移’變得越來越明顯,最終創造了更强大的 devsecops 文化,並使更多的開發人員意識到並對其應用程序的安全性負責。”
2. 標准化架構和基礎設施藍圖
Quali 產品管理副總裁 Amir Rozenberg 指出了一個影響團隊績效的問題。他說:“許多 DevOps 團隊發現自己正在組織有機增長的應用程序基礎架構定義的混亂,這些定義是在早期真誠地開發的,以提高團隊在軟件開發生命周期中的效率。”
Rozenberg 詢問 DevOps 團隊是否應該采用自己動手的方法來創建環境,或者組織是否應該創建標准。他說:“推薦的方法是建立一個中心團隊,以藍圖的形式對環境進行建模,以使它們可靠、可重用和合規。然後,他們需要能够分發這些基礎架構定義,以便業務成員可以通過快速自助服務使用它們,無論是集成到自動化管道中還是以手動方式。”
3. 在 CI/CD 管道中建立可觀察性和持續測試
66degrees 的 DevOps 總監 Matt Sollie 認為 CI/CD 可以做的不僅僅是打包和推送代碼。他說:“並不是所有的 DevOps 原則都像持續交付或將一切構建為代碼一樣迷人或可見,但它們同樣重要。持續集成是成熟的 DevOps 態勢的一個組成部分,它可以極大地提高應用程序的可靠性,但需要目標、願景和時間才能以有意義的方式構建。”
Sollie 承認,實現可靠性和性能目標不僅需要有遠見,還需要對實踐和優化架構進行投資。“可觀察性是一項關鍵且昂貴的原則,因為可靠性不是開啟或關閉狀態,需要細致入微的數據收集。借助所有雲計算服務,為工作選擇正確的工具或服務可以帶來固有的可靠性和性能優勢。”
敏捷開發團隊應該在他們的管道中實施什麼來提高性能?以下是一些建議:
- 在增加部署頻率之前實施持續測試
- 考慮使用服務虛擬化來測試微服務和第三方 API
- 確保可觀察的 CI/CD 管道以改進故障檢測並隔離管道問題
4. 使用功能標志和金絲雀版本控制部署
部署不必是所有用戶一次性獲得所有更改的絕對轉換。代碼中的功能標志有助於配置和控制功能的可用性,而金絲雀發布策略使 DevOps 團隊能够緩慢而有條不紊地推出新功能。
LaunchDarkly 的首席技術官兼聯合創始人 John Kodumal 補充說:“功能管理,特別是功能標志,正在迅速成為改進應用程序的整體可靠性和性能的首選開發實踐,同時允許開發人員不斷創新。通過使用功能標志,開發人員可以在生產前測試功能更新,以便在發布前解决問題。”
這些控件提高了可靠性和性能,同時也幫助開發團隊最大限度地减少了中斷。Kodumal 說:“功能標志提高了性能,同時為開發團隊提供了必要的控制來更新應用程序而不會中斷或停機。”
5. 建立嚴格的可觀察性和監測標准
現在專注於 DevOps 職責的運維方面,團隊應該考慮幾個最佳實踐來提高應用程序性能,包括開發可觀察性標准和改進監控。
Mindee 開發人員關系總監 Frédéric Harper 說:“ DevOps 必須實施嚴格的監控和可觀察性流程,以確保應用程序的每個部分都正常工作並且服務器進程運行順暢。通過保護這一元素, DevOps 團隊可以收集有價值的信息,以了解用戶如何使用應用程序,可能防止未來出現問題,更容易支持客戶,並根據真實數據改進業務或架構决策。”
6. 使用 AIOps 和自動化擴展監控
在 web 2.0 時代,當出現中斷或性能問題時,運維人員只有少數日志文件和監控工具來查看。如今,運行微服務、無服務器應用程序和多雲數據庫意味著在解决事件和確定問題根本原因時需要參考更多的數據和工具。AIops 平臺可以集中監控數據,使用機器學習關聯警報,並幫助操作人員跨多個平臺自動響應和恢複,這有助於最大限度地减少性能影響。
BigPanda 產品營銷副總裁 Mohan Kompella 對此錶示贊同:“AIOps 平臺可以幫助 DevOps 團隊保持工具的自主性和靈活性,同時還為集中式事件響應者提供他們所需的可見性,使其成為應對中斷的第一道防線。”
7. 定義 SLO 和錯誤預算
DevOps 團隊應該平衡哪些實踐產生最大收益並解决風險。這需要團隊就 DevOps 優先級進行衡量、學習和協作,這在實施實踐和工具後的數月或數年內可能無法實現收益時並不容易。
一種確定優先級的方法是采用站點可靠性工程實踐、定義服務水平目標 (SLO) 和使用錯誤預算。當應用程序或微服務超出其錯誤預算時,它會向 DevOps 團隊發出信號,以找出原因並專注於解决方案。
Nobl9 的首席運營官 Kit Merker 說:“服務水平目標為工程團隊設定了明確的目標,以便更好地决定如何確定工作的優先級。開發人員和 ITop 不僅可以以技術為中心,還可以轉向以服務為中心。”
DevOps 團隊有很多事情要做, DevOps 最佳實踐幫助團隊在加速開發和提高可靠性和性能之間取得平衡。成功的關鍵可能在於定義問題陳述、辯論方法、迭代解决方案和衡量影響。
原文標題:7 devops practices to improve application performance
边栏推荐
- 2022 年 Q2 加密市场投融资报告:GameFi 成为投资关键词
- CMake教程Step2(添加库)
- Cloud security daily 220705: the red hat PHP interpreter has found a vulnerability of executing arbitrary code, which needs to be upgraded as soon as possible
- Knowledge points of MySQL (6)
- 如何保存训练好的神经网络模型(pytorch版本)
- C # realizes crystal report binding data and printing 3-qr code barcode
- C#实现水晶报表绑定数据并实现打印3-二维码条形码
- CMake教程Step4(安装和测试)
- Design of electronic clock based on 51 single chip microcomputer
- Mongodb (quick start) (I)
猜你喜欢
Which is more cost-effective, haqu K1 or haqu H1? Who is more worth starting with?
CMake教程Step2(添加库)
基于Redis实现延时队列的优化方案小结
winedt常用快捷键 修改快捷键latex编译按钮
統計php程序運行時間及設置PHP最長運行時間
Read the basic grammar of C language in one article
Compter le temps d'exécution du programme PHP et définir le temps d'exécution maximum de PHP
7. Scala class
c#图文混合,以二进制方式写入数据库
深入理解Redis内存淘汰策略
随机推荐
Force deduction solution summary 1200 minimum absolute difference
域名解析,反向域名解析nbtstat
Redis+caffeine two-level cache enables smooth access speed
菜刀,蚁剑,冰蝎,哥斯拉的流量特征
叩富网开期货账户安全可靠吗?怎么分辨平台是否安全?
CMake教程Step5(添加系统自检)
忽米沄析:工业互联网标识解析与企业信息系统的融合应用
mysql5.6解析JSON字符串方式(支持复杂的嵌套格式)
服务器配置 jupyter环境
ICML 2022 | Meta提出魯棒的多目標貝葉斯優化方法,有效應對輸入噪聲
WR | Jufeng group of West Lake University revealed the impact of microplastics pollution on the flora and denitrification function of constructed wetlands
北京内推 | 微软亚洲研究院机器学习组招聘NLP/语音合成等方向全职研究员
Error in compiling libssh2. OpenSSL cannot be found
ICML 2022 | Meta propose une méthode robuste d'optimisation bayésienne Multi - objectifs pour faire face efficacement au bruit d'entrée
C#(Winform) 当前线程不在单线程单元中,因此无法实例化 ActiveX 控件
goto Statement
Alpha conversion from gamma space to linner space under URP (II) -- multi alpha map superposition
ClickHouse(03)ClickHouse怎么安装和部署
Embedded-c Language-3
Zhang Ping'an: accélérer l'innovation numérique dans le cloud et construire conjointement un écosystème industriel intelligent