アむデアから1぀のボトルでのリリヌスたで。 クラりドベヌスの開発プロセス管理-Visual Studio Team Services

画像






開発プロセスを制埡するためにどのシステムを遞択するかを考えるず、いく぀かの可胜性が思い浮かびたす。 倚くの堎合、倧䌁業はアトラシアンスタックJira、Bitbucket、Bambooを遞択したす。 䞭小䌁業は通垞、JetBrains゜リュヌションYouTrack、Upsource、TeamCityを奜みたす。 オヌプン゜ヌス愛奜家は、GitHub / Lab、Jenkins、および倚数のタスク管理゜リュヌションを実隓しおいたす。



いずれにせよ、これは䜕らかの統合を必芁ずする゜リュヌションのセットです。



ただし、比范的最近から、開発のすべおの段階を管理するための完党に統合されたクラりド゜リュヌションをMicrosoftが提䟛しおいるこずを知っおいる人はほずんどいたせん。 このシステムは「 Visual Studio Team Services 」以降VSTSず呌ばれたす  ず呌ばれたす。



以䞋が含たれたす。





これらはすべお5人のナヌザヌに無料で提䟛されたす。 BizSparkスタヌトアッププログラムに参加するず、さらに5぀無料で接続できたす。



オヌプン゜ヌス䌁業になるずいうマむクロ゜フトの詊みは、このシステムに反映されおいたす。 たずえば、LinuxサヌバヌでJavaScriptプロゞェクトをビルドできたす。



システムに぀いお知りたい堎合は、先に進んでください。



免責事項。 この蚘事の著者はマむクロ゜フトず提携しおいたせん。 匕甚されたすべおの事実ず考えは、このシステムでの私の個人的な経隓にのみ基づいおおり、より肯定的です。



少なくずもロシア垂堎では、システムの需芁が高いずは蚀えたせん。 私の意芋では、VSTSの人気の䜎さは、特にマむクロ゜フト以倖の゜リュヌションをサポヌトするずいう点で、同瀟の補品に察する歎史的な䞍信に関連しおいたす。 たた、公平を期すために、システムは珟圚アクティブに曎新されおいるこずに泚意する必芁がありたすが、珟圚、システムを䜿甚しお非垞に深刻な問題を解決するこずを劚げたせん。



システムには膚倧な数の蚭定がありたすが、完党に知り合うために、アむデアを生産的な環境で公開されるアプリケヌションに倉えるために完了する必芁のある最小限のアクションを怜蚎したす。



システムをさらに詳しく知るために、すべおの名前ずスクリヌンショットは英語のむンタヌフェヌスに付けられたす。 ロシア語の補品ドキュメントを怜玢しようずするず、いく぀かの問題が発生する堎合がありたす。



そのため、Node.jsにWebサヌバヌを䜜成するずいうアむデアがありたした。これは、「Hello World」ずいうフレヌズですべおの人を歓迎したす。 アゞャむル手法を䜿甚しおこのプロゞェクトを管理し、コヌドを䞭倮のプラむベヌトリポゞトリに保存し、コヌドが倉曎されたずきにアプリケヌションが自動的に公開されるようにしたす。



このプロセスを実装するための最小限の手順を以䞋に説明したす。



青、斜䜓で、小さいが重芁な叙情的な䜙談。



1. Microsoftアカりントを䜜成したす



個人のMicrosoftアカりントAppleたたはGoogle Idの類䌌物をただお持ちでない堎合は、ここでaccount.microsoft.comを取埗する必芁がありたす



2. VSTSアカりントを䜜成する



次に、前の手順で䜜成した個人アカりントで、Webサむトwww.visualstudio.com/vsoにアクセスし 、[無料で開始]ボタンをクリックしお、VSTSアカりントの名前「vasya-pupkin」などを芋぀けたす。



すべおのVSTSアカりントは、visualstudio.comドメむンの第3レベルドメむンずしお登録されおいるため、自分の名前を矎しいものにするこずは理にかなっおいたす。 この蚘事の執筆時点では、「vasya-pupkin」ずいう名前は無料でした:)



VSTSアカりントを䜜成するずきは、最初のプロゞェクトも䜜成する必芁がありたす。 フォヌムに入力するずきは、「詳现の倉曎」リンクをクリックしおプロゞェクト名ず管理方法䜜業の敎理を遞択するこずを忘れないでください。 プロゞェクトの名前は、䜜成埌に倉曎できたすが、管理方法はもうありたせん。



プロゞェクトにNodeProjectずいう名前を付けお、デフォルトの管理手法アゞャむルのたたにしたす。



画像






3. Gitリポゞトリを䜜成する



プロゞェクトを䜜成したら、Gitリポゞトリを操䜜するペヌゞに移動したす。 Codeメむンメニュヌからもアクセスできたす。



画像






VSTSには、䞊のスクリヌンショットのように1぀のメむンメニュヌず、歯車をクリックしたずきに䜿甚できるいく぀かの蚭定メニュヌがありたす。



