Udacityの雲デビルズエンジニアナノ程度のための私のCapstoneプロジェクト
3307 ワード
いろいろなデプス関連のコースとより小さなプロジェクトの3ヵ月後に、私は私のナノ程度の終わりに達しました、そして、それは私のCapstoneプロジェクトを構築する時間でした.
私のプロジェクトは2つの部分に分割することができます:アプリケーション自体、それを展開し、それをホストするインフラストラクチャ.
アプリケーション:ランダムな歌
ランダムな曲は、単純なWebアプリケーションのtypescript、ノードを使用して構築されます.JSエクスプレス.これは、musixmatch APIを使用して、ランダムな曲を送ることができるWebサービスとして機能します.アプリをテストするには、単に/ランダムルートに移動し、JSONでランダムな曲のオブジェクトを受信します.
ルートに戻る
Welcome to my capstone project! To get a random song, go to the '/random' route.
ランダムルートはランダムな曲を返します.{
track_id: 160557034,
track_name: 'Get Up and Fight',
track_name_translation_list: [],
track_rating: 26,
commontrack_id: 86880624,
instrumental: 0,
explicit: 0,
has_lyrics: 1,
has_subtitles: 1,
has_richsync: 1,
num_favourite: 62,
album_id: 30545841,
album_name: 'Simulation Theory (Super Deluxe)',
artist_id: 1248,
artist_name: 'Muse',
track_share_url: 'https://www.musixmatch.com/lyrics/Muse/Get-Up-and-Fight?utm_source=application&utm_campaign=api&utm_medium=Student+Developer%3A1409620630471',
track_edit_url: 'https://www.musixmatch.com/lyrics/Muse/Get-Up-and-Fight/edit?utm_source=application&utm_campaign=api&utm_medium=Student+Developer%3A1409620630471',
restricted: 0,
updated_time: '2020-05-19T15:42:03Z',
primary_genres: { music_genre_list: [[Object], [Object] ] }
}
インフラ
アプリケーションが構築された後、次のタスクはそれを展開していた.このプロジェクトではローリング展開に行くことにしました.私の目標は必要な設定ファイルと必要なビルドコマンドを書き出し、実際にアプリケーションを構築し、インフラストラクチャを展開するプロセスを自動化するパイプラインを作成することでした.この方法では、プロジェクトに新しいコードやインフラストラクチャを追加するたびに、まったく同じ方法で実行できます.私はJenkinsをホストするためにサーバーを必要としました.AWS EC 2インスタンスを準備して、Jenkinsをインストールした後に、私はJenkinsが走ることを望むタスクを定義するのを開始する時間でした.アプリケーションのコードにアクセスした後、Jenkinsが実行するために作成したタスクがあります.
単にNPMのインストールを実行するトリックを行います.
私のアプリケーションはtypescriptで書かれているので、NPM Runビルドを実行してJavaScriptディストリビューションフォルダを構築する必要がありました.
npm実行lintを実行すると、すべてがtslintの標準になっていることを確認します.
Jenkinsは私が作成したDockerfileに基づいてDockerコンテナを構築します.これは単純なノードイメージを基にして、アプリケーションコードをコンテナにコピーして起動します.
コンテナ化された後に、私のアプリケーションは、更なる有効性のためにDockerレジストリにアップロードされます.
ここでは、実際にクラスタにアプリケーションを配備するために次のステップで使用するKubernetes配置ファイルを作成する必要がありました.私は、AWS EKSを通してKubernetesを使いました.
私のKubernetes配備ファイルと私がレジストリにアップロードした私のDockerコンテナの助けを借りて、私は現在私のアプリケーションを私のAWS EKSクラスタに配備することができました.また、Kubectl - get Podを実行し、Kubectlは、すべてが予想通りに実行されていることを確認するためにサービスを取得します.
残念ながら、アプリは現在EKSのために継続的に支払うために学生の格安サービスではないために展開されていません.しかし、私はランダムな曲のアプリケーションを撮影し、より恒久的に将来のプロジェクトでホストされるものにそれを回すことを計画している.インフラストラクチャーが進む限り、これらは将来のプロジェクトにおいても再構築できるものである — Dockerコンテナ、KubernetesクラスタとJenkinsパイプラインは、どんなソフトウェア関連のプロジェクトを構築するのを助けることができるツールです.
あなたがコードを見たいと思うならば、あなたはGitHubでプロジェクトのレポを見てみることができます.
Reference
この問題について(Udacityの雲デビルズエンジニアナノ程度のための私のCapstoneプロジェクト), 我々は、より多くの情報をここで見つけました https://dev.to/gschnei/my-capstone-project-for-udacity-s-cloud-devops-engineer-nanodegree-58o2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol