top 20 latest devops interview questions
DevOpsインタビューを正常にクリアするための最も人気のあるDevOpsインタビューの質問と回答:
最高のリストを見ました DevOpsサービスプロバイダー 前回のチュートリアルで。
DevOpsは、ツールだけでなく、統合されたツールセットを使用してソフトウェア配信を自動化することにより、継続的インテグレーションとデプロイの領域で開発チームと運用チームの間のギャップを埋めることができる一連のベストプラクティスでもあります。
推奨読書=> 入門DevOpsガイド
それでは、DevOpsインタビューで最もよくある質問のいくつかと、考えられる回答を見てみましょう。回答は、自分の仕事や経験によって異なる場合があります。
回答付きの最高のDevOpsインタビューの質問
以下に、インタビューで最もよく寄せられるDevOpsの質問のリストを示します。
はじめましょう。
Q#1)DevOpsについて説明してください。
回答:
- DevOpsは、ビジネス、開発、運用チーム間のコミュニケーションとコラボレーションを促進します。ある意味で、私たちは統一について話しているのです。
- DevOpsは、ツールだけでなく、人やプロセスを巻き込むことでもあります。
- DevOpsは、アジャイルプロセスに触発されています。
- DevOpsは、開発、リリース、運用のプロセスを自動化することを目的としています。
- DevOpsは、エンドユーザーへのアプリケーションの配信速度を向上させます。
- DevOpsは、フィードバックを通じて学習するのに役立つ継続的な改善にも関わっています。
Q#2)DevOpsの実装に役立ついくつかの前提条件を説明してください。
回答:前提条件は次のとおりです。
- 組織の上級レベルでのコミットメント。
- 変更を組織全体に伝達する必要があります。
- バージョン管理ソフトウェア。
- プロセスへのコンプライアンスのための自動化されたツール。
- 自動テスト
- 自動展開
Q#3)DevOps実装のベストプラクティスは何ですか?
回答: DevOpsの実装は、組織によって異なります。今日、組織はソフトウェアをより迅速に提供することを目指しています。その観点から、DevOpsが運用チームを含むすべての利害関係者との効率的なコミュニケーションを実現する方法についての私の考えを以下に示します。
- すべての組織には特定のビジネス目標があり、DevOpsの実装はそれに合わせる必要があります。変更の必要性があるはずです。
- 特に開発と運用の間のコミュニケーションとコラボレーションを奨励します。
- 自動化が重要であり、DevOpsの動作を容易にするために、SDLCステージ内で可能な限り実行および実行する必要があります。
- DevOpsで使用されるツールは、非常にうまく統合されているはずです。 IBM RationalCLMやMicrosoftTFSなどの商用ツールの観点からは、DevOpsの実装は、単一のベンダーからのものであるため、優れています。同様に、同様の望ましい結果をもたらすために統合するオープンソースツールを検討する必要があります。
- DevOpsの実装は、継続的インテグレーションと継続的デリバリーのプラクティスなしでは成功しません。したがって、厳密なテストとCDの実行によるコードのCIがその鍵となります。
- Opsチームにとって、アプリケーションが適切なレベルで非常にうまく機能していることを確認することは非常に重要です。必要に応じて、開発チームと協力して、アプリケーションに適切な監視機能を組み込むのに役立つツールを構築する必要があります。
- 最後に、エンドユーザーからのフィードバックを奨励して、プロセスを改善し、高品質のソフトウェアを提供するための鍵を提供する継続的な改善を可能にします。
Q#4)DevOpsの主要コンポーネントは何ですか?
回答:主要なコンポーネントは次のとおりです。
- 継続的インテグレーション
- 継続的テスト
- 継続的デリバリー
- 継続的な監視
Q#5)継続的インテグレーションについて説明してください。
回答: 継続的インテグレーションは、アジャイルプロセスの非常に重要なコンポーネントです。通常、開発者はスプリント内の機能またはユーザーストーリーに取り組み、変更をバージョン管理リポジトリにコミットします。
コードがコミットされると、開発者の作業全体が適切に統合され、すべてのチェックインまたはスケジュールに基づいてビルドが定期的に実行されます。したがって、プラクティスとしての継続的インテグレーションでは、開発者は変更を他の変更と統合して、早期のフィードバックを得る必要があります。
等価分割と境界値分析
Q#6)継続的デリバリーについて説明してください。
回答: 継続的デリバリーは継続的インテグレーションの拡張であり、主に開発者が開発している機能をできるだけ早くエンドユーザーに提供するのに役立ちます。このプロセスでは、QA、ステージングなどのさまざまな段階を経て、PRODUCTIONシステムに配信されます。
Q#7)継続的テストについて説明してください。
回答: アプリケーションをエンドユーザーに提供するという継続的インテグレーションの上記の目標から、主に継続的デリバリーが可能になります。これは、十分な量の単体テストと自動化テストなしでは完了できません。
したがって、コードが生成され、必要に応じて実行するすべての開発者と統合されていることを検証する必要があります。
Q#8)継続的な監視について説明してください。
回答: アプリケーションが開発およびデプロイされると、そのパフォーマンスを監視する必要があります。 モニタリング 以前に検出されなかった可能性のある欠陥を明らかにするのに役立つ可能性があるため、これも非常に重要です。
Q#9)プロジェクトでDevOpsを実装する必要がある場合、どのようにアプローチしますか?
回答:以下のアプローチを使用できますが、実際のプロジェクトシナリオまたは組織ごとに異なります。
ステージ1: DevOpsの実装では、AS-ISプロセスを評価し、改善領域を特定し、実装のロードマップを提供するために、平均5つのアプリケーションを使用して約2〜3週間の既存のプロセスと実装を評価する必要があります。
通常、この評価を実施するには、DevOpsアーキテクトのような上級プロファイルが関与する必要があります。
ステージ2: パイロットPOCを実行して、DevOpsのエンドツーエンドの動作を紹介できます。これがエンドユーザーによってのみ受け入れられ承認されたら、実際の実装、引き渡し、および関連するプロジェクトの計画の展開を実行する必要があります。
必要なトレーニングはすべて、プロセスまたはツールに提供する必要があります。この段階では、DevOpsアーキテクト、エンジニア、テスターが関与する必要があります。
ステージ3: これで、プロジェクトはDevOpsモードになり、継続的インテグレーション/配信/テストとモニタリングのすべてのコンポーネントが実行されます。
Q#10)DevOpsをウォーターフォールプロセスに適用できますか? DevOps実装におけるアジャイルプロセスの重要性を説明します。
回答: ウォーターフォールプロセスでは、最初に完全な要件が収集され、次にシステムが設計され、次にシステムの実装が行われ、続いてシステムテストが行われ、エンドユーザーに展開されることを私たち全員が認識しています。このプロセスでの問題は、ビルドとデプロイに非常に長い待ち時間があり、フィードバックを得るのが非常に困難であったことでした。
上記の問題の解決策は、アジャイルプロセスが開発と運用の両方に敏捷性をもたらさなければならないということでした。アジャイルプロセスがプリンシパルである場合もあれば、DevOpsの実装に特定の前提条件が必要な場合もあります。 DevOpsはアジャイルプロセスと密接に関連しています。
重点分野は、より短いリリースサイクルと迅速なフィードバックにより、非常にタイムリーにソフトウェアをリリースすることです。そのため、アジャイルプロセスの焦点は主に速度にあり、DevOpsでは、さまざまなツールの自動化でうまく機能します
Q#11)継続的デリバリーと継続的デプロイの違いは何ですか?
回答: アジャイルスプリントでは、 例えば、 開発され、テストされ、展開の準備ができている多くの機能またはユーザーストーリーがあります。しかし、顧客のシナリオと優先順位に基づいて、すべてが展開されるわけではありません。したがって、ここで継続的デリバリーを行う場合、コードをすぐにデプロイできるようにしておくことが非常に重要です。
回帰テストの目的は何ですか
Continous Deploymentでは、開発者が開発したすべての変更はさまざまな段階を経て、自動化された方法でPRODUCTION環境にデプロイされます。
Q#12)DevOpsプロジェクトに関するあなたの専門知識は何ですか?
回答: DevOpsエンジニアとしてのあなたの役割と、24 * 7環境の一部として、そしておそらくシフトで、CIおよびCDパイプラインの自動化とプロジェクトチームへのサポートの提供に関連するプロジェクトでどのように働いていたかを説明してください。
したがって、DevOps自動化の環境を維持し、ますます多くのプロジェクトやさまざまなテクノロジーに拡張する責任を完全に負います( 例: .NET、J2EEプロジェクト)が組織内に関与しています。
また、プロセスを説明します( 例 アジャイル)とエンドツーエンドの自動化に関与したツール。クラウド環境でのDevOpsサポートでの経験について話すこともできます。
Q#13)今日の業界で使用されているDevOpsツールのトップ10は何ですか?
回答:リストには次のものが含まれます。
- Jira
- GIT / SVN
- Bitbucket
- ジェンキンス
- 竹
- SonarQube
- アーティファクトリー/ネクサス
- Docker
- Chef / Puppet / Ansible
- IBM Urbancode Deploy / CA-RA
- Nagios / Splunk
Q#14)上記の質問で言及されたツールの使用法と、それらがどのように接続してDevOpsモデル(CI / CD)を提供するかを説明できますか?
回答:
計画
- Jira –プロジェクト計画と問題管理に使用されます
継続的インテグレーション
- 行く - バージョン管理
- ジェンキンス –継続的デリバリーにも役立つオープンソースの継続的インテグレーションツール。
- SonarQube –コード分析
- JFrog Artifactory –バイナリリポジトリマネージャ
継続的デリバリー
- Chef / Puppet / Ansible – 構成管理とアプリケーションの展開
- IBM Urbancode Deploy / CA RA – 継続的デリバリー
継続的な監視
- Nagios / Splunk
サンプルDevOpsワークフロー:
- 通常、アジャイルプロセスでは、ユーザーストーリー、タスク、欠陥などはすべてJIRAに保存され、プロダクトオーナーと開発者に割り当てられます。
- 開発者は自分に割り当てられたタスクをピックアップし、開発に取り組みます。ソースコードはバージョン管理され、GITに保存されます。開発者は、GITのソースコードへの変更をコミットします。最終的に、コードはGitHubを使用する開発者間で共有されます。
- 継続的インテグレーションツールであるJenkinsがコードをプルし、チェックインのたびに、またはスケジュールに基づいて、MavenやANTなどのビルドツールを使用してビルドが実行されます。
- J2EE WARファイルが作成されると、それらもバージョン管理され、ArtifactoryやNexusなどのバイナリリポジトリマネージャーに保存されます。
- JUnitを使用した単体テストとSonarQubeを使用したコード分析も実行され、自動化されます
- 上記のプロセスが完了すると、IBM UrbanCode Deploy / CA RA継続的テスト(機能および受け入れテスト)などのツールを使用した承認に基づいて、さまざまな環境に継続的デリバリーが実行され、Seleniumなどのツールを使用して適切なテスト環境で呼び出されます。
- 継続的な監視は、PROD環境で継続的なアクティビティになります
Q#15)インフラストラクチャの観点からの構成管理とは何ですか?また、使用されているいくつかの一般的なツールについて言及していますか?
回答: 構成管理は、配信とインフラストラクチャの運用を自動化するためのプラクティスとさまざまなツールで構成されています。サーバーの準備がすべてです( 例 アプリケーションが開発されたら、アプリケーションを展開するためのシステムパッケージ(ネットワーク構成設定)をインストールします。
したがって、運用担当者またはシステム管理者は、システムをプロビジョニングすることにより、さまざまな環境(Dev、QA、PRODなど)でパリティを確保する必要があります。
上記の構成管理のタスクを自動化するためにこのスペースで使用されるツールは次のとおりです。 Chef / Puppet / Ansible
Q#16)DevOpsで使用されているスクリプトツールはどれですか?
回答: Python、Ruby
Q#17)DevOpsに関連する典型的な役割について説明してください。
統合テストでテストされる2つの主要な項目は、インターフェイスと期待される結果です。
回答:
- DevOpsアーキテクト: DevOpsプロセス全体を担当するリーダー。
- DevOpsエンジニア: その人は、アジャイル、SCMまたはバージョン管理、CI / CD、および同じための自動化ツールのセットアップ、インフラストラクチャの自動化、およびデータベース管理のスキルの経験が必要です。コーディングまたはスクリプティングのスキルがあり、デプロイメントまたはシステム管理者になるための洞察力を持っている開発者は、DevOpsエンジニアの役割を果たす資格を得ることができます。
Q#18)クラウドでのDevOpsの実装に関与しましたか?はいの場合、どのクラウドコンピューティングプラットフォームですか?
回答:人気のあるクラウドコンピューティングプラットフォームの例:
- AWS –アマゾンウェブサービス
- Microsoft Azure
- Google Cloud
Q#19)DevOpsの成功のために従ったいくつかの指標について説明してください。
回答:
いくつかの例は次のとおりです。
- 最初の最も重要な要素は、配信の速度です。これは、作業項目が実稼働環境に入るまでにかかる時間を意味します。
- 次は、展開と、このプロセスが自動化されてからどれくらいの時間がかかるかです。
- PRODUCTION環境に関して、さまざまな環境で検出された欠陥の数を追跡することがほぼ必要です。これは、より早くリリースする必要のある機能を検討する上で非常に重要です。アジャイル手法の使用は大いに役立ち、主な目標は生産レベルの欠陥を減らすことです。
- 通常、デプロイメントは失敗しませんが、この側面を追跡し、以前の安定バージョンにロールバックするメカニズムを持つことが非常に重要です。
- DevOpsの実装では、単体テストが重要であり、機能テストでもあります。行われたコードの変更に基づいて、これらのテストが失敗するかどうか、およびどの程度まで失敗するかを確認する必要があることがよくあります。自動化されたテストは、コードの変更に耐えるのに十分な堅牢性を備えていることが不可欠です。
- PRODUCTION環境で障害が発生した場合に回復するのにかかる実際の時間、または平均時間を測定することは非常に重要です。これは平均修復時間(MTTR)と呼ばれ、短くする必要があります。これは、回復時間を短くするために適切な監視ツールが必要であることも意味します。
- アプリケーションのパフォーマンスは、特に展開が完了した後に監視する必要があるもう1つの重要なメトリックです。
- 成功のための非常に重要な要素は、主にアプリケーションの品質に依存する、顧客から報告されたバグの数です。
Q#20)DevOpsのキャリアの観点からのあなたの期待は何ですか?
回答: エンドツーエンドの配信プロセスと、プロセスの改善を支援する最も重要な側面に関与して、開発チームと運用チームが協力し、互いの視点を理解できるようにすること。
結論
これは、最も人気のあるDevOpsインタビューの質問のリストでした。
の初めに この一連のDevOpsチュートリアル 、DevOpsとは何か、そのプロセス、およびそれらを実装するための特定の可能な方法を知るようになりました。
このチュートリアルのDevOpsの質問は、DevOpsインタビューを征服し、この分野での素晴らしいキャリアの道を歩むのに役立つことを願っています。言及されている質問はDevOpsの観点からのものであるため、CIとCDについてこの記事で言及されているアジャイルプロセスとツールにも習熟している必要があります。
DevOpsシリーズのすべてのチュートリアルを楽しんでいただければ幸いです。また、DevOpsの概念に関する膨大な知識を習得したに違いありません。皆様のご成功をお祈りしております!!!
推奨読書
- あなたが従うべき2021年の9つの最高のDevOps会議
- Ansibleロール、DevOpsでのJenkinsとの統合、およびEC2モジュール
- DevOpsでのアプリケーションパフォーマンスモニタリング
- クラウドでのDevOps実装のためのAWSCodeCommitチュートリアル
- 最高のオープンソースDevOpsツール(インストールと構成付き)
- DevOpsでのコラボレーション
- DevOpsプラクティスにおける構成管理
- DevOpsでの継続的デリバリー
- DevOpsでの継続的デプロイ
- DevOpsでの継続的インテグレーション
- DevOpsでの継続的テスト
- DevOpsの謎を解き明かす:ビデオチュートリアル(パート1)
- DevOps自動化:自動化はDevOpsプラクティスにどのように適用されますか
- アジャイルマニフェストに基づくDevOpsプラクティス(パート2-ブロック1)
- DevOpsテストチュートリアル:DevOpsはQAテストにどのように影響しますか?
- DevOpsチュートリアル:DevOpsの究極のガイド(25以上のチュートリアル)
- Microsoft VSTSを使用したDevOps:AzureWebアプリへのCI / CD
- DevOpsチームでコラボレーションを開発する方法
- DevOpsでEclipseを使用してJAVAプロジェクトにMicrosoftTFSを使用する方法
- DevOpsでの配信の小さな増分の重要性