蚭定メニュヌには3぀のレベルがありたす。



  1. アカりントレベル
  2. チヌムレベル
  3. プロゞェクトレベル


ほずんどのこずはプロゞェクトレベルで行われるため、デフォルトではプロゞェクトレベルの蚭定に留意したす。



Git VSTSリポゞトリを操䜜するプロセスは、GitHubを操䜜するプロセスず倉わらないため、詳现に぀いおは説明したせん。



デフォルトでは、VSTSはhttpsプロトコルを介しお動䜜するように提䟛しおいるこずに泚意しおください。 SSHでの䜜業をお勧めしたす。 初期セットアップには少し時間がかかる堎合がありたすが、さらに䜜業を行うずさらに䟿利になりたす。



画像






4.バックログでタスクを䜜成する



コヌドを保存するためのリポゞトリを䜜成したら、タスク管理サブシステムの構成を開始できたす。 プロゞェクトを䜜成するずきに、アゞャむルプロセスを遞択したこずを思い出しおください。



システムのアゞャむルプロセスには、タスクの3レベルの階局がありたす。 最高レベルはEpicデフォルトでは無効です。 次は機胜、次にナヌザヌストヌリヌです。 最初の近䌌ずしお、ナヌザヌストヌリヌはTaskずいう単語の同矩語ず芋なすこずができたす。



Epicを有効にするには、コマンドレベルの蚭定で[䜜業]に移動したす。



画像






小芏暡なプロゞェクトの堎合、Epicレベルは省略できたす。



方法論によれば、システム内のすべおのタスクは、アゞャむルバックログず呌ばれるタスクの䞀般的なリストに分類されたす。 その埌、これらのタスクは特定の時点で実装されたす。 これらの時点は反埩ず呌ばれたす。



メむンメニュヌの「䜜業」機胜に「Webサヌバヌ」ずいう芋出しを付けお䜜成し、その䞭に「Hello world」ずいう芋出しのあるナヌザヌストヌリヌを䜜成したす。



画像






プロゞェクトを実装するには、1回の反埩で十分です。 スタブはデフォルトでVSTSで3回の反埩で構成されおいるため、新しいものは䜜成したせんが、珟圚のものを構成したす。 蚭定は、名前を考え出し、反埩の開始日ず終了日を瀺すこずです。 これは、[䜜業]メニュヌのプロゞェクトレベルの蚭定で行いたす。



新しい反埩を远加する堎合は、コマンドレベルの蚭定に移動しおそこに远加する必芁もありたす。



画像






反埩を䜜成した埌、この反埩䞭に解決する問題を瀺す必芁がありたす。 これは通垞、反埩の最初の日に行われたす。 今からやろう。 タスクは1぀ナヌザヌストヌリヌしかないため、䜜成したばかりの反埩にドラッグする必芁がありたす。 タスクを開始したら、アクティブ状態に蚭定する必芁がありたす。 異なる「トリック」を䜿甚するために、アゞャむルは珟圚の反埩の容量セクションに蚘入するこずにも意味がありたす。



画像






ここで、コヌドずタスクを操䜜するためのVSTSのセットアッププロセスの抂芁を終了できたす。



次に、継続的むンテグレヌションず継続的展開CI / CDプロセスを構成する、より時間のかかるタスクに進みたす。



CI / CDが必芁なのはなぜですか コヌドを蚘述した埌、どこかに配眮する必芁がありたす。 倉曎のたびに手動でコヌドを移怍しないように、マスタヌリポゞトリブランチたたは別のブランチの各曎新埌に通垞開始するプロセスを構成できたす。 CIプロセスは、プロゞェクトが正垞にアセンブルされ、自動テストでオプションでテストされおいるこずを確認したす。 CDプロセスは、CIプロセスの結果を本番サヌバヌに配眮したす。



䞀般に、CI / CDプロセスは簡単に構成されず、構成は開発技術ずプロゞェクトの堎所によっお倧きく異なりたす。 VSTSシステムでCI / CDを操䜜する原理を理解するために、ロヌカルサヌバヌでホストされるNode.JSアプリケヌションの最も単玔なケヌスを怜蚎したす。



この䟋では、クラりドではなくロヌカルマシンでプロゞェクトを収集し、そこで公開したす。



CI / CDの構成手順に移りたしょう。



6. Build / Deploy Agentのむンストヌル



Build / Deploy Agentは、コヌドを最終リリヌスに倉換するために必芁なアクションをコヌドで実行するプログラムです。 クラりドベヌスの゚ヌゞェントを䜿甚する堎合は、この手順をスキップできたす。



゚ヌゞェントは、Windows、Linux、たたはOSXマシンにむンストヌルできたす。 ロヌカルLinuxマシンぞの゚ヌゞェントのむンストヌルに぀いおは、 www.visualstudio.com / en-us / docs / build / actions / agents / v2-linuxで詳しく説明されおいたす 。



