devops-exercises - Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization.DevOps インタビューの質問

(Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. DevOps Interview Questions)

Created at: 2019-10-04 01:31:21
Language: Python
License: NOASSERTION

ℹ️このリポジトリには、DevOps と SRE に関連することもある、さまざまな技術トピックに関する質問と演習が含まれています。

📊現在2619の演習と質問があります

⚠️これらは面接の準備に使用できますが、ほとんどの質問と演習は実際の面接を表していません。詳細については、FAQページをお読みください

🛑DevOpsエンジニアとしてのキャリアを追求することに興味がある場合は、ここに記載されている概念のいくつかを学ぶことは有用ですが、このリポジトリに記載されているすべてのトピックとテクノロジーを学ぶことではないことを知っておく必要があります

📝プルリクエストを送信することで、さらに演習を追加できます:)投稿ガイドラインについてはこちらをご覧ください


開発
開発
ティッカー
CI/CD
ギット
ギット
アンシブル
アンシブル
ネットワーク
ネットワーク
プログラミング
ソフトウェア開発
ニシキヘビ
ニシキヘビ
行く
行く
バッシュ
シェルスクリプト
アーバン
Kubernetes
雲
ティッカー
ティッカー
紺碧
紺碧
グーグルクラウドプラットフォーム
グーグルクラウドプラットフォーム
オープンスタック
オープンスタック
オペレーティング システム
オペレーティング システム
モニタリング
モニタリング
エラスティック
エラスティック
仮想化
仮想化
ティッカー
ティッカー
テスティング
テスティング
データベース
データベース
正規表現
正規表現
設計
システム設計
ハードウェア
ハードウェア
証明 書
証明 書
コンテナー
コンテナー
.sql
.SQL
オープンシフト
オープンシフト
貯蔵
貯蔵
テラフォーム
テラフォーム
モンゴ
モンゴ
人形
人形
分散
分散
あなたが
あなたが尋ねることができる質問
サークルCI
サークルCI
アルゴ
アルゴ
カフカ
カフカ
データドッグ
パール
パール
リナックス
リナックス
プロメテウス
プロメテウス
ビッグデータ
ビッグデータ
人事
ソフトスキル
安全
安全
カオスエンジニアリング
カオスエンジニアリング
雑貨
雑貨

ネットワーク

一般的に、コミュニケーションには何が必要ですか?
  • 共通言語(両端が理解できるようにするため)
  • 誰と通信したいかに対処する方法
  • 接続(通信の内容が受信者に届くようにするため)

TCP/IP とは何ですか?

2 つ以上のデバイスが相互に通信する方法を定義する一連のプロトコル。

TCP/IP の詳細については、こちらをお読みください

イーサネットとは何ですか?

イーサネットとは、単に今日使用されている最も一般的なタイプのローカルエリアネットワーク(LAN)を指します。LANは、より広い地理的領域にまたがるWAN(ワイドエリアネットワーク)とは対照的に、オフィス、大学のキャンパス、さらには自宅などの小さなエリアにあるコンピューターの接続されたネットワークです。

MACアドレスとは何ですか?それは何のために使われますか?

MACアドレスは、ネットワーク上の個々のデバイスを識別するために使用される一意の識別番号またはコードです。

イーサネットで送信されるパケットは、常に MAC アドレスから送信され、MAC アドレスに送信されます。ネットワーク アダプターがパケットを受信している場合は、パケットの宛先 MAC アドレスとアダプター自体の MAC アドレスが比較されます。

この MAC アドレスはいつ使用されますか?: ff:ff:ff:ff:ff:ff

デバイスがブロードキャストMACアドレス(FF:FF:FF:FF:FF:FF:FF)にパケットを送信すると、ローカルネットワーク上のすべてのステーションに配信されます。イーサネットブロードキャストは、データリンク層でIPアドレスを(ARPによって)MACアドレスに解決するために使用されます。

IPアドレスとは何ですか?

インターネットプロトコルアドレス(IPアドレス)は、通信にインターネットプロトコルを使用するコンピュータネットワークに接続された各デバイスに割り当てられた数値ラベルです。IP アドレスは、ホストまたはネットワーク インターフェイスの識別とロケーション アドレス指定という 2 つの主要な機能を果たします。

サブネットマスクを説明し、例を挙げる

サブネットマスクは、IPアドレスをマスクし、IPアドレスをネットワークアドレスとホストアドレスに分割する32ビットの数値です。サブネットマスクは、ネットワークビットをすべて「1」に設定し、ホストビットをすべて「0」に設定することによって作成されます。特定のネットワーク内では、使用可能なホストアドレスの合計のうち、<>つは常に特定の目的のために予約されており、どのホストにも割り当てることはできません。これらは、ネットワークアドレス(別名ネットワークID)として予約されている最初のアドレスと、ネットワークブロードキャストに使用される最後のアドレスです。

プライベートIPアドレスとは何ですか?どのシナリオ/システム設計で、それを使用する必要がありますか?
プライベートIPアドレスは、相互に通信するために同じネットワーク内のホストに割り当てられます。"private" という名前が示すように、プライベート IP アドレスが割り当てられているデバイスには、外部ネットワークからのデバイスからは到達できません。たとえば、私がホステルに住んでいて、ホステルメイトに私がホストしたゲームサーバーに参加してもらいたい場合、ネットワークはホステルに対してローカルであるため、サーバーのプライベートIPアドレスを介して参加するように依頼します。
パブリックIPアドレスとは何ですか?どのシナリオ/システム設計で、それを使用する必要がありますか?
パブリック IP アドレスは、公開 IP アドレスです。友達に参加させたいゲームサーバーをホストしていた場合は、友達にパブリックIPアドレスを提供して、接続を行うために友達のコンピューターがネットワークとサーバーを識別して見つけられるようにします。公開IPアドレスを使用する必要がないのは、同じネットワークに接続している友達と遊んでいた場合、プライベートIPアドレスを使用する場合です。誰かが内部にあるサーバーに接続できるようにするには、ポートフォワードを設定して、パブリックドメインからネットワークへのトラフィック、またはその逆のトラフィックを許可するようにルーターに指示する必要があります。
OSIモデルについて説明する。どんな層がありますか?各レイヤーは何を担当していますか?
  • アプリケーション:ユーザーエンド(HTTPはこちら)
  • プレゼンテーション:アプリケーション層エンティティ間のコンテキストを確立します(暗号化はこちら)
  • セッション:接続を確立、管理、終了します
  • トランスポート:可変長のデータシーケンスを送信元ホストから宛先ホストに転送します(TCPとUDPはこちら)
  • ネットワーク:あるネットワークから別のネットワークにデータグラムを転送します(IPはここにあります)
  • データリンク:直接接続された2つのノード間のリンクを提供します(MACはここにあります)
  • 物理:データ接続の電気的および物理的仕様(ビットはここにあります)

OSIモデルの詳細については、penguintutor.com を参照してください。

