Azureマイクロソフトのクラウドアカウント: Azure DevOps GitHub actionに基づいて、シルクのCI/CD自動シミュレーションを構築します
多くの研究開発チームの日常的な開発では、しばしば「縫合怪」という名前の場面が見られます。
プロジェクト管理には高価なJiraが使われ、コードはローカルで構築されたGitLabにホストされ、自動構築 (CI) はパッチでパッチを重ね、メモリがオーバーフローしているJenkins最後のプロジェクトのコピーとドキュメントは、マイクロソフトのTeamsまたはSharePointに詰め込まれています。新バージョンが発表されると、製品マネージャはJiraで狂ったように催促し、GitLabで恐る恐るmererequestを提出し、運送次元は拝神しながらJenkinsに「構築」をした最後にバグが出て、みんなは違うプラットフォームの間で狂ったように鍋を振って、奔命に疲れた。
このような「国際ブランド」のツールチェーンは、メンテナンスコストが高いだけでなく、各システム間で分断された「情報孤島」であり、チームの俊敏性を殺す第一の殺し屋でもあります。
実は、マイクロソフトはGitHubを買収し、Azureを大胆に再構築した後、すでに世界的な範囲で支配レベルの現代化DevOps閉ループを溶接した。大工場のトップの枠組みには、効率的な天井とされる「マイクロソフトの全家桶コンビネーション拳」がある
Azure Boardsを使ってアジャイルプロジェクトの看板を処理し、コードをGitHub倉庫にデッドロックし、GitHub actionのクラウド原始計算力を利用してCIを爆発させた最後にコンパイルした製品をAzure App Service (継続的な導入、CD) にスムーズに撮影した。
全体のラインはシルクのように滑らかで、マイクロソフトが建設した高防基幹網を通って、プラットフォームを越えて引っ張ることを徹底的に終わらせた。今日私たちは公式説教を拒否し、退屈な概念を引っ張っていない。直接ゼロから始めて、ハンドルを持ってサーバーレス (Serverless) で構築して、10分でビルを立ち上げて、大工場級のCI/CD自動化パイプラインを作る。
第一段階: 深さ分解、全家桶の「4次元時空間連動モデル」
コンソールに手を出す前に、このバケツの基礎的な物理世界の運行モデルを頭の中に構築しなければならない。多くの人は道具が多くなると混乱すると思っているが、実はマイクロソフトのこの局面は非常に精妙で、各部門の職務:
指揮中枢:Azure board: これはプロジェクトの「脳」です。プロダクトマネージャはここにUser Storyを書いて、設計者はTaskを分解した。最も重要なのは、ここのすべての作業項目 (Work Item) には #45などの独自のIDがあることです。
コード資産ライブラリ: GitHubエンタープライズ: #45タスクを開発した後、ローカルでコードを書く。彼らがコードgitをGitHubにプッシュしたとき、Commit情報に速やかにFixes AzureBoardsを書くだけである
#45、GitHubとAzure Boardsの間は瞬時に時空トンネルを貫通し、看板のカードは自動的に「開発中」から「完了」にひらめいているコード変更履歴も自動的に需要票の下にマウントされ、ピクセルレベルの監査追跡を実現します。
重火力爆撃機: GitHub action (継続統合、CI): コードがメインブランチに入ると、GitHubバックグラウンドで完全にホストされた仮想マシン (Runner) が瞬時に目覚めます。自分でサーバーを作る必要はありません。自動的に環境を引き上げたり、単体テストをしたり、バイナリ圧縮パッケージに梱包したりします。
エンドポイント: Azure App Service (継続的な導入、CD): コンパイルされたパッケージは、安全なマイクロソフトのイントラネットを介して、AzureがホストするWebコンテナに直接シームレスに注入されます全世界のユーザーは秒級で新機能がオンラインになるのを見ました。
第二段階: 実戦演習一 -- 両界のジョイントは、boardとGitHubの時空トンネルを通じている
GitHubアカウントとAzureアカウントがあることを確認してください。
1.あなたのアジャイル司令部を設立する
Azure DevOpsポータルにログインし、新しい組織を作成し、project-omegaというプロジェクトを新規作成します。
プロジェクトに入ったら、左下の「Project settings」をクリックします。
左側のメニューで「GitHub Connect」を見つけ、「Connect your GitHub account」をクリックします。
許可が完了したら、今回の実験のために用意したGitHubプライベート倉庫 (omega-web-appなど) を正確にチェックし、「保存」をクリックします。
2.「暗号」付きのコードを書く
今、Azure Boardsの
ボード (看板)
に新しいタスクを作成します。システムが自動的に割り当てたIDは
5
。
地元で使う. NET 8またはJavaは簡単なwebコードをいくつか書いています。コマンドラインがコードを送信するとき、意図的に次の大工場仕様のCommit暗号を入力します
バッシュ
Git add.
Git commit -m "feat: コアログインインターフェース开発完了、连动ボードAB #5"
Git push origin main
奇跡が起きた:
Azure Boardsページに戻って更新すると、IDが
5
そのカードは、その内部の開発区域が自動的にGitHubの提出、さらにはコードをどの行に変更してもはっきりと引っ張ってきた。両界は徹底的に貫通します!
第三段階: 実戦演習二
-- GitHub actionハードコアパイプラインを作成し、クラウドに直行します
コードはGitHubに横たわっています。今、GitHub actionを引き上げて、コードが統合された瞬間に、完成品をAzure App Serviceに自動的に撮影します。
手順1: Azure側に行って「秘密許可証」を申請する
大工場構造はクラウドの管理者アカウントのパスワードをコードに書くことを厳禁している。私たちは最も安全な証明書で流れなければならない。
Azureコンソールにログインして、事前に作成したAzure App Serviceの詳細ページにアクセスします。
上のメニューバーで、「公開プロファイルを取得」をクリックします。
この時、あなたのコンピュータは自動的に複雑な暗号鍵を含むものをダウンロードします。PublishSettingsテキストファイルです。開いてすべて選択してコピーします。
あなたのGitHubリポジトリのページに戻って、 "Settings"-> "Secrets and variables"-> "Actions" をクリックしてください。
「Newリポジトリシークレット」をクリックすると、名前が死んでいます。セキュリティゲートがロックされました!
ステップ2:手刃YAML、全自動ラインを編成する
ローカルプロジェクトのルートディレクトリに、新しい隠しディレクトリを作成します
.Github/workflows/
中に名前を作ります。
Deploy.yml
のファイルです。
この書類は私たちの「鋼印青写真」で、私たちは純粋な宣言的文法を使ってGitHub actionを自動的に機能させなければならない
Name: Omega現代化全自動CI-CDライン
# トリガ条件: main分岐にコードが押されていれば、すぐに万砲が一斉に鳴る
On:
Push:
Branches: ["main"]
Jobs:
Build-and-deploy:
Runs-on: ubuntu-latest # はGitHub公式無料でホストされている最新のLinux爆撃機を使用しています
Steps:
#1.コードを仮想マシン構築環境にプルする
-Name: 手順1: 最新のソースコードを取得します
Uses: ac
� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �
#2. 注入. NET実行環境 (Javaの場合はaction/setup-javaに変更)
-Name: ステップ2: マイクロソフトのコアを初期化する. NET環境
Uses: actions/setup-dotnet @ v4
With:
Dotnet-version: '8.0.x'
#3.リカバリとコアコンパイルに依存する
-Name: ステップ3: リカバリと産業レベルのコンパイルに依存します
Run: |
Dotnet restore
Dotnetちびっこ-c Release -o ./ちびっこ
#4.国境を越えてAzureにシームレスに配達する
-Name: ステップ4: 境界を越えてAzure App Serviceにシームレスに配信
Uses: azure/webapps-deploy @ v 3
With:
App-name: 'your-azure-webapp-name '# はAzure上の本当のWeb App名に置き換えます
Publish-profile: ${ secre{ secrets.Azure_webapp_public-profile} # GitHubでロックされたセキュリティ証明書を取得します
パッケージ: ./publish-folder
このファイルを保存し、直接
gitプッシュ
GitHubに爆撃する。
第四段階: 奇跡を目撃する時 -- 両手でキーボードを離れて、静かに自動化の狂暴を鑑賞します。
コードが押し上げられた瞬間、すぐにGitHub倉庫を開けて、一番上のをクリックします
「Action」
タブページ。
黄金色の進行状況が狂っているのが見えます。クリックすると、YAMLに書かれた4つのステップが閲兵式のように緑のフックを一斉に点灯しているのが見えます (
✓
)
構築セグメント: GitHubがホストするUbuntu仮想マシンは、15秒以内にコードのプルとコンパイルを完了しました。
配置セグメント: コンパイルされたバイナリパッケージは、先ほど埋設されたpublic _ プロフィールキーチャネルを通じて、パブリックネットワークの防御を越えて、マイクロソフトのクラウドコンテナに直接注入されます。
通常、プロセス全体は必要です
45秒から1分
。最後の項目が青信号になったら、ブラウザを開けて、Azureサイトのドメイン名を入力して、新しいビジネス機能が世界中に完璧に現れた。
Azure boardの看板を振り返ってみると、Commitに暗号が埋め込まれているため、そのIDは
5
の任務は非常に優雅に自動的に「オンライン」欄にアーカイブされた。全プロセスチームは一度も整列会を開いたことがなく、コンソールに行ってマウスをクリックしたことがなく、純粋なコードがトリガーされ、糸が非常に快適に滑る。
第五段階: 企業クラスの全家桶構造でのピット血涙歴
このマイクロソフトの全家桶案はとても爽快で、生まれつき大工場の血筋を持っている。しかし、本当の多くの人が協力して、高周波で提出したビジネス戦場で生きていくには、最高設計者として、すぐにチームに次の二つの下線規範を溶接しなければならない
1.「主分岐裸奔走」の原始的なやり方を断ち切る
多くの初心者チームがこのラインを使ったばかりで便利だと思って、チームの中でベテラン開発でも入ったばかりのインターンでも、毎日地元で直接行っている
Main
分岐上
Push
コード。
災害発生: ある日インターンが誤って死のサイクルを書いたり、走っていないコードを無理に押し上げたりするとgitHub actionは非常に正直で容赦なくこのゴミコードを1分以内に自動的にコンパイルして本番環境に公開し、直接オンラインシステムが大面積に麻痺する。
大工場標準ピット回避操作: 「支店保護ロック」をオンにする必要があります。GitHub倉庫の設定に入り、main分岐を強制的にロックした。行政命令: 誰もが直接push主分岐を厳禁! まずローカルに機能分岐を作成し、書き終えたらPull Request (PR) を提出しなければならない。そしてGitHubに配置されている: GitHub actionの継続的な統合 (単体テストを完走) 結果が青信号に点灯し、少なくとも一人のベテラン設計者が肉眼レビューにサインした後、コードは主分岐に力を入れる権利がある。プロセスで低レベルのミスを殺す。
2.「マトリックス構築」による計算力の超過を警戒する
GitHub actionは非常に強い
大きいです。サポートしています。
Strategy: matrix
の黒技術は、いくつかの行のコードを書くことを許可して、同時にWindows、Linux、macOSで使う. NET 6、7、8のいくつかの異なるバージョン
9種類の組み合わせのコンパイルテストを同時に並行して行う
。
内部者露出: マイクロソフトが無料アカウントごとに提供するGitHub actionの計算額は限られている (通常毎月2000分)。企業レベルの大プロジェクトで盲目的にマトリックス構築を始めると、PRを出すたびに9倍の仮想マシン時間を消費し、数日もしないうちに当月の無料計算力を生々しく燃やしてしまうCI/CDライン全体が直接ストライキした。
ハードコア強化規範: 日常開発分岐 (Feature Branch) では、ubuntu-latestという最も安い、最も速い環境で基礎テストを実行するだけであるコードが本当にTag発行版を発行したり、release分岐に合わせて生産を準備したりした場合にのみ、全量行列の高規格監査コンパイルをトリガーする。
まとめ
マイクロソフトの全家桶を利用してCI/CD自動化パイプラインを構築し、核心的な工業レベルの真髄は実は16文字に簡略化されている
看板は道を指して、暗号は線をつないで、クラウドはコンパイルして、証明書は護衛します。
あなたは過去に第三者のツールを縫合して、毎日Jenkinsプラグインのために髪を落として、需要とコードが全く合わない原始的な運送状態に別れを告げた。すべての複雑なインフラと流通を大工場レベルで完全に貫通したシームレスな脳にホストする。パソコンの前に座って、ビジネスコードを磨き、書き終えた
gitプッシュ
、残りのことは、光の速さが点滅する雲の原始的なラインに優雅に渡される。