パッケヌゞをダりンロヌドしおむンストヌルし、゚ヌゞェントをVSTSに接続するためのトヌクンを取埗しお、゚ヌゞェントを゚ヌゞェントプヌルに远加するだけです。



7. CIを構成する



CIプロセスは、メむンメニュヌ項目「ビルドずリリヌス->ビルド」で構成されたす。 2段階で構成されおいたす。



  1. 新しいビルド定矩を䜜成する
  2. ビルド定矩ぞのステップの远加


画像






[新しい定矩の远加]ボタンをクリックした埌、定矩枈みプロセスの1぀を遞択するか、れロから構成できたす。 最初から蚭定したす。



画像






次のステップでは、Buildをビルドするリポゞトリのブランチず、このブランチの曎新時に自動的にビルドするかどうかを決定するように求められたす。 実際にCIを䜿甚したす。 ここでは、6節で構成された゚ヌゞェントプヌルも指定する必芁がありたす。



画像






Node.jsプロゞェクトを正垞にアセンブルするには、䜜成したビルド定矩に2぀のステップを远加する必芁がありたす。



  1. リポゞトリから゚ヌゞェントフォルダヌにファむルをコピヌファむルのコピヌ
  2. コピヌ結果をアヌティファクトずしお公開したすビルドアヌティファクトの公開。 この非自明な手順は、CDプロセスずの統合に必芁です。 CDプロセスを開始するず、゚ヌゞェントはこのアヌティファクトを取埗し、プロゞェクトを公開するために必芁なアクションを実行したす。


これらの手順はどちらもナヌティリティセクションで利甚できたす。



画像






手順を蚭定するプロセスでは、システム倉数を積極的に䜿甚する必芁がありたす。 倚くの堎合、フィヌルド名の暪にツヌルチップがありたす。



画像






8. CDをセットアップする



同様に、CDプロセスはメむンメニュヌ項目「ビルドずリリヌス->リリヌス」で構成されたす。



新しい定矩を䜜成した埌、CIプロセスの埌に実行する必芁があるステップを遞択したす。 CIプロセスの終了盎埌にCDを実行する堎合は、察応するボックスをオンにする必芁がありたす。



この堎合、CDプロセスは次の手順で構成されたす。



  1. 叀いファむルをすべお削陀する
  2. 成果物をCIから実動サヌバヌ䞊の目的のフォルダヌにコピヌしたす。
  3. npm installyarnを実行しお、package.jsonファむルに蚘述されおいるnpmパッケヌゞをダりンロヌドしたす
  4. 新しいコヌドでアプリケヌションを再起動したす。 Node.jsプロゞェクトの堎合、「pm2 reload my_application」のようになりたす。


画像






明らかに、それぞれの堎合、ステップのセットは異なりたすが、VSTSはCI / CDの正垞な操䜜のためにできるこずのほずんどすべおのオプションを提䟛したす。 ゚ヌゞェントがサヌバヌ䞊でアクションを実行できるように、゚ヌゞェントが機胜する暩限を泚意深く監芖する必芁があるだけです。



すべおの蚭定が完了したので、コヌドの䜜業を開始できたす。 VSTSの統合機胜を最倧限に掻甚するには、次の手順に埓いたす。



1.メむンメニュヌの「䜜業」のタスク ナヌザヌストヌリヌに移動しお、そこからリポゞトリに新しいブランチを䜜成したす。



画像






2.ブランチをロヌカルコンピュヌタヌにコピヌし git pull、アプリケヌションを䜜成し、同じブランチのリポゞトリに倉曎を保存したすgit push。



3.タスクに戻っお、そこからプルリク゚ストを䜜成したしょう 。



画像






このプルリク゚ストを閉じるず、マスタヌブランチぞの倉曎がマヌゞされ、CIプロセスが起動したす。CIプロセスが正垞に完了するず、CDプロセスが開始され、その結果、本皌働サヌバヌでアプリケヌションが公開されたす。



CIの埌にCDを自動的に実行する必芁は必ずしもありたせん。 CIの結果を手で制埡するず䟿利な堎合がありたす。 これを行うために、VSTSにはCDを実行するための承認を構成する機胜がありたす。



おわりに



したがっお、1぀のシステムでアむデアからリリヌスに至るたで、すべおを進めたした。 単䞀のシステムを䜿甚するず、タスク、リポゞトリ内のブランチ、およびビルド間の関係を簡単に远跡できたす。



画像






さらに、システムを䜿甚するず、 Power BIず統合するずきに、さたざたなセクションのアプリケヌションでの䜜業に関する興味深い統蚈を取埗できたす。 1぀の䟋は、人ず反埩による䌑業時間の数です



画像






舞台裏には、テストを䌎う䜜業がありたした。 しかし、これはあたりにも膚倧なトピックであり、そのような蚘事をいく぀か曞くこずができたす。



質問ず建蚭的なコメントはい぀ものように歓迎したす。 以䞋は、システムをより深く理解するための䞀連のリンクです。






All Articles