<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      運維工作新時代:自主編碼實現(xiàn)運維自動化的轉(zhuǎn)型之旅

      引言

      隨著業(yè)務系統(tǒng)和底層中間件服務的復雜度不斷增加,傳統(tǒng)手工運維方式面臨著諸多挑戰(zhàn)和限制。人工編寫運維腳本顯得非常低效,同時手動執(zhí)行運維操作存在著巨大風險。在此情況下,推動運維自動化成為運維人員必須落地實施的工作。運維同學如果可以有地方自主通過編碼的方式,實現(xiàn)各種自動化任務和運維功能。不僅可以提高效率,降低風險,還能為運維工作帶來新的突破。

      然而,要邁向這條運維自動化之路并不容易。我們需要克服傳統(tǒng)運維的局限性,同時要掌握編碼技能和提供適應的平臺。

       

      本文將介紹如何衡量運維自動化率的概念,并提供一個支持運維同學通過編碼實現(xiàn)自動化的平臺。通過編碼實現(xiàn)運維自動化的轉(zhuǎn)型之旅,讓運維工作邁入新的時代。希望也能給大家提供一個全新的視角。

      運維工作面臨的挑戰(zhàn)和限制

      復雜的腳本管理和手動操作

      過于依賴手動操作和編寫復雜的手工腳本,容易引發(fā)故障,增加了運維工作量和風險:

      ?腳本維護和版本控制:隨著時間的推移,維護的腳本可能會變得越來越復雜、并且難以維護。同時,在團隊多人協(xié)作的情況下,對腳本進行版本控制和管理也存在挑戰(zhàn),特別容易發(fā)生用錯腳本的情況。
      ?手工操作錯誤:手動操作容易引入人為的操作錯誤,尤其是在處理線上任務時。一個小錯誤可能導致系統(tǒng)故障或數(shù)據(jù)丟失,從而增加了系統(tǒng)的不穩(wěn)定性和風險。

      人為失誤和依賴個人技能

      運維過程中的人為失誤會導致系統(tǒng)故障和數(shù)據(jù)丟失,過度依賴個人技能的情況也會使得團隊合作和知識傳承困難:

      ?依賴個別人員:如果某個運維同學負責的任務過于依賴于個人技能和經(jīng)驗,那么當該同學離職或休假時,可能會影響運維工作的正常開展。
      ?缺乏流程標準:人為操作缺乏標準化流程和規(guī)范,在處理任務時沒有固化的流程提供指導和參考,容易造成人為失誤風險。

      個人成長和發(fā)展的局限

      日常工作中,大家更容易關(guān)注到業(yè)務研發(fā),而對于業(yè)務運維的工作容易忽視。這種情況給運維同學的個人成長和發(fā)展帶來了一些局限性:

      ?緊急情況和工作壓力:運維同學通常需要在 7*24 小時待命用來處理問題和故障,以確保系統(tǒng)的穩(wěn)定性和可用性。導致個人經(jīng)常處于高壓工作狀態(tài),個人的發(fā)展和學習可能受到限制。
      ?發(fā)展和上升空間:隨著云計算發(fā)展,部分運維工作正逐步被云廠商和 DevOps 自動化替代,特別是混合云時代,傳統(tǒng)運維必須要轉(zhuǎn)變思維深入到業(yè)務或者產(chǎn)品底層,從而提升個人競爭力。

       

       

       

      運維自動化的重要性

      成本

      運維人員管著公司的服務器資源,每年公司需要為IT資源支付數(shù)十億的成本,隨著資源規(guī)模的不斷增長,成本控制和策略變的至關(guān)重要。在這種情況下,完善的資源成本管理工具和自動化分攤機制變得尤為重要,否則成本管理將面臨巨大的負擔和壓力。

      效率

      在運維工作當中,例如資源分配和管理、擴容縮容、日常巡檢、版本更新、服務重啟、集群管理等,這些都是運維最基礎的日常工作,目前這些工作上大多都是偏日常和重復的,手工操作將浪費掉大部分的時間,如果通過自動化解決掉這些問題,將解放運維的生產(chǎn)力,提升運維效率,讓運維的同學可以有更多的精力去做更有價值的事情。

      穩(wěn)定性

      通過自動化提升運維效率的同時,也可以大幅降低人為失誤,最大程度保障系統(tǒng)的穩(wěn)定性運行,即使出現(xiàn)問題,也能夠通過自動化快速發(fā)現(xiàn)響應和自動恢復。

       

       

      編碼實現(xiàn)的運維自動化

      上面提到了運維自動化的重要性。自從今年4月份加入技術(shù)保障部門以來,我一直在思考如何提升運維的自動化水平,并希望能找到一種衡量該提升的方法。因此,在4月份就提出了一個運維自動化率這樣的一個衡量指標。

      運維自動化率的定義

      運維自動化率的定義范圍是技術(shù)保障部門的所有運維人員。該指標可以通過以下公式計算:

      運維自動化率 = 自動化操作次數(shù)(通過泰山麒麟) / 手工操作次數(shù)(通過堡壘機登錄) + 自動化操作次數(shù)

      其中,分子表示通過泰山麒麟進行的自動化操作次數(shù)。這些操作可以是自動化運維命令、運維功能或自動化編排任務。分母表示通過堡壘機登錄之后進行的手工操作的次數(shù),再加上分子的數(shù)量。

       

       

      通過這個指標,可以衡量在給定時間內(nèi)運維人員使用自動化工具相對于手工操作的比例,從而評估運維的自動化水平。較高的自動化率意味著更多的任務可以通過自動化完成,減少了手工操作的工作量,提高了效率和穩(wěn)定性,從 4月份衡量開始,技術(shù)保障部的運維同學運維自動化率從 Q2 的 3% 提升到 目前為 63%。

       

       

      為什么要運維自主編碼實現(xiàn)

      最初的原因是發(fā)現(xiàn)各個運維小團隊都使用自己獨立的運維工具。經(jīng)過分析,這是因為不同的運維團隊有不同的需求,為了滿足各自的需求,每個團隊都會開發(fā)自己的運維工具。隨著時間的推移,就出現(xiàn)了許多不同的運維工具平臺。因此開始思考是否可以提供一個平臺來滿足所有運維人員的需求。

      然而,問題又來了,這些需求應該由誰來開發(fā)呢?最合理的解決方案是由運維人員自己來開發(fā)。因為只有運維人員最了解自己的需求。

      ?降低溝通成本:運維同學最了解自己的需求,運維團隊可以根據(jù)業(yè)務需求和環(huán)境特點開發(fā)定制化的運維工具和腳本,確保功能與業(yè)務需求完美契合。這樣可以降低與平臺方的溝通成本,減少需求解釋和理解的時間和精力。
      ?快速響應需求:運維團隊能夠快速開發(fā)或修改運維功能,及時響應業(yè)務變化和運維需求。不必等待平臺方的排期支持或更新,可以迅速滿足需求變化,提高運維的靈活性和響應速度。
      ?節(jié)約維護成本:相對于各個團隊自建運維工具,通過自行編碼可以節(jié)省許多公共部分的維護成本。運維同學只需要關(guān)注自己的業(yè)務邏輯,而不用擔心整個運維工具的維護。這樣可以降低維護成本,并提高工作效率。
      ?助力專業(yè)成長:通過編碼實現(xiàn)運維功能,可以促進運維人員的技術(shù)成長。他們可以提升自己的編程能力、系統(tǒng)理解能力和問題解決能力。

      通過讓所有運維同學都參與其中,可以為運維同學提供更廣闊的學習和成長機會,可以發(fā)揮出更大的價值。這樣做不僅可以提升運維團隊的整體能力,還能助力個體運維人員的個人成長和職業(yè)發(fā)展。

      案例分析:ChubaoFS的運維自動化

      接入步驟和示例

      1、申請運維系統(tǒng)菜單

      聯(lián)系泰山麒麟平臺管理員創(chuàng)建運維系統(tǒng)菜單。在這個過程中,平臺管理員將創(chuàng)建對應運維系統(tǒng)的菜單名稱,并根據(jù)菜單分配用戶私有的鑒權(quán)文件。這個鑒權(quán)文件將在后續(xù)的 Controller 開發(fā)中被使用。

      apiVersion2、創(chuàng)建運維功能

      在泰山麒麟平臺中創(chuàng)建運維功能時,支持兩種實現(xiàn)方式。一種是基于運維同學提供的 HTTP 接口服務,另一種是基于運維自己編碼實現(xiàn)的自定義(基于 Kubernetes CRD)模式的 Controller。本文重點將介紹基于自定義模式的 Controller 實現(xiàn)方式。

      創(chuàng)建運維功能步驟:

      ① 進入開發(fā)者模式,點擊"新建"按鈕,在窗口中可以選擇原子類型為自定義,后續(xù)需要運維同學開發(fā)相應的 Controller 代碼

       

       

      ②上面步驟"確認"后,會在列表頁出現(xiàn)對應名稱的運維原子記錄,點擊操作欄里的“字段維護”按鈕開始配置描述該運維功能的具體數(shù)據(jù)結(jié)構(gòu)。

       

       

      經(jīng)過以上兩步,得到了一個描述運維功能的參數(shù)

      {
        "apiVersion"根據(jù)以上參數(shù),接下來是編寫執(zhí)行該運維功能的代碼邏輯了。

       

      3、編寫運維功能代碼

      泰山麒麟平臺提供了代碼模版,建議下載提供的模版進行編寫具體的 Controller 部分,并加入平臺分配的鑒權(quán)文件,這樣可以確保 Controller 運行時可以 Watch 到麒麟平臺的操作消息。

      代碼模版包含兩個例子,一個是 Controller 實現(xiàn)單一功能樣例,另一個是 Controller 實現(xiàn)多功能樣例,主要包含以下2個核心文件:

      package main
      import (
          "controllers/example/api/web/service"
          "flag"
          "os"
          examplev1 "controllers/example/api/v1"
          "controllers/example/controllers"
          "k8s.io/apimachinery/pkg/runtime"
          clientgoscheme "k8s.io/client-go/kubernetes/scheme"
          _ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
          ctrl "sigs.k8s.io/controller-runtime"
          "sigs.k8s.io/controller-runtime/pkg/log/zap"
          // +kubebuilder:scaffold:imports
      )
      
      var (
          scheme   , "metrics-addr", ":8090", "The address the metric endpoint binds to.")
          flag.BoolVar(, "enable-leader-election", false,
              "Enable leader election for controller manager. Enabling this will ensure there is only one active controller manager.")
          flag.Parse()
      
          //配置日志打印參數(shù)
          ctrl.SetLogger(zap.New(func(o .ExampleKindReconciler{
              Client: mgr.GetClient(),
              Log:    ctrl.Log.WithName("controllers").WithName("ExampleKind"),
              Scheme: mgr.GetScheme(),
          }).SetupWithManager(mgr); err != nil {
              setupLog.Error(err, "problem running manager")
              os.Exit(1)
          }
      }
      package controllers
      import (
          "context"
          "strconv"
          "github.com/go-logr/logr"
          "k8s.io/apimachinery/pkg/runtime"
          ctrl "sigs.k8s.io/controller-runtime"
          "sigs.k8s.io/controller-runtime/pkg/client"
          examplev1 "controllers/example/api/v1"
      )
      
      // ExampleKindReconciler reconciles a ExampleKind object
      type ExampleKindReconciler struct {
          client.Client
          Log    logr.Logger
          Scheme *runtime.Scheme
      }
      
      var num = 0
      // +kubebuilder:rbac:groups=example.sreplat.com,resources=examplekinds,verbs=get;list;watch;create;update;patch;delete
      // +kubebuilder:rbac:groups=example.sreplat.com,resources=examplekinds/status,verbs=get;update;patch
      //當麒麟平臺上執(zhí)行一個運維過能時,controller就會watch參數(shù),并攜帶參數(shù)信息進入到這個函數(shù)。
      func (r .ExampleKind{}
              
          // your logic here
          //下面都是樣例代碼,用戶直接實現(xiàn)自己的業(yè)務邏輯即可
          if err != nil {
              r.Log.V(1).Info("couldn't find module:" .ExampleKind{}).
              Complete(r)
      }

      4、部署運維功能代碼

      當完成代碼后,可以將其部署在行云部署的容器中。為了方便統(tǒng)一管理,建議在“泰山麒麟(SOPS)”系統(tǒng)下自行申請應用。如果 Controller 對于運行環(huán)境有特殊要求,也可以選擇自行部署。

      5、運維功能發(fā)布

      當完成運維功能開發(fā)和部署后,可以在泰山麒麟平臺點擊“發(fā)布”按鈕,發(fā)布之后,可以通過“授權(quán)”功能,將這個功能提供給其他運維人員使用。

       

       

      6、執(zhí)行運維功能

      支持兩種執(zhí)行模式,可以在運維功能下面直接針對運維功能進行執(zhí)行,也可以通過運維編排功能,將運維功能編排成自動化的運維場景執(zhí)行。

      單個運維功能執(zhí)行

       

       

       

      運維編排功能執(zhí)行

       

       

       

      7、查看執(zhí)行記錄

      在泰山麒麟平臺中執(zhí)行后,支持查看運維功能執(zhí)行中的參數(shù)、過程、結(jié)果以及運行日志。

       

       

      相關(guān)問題和方案

      ?不知道哪些功能可以接入:運維團隊先整理了所有線上批量操作的需求和動作,然后按照優(yōu)先級逐一進行接入。

       

       

      ?缺乏動力接入,導致接入緩慢:早期平臺僅提供了單一的功能,例如執(zhí)行一條指令或執(zhí)行一個操作,缺乏針對運維場景的任務,這導致運維團隊缺乏接入的動力。后來,平臺引入了“運維編排”功能,通過編排的方式支持復雜的運維場景,同時還能對高危風險操作進行人工審批,以確保安全。運維編排的引入滿足了運維團隊的需求,也提高了運維人員的接入動力。

       

       

      成果和收獲

      截至目前,ChubaoFS已通過上述方式實現(xiàn)了43個運維功能原子,并設計了18個運維編排的自動化任務。每周平均執(zhí)行自動化任務的次數(shù)約為500次。

      泰山-麒麟平臺

      平臺簡介

      麒麟平臺通過擴展 Kubernetes 的自定義資源定義(Custom Resource Definitions, CRD)功能,為運維工程師提供可編程的統(tǒng)一運維平臺。用戶專注于運維功能開發(fā),平臺處理通用屬性和集成工作。實現(xiàn)基礎設施即代碼(IaC)理念,并支持聲明式 API。

      通過 CRD 擴展 Kubernetes API,引入自定義資源類型,滿足特定運維需求。工程師定義資源類型,編碼實現(xiàn)運維功能,平臺處理創(chuàng)建、更新、刪除等通用操作和資源集成。采用聲明式方式描述所需運維狀態(tài),無需關(guān)注底層實現(xiàn)細節(jié)。編寫資源定義文件,提交給麒麟平臺處理,自動完成操作,確保系統(tǒng)達到期望狀態(tài)。

       

       

      麒麟平臺簡化了運維工程師的開發(fā)工作,提高了可維護性和可擴展性,實現(xiàn)了基礎設施即代碼的理念,平臺支持以下功能:

      ?運維功能:執(zhí)行單個運維功能,配置審批,授權(quán)執(zhí)行等屬性
      ?命令執(zhí)行:批量執(zhí)行運維命令及執(zhí)行過程控制,包括超時,并發(fā),止損kill等通用屬性
      ?定時任務:對運維功能或命令執(zhí)行定時任務,如巡檢,數(shù)據(jù)備份,日志清理等
      ?資源展示:展示資源信息,如 IT資產(chǎn)、數(shù)據(jù)庫、中間件,應用程序等
      ?資源操作:對展示出來的資源添加一個具體的運維功能,需要時可以快速在平臺上對該資源執(zhí)行運維操作
      ?運維編排:通過圖形界面提供流程編輯工具,可以將多個運維原子(運維功能和命令)和審批流串聯(lián)起來,實現(xiàn)復雜運維作業(yè)自動化減少人工干預,并支持人工復核審批,大大提升了運維操作的安全性。

      平臺現(xiàn)狀

      截至目前,技術(shù)保障部內(nèi)的運維團隊已經(jīng)將相關(guān)產(chǎn)品,包括JMQ、JIMDB、LogBook、ChubaoFS、數(shù)據(jù)庫、對象存儲、圖片服務和應用運維接入了麒麟平臺。

       

      作者:京東零售 井亮亮

      來源:京東云開發(fā)者社區(qū) 轉(zhuǎn)載請注明來源

       

       
       
      posted @ 2024-02-21 11:25  京東云技術(shù)團隊  閱讀(115)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 太深太粗太爽太猛了视频| 999精品全免费观看视频| 久久99精品国产麻豆婷婷| 国产在线午夜不卡精品影院| 国产xxxx做受视频| 日韩人妻不卡一区二区三区| 国产麻豆成人传媒免费观看| 人人妻人人妻人人片av| 亚洲精品乱码久久久久久蜜桃图片| 人妻少妇无码精品专区| b站永久免费看片大全| 亚洲精品国产第一区二区| 国产性色的免费视频网站| 国产精品国产三级国快看| 亚洲国产成人久久综合一区77| 国产69精品久久久久99尤物| 久久精品国产99国产精品澳门| 丁香五月亚洲综合深深爱| 久久综合久色欧美综合狠狠| 377P欧洲日本亚洲大胆| 美女人妻激情乱人伦| 国内自拍网红在线综合一区| 久久人妻精品国产| 无码综合天天久久综合网| 精品熟女亚洲av在线观看| 亚洲国产成人无码电影| 成人污视频| 精品无码国产不卡在线观看| 免费国产拍久久受拍久久| 日韩精品一区二区三区四| 国产女主播喷水视频在线观看| 成在人线av无码免费看网站直播| 国产精品成人中文字幕| 亚洲午夜福利精品无码不卡| 午夜福利激情一区二区三区| 么公的好大好硬好深好爽视频| 老司机精品成人无码AV| 日日躁夜夜躁狠狠躁超碰97| 亚洲熟妇无码另类久久久| 国产精品一区二区三区激情| 国产在线欧美日韩精品一区|