次のそれぞれについて、それが属するOSI層を決定します。
  • エラー訂正
  • パケット ルーティング
  • ケーブルと電気信号
  • MAC アドレス
  • IPアドレス
  • 接続を終了する
  • 3ウェイハンドシェイク

  • エラー訂正 - データリンク
  • パケット ルーティング - ネットワーク
  • ケーブルおよび電気信号 - 物理
  • MAC アドレス - データ リンク
  • IP アドレス - ネットワーク
  • 接続の終了 - セッション
  • 3ウェイハンドシェイク - 輸送
  • どのような配信スキームに精通していますか?

    ユニットキャスト:送信者と受信者が1つずつ存在する1対1の通信。

    ブロードキャスト: ネットワーク内のすべての人にメッセージを送信します。アドレス ff:ff:ff:ff:ff:ff はブロードキャストに使用されます。 ブロードキャストを使用する2つの一般的なプロトコルは、ARPとDHCPです。

    マルチキャスト: サブスクライバーのグループにメッセージを送信します。1 対多または多対多にすることができます。

    CSMA/CD とは何ですか?最新のイーサネットネットワークで使用されていますか?

    CSMA/CD は キャリア センス多元接続/衝突検出 を表します。 その主な焦点は、特定の時点で1つのホストのみが送信できる共有メディア/バスへのアクセスを管理することです。

    CSMA/CD アルゴリズム:

    1. フレームを送信する前に、別のホストがすでにフレームを送信しているかどうかを確認します。
    2. 誰も送信しない場合は、フレームの送信を開始します。
    3. 2つのホストが同時に送信した場合、衝突が発生します。
    4. 両方のホストがフレームの送信を停止し、衝突が発生したことを全員に通知する「ジャム信号」を全員に送信します
    5. 彼らは再び送信する前にランダムな時間を待っています
    6. 各ホストがランダムな時間待機すると、フレームを再度送信しようとします。
    次のネットワークデバイスとそれらの違いについて説明します。
    • ルーター
    • スイッチ
    • ハブ

    「衝突ドメイン」とは何ですか?
    コリジョンドメインは、デバイスが同時にデータを送信しようとすることによって相互に干渉する可能性のあるネットワークセグメントです。2つのデバイスが同時にデータを送信すると、衝突が発生し、データが失われたり破損したりする可能性があります。コリジョン ドメインでは、すべてのデバイスが同じ帯域幅を共有し、どのデバイスも他のデバイスによるデータの送信を妨害する可能性があります。
    「ブロードキャストドメイン」とは何ですか?
    ブロードキャストドメインは、すべてのデバイスがブロードキャストメッセージを送信することによって相互に通信できるネットワークセグメントです。ブロードキャスト メッセージは、特定のデバイスではなく、ネットワーク内のすべてのデバイスに送信されるメッセージです。ブロードキャストドメインでは、メッセージが送信されているかどうかに関係なく、すべてのデバイスがブロードキャストメッセージを受信して処理できます。
    スイッチに接続された 3 台のコンピューター。衝突ドメインはいくつありますか?ブロードキャストドメインはいくつありますか?

    3 つのコリジョン ドメインと 1 つのブロードキャスト ドメイン

    ルーターはどのように機能しますか?

    ルーターは、2 つ以上のパケット交換コンピューター・ネットワーク間で情報を渡す物理アプライアンスまたは仮想アプライアンスです。ルーターは、特定のデータパケットの宛先インターネットプロトコルアドレス(IPアドレス)を検査し、宛先に到達するための最良の方法を計算し、それに応じて転送します。

    NAT とは何ですか?

    ネットワーク アドレス変換(NAT)は、ローカル ホストにインターネット アクセスを提供するために、1 つ以上のローカル IP アドレスを 1 つ以上のグローバル IP アドレスに、またはその逆に変換するプロセスです。

    プロキシとは何ですか?それはどのように機能しますか?何のために必要ですか?

    プロキシサーバーは、ユーザーとインターネットの間のゲートウェイとして機能します。これは、エンドユーザーを閲覧するWebサイトから分離する中間サーバーです。

    プロキシサーバーを使用している場合、インターネットトラフィックは、要求したアドレスに向かう途中でプロキシサーバーを通過します。その後、要求は同じプロキシサーバーを介して返され(このルールには例外があります)、プロキシサーバーはWebサイトから受信したデータを転送します。

    プロキシサーバーは、ユースケース、ニーズ、または会社のポリシーに応じて、さまざまなレベルの機能、セキュリティ、およびプライバシーを提供します。

    TCPとは何ですか?それはどのように機能しますか?3ウェイハンドシェイクとは何ですか?

    TCP 3ウェイハンドシェイクまたはスリーウェイハンドシェイクは、サーバーとクライアント間の接続を確立するためにTCP / IPネットワークで使用されるプロセスです。

    3ウェイハンドシェイクは、主にTCPソケット接続を作成するために使用されます。次の場合に機能します。

    • クライアント・ノードは、IP ネットワークを介して、同じネットワークまたは外部ネットワーク上のサーバーに SYN データ・パケットを送信します。このパケットの目的は、サーバーが新しい接続のために開いているかどうかを尋ねたり推測したりすることです。
    • ターゲット サーバーには、新しい接続を受け入れて開始できるオープン ポートが必要です。サーバーは、クライアントノードからSYNパケットを受信すると、応答して確認応答(ACKパケットまたはSYN/ACKパケット)を返します。
    • クライアント・ノードは、サーバーから SYN/ACK を受信し、ACK パケットで応答します。
    往復遅延または往復時間とは何ですか?

    ウィキペディアから:「信号が送信されるのにかかる時間と、その信号の確認応答にかかる時間」

    ボーナスの質問:LANのRTTとは何ですか?

    SSLハンドシェイクはどのように機能しますか?
    SSL ハンドシェイクは、クライアントとサーバー間の安全な接続を確立するプロセスです。
    1. クライアントは、クライアントのバージョンの SSL/TLS プロトコル、クライアントでサポートされている暗号化アルゴリズムの一覧、およびランダムな値を含むクライアント Hello メッセージをサーバーに送信します。
    2. サーバーは、サーバーの SSL/TLS プロトコルのバージョン、ランダムな値、およびセッション ID を含むサーバー Hello メッセージで応答します。
    3. サーバーは、サーバーの証明書を含む証明書メッセージを送信します。
    4. サーバーは、サーバーがサーバー Hello フェーズのメッセージの送信を完了したことを示すサーバー Hello 完了メッセージを送信します。
    5. クライアントは、クライアントの公開キーを含むクライアント キー交換メッセージを送信します。
    6. クライアントは [暗号仕様の変更] メッセージを送信し、新しい暗号仕様で暗号化されたメッセージを送信しようとしていることをサーバーに通知します。
    7. クライアントは、サーバーの公開キーで暗号化されたプリマスターシークレットを含む暗号化されたハンドシェイクメッセージを送信します。
    8. サーバーは、新しい暗号仕様で暗号化されたメッセージを送信しようとしていることをクライアントに通知します。
    9. サーバーは、クライアントの公開キーで暗号化されたプリマスターシークレットを含む暗号化ハンドシェイクメッセージを送信します。
    10. これで、クライアントとサーバーはアプリケーションデータを交換できます。
    TCPとUDPの違いは何ですか?

    TCPは、パッケージの順序を保証するためにクライアントとサーバー間の接続を確立しますが、UDPはクライアントとサーバー間の接続を確立せず、パッケージの順序を処理しません。これにより、UDPはTCPよりも軽量になり、ストリーミングなどのサービスの完璧な候補になります。

    Penguintutor.com 良い説明を提供します。

    どの TCP/IP プロトコルに精通していますか。
    「デフォルトゲートウェイ」について説明する

    デフォルト ゲートウェイは、ネットワーク コンピュータが別のネットワークまたはインターネット内のコンピュータに情報を送信するために使用するアクセス ポイントまたは IP ルーターとして機能します。

    ARPとは何ですか?それはどのように機能しますか?

    ARP は アドレス解決プロトコル を表します。ローカルネットワーク上のIPアドレス、たとえば192.168.1.1にpingを実行しようとすると、システムはIPアドレス192.168.1.1をMACアドレスに変換する必要があります。これには、ARPを使用してアドレスを解決することが含まれます。

    システムは、どの IP アドレスがどの MAC アドレスに関連付けられているかに関する情報を格納する ARP ルックアップ テーブルを保持します。IP アドレスにパケットを送信しようとすると、システムは最初にこのテーブルを参照して、MAC アドレスを既に認識しているかどうかを確認します。キャッシュされた値がある場合、ARP は使用されません。

    TTLとは何ですか?それは何を防ぐのに役立ちますか?
    DHCP とは何ですか?それはどのように機能しますか?

    動的ホスト構成プロトコルの略で、IPアドレス、サブネットマスク、およびゲートウェイをホストに割り当てます。仕組みは次のとおりです。

    • ホストはネットワークに入ると、DHCPサーバを検索するメッセージをブロードキャストします(DHCPディスカバー)
    • オファーメッセージは、リース時間、サブネットマスク、IPアドレスなどを含むパケットとしてDHCPサーバーによって送り返されます(DHCPオファー)
    • 受け入れられたオファーに応じて、クライアントはすべてのDHCPサーバーに通知して応答ブロードキャストを送り返します(DHCP要求)
    • サーバーが受信確認 (DHCP ACK) を送信する

    もっと読む

    同じネットワーク内に 2 つの DHCP サーバーを使用できますか。それはどのように機能しますか?
    SSLトンネリングとは何ですか?それはどのように機能しますか?
    ソケットとは何ですか?システム内のソケットのリストはどこで見ることができますか?
    IPv6とは何ですか?IPv4がある場合、なぜそれを使用することを検討する必要があるのですか?
    VLANとは何ですか?
    MTU とは何ですか?

    MTU は 最大伝送単位 を表します。これは、1 つのトランザクションで送信できる最大の PDU (プロトコル データ ユニット) のサイズです。

    MTU よりも大きいパケットを送信するとどうなりますか。

    IPv4プロトコルを使用すると、ルータはPDUをフラグメント化し、フラグメント化されたすべてのPDUをトランザクションを介して送信できます。

    IPv6プロトコルでは、ユーザーのコンピューターにエラーを発行します。

    本当か偽か?.Pingは信頼できる接続を気にしないため、UDPを使用しています
    SDNとは何ですか?
    ICMPとは何ですか?それは何のために使われますか?
    NAT とは何ですか?それはどのように機能しますか?

    NAT は ネットワーク アドレス変換 を表します。これは、情報を転送する前に、複数のローカルプライベートアドレスをパブリックアドレスにマップする方法です。複数のデバイスで単一のIPアドレスを使用する組織では、ほとんどのホームルーターと同様にNATを使用します。 たとえば、コンピュータのプライベートIPは192.168.1.100である可能性がありますが、ルーターはトラフィックをパブリックIP(例:1.1.1.1)にマッピングします。インターネット上のどのデバイスでも、プライベートIP(1.1.1.1)ではなくパブリックIP(192.168.1.100)からのトラフィックが表示されます。

    ネットワークパフォーマンスに影響を与える要因
    次の各プロトコルで使用されるポート番号はどれですか?:
    • ティッカー
    • ティッカー
    • ティッカー
    • ティッカー
    • ティッカー
    • ティッカー
    • ティッカー

    • SSH - 22
    • SMTP - 25
    • HTTP - 80
    • DNS - 53
    • HTTPS - 443
    • FTP - 21
    • SFTP - 22
    ネットワークパフォーマンスに影響を与える要因
    アピパとは何ですか?

    APIPA は、デバイスが割り当てられるアドレスのセットです。 メインのDHCPサーバーに到達できない場合

    APIPA はどの IP 範囲を使用しますか?

    APIPA は IP 範囲 169.254.0.1 から 169.254.255.254 を使用します。

    コントロール プレーンとデータ プレーン

    「コントロールプレーン」とはどういう意味ですか?

    コントロール プレーンは、パケットを別の場所にルーティングおよび転送する方法を決定するネットワークの一部です。

    「データプレーン」とはどういう意味ですか?

    データプレーンは、実際にデータ/パケットを転送するネットワークの一部です。

    「管理プレーン」とはどういう意味ですか?

    監視および管理機能を指します。

    ルーティングテーブルの作成はどのプレーン(データ、コントロールなど)に属していますか?

    コントロール プレーン。

    スパニングツリープロトコル(STP)の説明
    リンクアグリゲーションとは何ですか?なぜそれが使われるのですか?
    非対称ルーティングとは何ですか?どのように対処しますか?
    どのようなオーバーレイ(トンネル)プロトコルに精通していますか?
    GREとは何ですか?それはどのように機能しますか?
    VXLAN とは何ですか?それはどのように機能しますか?
    SNATとは何ですか?
    OSPF について説明する
    レイテンシーとは何ですか?

    レイテンシーは、情報がソースから宛先に到達するのにかかる時間です。

    帯域幅とは何ですか?

    帯域幅は、通信チャネルが特定の期間に処理できるデータの量を測定するための通信チャネルの容量です。帯域幅が増えると、トラフィック処理が増え、データ転送が増えることを意味します。

    スループットとは

    スループットとは、任意の伝送チャネルを介して一定期間に転送されたデータの実際の量の測定値を指します。

    検索クエリを実行する場合、待機時間とスループットのどちらがより重要ですか?そして、グローバルインフラストラクチャの管理をどのように保証するのですか?

    潜在。待機時間を長くするには、検索クエリを最も近いデータセンターに転送する必要があります。

    ビデオをアップロードするとき、レイテンシーとスループットのどちらがより重要ですか?そして、それを保証する方法は?

    スループット。スループットを良好にするには、アップロードストリームを使用率の低いリンクにルーティングする必要があります。

    要求を転送するときに他にどのような考慮事項 (待機時間とスループットを除く) がありますか?
    • キャッシュを最新の状態に保つ (つまり、要求が最も近いデータセンターに転送されない可能性がある)
    Explain Spine & Leaf
    ネットワーク輻輳とは何ですか?何が原因ですか?
    UDPパケット形式について教えてください。TCPパケット形式はどうですか?どう違うの?
    指数バックオフアルゴリズムとは何ですか?どこで使われていますか?
    ハミングコードを使用して、次のデータワード100111010001101のコードワードは何でしょうか?

    00110011110100011101

    アプリケーション層で見つかったプロトコルの例を挙げてください
    • ハイパーテキスト転送プロトコル (HTTP) - インターネット上の Web ページに使用されます。
    • 簡易メール転送プロトコル (SMTP) - 電子メール送信
    • 通信ネットワーク - (TELNET) - クライアントが Telnet サーバーにアクセスできるようにする端末エミュレーション
    • ファイル転送プロトコル (FTP) - 任意の 2 台のマシン間でのファイル転送を容易にします。
    • ドメイン ネーム システム (DNS) - ドメイン名の変換
    • 動的ホスト構成プロトコル (DHCP) - IP アドレス、サブネット マスク、およびゲートウェイをホストに割り当てます。
    • 簡易ネットワーク管理プロトコル(SNMP) - ネットワーク上のデバイスのデータを収集します
    ネットワーク層で見つかったプロトコルの例を挙げてください
    • インターネットプロトコル(IP) - あるマシンから別のマシンへのパケットのルーティングを支援します
    • インターネット制御メッセージプロトコル(ICMP) - エラーメッセージやデバッグ情報など、何が起こっているのかを知らせます
    HSTSとは何ですか?
    HTTPストリクトトランスポートセキュリティは、ユーザーエージェントとWebブラウザに、最初に送信され、ブラウザに返される応答ヘッダーを介して接続を処理する方法を通知するWebサーバーディレクティブです。これにより、HTTPS 暗号化経由で接続が強制され、HTTP 経由でそのドメイン内のリソースを読み込むスクリプトの呼び出しは無視されます。

    続きを読む [ここ](https://www.globalsign.com/en/blog/what-is-hsts-and-how-do-i-use-it#:~:text=HTTP%20Strict%20Transport%20Security%20(HSTS,and%20back%20to%20the%20browser.)

    ネットワーク - その他

    インターネットとは何ですか?ワールドワイドウェブと同じですか?

    インターネットとは、世界中に膨大な量のデータを転送するネットワークのネットワークを指します。
    ワールドワイドウェブは、インターネット上の何百万ものサーバー上で実行されているアプリケーションであり、Webブラウザとして知られているものを介してアクセスされます

    ISPとは何ですか?

    ISP(インターネットサービスプロバイダー)は、地元のインターネット会社のプロバイダーです。

    オペレーティング システム

    オペレーティングシステム演習

    名前 話題 目的と指示 解決 コメント
    フォーク 101 フォーク リンク リンク
    フォーク 102 フォーク リンク リンク

    オペレーティングシステム - 自己評価

    オペレーティングシステムとは何ですか?

    「オペレーティングシステム:3つの簡単な部分」という本から:

    「プログラムの実行を容易にする責任があります(同時に多くのプログラムを実行することさえ可能にします)、プログラムがメモリを共有できるようにし、プログラムがデバイスと対話できるようにする、およびその他の楽しいもの」。

    オペレーティング システム - プロセス

    プロセスとは何か説明できますか?

    プロセスは実行中のプログラムです。プログラムは1つ以上の命令であり、プログラム(またはプロセス)はオペレーティングシステムによって実行されます。

    オペレーティング システムのプロセス用の API を設計する必要がある場合、この API はどのようになりますか?

    以下をサポートします。

    • 作成 - 新しいプロセスの作成を許可する
    • 削除 - プロセスの削除/破棄を許可します
    • 状態 - プロセスの状態、実行中、停止中、待機中などを確認できます。
    • 停止 - 実行中のプロセスの停止を許可します
    プロセスはどのように作成されますか?
    • OSはプログラムのコードと追加の関連データを読み取っています
    • プログラムのコードは、メモリ、より具体的にはプロセスのアドレス空間にロードされます。
    • メモリはプログラムのスタック(別名ランタイムスタック)に割り当てられます。スタックは、argv、argc、main()へのパラメータなどのデータを使用してOSによって初期化されます。
    • メモリは、データ構造のリンクリストやハッシュテーブルなどの動的に割り当てられたデータに必要なプログラムのヒープに割り当てられます
    • 各プロセスに3つのファイル記述子(入力、出力、エラー)があるUnix / Linuxベースのシステムのように、I / O初期化タスクが実行されます。
    • OSはmain()からプログラムを実行しています
    本当か偽か?メモリへのプログラムのロードは熱心に(一度に)行われます

    偽。過去には真実でしたが、今日のオペレーティングシステムは遅延読み込みを実行するため、プロセスの実行に必要な関連部分のみが最初に読み込まれます。

    プロセスのさまざまな状態は何ですか?
    • 実行中 - 命令を実行しています
    • 準備完了 - 実行する準備ができていますが、さまざまな理由で保留になっています
    • ブロック済み - 一部の操作が完了するのを待機しています。たとえば、I/O ディスク要求
    プロセスがブロックされる理由にはどのようなものがありますか?
    • I/O操作(ディスクからの読み取りなど)
    • ネットワークからのパケットの待機
    プロセス間通信 (IPC) とは何ですか?
    「タイムシェアリング」とは何ですか?

    1つの物理CPUを搭載したシステムを使用している場合でも、複数のユーザーがそのシステムで作業してプログラムを実行できるようにすることが可能です。これは、システムに複数のCPUがあるように見える方法でコンピューティングリソースが共有されるタイムシェアリングで可能ですが、実際には、マルチプログラミングとマルチタスクを適用することによって共有される1つのCPUにすぎません。

    「スペースシェアリング」とは?

    タイムシェアリングとは正反対です。タイムシェアリングでは、リソースはあるエンティティによってしばらく使用され、その後同じリソースを別のリソースで使用できますが、スペース共有では、スペースは複数のエンティティによって共有されますが、それらの間で転送されることはありません。
    これは、このエンティティがそれを取り除くことを決定するまで、1 つのエンティティによって使用されます。ストレージを例にとってみましょう。ストレージでは、ファイルを削除するまでファイルはあなたのものです。

    どのコンポーネントが特定の時点で実行されるプロセスを決定しますか?

    CPU スケジューラ

    オペレーティングシステム - メモリ

    「仮想メモリ」とは何ですか、そしてそれはどのような目的を果たしますか?

    仮想メモリは、コンピュータの RAM とハード ディスク上の一時領域を結合します。RAMが少なくなると、仮想メモリはRAMからページングファイルと呼ばれるスペースにデータを移動するのに役立ちます。データをページングファイルに移動すると、RAMが解放され、コンピューターが作業を完了できるようになります。一般に、コンピューターに搭載されているRAMが多いほど、プログラムの実行速度は速くなります。https://www.minitool.com/lib/virtual-memory.html

    デマンドページングとは何ですか?
    コピーオンライトとは何ですか?
    コピーオンライト(COW)は、情報の不要なコピーを減らすことを目的としたリソース管理の概念です。これは、たとえばPOSIXフォークシステムコール内に実装される概念であり、呼び出し元プロセスの重複プロセスを作成します。

    アイデア:

    1. リソースが 2 つ以上のエンティティ間で共有されている場合 (たとえば、2 つのプロセス間の共有メモリ セグメント)、すべてのエンティティに対してリソースをコピーする必要はなく、すべてのエンティティに共有リソースに対する READ 操作アクセス許可があります。(共有セグメントは読み取り専用としてマークされます) (すべてのエンティティが、その値を読み取るために逆参照できる共有リソースの場所へのポインタを持っていると考えてください)
    2. あるエンティティが共有リソースに対して WRITE 操作を実行すると、リソースを共有する他のすべてのエンティティに対してもリソースが永続的に変更されるため、問題が発生します。 (スタック上のいくつかの変数を変更するプロセス、またはヒープ上のデータを動的に割り当てるプロセスを考えてみてください、共有リソースへのこれらの変更は他のすべてのプロセスにも適用されますが、これは明らかに望ましくない動作です)
    3. 共有リソースに対して WRITE 操作が実行されようとしている場合にのみ、このリソースが最初に COPY され、次に変更が適用されます。
    カーネルとは何ですか、そしてそれは何をしますか?

    カーネルはオペレーティングシステムの一部であり、次のようなタスクを担当します。

    • メモリの割り当て
    • プロセスのスケジュール
    • CPUを制御する
    本当か偽か?カーネル内のコードの一部はメモリの保護された領域にロードされるため、アプリケーションはそれらを上書きできません

    POSIXとは何ですか?
    セマフォとは何か、オペレーティングシステムにおけるセマフォの役割を説明する
    キャッシュとは何ですか?バッファとは何ですか?

    バッファ:一時的な目的でデータを保持するために使用されるRAM内の予約された場所 キャッシュ:キャッシュは通常、プロセスがディスクを読み書きするときに使用され、さまざまなプログラムで使用される同様のデータに簡単にアクセスできるようにすることで、プロセスを高速化します。

    仮想化

    仮想化とは何ですか?

    仮想化では、ソフトウェアを使用してコンピューター ハードウェア上に抽象化レイヤーを作成し、1 台のコンピューターのハードウェア要素 (プロセッサ、メモリ、ストレージなど) を複数の仮想コンピューター (一般に仮想マシン (VM) と呼びます) に分割できるようにします。

    ハイパーバイザーとは何ですか?

    Red Hat:「ハイパーバイザーは、仮想マシン(VM)を作成して実行するソフトウェアです。ハイパーバイザー (仮想マシン モニター (VMM) と呼ばれることもあります) は、ハイパーバイザーのオペレーティング システムとリソースをバーチャル マシンから分離し、それらの VM の作成と管理を可能にします。

    もっと読む

    ハイパーバイザーにはどのような種類がありますか?

    ホスト型ハイパーバイザーとベアメタルハイパーバイザー。

    ホスト型ハイパーバイザーに対するベアメタルハイパーバイザーの利点と欠点は何ですか?

    独自のドライバーを持ち、ハードウェアコンポーネントに直接アクセスできるため、ベアメタルハイパーバイザーは、安定性とスケーラビリティとともにパフォーマンスが向上することがよくあります。

    一方、(任意の)ドライバーの読み込みに関してはおそらくいくつかの制限があるため、ホストされたハイパーバイザーは通常、ハードウェアの互換性が向上するというメリットがあります。

    仮想化にはどのような種類がありますか?

    オペレーティング システムの仮想化 ネットワーク機能の仮想化 デスクトップ仮想化

    コンテナ化は仮想化の一種ですか?

    はい、これはオペレーティングシステムレベルの仮想化であり、カーネルが共有され、複数の分離されたユーザースペースインスタンスを使用できます。

    仮想マシンの導入により、業界とアプリケーションの展開方法はどのように変化しましたか?

    仮想マシンの導入により、企業は複数のビジネスアプリケーションを同じハードウェアに展開しながら、各アプリケーションを安全な方法で互いに分離し、それぞれが独自の個別のオペレーティングシステムで実行されるようになりました。

    仮想マシン

    コンテナの時代に仮想マシンは必要ですか?それらはまだ関連していますか?

    モニタリング

    監視について説明する。それはなんですか。その目標は何ですか?

    Google:「監視は、サービス所有者がシステムの正常性と可用性を追跡するための主要な手段の1つです」。

    特定の値を監視し、値を超えたときに電子メール/電話アラートをトリガーするという古いアプローチの何が問題になっていますか?

    このアプローチでは、人間が値を超えた理由とその処理方法を常に確認する必要がありますが、今日では、実際のアクションを実行する必要がある場合にのみ通知する方が効果的です。 問題が人間の介入を必要としない場合、問題は関連する環境で実行されているいくつかのプロセスによって修正できます。

    どのような種類の監視出力に精通しているか、過去に使用しましたか?

    アラート
    チケットの
    ロギング

    インフラストラクチャ監視とアプリケーション監視の違いは何ですか?(メソッド、ツールなど)

    アプリケーションパフォーマンス管理

    アプリケーションパフォーマンス管理とは何ですか?
    • IT指標をビジネスインサイトに変換
    • アプリケーションの洞察を監視して、パフォーマンスを向上させ、問題を減らし、全体的なユーザーエクスペリエンスを向上させるためのプラクティス
    APMで監視できるプロジェクトの3つの側面(バックエンドなど)を挙げる
    • フロントエンド
    • バックエンド
    • 赤外線
    • ...
    APM監視を実行するために何を収集/監視できますか?
    • メトリック
    • ログ
    • イベント トレース

    プロメテウス

    プロメテウスとは何ですか?プロメテウスの主な機能は何ですか?
    どのようなシナリオでプロメテウスを使用しない方が良いかもしれませんか?

    Prometheusのドキュメントから:「リクエストごとの請求など、100%の精度が必要な場合」。

    プロメテウスのアーキテクチャとコンポーネントについて説明する
    プロメテウスをたとえばInfluxDBなどの他のソリューションと比較できますか?
    アラートとは何ですか?
    次のプロメテウスコンポーネントについて説明してください。
    • プロメテウスサーバー
    • プッシュゲートウェイ
    • アラートマネージャー

    Prometheusサーバーは、データの
    スクレイピングと保存を担当します プッシュゲートウェイは存続期間の短いジョブ
    に使用されます アラートマネージャーはアラートを担当します ;)

    インスタンスとは何ですか?ジョブとは何ですか?
    プロメテウスがサポートするコアメトリクスの種類は何ですか?
    輸出業者とは何ですか?それは何のために使われますか?
    どのプロメテウスのベストプラクティスに精通していますか?少なくとも3つ名前を付ける
    特定の期間に合計リクエストを取得するにはどうすればよいですか?
    プロメテウスのHAはどういう意味ですか?
    2つのメトリックをどのように結合しますか?
    ラベルの値を返すクエリを書く方法は?
    cpu_user_secondsをCPU使用率にパーセンテージで変換するにはどうすればよいですか?

    行く

    Goプログラミング言語の特徴は何ですか?
    • 強力で静的な型指定 - 変数の型は時間の経過とともに変更できず、コンパイル時に定義する必要があります
    • 簡略
    • コンパイル時間の短縮
    • 組み込みの同時実行
    • 収集されたガベージ
    • プラットフォームに依存しない
    • スタンドアロンバイナリにコンパイル - アプリを実行するために必要なものはすべて1つのバイナリにコンパイルされます。実行時のバージョン管理に非常に役立ちます。

    Goには良いコミュニティもあります。

    と はどう違いますか?
    var x int = 2
    x := 2

    結果は同じで、値が 2 の変数です。

    変数の型を整数に設定していますが、Goに型を自分で計算させています。

    var x int = 2
    x := 2

    本当か偽か?Goでは変数を再宣言することができ、一度宣言したらそれを使用する必要があります。

    偽。変数を再宣言することはできませんが、はい、宣言された変数を使用する必要があります。

    Goのどのライブラリを使用しましたか?

    これはあなたの使用法に基づいて答えられるべきですが、いくつかの例は次のとおりです。

    • fmt - フォーマット済み I/O
    次のコードブロックの問題は何ですか?それを修正するには?
    func main() {
        var x float32 = 13.5
        var y int
        y = x
    }
    

    次のコードブロックは、整数101を文字列に変換しようとしますが、代わりに「e」を取得します。それはどうしてですか。それを修正するには?
    package main
    
    import "fmt"
    
    func main() {
        var x int = 101
        var y string
        y = string(x)
        fmt.Println(y)
    }

    どのUnicode値が101に設定されているかを調べ、整数を文字列に変換するために使用します。 "101"を取得したい場合は、パッケージ "strconv"を使用して、

    y = string(x)
    y = strconv.Itoa(x)

    次のコードの何が問題になっていますか?
    package main
    
    func main() {
        var x = 2
        var y = 3
        const someConst = x + y
    }
    

    Go の定数は、定数式を使用してのみ宣言できます。 しかし、それらの合計は可変です。

    x
    y

    const initializer x + y is not a constant

    次のコードブロックの出力は何ですか?
    package main
    
    import "fmt"
    
    const (
    	x = iota
    	y = iota
    )
    const z = iota
    
    func main() {
    	fmt.Printf("%v\n", x)
    	fmt.Printf("%v\n", y)
    	fmt.Printf("%v\n", z)
    }

    Goのiota識別子は、インクリメントする数値の定義を簡素化するためにconst宣言で使用されます。式で使用できるため、単純な列挙を超える一般性を提供します。
    そして最初のイオタグループでは、2番目のグループで。
    Go Wikiのイオタページ

    x
    y
    z

    Goでは何に_が使われていますか?

    戻り値のすべての変数を宣言する必要がなくなります。 これは空白の識別子と呼ばれます。
    SOで答え

    次のコードブロックの出力は何ですか?
    package main
    
    import "fmt"
    
    const (
    	_ = iota + 3
    	x
    )
    
    func main() {
    	fmt.Printf("%v\n", x)
    }

    最初のイオタは値()で宣言されているため、次のイオタは値を持ちます

    3
     + 3
    4

    次のコードブロックの出力は何ですか?
    package main
    
    import (
    	"fmt"
    	"sync"
    	"time"
    )
    
    func main() {
    	var wg sync.WaitGroup
    
    	wg.Add(1)
    	go func() {
    		time.Sleep(time.Second * 2)
    		fmt.Println("1")
    		wg.Done()
    	}()
    
    	go func() {
    		fmt.Println("2")
    	}()
    
    	wg.Wait()
    	fmt.Println("3")
    }

    出力: 2 1 3

    同期/待機グループに関する記述

    Golangパッケージの同期

    次のコードブロックの出力は何ですか?
    package main
    
    import (
    	"fmt"
    )
    
    func mod1(a []int) {
    	for i := range a {
    		a[i] = 5
    	}
    
    	fmt.Println("1:", a)
    }
    
    func mod2(a []int) {
    	a = append(a, 125) // !
    
    	for i := range a {
    		a[i] = 5
    	}
    
    	fmt.Println("2:", a)
    }
    
    func main() {
    	s1 := []int{1, 2, 3, 4}
    	mod1(s1)
    	fmt.Println("1:", s1)
    
    	s2 := []int{1, 2, 3, 4}
    	mod2(s2)
    	fmt.Println("2:", s2)
    }

    アウトプット:


    1 [5 5 5 5]
    1 [5 5 5 5]
    2 [5 5 5 5 5]
    2 [1 2 3 4]

    リンクであり、使用している場合は、値をに変更します。 しかし、では、新しいスライスを作成し、値のみを変更し、 は変更しません。

    mod1
    a[i]
    s1
    mod2
    append
    a
    s2

    配列に関する記事追加に関するブログ投稿

    次のコードブロックの出力は何ですか?
    package main
    
    import (
    	"container/heap"
    	"fmt"
    )
    
    // An IntHeap is a min-heap of ints.
    type IntHeap []int
    
    func (h IntHeap) Len() int           { return len(h) }
    func (h IntHeap) Less(i, j int) bool { return h[i] < h[j] }
    func (h IntHeap) Swap(i, j int)      { h[i], h[j] = h[j], h[i] }
    
    func (h *IntHeap) Push(x interface{}) {
    	// Push and Pop use pointer receivers because they modify the slice's length,
    	// not just its contents.
    	*h = append(*h, x.(int))
    }
    
    func (h *IntHeap) Pop() interface{} {
    	old := *h
    	n := len(old)
    	x := old[n-1]
    	*h = old[0 : n-1]
    	return x
    }
    
    func main() {
    	h := &IntHeap{4, 8, 3, 6}
    	heap.Init(h)
    	heap.Push(h, 7)
    
      fmt.Println((*h)[0])
    }

    出力結果: 3

    Golangコンテナ/ヒープパッケージ

    モンゴ

    MongoDBの利点は何ですか?言い換えれば、なぜNoSQLの他の実装ではなくMongoDBを選択するのですか?

    MongoDBの利点は次のとおりです。

    • スキーマレス
    • スケールアウトが容易
    • 複雑な結合はありません
    • 単一のオブジェクトの構造が明確である

    SQLとNoSQLの違いは何ですか?

    主な違いは、SQLデータベースが構造化されていることです(データは次の形式で保存されます)。 行と列を持つテーブル-Excelスプレッドシートテーブルのように)NoSQLは 非構造化であり、データストレージはNoSQL DBの設定方法によって異なる場合があります。 キーと値のペア、ドキュメント指向などとして。

    どのようなシナリオで NoSQL/Mongo over SQL を使用しますか?
    • 頻繁に変更される異種データ
    • データの一貫性と整合性は最優先事項ではない
    • データベースを迅速に拡張する必要がある場合に最適
    ドキュメントとはコレクションとは
    • ドキュメントはMongoDBのレコードであり、BSON(バイナリJSON)形式で保存され、MongoDBのデータの基本単位です。
    • コレクションは、MongoDB の 1 つのデータベースに格納されている関連ドキュメントのグループです。
    アグリゲーターとは
    • アグリゲーターは MongoDB のフレームワークであり、一連のデータに対して操作を実行して 1 つの計算結果を返します。
    何が良いですか?埋め込まれたドキュメントまたは参照されていますか?
    • どちらが優れているかについての明確な答えはなく、特定のユースケースと要件によって異なります。いくつかの説明:埋め込みドキュメントはアトミック更新を提供しますが、参照ドキュメントはより良い正規化を可能にします。
    Mongoでデータ取得の最適化を実行しましたか?そうでない場合は、遅いデータ取得を最適化する方法を考えることができますか?
    • MongoDBでデータ取得を最適化するには、インデックス作成、適切なスキーマ設計、クエリの最適化、データベースの負荷分散などがあります。
    クエリ
    このクエリを説明してください:
    db.books.find({"name": /abc/})

    このクエリを説明してください:
    db.books.find().sort({x:1})

    find() と find_one() の違いは何ですか?
    • find()
      クエリ条件に一致するすべてのドキュメントを返します。
    • find_one() は、クエリ条件に一致するドキュメントを 1 つだけ返します (一致が見つからない場合は null)。
    Mongo DBからデータをエクスポートするにはどうすればよいですか?
    • モンゴエクスポート
    • プログラミング言語

    .SQL

    SQL 演習

    名前 話題 目的と指示 解決 コメント
    関数と比較 クエリの改善 運動 解決

    SQL 自己評価

    SQLとは何ですか?

    SQL(構造化照会言語)は、リレーショナルデータベース(MySQL、MariaDBなど)の標準言語です。
    リレーショナルデータベース内のデータの読み取り、更新、削除、および作成に使用されます。

    SQLはNoSQLとどう違うのですか

    主な違いは、SQLデータベースが構造化されていることです(データは次の形式で保存されます)。 行と列を持つテーブル-Excelスプレッドシートテーブルのように)NoSQLは 非構造化であり、データストレージはNoSQL DBの設定方法によって異なる場合があります。 キーと値のペア、ドキュメント指向などとして。

    SQLを使用するのに最適なのはいつですか?いいえSQL?

    SQL - データの整合性が重要な場合に最適です。SQLは通常、多くの ACIDコンプライアンスによる金融分野の企業および分野。

    NoSQL - すばやくスケーリングする必要がある場合に最適です。NoSQLはWebアプリケーションで設計されました 念頭に置いて、同じ情報をすばやく広める必要がある場合に最適です。 複数のサーバー

    さらに、NoSQLは列と行の構造を持つ厳密なテーブルに準拠していないため、 リレーショナルデータベースに必要な場合は、異なるデータ型を一緒に保存できます。

    実用的な SQL - 基礎

    これらの質問には、以下に示す顧客テーブルと注文テーブルを使用します。

    顧客

    Customer_ID Customer_Name Items_in_cart Cash_spent_to_Date
    100204 ジョン・スミス 0 20.00
    100205 ジェーン・スミス 3 40.00
    100206 ボビー・フランク 1 100.20

    Customer_ID Order_ID アイテム 価格 Date_sold
    100206 A123 ラバーダッキー 2.20 2019-09-18
    100206 A123 バブルバス 8.00 2019-09-18
    100206 Q987 80パックTP 90.00 2019-09-20
    100205 Z001 キャットフード - マグロの魚 10.00 2019-08-05
    100205 Z001 キャットフード - チキン 10.00 2019-08-05
    100205 Z001 キャットフード - 牛肉 10.00 2019-08-05
    100205 Z001 キャットフード-キティケサディーヤ 10.00 2019-08-05
    100204 X202 コーヒー 20.00 2019-04-29
    このテーブルからすべてのフィールドを選択するにはどうすればよいですか?

    [顧客から *
    ] を選択します。

    ジョンのカートにはいくつのアイテムがありますか?

    顧客

    からItems_in_cartを選択します ここで、Customer_Name = "John Smith";

    すべての顧客で費やされたすべての現金の合計はいくらですか?

    顧客
    からのSUM_CASHとして SUM(Cash_spent_to_Date) を選択します。

    カートに商品を持っている人は何人ですか?

    count(1) を Number_of_People_w_items
    として選択します 顧客から
    ここで Items_in_cart > 0;

    顧客テーブルを注文テーブルにどのように結合しますか?

    あなたはそれらをユニークなキーで結合するでしょう。この場合、一意のキー Customer_IDは [顧客] テーブルと [受注] テーブルの両方

    どの顧客がどのアイテムを注文したかをどのように表示しますか?

    c.Customer_Nameを選択, o.顧客からのアイテム
    c
    左結合注文 o
    c.Customer_ID = o.Customer_ID;

    withステートメントを使用して、誰がキャットフードを注文したか、および費やした合計金額をどのように示しますか?

    cat_foodを(
    Customer_IDを選択し、SUM(価格) を注文からTOTAL_PRICE "%キャットフード%"
    のようなアイテムがCustomer_IDでグループ化)
    Customer_nameを選択し、顧客からTOTAL_PRICE c
    内部 cat_food f ON c.Customer_ID = f.Customer_ID
    ここでc.Customer_ID (cat_food


    から
    Customer_ID
    を選択);

    これは単純なステートメントでしたが、「with」句は、次の場合に本当に輝きます。 複雑なクエリは、別のクエリに結合する前にテーブルで実行する必要があります。ステートメントはいいです、 クエリの実行時に、まったく新しいテーブルを作成するのではなく、擬似 temp を作成するためです。

    キャットフードのすべての購入の合計はすぐには入手できなかったため、withステートメントを使用して作成しました 各顧客が費やした価格の合計を取得する擬似テーブルは、通常どおりテーブルに参加します。

    次のクエリのどれを使用しますか?
    SELECT count(*)                             SELECT count(*)
    FROM shawarma_purchases                     FROM shawarma_purchases
    WHERE                               vs.     WHERE
      YEAR(purchased_at) == '2017'              purchased_at >= '2017-01-01' AND
                                                purchased_at <= '2017-31-12'
    

    SELECT count(*)
    FROM shawarma_purchases
    WHERE
      purchased_at >= '2017-01-01' AND
      purchased_at <= '2017-31-12'
    

    関数()を使用する場合、インデックスを使用するのではなく、データベース全体をスキャンする必要があり、基本的には自然な状態で列をそのまま使用します。

    YEAR(purchased_at)

    オープンスタック

    OpenStack のどのコンポーネント/プロジェクトに精通していますか?
    次の各サービス/プロジェクトが担当していることを教えてください。
    • 新星
    • 中性子
    • 燃え殻
    • 一目
    • キーストーン

    • Nova - 仮想インスタンスの管理
    • Neutron - サービスとしてのネットワーク (NaaS) の提供によるネットワークの管理
    • 燃えがら - ブロックストレージ
    • Glance - 仮想マシンとコンテナーのイメージの管理 (検索、取得、登録)
    • キーストーン - クラウド全体の認証サービス
    次のそれぞれに使用されるサービス/プロジェクトを特定します。
    • インスタンスのコピーまたはスナップショット
    • リソースを表示および変更するための GUI
    • ブロックストレージ
    • 仮想インスタンスの管理

    • 一瞥 - 画像サービス。コピーまたはスナップショットインスタンスにも使用されます
    • ホライゾン - リソースを表示および変更するためのGUI
    • 燃えがら - ブロックストレージ
    • Nova - 仮想インスタンスの管理
    テナント/プロジェクトとは
    真または偽を判断する:
    • OpenStack は無料で使用できます
    • ネットワークを担当するサービスはGlanceです
    • テナント/プロジェクトの目的は、異なるプロジェクトとOpenStackのユーザー間でリソースを共有することです。

    フローティングIPを持つインスタンスを起動する方法を詳しく説明してください
    顧客から「インスタンスにpingを実行することはできますが、接続(ssh)できません」という電話がかかってきます。何が問題なのでしょうか?
    OpenStack はどのような種類のネットワークをサポートしていますか?
    OpenStack ストレージの問題をどのようにデバッグしますか?(ツール、ログなど)
    OpenStack のコンピューティングの問題をどのようにデバッグしますか?(ツール、ログなど)

    OpenStack Deployment & TripleO

    過去に OpenStack をデプロイしたことはありますか?はいの場合、どのように行ったか説明できますか?
    トリプルOをご存知ですか?DevstackやPackstackとどう違うのですか?

    あなたはここでTripleOについて読むことができます

    OpenStack Compute

    Novaについて詳しく説明していただけますか?
    • 仮想インスタンスのプロビジョニングと管理に使用
    • ロギング、エンドユーザー制御、監査など、さまざまなレベルでマルチテナントをサポートします。
    • 高い拡張性
    • 認証は内部システムまたはLDAPを使用して行うことができます
    • 複数のタイプのブロックストレージをサポート
    • ハードウェアとハイパーバイザーにとらわれないようにします
    Novaのアーキテクチャとコンポーネントについて何を知っていますか?
    • nova-api - メタデータとコンピューティングAPIを提供するサーバー
    • 異なるNovaコンポーネントは、キュー(通常はRabbitmq)とデータベースを使用して通信します
    • インスタンスの作成要求は、インスタンスを作成して実行する場所を決定する nova-scheduler によって検査されます
    • nova-compute は、インスタンスを作成し、そのライフサイクルを管理するためにハイパーバイザーと通信するコンポーネントです。

    OpenStack Networking (Neutron)

    中性子について詳しく説明する
    • OpenStack のコアコンポーネントの 1 つであり、スタンドアロンプロジェクト
    • Neutronは、サービスとしてのネットワーキングの提供に重点を置いています
    • Neutronを使用すると、ユーザーはクラウドでネットワークをセットアップし、さまざまなネットワークサービスを構成および管理できます
    • 中性子は以下と相互作用します:
      • キーストーン - API 呼び出しを承認する
      • Nova - nova は中性子と通信して NIC をネットワークに接続します。
      • Horizon - ダッシュボードでネットワーク エンティティをサポートし、ネットワークの詳細を含むトポロジ ビューも提供します。
    次の各コンポーネントについて説明します。
    • 中性子DHCPエージェント
    • 中性子-L3-エージェント
    • 中性子計量剤
    • 中性子*-アジェント
    • 中性子サーバー

    • neutron-l3-agent - L3/NAT 転送 (たとえば、VM に外部ネットワーク アクセスを提供)
    • neutron-dhcp-agent - DHCP サービス
    • 中性子計量剤 - L3トラフィックメータリング
    • neutron-*-agtent - 各コンピューティングのローカルvSwitch構成を管理します(選択したプラグインに基づく)
    • neutron-server - ネットワーキングAPIを公開し、必要に応じて他のプラグインにリクエストを渡します
    これらのネットワークタイプについて説明します。
    • 管理ネットワーク
    • ゲストネットワーク
    • API ネットワーク
    • 外部ネットワーク

    • 管理ネットワーク - OpenStack コンポーネント間の内部通信に使用されます。このネットワーク内のすべてのIPアドレスは、データセトナー内でのみアクセスできます。
    • ゲストネットワーク - インスタンス/VM 間の通信に使用
    • API ネットワーク - サービス API 通信に使用されます。このネットワーク内のすべての IP アドレスはパブリックにアクセス可能です
    • 外部ネットワーク - パブリック通信に使用されます。このネットワーク内の任意のIPアドレスは、インターネット上の誰でもアクセスできます
    次のエンティティを削除する順序は次のとおりです。
    • ネットワーク
    • ルーター
    • サブネット

    • サブネット
    • ルーター
    • ネットワーク

    それには多くの理由があります。たとえば、アクティブなポートが割り当てられている場合、ルーターを削除することはできません。

    プロバイダーネットワークとは何ですか?
    L2 と L3 にはどのようなコンポーネントとサービスがありますか。
    ML2プラグインとは何ですか?そのアーキテクチャを説明する
    L2エージェントとは何ですか?それはどのように機能し、何に責任がありますか?
    L3エージェントとは何ですか?それはどのように機能し、何に責任がありますか?
    メタデータエージェントが担当する内容を説明する
    Neutron はどのようなネットワークエンティティをサポートしていますか?
    OpenStack のネットワークの問題をどのようにデバッグしますか?(ツール、ログなど)

    OpenStack - Glance

    一瞥を詳しく説明する
    • Glance は OpenStack イメージサービスです。
    • インスタンスディスクとイメージに関連するリクエストを処理します
    • Glanceは、迅速なインスタンスバックアップ用のスナップショットの作成にも使用されます
    • ユーザーはGlanceを使用して新しい画像を作成したり、既存の画像をアップロードしたりできます
    Glance アーキテクチャの説明
    • glance-api - 取得や保存などの画像 API 呼び出しの処理を担当します。これは1つのAPIで構成されています:2.レジストリ-API - 内部要求を担当します<>。ユーザー API - パブリックにアクセスできます
    • glance-registry - 画像メタデータリクエスト(サイズ、タイプなど)の処理を担当します。このコンポーネントはプライベートであり、パブリックに利用できないことを意味します
    • メタデータ定義サービス - カスタム メタデータ用の API
    • データベース - 画像のメタデータを保存するため
    • イメージリポジトリ - イメージを保存します。これは、ファイルシステム、迅速なオブジェクトストレージ、HTTPなどです。

    OpenStack - Swift

    スウィフトについて詳しく説明する
    • Swiftはオブジェクトストアサービスであり、大量のデータを格納するために設計された、可用性が高く、分散された一貫性のあるストアです。
    • Swiftは、データを複数のディスクに書き込みながら、複数のサーバーにデータを分散しています
    • クラスターを拡張するためにサーバーを追加することを選択できます。同時に、情報とデータのレプリケーションの整合性を迅速に維持します。
    ユーザーはデフォルトで100GBのサイズのオブジェクトを保存できますか?

    デフォルトではありません。オブジェクト・ストレージAPIでは、オブジェクトあたりの最大GBが5GBに制限されていますが、調整可能です。

    スウィフトに関して次のことを説明してください。
    • コンテナ
    • アカウント
    • オブジェクト

    • コンテナー - オブジェクトの名前空間を定義します。
    • アカウント - コンテナーの名前空間を定義します。
    • オブジェクト - データコンテンツ(画像、ドキュメントなど)
    本当か偽か?同じコンテナ内に同じ名前のオブジェクトが 2 つ存在できますが、2 つの異なるコンテナには存在できません

    偽。2 つのオブジェクトは、異なるコンテナー内にある場合、同じ名前を持つことができます。

    OpenStack - Cinder

    シンダーについて詳しく説明する
    • Cinder は OpenStack Block Storage サービスです。
    • 基本的に、Novaなどの他のサービスで消費できるストレージリソースの使用を提供します
    • Cinderでサポートされているストレージの最も使用されている実装の1つはLVMです
    • ユーザーの観点からは、これは透過的であるため、ユーザーはストレージがバックグラウンドでどこにあるか、どのタイプのストレージが使用されているかを知りません。
    Cinderのコンポーネントを説明する
    • シンダーAPI - APIリクエストを受信します
    • シンダーボリューム - 接続されたブロックデバイスを管理
    • シンダースケジューラ - ボリュームの保存を担当

    OpenStack - Keystone

    キーストーンに関して、以下の概念について説明していただけますか?
    • 役割
    • テナント/プロジェクト
    • サービス
    • エンドポイント
    • トークン

    • ロール - ユーザーまたはプロジェクトが実行できる内容を決定する権限と特権のリスト
    • テナント/プロジェクト - 他のリソース グループから分離されたリソースのグループの論理表現。それはアカウント、組織、...
    • サービス - ユーザーがさまざまなリソースにアクセスするために使用できるエンドポイント
    • エンドポイント - 特定の OpenStack サービスにアクセスするために使用できるネットワークアドレス
    • トークン - スコープを使用してアクセスできるリソースを記述する際に、リソースにアクセスするために使用されます
    サービスのプロパティは何ですか?つまり、サービスはどのように識別されますか?

    使用:

    • 名前
    • ID番号
    • 種類
    • 形容
    次のことを説明してください。 - パブリックURL - 内部URL - 管理者URL
    • パブリックURL - パブリック インターネット経由でパブリックにアクセス可能
    • 内部 URL - サービス間の通信に使用されます
    • 管理URL - 管理管理に使用されます
    サービスカタログとは何ですか?

    サービスとそのエンドポイントの一覧

    OpenStack Advanced - Services

    次の各サービスについて説明する
    • 速い
    • サハラ
    • 皮肉
    • 宝庫
    • アオド
    • シーロメーター

    • Swift - 高可用性、分散、結果整合性のあるオブジェクト/BLOB ストア
    • サハラ - Hadoop クラスターの管理
    • 皮肉なことに、ベア・メタル・プロビジョニング
    • Trove - OpenStack 上で実行されるサービスとしてのデータベース
    • Aodh - アラームサービス
    • シーロメーター - 使用状況の追跡と監視
    次のそれぞれに使用されるサービス/プロジェクトを特定します。
    • OpenStack 上で実行されるサービスとしてのデータベース
    • ベア・メタル・プロビジョニング
    • 使用状況の追跡と監視
    • アラームサービス
    • Hadoop クラスターの管理
    • 高可用性、分散、結果整合性のあるオブジェクト/BLOB ストア

    • OpenStack 上で実行されるサービスとしてのデータベース - Trove
    • ベア・メタル・プロビジョニング - 皮肉なこと
    • 使用状況の追跡と監視 - シーロメーター
    • アラームサービス - Aodh
    • Hadoop クラスターの管理
    • Hadoop クラスターの管理 - サハラ
    • 高可用性、分散、結果整合性のあるオブジェクト/BLOB ストア - Swift

    OpenStack Advanced - Keystone

    キーストーンのサービスについて詳しく説明していただけますか?
    • Keystone なしで OpenStack をデプロイすることはできません。
    • ID、ポリシー、トークンサービスを提供します
      • 提供される認証は、ユーザーとサービスの両方を対象としています
      • サポートされている承認は、トークンベースとユーザーベースです。
    • JSON ファイルに格納されている RBAC に基づいて定義されたポリシーがあり、そのファイルの各行は適用するアクセス レベルを定義します。
    キーストーンのアーキテクチャについて説明する
    • Keystoneがリクエストを取得するためのサービスAPIと管理APIがあります
    • Keystone には 4 つのバックエンドがあります。
      • トークンバックエンド - ユーザーとサービスの一時トークン
      • ポリシーバックエンド - ルールの管理と承認
      • ID バックエンド - ユーザーとグループ (スタンドアロン DB、LDAP など)
      • カタログ・バックエンド - エンドポイント
    • それはあなたが統合することができるプラグ可能な環境を持っています:
      • ティッカー
      • KVS (キーバリューストア)
      • .SQL
      • パム
      • メモリキャッシュ
    キーストーン認証プロセスの説明
    • Keystoneは呼び出し/リクエストを取得し、ユーザー名、パスワード、およびauthURLを使用して、許可されたユーザーからのものであるかどうかを確認します
    • 確認されると、キーストーンはトークンを提供します。
    • トークンにはユーザーのプロジェクトのリストが含まれているため、毎回認証する必要はなく、代わりにトークンを送信できます

    OpenStack Advanced - Compute (Nova)

    次のそれぞれは何をしますか?
    • ノバアピ
    • ノヴァコンピュエイト
    • 新星指揮者
    • ノヴァ証明書
    • nova-consoleauth
    • ノヴァスケジューラ

    • nova-api - リクエスト/コールの管理を担当
    • Nova-compute - インスタンスのライフサイクルの管理を担当
    • nova-conductor - nova-compute とデータベースの間を仲介し、nova-compute が直接アクセスしないようにします。
    どのような種類のNovaプロキシに精通していますか?
    • Nova-novncproxy - VNC 接続によるアクセス
    • Nova-spicehtml5proxy - SPICE 経由のアクセス
    • Nova-xvpvncproxy - VNC 接続を介したアクセス

    OpenStack Advanced - Networking (Neutron)

    BGP動的ルーティングについて説明する
    OpenStack におけるネットワーク名前空間の役割は何ですか?

    OpenStack Advanced - Horizon

    ホライゾンについて詳しく説明していただけますか?
    • OpenStack ダッシュボードの提供と、カスタマイズされたダッシュボードの追加作成機能に重点を置いた Django ベースのプロジェクト
    • これを使用して、さまざまなOpenStackサービスリソース(インスタンス、イメージ、ネットワークなど)にアクセスできます。
      • ダッシュボードにアクセスすることで、ユーザーはダッシュボードを使用してさまざまなリソースを一覧表示、作成、削除、変更できます。
    • また、高度にカスタマイズ可能であり、必要に応じて変更または追加できます
    ホライゾンのアーキテクチャについて何がわかりますか?
    • API には下位互換性があります
    • ダッシュボードには、ユーザー、システム、設定の 3 種類があります。
    • これは、Neutron、NovaなどのすべてのOpenStackコアプロジェクトのコアサポートを提供します。(箱から出してすぐに、追加のパッケージやプラグインをインストールする必要はありません)
    • 誰でもダッシュボードを拡張し、新しいコンポーネントを追加できます
    • Horizo nには、独自のダッシュボードを構築できるテンプレートとコアクラスが用意されています

    人形

    パペットとは何ですか?それはどのように機能しますか?
    • Puppet は、すべてのシステムが望ましい予測可能な状態に構成されていることを保証する構成管理ツールです。
    パペットアーキテクチャの説明
    • Puppet には、プライマリ-セカンダリノードアーキテクチャがあります。クライアントはネットワーク全体に分散され、Puppet モジュールが存在するプライマリ/セカンダリ環境と通信します。クライアント エージェントは、その ID を含む証明書をサーバーに送信します。次に、サーバーはその証明書に署名し、クライアントに送り返します。この認証により、クライアントとマスター間の安全で検証可能な通信が可能になります。
    Puppetを他の構成管理ツールと比較できますか?なぜパペットを選んだのですか?
    • Puppet は、Chef、Ansible、SaltStack、cfengine などの他の構成管理ツールと比較されることがよくあります。Puppet を使用するかどうかは、多くの場合、使いやすさ、スケーラビリティ、コミュニティサポートなど、組織のニーズによって異なります。
    次のことを説明してください。
    • モジュール
    • 積荷目録
    • ノード

    • モジュール - マニフェスト、テンプレート、およびファイルのコレクションです。
    • マニフェスト - クライアントを構成するための実際のコードです。
    • ノード - 特定の構成を特定のノードに割り当てることができます
    ファクトの説明
    • Facter は Puppet のスタンドアロンツールで、オペレーティングシステム、IP アドレス、メモリ、ネットワークインターフェイスなど、システムとその構成に関する情報を収集します。この情報は、Puppet マニフェストで使用して、リソースの管理方法を決定したり、システムの特性に基づいて Puppet の動作をカスタマイズしたりできます。Facter は Puppet に統合されており、そのファクトを Puppet マニフェスト内で使用して、リソース管理に関する決定を下すことができます。
    MCollectiveとは何ですか?
    • MCollectiveは、Puppetと統合してオーケストレーション、リモート実行、および並列ジョブ実行機能を提供するミドルウェアシステムです。
    モジュールを書いた経験はありますか?どのモジュールを何のために作成しましたか?
    ヒエラとは何かを説明する
    • HieraはPuppetの階層データストアであり、データをコードから分離するために使用され、データをより簡単に分離、管理、および再利用できるようにします。

    エラスティック

    エラスティックスタックとは何ですか?

    エラスティックスタックは、次のもので構成されます。

    • エラスティックサーチ
    • キバナ
    • ログスタッシュ
    • ビート
    • エラスティック Hadoop
    • APMサーバ

    エラスティックセラッハ、ログスタッシュ、キバナはELKスタックとしても知られています。

    エラスティックサーチとは何かを説明する

    公式ドキュメントから:

    「Elasticsearchは分散ドキュメントストアです。Elasticsearchは、情報を列指向データの行として格納する代わりに、JSONドキュメントとしてシリアル化された複雑なデータ構造を格納します。」

    ログスタッシュとは何ですか?

    ブログから:

    「Logstashは、データを収集、強化、転送する強力で柔軟なパイプラインです。ログメッセージを収集するための抽出、変換、読み込み(ETL)ツールとして機能します。

    ビートとは何かを説明する

    ビートは軽量のデータシッパーです。これらのデータシッパーは、データが存在するクライアントにインストールされている。 ビートの例:ファイルビート、メトリックビート、監査ビート。もっとたくさんあります。

    キバナとは?

    公式ドキュメントから:

    「Kibanaは、Elasticsearchと連携して設計されたオープンソースの分析および視覚化プラットフォームです。Kibana を使用して、Elasticsearch インデックスに格納されているデータを検索、表示、および操作します。高度なデータ分析を簡単に実行し、さまざまなチャート、テーブル、マップでデータを視覚化できます。」

    アプリが情報を記録した瞬間から、Elastic スタックの使用時にダッシュボードでユーザーに表示されるまでの動作を説明する

    このプロセスは、選択したアーキテクチャと、ログに適用する処理によって異なる場合があります。考えられるワークフローの 1 つは次のとおりです。

    1. アプリケーションによってログに記録されたデータは、filebeatによって選択され、logstashに送信されます
    2. Logstash は、定義されたフィルターに基づいてログを処理します。完了すると、出力はElasticsearchに送信されます
    3. Elasticsearchは取得したドキュメントを保存し、ドキュメントは後ですばやくアクセスできるようにインデックスが作成されます
    4. ユーザーは、インデックス付きデータに基づいてKibanaでビジュアライゼーションを作成します
    5. ユーザーは、前のステップで作成したビジュアリゼーションから構成されたダッシュボードを作成します。
    エラスティックサーチ
    データノードとは

    これは、データが保存される場所であり、さまざまな処理が行われる場所です(データを検索する場合など)。

    マスターノードとは何ですか?

    マスターノードの一部は以下を担当します。

    • クラスター内のすべてのノードの状態を追跡する
    • レプリカが動作しており、すべてのデータノードからデータを使用できることを確認します。
    • ホットノードなし(他のノードよりもはるかにハードに動作するデータノードはありません)

    実際には複数のマスターノードが存在する可能性がありますが、選択されたマスターノードはそのうちの1つだけです。

    取り込みノードとは何ですか?

    データの解析を担当するノード。logstashを使用しない場合、このノードは、Logstashで解析する方法と同様に、ビートからデータを受信して解析できます。

    コーディネーターノードとは何ですか?

    クラウザー (データノード) との間で要求をルーティングする調整ノード。

    エラスティックサーチにデータはどのように保存されますか?
    • データはインデックスに格納されます
    • インデックスはシャードを使用してクラスター全体に分散されます
    インデックスとは

    エラスティックのインデックスは、ほとんどの場合、SQL/NoSQLの世界のデータベース全体と比較されます。
    アプリのすべてのデータを保持するインデックスを 1 つにするか、各インデックスが異なる種類のアプリを保持する複数のインデックス (アプリが実行している各サービスのインデックスなど) を持つかを選択できます。

    公式ドキュメントも素晴らしい説明を提供します(一般的に、すべてのプロジェクトが持つべきであるように、それは本当に良いドキュメントです):

    「インデックスは最適化されたドキュメントのコレクションと考えることができ、各ドキュメントはデータを含むキーと値のペアであるフィールドのコレクションです」

    シャードの説明

    インデックスはシャードに分割され、ドキュメントは特定のシャードにハッシュされます。各シャードはクラスター内の異なるノード上にある可能性があり、各シャードは自己完結型のインデックスです。
    これにより、Elasticsearchはサーバーのクラスター全体にスケーリングできます。

    転置インデックスとは?

    公式ドキュメントから:

    「転置インデックスは、任意のドキュメントに出現するすべての一意の単語を一覧表示し、各単語が出現するすべてのドキュメントを識別します。」

    ドキュメントとは

    SQL / NoSQLとの比較を続けると、エラスティックのドキュメントは、SQLの場合はテーブルの行、NoSQLの場合はコレクション内のドキュメントです。 NoSQLと同様に、ドキュメントはアプリ内のユニットにデータを保持するJSONオブジェクトです。このユニットは、アプリによって異なります。アプリが書籍に関連する場合、各ドキュメントは書籍を記述します。アプリがシャツに関するものである場合、各ドキュメントはシャツです。

    エラスティックサーチクラスターの正常性を確認すると、赤で表示されます。それはどういう意味ですか。ステータスが緑ではなく黄色になる原因は何ですか?

    赤は、一部のデータが使用できないことを意味します。 黄色は、マルチノードではなくシングルノードクラスターを実行していることが原因である可能性があります。

    本当か偽か?Elasticsearchは、すべてのフィールドのすべてのデータにインデックスを付け、各インデックス付きフィールドは同じデータ構造を持ち、統一されたクイッククエリ機能を提供します

    偽。 公式ドキュメントから:

    「各インデックス付きフィールドには、最適化された専用のデータ構造があります。たとえば、テキストフィールドは反転インデックスに格納され、数値フィールドと地理フィールドはBKDツリーに格納されます。」

    ドキュメントにはどのような予約フィールドがありますか?
    • _インデックス
    • _身分証明書
    • _種類
    マッピングの説明
    独自のマッピングを定義する利点は何ですか?(または:いつ独自のマッピングを使用しますか?
    • 部分一致のためにフィールドを最適化できます
    • 既知のフィールドのカスタム形式を定義できます(例:日付)
    • 言語固有の分析を実行することができます。
    レプリカの説明

    いつでも障害が予想されるネットワーク/クラウド環境では、シャード/ノードが何らかの理由でオフラインになったり消えたりした場合に備えて、フェイルオーバーメカニズムを用意することは非常に便利であり、強くお勧めします。 この目的のために、Elasticsearchを使用すると、インデックスのシャードの1つ以上のコピーを、いわゆるレプリカシャード、または略してレプリカに作成できます。

    用語の頻度とドキュメントの頻度について説明していただけますか?

    用語の頻度は、特定のドキュメントに用語が出現する頻度であり、ドキュメントの頻度は、用語がすべてのドキュメントに出現する頻度です。どちらも、用語頻度/ドキュメント頻度を計算することにより、用語の関連性を判断するために使用されます。

    「インデックスライフサイクル管理」の下の「現在のフェーズ」をチェックすると、「ホット」に設定されていることがわかります。それはどういう意味ですか。

    「インデックスはアクティブに書き込まれています」。 フェーズの詳細については、こちらをご覧ください

    このコマンドは何をしますか?
    curl -X PUT "localhost:9200/customer/_doc/1?pretty" -H 'Content-Type: application/json' -d'{ "name": "John Doe" }'

    存在しない場合は顧客インデックスを作成し、フィールド名が "John Dow" に設定された新しいドキュメントを追加します。また、最初のドキュメントの場合は、ID 1 を取得します。

    前のコマンドを100回実行するとどうなりますか?<>回実行するのはどうでしょうか。
    1. 名前の値が異なる場合は、「名前」を新しい値に更新します
    2. いずれにせよ、バージョンフィールドを1つバンプします
    バルクAPIとは何ですか?何に使いますか?

    Bulk API は、複数のドキュメントのインデックスを作成する必要がある場合に使用されます。ドキュメントの数が多い場合は、ネットワークのラウンドトリップが少ないため、個々の要求よりも使用する方がはるかに高速です。

    クエリ DSL
    Elasticsearchクエリ構文(ブール値、フィールド、範囲)について説明する
    関連性スコアとは何かを説明する
    クエリコンテキストとフィルターコンテキストの説明

    公式ドキュメントから:

    "クエリ コンテキストでは、クエリ句は "このドキュメントはこのクエリ句とどの程度一致しているか" という質問に答えます。ドキュメントが一致するかどうかを判断するだけでなく、クエリ句は_scoreメタフィールドの関連性スコアも計算します。」

    "フィルター コンテキストでは、クエリ句は "このドキュメントはこのクエリ句と一致しますか?" という質問に答えます。答えは単純な「はい」または「いいえ」です—スコアは計算されません。フィルターコンテキストは、主に構造化データのフィルタリングに使用されます。

    大量のデータを含む本番環境のアーキテクチャが小規模環境とどのように異なるかを説明する

    この質問にはいくつかの可能な答えがあります。そのうちの1つは次のとおりです。

    エラスティックの小規模アーキテクチャは、エラスティックスタックをそのまま構成します。これは、ビート、ログスタッシュ、エラストサーチ、キバナがあることを意味します。
    大量のデータを含む本番環境には、ある種のバッファリングコンポーネント(ReddisやRabbitMQなど)と、Nginxなどのセキュリティコンポーネントを含めることができます。

    ログスタッシュ
    ログスタッシュプラグインとは何ですか?どのようなプラグインタイプがありますか?
    • 入力プラグイン - さまざまなソースからデータを収集する方法
    • フィルタープラグイン - データの処理
    • 出力プラグイン - データをさまざまな出力/サービス/プラットフォームにプッシュする
    グロクとは何ですか?

    ある形式の情報を変更し、別の形式に没頭させるlogstashプラグイン。

    grokはどのように機能しますか?
    どのようなgrokパターンに精通していますか?
    「_grokparsefailure」とは何ですか?
    grokパターンをどのようにテストまたはデバッグしますか?
    ログスタッシュコーデックとは何ですか?どんなコーデックがありますか?
    キバナ
    キバナの「発見」の下に何がありますか?

    インデックスに格納されている生データ。検索してフィルタリングできます。

    キバナでは、[検出]をクリックした後、「561ヒット」と表示されます。それはどういう意味ですか。

    検索結果に一致するドキュメントの総数。クエリが使用されていない場合は、単にドキュメントの総数です。

    「視覚化」の下に何がありますか?

    「視覚化」は、データの視覚的表現(円グラフ、グラフなど)を作成できる場所です。

    Kibanaではどのようなビジュアライゼーションタイプがサポート/含まれていますか?
    統計的外れ値に使用するビジュアライゼーション タイプ
    Kibanaでダッシュボードを作成する方法を詳しく説明してください

    ファイルビート

    ファイルビートとは何ですか?
    ELKを使用している場合、ファイルビートも使用する必要がありますか?どのようなシナリオでファイルビートを使用すると便利ですか?
    ハーベスターとは何ですか?

    ここを読む

    本当か偽か?1 つのハーベスターが Filebeat.yml で設定された制限に従って複数のファイルを収穫します。

    偽。1つのハーベスターが1つのファイルを収穫します。

    ファイルビートモジュールとは何ですか?

    エラスティックスタック

    エラスティックスタックをどのように保護しますか?

    提供されている Elastic utils を使用して証明書を生成し、設定を変更して、証明書モデルを使用してセキュリティを有効にすることができます。

    分散

    分散コンピューティング(または分散システム)について説明する

    マーティン・クレップマンによると:

    「多くのマシンで実行されている多くのプロセス...可変遅延を伴う信頼性の低いネットワークを介したメッセージパッシングのみであり、システムは部分的な障害、信頼性の低いクロック、およびプロセスの一時停止に悩まされる可能性があります。」

    別の定義:「物理的に分離されているが論理的に接続されているシステム」

    システムに障害が発生する原因は何ですか?
    • ネットワーク
    • プロセッサ
    • 記憶
    • ディスク
    「CAP定理」とは何か知っていますか?(別名ブリューワーの定理として)

    CAP 定理によると、分散データ ストアが次のうち 2 つ以上を同時に提供することはできません。

    • 可用性: すべての要求が応答を受け取ります (最新のデータである必要はありません)
    • 一貫性:すべてのリクエストは、最新/最新のデータを含む応答を受け取ります
    • パーティションの許容範囲:一部のデータが失われたり削除されたりしても、システムは実行され続けます
    次の設計の問題は何ですか?それを改善する方法は?

    1.移行には時間がかかる場合があります。つまり、顕著なダウンタイムです。 2.スタンバイサーバーはリソースの浪費です-最初のアプリケーションサーバーが実行されている場合、スタンバイは何もしません
    次の設計の問題は何ですか?それを改善する方法は?

    Issues: If load balancer dies , we lose the ability to communicate with the application.

    Ways to improve:

    • Add another load balancer
    • Use DNS A record for both load balancers
    • Use message queue
    What is "Shared-Nothing" architecture?

    It's an architecture in which data is and retrieved from a single, non-shared, source usually exclusively connected to one node as opposed to architectures where the request can get to one of many nodes and the data will be retrieved from one shared location (storage, memory, ...).

    Explain the Sidecar Pattern (Or sidecar proxy)

    Misc

    Name Topic Objective & Instructions Solution Comments
    Highly Available "Hello World" Exercise Solution
    What happens when you type in a URL in an address bar in a browser?
    1. The browser searches for the record of the domain name IP address in the DNS in the following order:
    • Browser cache
    • Operating system cache
    • The DNS server configured on the user's system (can be ISP DNS, public DNS, ...)
    1. If it couldn't find a DNS record locally, a full DNS resolution is started.
    2. It connects to the server using the TCP protocol
    3. The browser sends an HTTP request to the server
    4. The server sends an HTTP response back to the browser
    5. The browser renders the response (e.g. HTML)
    6. The browser then sends subsequent requests as needed to the server to get the embedded links, javascript, images in the HTML and then steps 3 to 5 are repeated.

    TODO: add more details!

    API

    Explain what is an API

    I like this definition from blog.christianposta.com:

    "An explicitly and purposefully defined interface designed to be invoked over a network that enables software developers to get programmatic access to data and functionality within an organization in a controlled and comfortable way."

    What is an API specification?

    From swagger.io:

    "An API specification provides a broad understanding of how an API behaves and how the API links with other APIs. It explains how the API functions and the results to expect when using the API"

    True or False? API Definition is the same as API Specification

    False. From swagger.io:

    "An API definition is similar to an API specification in that it provides an understanding of how an API is organized and how the API functions. But the API definition is aimed at machine consumption instead of human consumption of APIs."

    What is an API gateway?
    What are the advantages of using/implementing an API gateway?
    What is a Payload in API?
    What is Automation? How it's related or different from Orchestration?

    Automation is the act of automating tasks to reduce human intervention or interaction in regards to IT technology and systems.
    While automation focuses on a task level, Orchestration is the process of automating processes and/or workflows which consists of multiple tasks that usually across multiple systems.

    Tell me about interesting bugs you've found and also fixed
    What is a Debuggger and how it works?
    What services an application might have?
    • Authorization
    • Logging
    • Authentication
    • Ordering
    • Front-end
    • Back-end ...
    What is Metadata?

    Data about data. Basically, it describes the type of information that an underlying data will hold.

    You can use one of the following formats: JSON, YAML, XML. Which one would you use? Why?

    I can't answer this for you :)

    What's KPI?
    What's OKR?
    What's DSL (Domain Specific Language)?

    Domain Specific Language (DSLs) are used to create a customised language that represents the domain such that domain experts can easily interpret it.

    What's the difference between KPI and OKR?

    YAML

    What is YAML?

    Data serialization language used by many technologies today like Kubernetes, Ansible, etc.

    True or False? Any valid JSON file is also a valid YAML file

    True. Because YAML is superset of JSON.

    What is the format of the following data?
    {
        applications: [
            {
                name: "my_app",
                language: "python",
                version: 20.17
            }
        ]
    }
    

    JSON
    What is the format of the following data?
    applications:
      - app: "my_app"
        language: "python"
        version: 20.17
    

    YAML
    How to write a multi-line string with YAML? What use cases is it good for?
    someMultiLineString: |
      look mama
      I can write a multi-line string
      I love YAML
    

    It's good for use cases like writing a shell script where each line of the script is a different command.

    What is the difference between to ?
    someMultiLineString: |
    someMultiLineString: >

    using will make the multi-line string to fold into a single line

    >

    someMultiLineString: >
      This is actually
      a single line
      do not let appearances fool you
    

    What are placeholders in YAML?

    They allow you reference values instead of directly writing them and it is used like this:

    username: {{ my.user_name }}
    

    How can you define multiple YAML components in one file?

    Using this: For Examples:

    ---

    document_number: 1
    ---
    document_number: 2
    

    Firmware

    Explain what is a firmware

    Wikipedia: "In computing, firmware is a specific class of computer software that provides the low-level control for a device's specific hardware. Firmware, such as the BIOS of a personal computer, may contain basic functions of a device, and may provide hardware abstraction services to higher-level software such as operating systems."

    Cassandra

    When running a cassandra cluster, how often do you need to run nodetool repair in order to keep the cluster consistent?
    • Within the columnFamily GC-grace Once a week
    • Less than the compacted partition minimum bytes
    • Depended on the compaction strategy

    HTTP

    What is HTTP?

    Avinetworks: HTTP stands for Hypertext Transfer Protocol. HTTP uses TCP port 80 to enable internet communication. It is part of the Application Layer (L7) in OSI Model.

    Describe HTTP request lifecycle
    • Resolve host by request to DNS resolver
    • Client SYN
    • Server SYN+ACK
    • Client SYN
    • HTTP request
    • HTTP response
    True or False? HTTP is stateful

    False. It doesn't maintain state for incoming request.

    How HTTP request looks like?

    It consists of:

    • Request line - request type
    • Headers - content info like length, enconding, etc.
    • Body (not always included)
    What HTTP method types are there?
    • GET
    • POST
    • HEAD
    • PUT
    • DELETE
    • CONNECT
    • OPTIONS
    • TRACE
    What HTTP response codes are there?
    • 1xx - informational
    • 2xx - Success
    • 3xx - Redirect
    • 4xx - Error, client fault
    • 5xx - Error, server fault
    What is HTTPS?
    Explain HTTP Cookies

    HTTP is stateless. To share state, we can use Cookies.

    TODO: explain what is actually a Cookie

    What is HTTP Pipelining?
    You get "504 Gateway Timeout" error from an HTTP server. What does it mean?

    The server didn't receive a response from another server it communicates with in a timely manner.

    What is a proxy?
    What is a reverse proxy?
    When you publish a project, you usually publish it with a license. What types of licenses are you familiar with and which one do you prefer to use?
    Explain what is "X-Forwarded-For"

    Wikipedia: "The X-Forwarded-For (XFF) HTTP header field is a common method for identifying the originating IP address of a client connecting to a web server through an HTTP proxy or load balancer."

    Load Balancers

    What is a load balancer?

    A load balancer accepts (or denies) incoming network traffic from a client, and based on some criteria (application related, network, etc.) it distributes those communications out to servers (at least one).

    Why to used a load balancer?
    • Scalability - using a load balancer, you can possibly add more servers in the backend to handle more requests/traffic from the clients, as opposed to using one server.
    • Redundancy - if one server in the backend dies, the load balancer will keep forwarding the traffic/requests to the second server so users won't even notice one of the servers in the backend is down.
    What load balancer techniques/algorithms are you familiar with?
    • Round Robin
    • Weighted Round Robin
    • Least Connection
    • Weighted Least Connection
    • Resource Based
    • Fixed Weighting
    • Weighted Response Time
    • Source IP Hash
    • URL Hash
    What are the drawbacks of round robin algorithm in load balancing?
    • A simple round robin algorithm knows nothing about the load and the spec of each server it forwards the requests to. It is possible, that multiple heavy workloads requests will get to the same server while other servers will got only lightweight requests which will result in one server doing most of the work, maybe even crashing at some point because it unable to handle all the heavy workloads requests by its own.
    • Each request from the client creates a whole new session. This might be a problem for certain scenarios where you would like to perform multiple operations where the server has to know about the result of operation so basically, being sort of aware of the history it has with the client. In round robin, first request might hit server X, while second request might hit server Y and ask to continue processing the data that was processed on server X already.
    What is an Application Load Balancer?
    In which scenarios would you use ALB?
    At what layers a load balancer can operate?

    L4 and L7

    Can you perform load balancing without using a dedicated load balancer instance?

    Yes, you can use DNS for performing load balancing.

    What is DNS load balancing? What its advantages? When would you use it?

    Load Balancers - Sticky Sessions

    What are sticky sessions? What are their pros and cons?

    Recommended read:

    Cons:

    • Can cause uneven load on instance (since requests routed to the same instances) Pros:
    • Ensures in-proc sessions are not lost when a new request is created
    Name one use case for using sticky sessions

    You would like to make sure the user doesn't lose the current session data.

    What sticky sessions use for enabling the "stickiness"?

    Cookies. There are application based cookies and duration based cookies.

    Explain application-based cookies
    • Generated by the application and/or the load balancer
    • Usually allows to include custom data
    Explain duration-based cookies
    • Generated by the load balancer
    • Session is not sticky anymore once the duration elapsed

    Load Balancers - Load Balancing Algorithms

    Explain each of the following load balancing techniques
    • Round Robin
    • Weighted Round Robin
    • Least Connection
    • Weighted Least Connection
    • Resource Based
    • Fixed Weighting
    • Weighted Response Time
    • Source IP Hash
    • URL Hash

    Explain use case for connection draining?
    To ensure that a Classic Load Balancer stops sending requests to instances that are de-registering or unhealthy, while keeping the existing connections open, use connection draining. This enables the load balancer to complete in-flight requests made to instances that are de-registering or unhealthy.

    The maximum timeout value can be set between 1 and 3,600 seconds on both GCP and AWS.

    Licenses

    Are you familiar with "Creative Commons"? What do you know about it?
    Explain the differences between copyleft and permissive licenses

    In Copyleft, any derivative work must use the same licensing while in permissive licensing there are no such condition. GPL-3 is an example of copyleft license while BSD is an example of permissive license.

    Random

    How a search engine works?
    How auto completion works?
    What is faster than RAM?

    CPU cache. Source

    What is a memory leak?
    What is your favorite protocol?

    SSH HTTP DHCP DNS ...

    What is Cache API?
    What is the C10K problem? Is it relevant today?

    https://idiallo.com/blog/c10k-2016

    Storage

    What types of storage are there?
    • File
    • Block
    • Object
    Explain Object Storage
    • Data is divided to self-contained objects
    • Objects can contain metadata
    What are the pros and cons of object storage?

    Pros:

    • Usually with object storage, you pay for what you use as opposed to other storage types where you pay for the storage space you allocate
    • Scalable storage: Object storage mostly based on a model where what you use, is what you get and you can add storage as need Cons:
    • Usually performs slower than other types of storage
    • No granular modification: to change an object, you have re-create it
    What are some use cases for using object storage?
    Explain File Storage
    • File Storage used for storing data in files, in a hierarchical sturcture
    • Some of the devices for file storage: hard drive, flash drive, cloud-based file storage
    • Files usually organized in directories
    What are the pros and cons of File Storage?

    Pros:

    • Users have full control of their own files and can run variety of operations on the files: delete, read, write and move.
    • Security mechanism allows for users to have a better control at things such as file locking
    What are some examples of file storage?

    Local filesystem Dropbox Google Drive

    What types of storage devices are there?
    Explain IOPS
    Explain storage throughput
    What is a filesystem?
    Explain Dark Data
    Explain MBR

    Questions you CAN ask

    A list of questions you as a candidate can ask the interviewer during or after the interview. These are only a suggestion, use them carefully. Not every interviewer will be able to answer these (or happy to) which should be perhaps a red flag warning for your regarding working in such place but that's really up to you.

    What do you like about working here?
    How does the company promote personal growth?
    What is the current level of technical debt you are dealing with?

    Be careful when asking this question - all companies, regardless of size, have some level of tech debt. Phrase the question in the light that all companies have the deal with this, but you want to see the current pain points they are dealing with

    This is a great way to figure how managers deal with unplanned work, and how good they are at setting expectations with projects.

    Why I should NOT join you? (or 'what you don't like about working here?')
    What was your favorite project you've worked on?

    This can give you insights in some of the cool projects a company is working on, and if you would enjoy working on projects like these. This is also a good way to see if the managers are allowing employees to learn and grow with projects outside of the normal work you'd do.

    If you could change one thing about your day to day, what would it be?

    Similar to the tech debt question, this helps you identify any pain points with the company. Additionally, it can be a great way to show how you'd be an asset to the team.

    For Example, if they mention they have problem X, and you've solved that in the past, you can show how you'd be able to mitigate that problem.

    Let's say that we agree and you hire me to this position, after X months, what do you expect that I have achieved?

    Not only this will tell you what is expected from you, it will also provide big hint on the type of work you are going to do in the first months of your job.

    Testing

    Explain white-box testing
    Explain black-box testing
    What are unit tests?
    What types of tests would you run to test a web application?
    Explain test harness?
    What is A/B testing?
    What is network simulation and how do you perform it?
    What types of performances tests are you familiar with?
    Explain the following types of tests:
    • Load Testing
    • Stress Testing
    • Capacity Testing
    • Volume Testing
    • Endurance Testing

    Databases

    Name Topic Objective & Instructions Solution Comments
    Message Board Tables Relational DB Tables Exercise Solution
    What is a relational database?
    • Data Storage: system to store data in tables
    • SQL: programming language to manage relational databases
    • Data Definition Language: a standard syntax to create, alter and delete tables
    What does it mean when a database is ACID compliant?

    ACID stands for Atomicity, Consistency, Isolation, Durability. In order to be ACID compliant, the database must meet each of the four criteria

    Atomicity - When a change occurs to the database, it should either succeed or fail as a whole.

    For example, if you were to update a table, the update should completely execute. If it only partially executes, the update is considered failed as a whole, and will not go through - the DB will revert back to it's original state before the update occurred. It should also be mentioned that Atomicity ensures that each transaction is completed as it's own stand alone "unit" - if any part fails, the whole statement fails.

    Consistency - any change made to the database should bring it from one valid state into the next.

    For example, if you make a change to the DB, it shouldn't corrupt it. Consistency is upheld by checks and constraints that are pre-defined in the DB. For example, if you tried to change a value from a string to an int when the column should be of datatype string, a consistent DB would not allow this transaction to go through, and the action would not be executed

    Isolation - this ensures that a database will never be seen "mid-update" - as multiple transactions are running at the same time, it should still leave the DB in the same state as if the transactions were being run sequentially.

    For example, let's say that 20 other people were making changes to the database at the same time. At the time you executed your query, 15 of the 20 changes had gone through, but 5 were still in progress. You should only see the 15 changes that had completed - you wouldn't see the database mid-update as the change goes through.

    Durability - Once a change is committed, it will remain committed regardless of what happens (power failure, system crash, etc.). This means that all completed transactions must be recorded in non-volatile memory.

    Note that SQL is by nature ACID compliant. Certain NoSQL DB's can be ACID compliant depending on how they operate, but as a general rule of thumb, NoSQL DB's are not considered ACID compliant

    What is sharding?

    Sharding is a horizontal partitioning.

    Are you able to explain what is it good for?

    You find out your database became a bottleneck and users experience issues accessing data. How can you deal with such situation?

    Not much information provided as to why it became a bottleneck and what is current architecture, so one general approach could be
    to reduce the load on your database by moving frequently-accessed data to in-memory structure.

    What is a connection pool?

    Connection Pool is a cache of database connections and the reason it's used is to avoid an overhead of establishing a connection for every query done to a database.

    What is a connection leak?

    A connection leak is a situation where database connection isn't closed after being created and is no longer needed.

    What is Table Lock?
    Your database performs slowly than usual. More specifically, your queries are taking a lot of time. What would you do?
    • Query for running queries and cancel the irrelevant queries
    • Check for connection leaks (query for running connections and include their IP)
    • Check for table locks and kill irrelevant locking sessions
    What is a Data Warehouse?

    "A data warehouse is a subject-oriented, integrated, time-variant and non-volatile collection of data in support of organisation's decision-making process"

    Explain what is a time-series database
    What is OLTP (Online transaction processing)?
    What is OLAP (Online Analytical Processing)?
    What is an index in a database?

    A database index is a data structure that improves the speed of operations in a table. Indexes can be created using one or more columns, providing the basis for both rapid random lookups and efficient ordering of access to records.

    What data types are there in relational databases?
    Explain Normalization

    Data that is used multiple times in a database should be stored once and referenced with a foreign key.
    This has the clear benefit of ease of maintenance where you need to change a value only in a single place to change it everywhere.

    Explain Primary Key and Foreign Key

    Primary Key: each row in every table should a unique identifier that represents the row.
    Foreign Key: a reference to another table's primary key. This allows you to join table together to retrieve all the information you need without duplicating data.

    What types of data tables have you used?
    • Primary data table: main data you care about
    • Details table: includes a foreign key and has one to many relationship
    • Lookup values table: can be one table per lookup or a table containing all the lookups and has one to many relationship
    • Multi reference table
    What is ORM? What benefits it provides in regards to relational databases usage?

    Wikipedia: "is a programming technique for converting data between incompatible type systems using object-oriented programming languages"

    In regards to the relational databases:

    • Database as code
    • Database abstraction
    • Encapsulates SQL complexity
    • Enables code review process
    • Enables usage as a native OOP structure
    What is DDL?

    Wikipedia: "In the context of SQL, data definition or data description language (DDL) is a syntax for creating and modifying database objects such as tables, indices, and users."

    Regex

    Given a text file, perform the following exercises

    Extract

    Extract all the numbers
    Extract the first word of each line

    Bonus: extract the last word of each line

    Extract all the IP addresses
    Extract dates in the format of yyyy-mm-dd or yyyy-dd-mm
    Extract email addresses

    Replace

    Replace tabs with four spaces
    Replace 'red' with 'green'

    System Design

    Explain what is a "Single point of failure"?
    What is CDN?

    CDN (Content Delivery Network) responsible for distributing content geographically. Part of it, is what is known as edge locations, aka cache proxies, that allows users to get their content quickly due to cache features and geographical distribution.

    Explain Multi-CDN

    In single CDN, the whole content is originated from content delivery network.
    In multi-CDN, content is distributed across multiple different CDNs, each might be on a completely different provider/cloud.

    What are the benefits of Multi-CDN over a single CDN?
    • Resiliency: Relying on one CDN means no redundancy. With multiple CDNs you don't need to worry about your CDN being down
    • Flexibility in Costs: Using one CDN enforces you to specific rates of that CDN. With multiple CDNs you can take into consideration using less expensive CDNs to deliver the content.
    • Performance: With Multi-CDN there is bigger potential in choosing better locations which more close to the client asking the content
    • Scale: With multiple CDNs, you can scale services to support more extreme conditions
    Explain "3-Tier Architecture" (including pros and cons)
    Explain Mono-repo vs. Multi-repo. What are the cons and pros of each approach?
    What are the drawbacks of monolithic architecture?
    • Not suitable for frequent code changes and the ability to deploy new features
    • Not designed for today's infrastructure (like public clouds)
    • Scaling a team to work monolithic architecture is more challenging
    What are the advantages of microservices architecture over a monolithic architecture?
    • Each of the services individually fail without escalating into an application-wide outage.
    • Each service can be developed and maintained by a separate team and this team can choose its own tools and coding language
    What's a service mesh?

    This article provides a great explanation.

    Explain "Loose Coupling"
    What is a message queue? When is it used?

    Scalability

    Explain Scalability

    The ability easily grow in size and capacity based on demand and usage.

    Explain Elasticity

    The ability to grow but also to reduce based on what is required

    Explain Disaster Recovery
    Explain Fault Tolerance and High Availability

    Fault Tolerance - The ability to self-heal and return to normal capacity. Also the ability to withstand a failure and remain functional.

    High Availability - Being able to access a resource (in some use cases, using different platforms)

    What is the difference between high availability and Disaster Recovery?

    wintellect.com: "High availability, simply put, is eliminating single points of failure and disaster recovery is the process of getting a system back to an operational state when a system is rendered inoperative. In essence, disaster recovery picks up when high availability fails, so HA first."

    Explain Vertical Scaling

    Vertical Scaling is the process of adding resources to increase power of existing servers. For example, adding more CPUs, adding more RAM, etc.

    What are the disadvantages of Vertical Scaling?

    With vertical scaling alone, the component still remains a single point of failure. In addition, it has hardware limit where if you don't have more resources, you might not be able to scale vertically.

    Which type of cloud services usually support vertical scaling?

    Databases, cache. It's common mostly for non-distributed systems.

    Explain Horizontal Scaling

    Horizontal Scaling is the process of adding more resources that will be able handle requests as one unit

    What is the disadvantage of Horizontal Scaling? What is often required in order to perform Horizontal Scaling?

    A load balancer. You can add more resources, but if you would like them to be part of the process, you have to serve them the requests/responses. Also, data inconsistency is a concern with horizontal scaling.

    Explain in which use cases will you use vertical scaling and in which use cases you will use horizontal scaling
    Explain Resiliency and what ways are there to make a system more resilient
    Explain "Consistent Hashing"
    How would you update each of the services in the following drawing without having app (foo.com) downtime?

    What is the problem with the following architecture and how would you fix it?

    The load on the producers or consumers may be high which will then cause them to hang or crash.
    Instead of working in "push mode", the consumers can pull tasks only when they are ready to handle them. It can be fixed by using a streaming platform like Kafka, Kinesis, etc. This platform will make sure to handle the high load/traffic and pass tasks/messages to consumers only when the ready to get them.

    Users report that there is huge spike in process time when adding little bit more data to process as an input. What might be the problem?

    How would you scale the architecture from the previous question to hundreds of users?

    Cache

    What is "cache"? In which cases would you use it?
    What is "distributed cache"?
    What is a "cache replacement policy"?

    Take a look here

    Which cache replacement policies are you familiar with?

    You can find a list here

    Explain the following cache policies:
    • FIFO
    • LIFO
    • LRU

    Read about it here

    Why not writing everything to cache instead of a database/datastore?

    Migrations

    How you prepare for a migration? (or plan a migration)

    You can mention:

    roll-back & roll-forward cut over dress rehearsals DNS redirection

    Explain "Branch by Abstraction" technique

    Design a system

    Can you design a video streaming website?
    Can you design a photo upload website?
    How would you build a URL shortener?

    More System Design Questions

    Additional exercises can be found in system-design-notebook repository.

    Hardware

    What is a CPU?

    A central processing unit (CPU) performs basic arithmetic, logic, controlling, and input/output (I/O) operations specified by the instructions in the program. This contrasts with external components such as main memory and I/O circuitry, and specialized processors such as graphics processing units (GPUs).

    What is RAM?

    RAM (Random Access Memory) is the hardware in a computing device where the operating system (OS), application programs and data in current use are kept so they can be quickly reached by the device's processor. RAM is the main memory in a computer. It is much faster to read from and write to than other kinds of storage, such as a hard disk drive (HDD), solid-state drive (SSD) or optical drive.

    What is an embedded system?

    An embedded system is a computer system - a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is embedded as part of a complete device often including electrical or electronic hardware and mechanical parts.

    Can you give an example of an embedded system?

    Raspberry Pi

    What types of storage are there?

    Big Data

    Explain what is exactly Big Data

    As defined by Doug Laney:

    • Volume: Extremely large volumes of data
    • Velocity: Real time, batch, streams of data
    • Variety: Various forms of data, structured, semi-structured and unstructured
    • Veracity or Variability: Inconsistent, sometimes inaccurate, varying data
    What is DataOps? How is it related to DevOps?

    DataOps seeks to reduce the end-to-end cycle time of data analytics, from the origin of ideas to the literal creation of charts, graphs and models that create value. DataOps combines Agile development, DevOps and statistical process controls and applies them to data analytics.

    What is Data Architecture?

    An answer from talend.com:

    "Data architecture is the process of standardizing how organizations collect, store, transform, distribute, and use data. The goal is to deliver relevant data to people who need it, when they need it, and help them make sense of it."

    Explain the different formats of data
    • Structured - data that has defined format and length (e.g. numbers, words)
    • Semi-structured - Doesn't conform to a specific format but is self-describing (e.g. XML, SWIFT)
    • Unstructured - does not follow a specific format (e.g. images, test messages)
    What is a Data Warehouse?

    Wikipedia's explanation on Data Warehouse Amazon's explanation on Data Warehouse

    What is Data Lake?

    Data Lake - Wikipedia

    Can you explain the difference between a data lake and a data warehouse?
    What is "Data Versioning"? What models of "Data Versioning" are there?
    What is ETL?

    Apache Hadoop

    Explain what is Hadoop

    Apache Hadoop - Wikipedia

    Explain Hadoop YARN

    Responsible for managing the compute resources in clusters and scheduling users' applications

    Explain Hadoop MapReduce

    A programming model for large-scale data processing

    Explain Hadoop Distributed File Systems (HDFS)
    • Distributed file system providing high aggregate bandwidth across the cluster.
    • For a user it looks like a regular file system structure but behind the scenes it's distributed across multiple machines in a cluster
    • Typical file size is TB and it can scale and supports millions of files
    • It's fault tolerant which means it provides automatic recovery from faults
    • It's best suited for running long batch operations rather than live analysis
    What do you know about HDFS architecture?

    HDFS Architecture

    • Master-slave architecture
    • Namenode - master, Datanodes - slaves
    • Files split into blocks
    • Blocks stored on datanodes
    • Namenode controls all metadata

    Ceph

    Explain what is Ceph
    True or False? Ceph favor consistency and correctness over performances
    True
    Which services or types of storage Ceph supports?
    • Object (RGW)
    • Block (RBD)
    • File (CephFS)
    What is RADOS?
    • Reliable Autonomic Distributed Object Storage
    • Provides low-level data object storage service
    • Strong Consistency
    • Simplifies design and implementation of higher layers (block, file, object)
    Describe RADOS software components
    • Monitor
      • Central authority for authentication, data placement, policy
      • Coordination point for all other cluster components
      • Protect critical cluster state with Paxos
    • Manager
      • Aggregates real-time metrics (throughput, disk usage, etc.)
      • Host for pluggable management functions
      • 1 active, 1+ standby per cluster
    • OSD (Object Storage Daemon)
      • Stores data on an HDD or SSD
      • Services client IO requests
    What is the workflow of retrieving data from Ceph?
    What is the workflow of retrieving data from Ceph?
    What are "Placement Groups"?
    Describe in the detail the following: Objects -> Pool -> Placement Groups -> OSDs
    What is OMAP?
    What is a metadata server? How it works?

    Packer

    What is Packer? What is it used for?

    In general, Packer automates machine images creation. It allows you to focus on configuration prior to deployment while making the images. This allows you start the instances much faster in most cases.

    Packer follows a "configuration->deployment" model or "deployment->configuration"?

    A configuration->deployment which has some advantages like:

    1. Deployment Speed - you configure once prior to deployment instead of configuring every time you deploy. This allows you to start instances/services much quicker.
    2. More immutable infrastructure - with configuration->deployment it's not likely to have very different deployments since most of the configuration is done prior to the deployment. Issues like dependencies errors are handled/discovered prior to deployment in this model.

    Release

    Explain Semantic Versioning

    This page explains it perfectly:

    Given a version number MAJOR.MINOR.PATCH, increment the:
    
    MAJOR version when you make incompatible API changes
    MINOR version when you add functionality in a backwards compatible manner
    PATCH version when you make backwards compatible bug fixes
    Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.
    

    Certificates

    If you are looking for a way to prepare for a certain exam this is the section for you. Here you'll find a list of certificates, each references to a separate file with focused questions that will help you to prepare to the exam. Good luck :)

    AWS

    紺碧

    • AZ-900 (最終更新日: 2021)

    Kubernetes

    追加の DevOps および SRE プロジェクト

    クレジット

    誰もが新しいことを簡単に学べるようにしてくれた素晴らしい貢献者に感謝します:)

    ロゴクレジットはここにあります

    ライセンス

    ライセンス: CC BY-NC-ND 3.0