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」に設定することによって作成されます。特定のネットワーク内では、使用可能なホストアドレスの合計のうち、2つは常に特定の目的のために予約されており、どのホストにも割り当てることはできません。これらは、ネットワークアドレス(別名ネットワーク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. 各ホストがランダムな時間待機すると、フレームを再度送信しようとします。
    次のネットワークデバイスとそれらの違いについて説明します。
    • ルーター
    • スイッチ
    • ハブ

    「衝突ドメイン」とは何ですか?
    「ブロードキャストドメイン」とは何ですか?
    スイッチに接続された 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ハンドシェイクはどのように機能しますか?
    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(192.168.1.100)ではなくパブリックIP(1.1.1.1)からのトラフィックが表示されます。

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

    • 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

    デマンドページングとは何ですか?
    コピーオンライトまたはシャドウイングとは何ですか?
    カーネルとは何ですか、そしてそれは何をしますか?

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

    • メモリの割り当て
    • プロセスのスケジュール
    • 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 の変数です。

    withweは変数の型を整数に設定していますが、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)
    }

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

    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]

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

    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 を使用しますか?
    • 頻繁に変更される異種データ
    • データの一貫性と整合性は最優先事項ではない
    • データベースを迅速に拡張する必要がある場合に最適
    ドキュメントとはコレクションとは
    アグリゲーターとは
    何が良いですか?埋め込まれたドキュメントまたは参照されていますか?
    Mongoでデータ取得の最適化を実行しましたか?そうでない場合は、遅いデータ取得を最適化する方法を考えることができますか?
    クエリ
    このクエリを説明してください:
    db.books.find({"name": /abc/})

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

    find() と find_one() の違いは何ですか?
    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
    として選択します 顧客から
    ここで 0 Items_in_cart >;

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

    あなたはそれらをユニークなキーで結合するでしょう。この場合、一意のキー 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 - 仮想インスタンスの管理
    • 燃えがら - ブロックストレージ
    • キーストーン - クラウド全体の認証サービス
    次のそれぞれに使用されるサービス/プロジェクトを特定します。
    • インスタンスのコピーまたはスナップショット
    • リソースを表示および変更するための 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 呼び出しの処理を担当します。これは2つのAPIで構成されています:1.レジストリ-API - 内部要求を担当します2。ユーザー 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 - アラームサービス
    • Ceilometer - Track and monitor usage
    次のそれぞれに使用されるサービス/プロジェクトを特定します。
    • OpenStack 上で実行されるサービスとしてのデータベース
    • ベア・メタル・プロビジョニング
    • 使用状況の追跡と監視
    • アラームサービス
    • Hadoop クラスターの管理
    • highly available, distributed, eventually consistent object/blob store

    • Database as a service which runs on OpenStack - Trove
    • Bare Metal Provisioning - Ironic
    • Track and monitor usage - Ceilometer
    • Alarms Service - Aodh
    • Manage Hadoop Clusters
    • Manage Hadoop Clusters - Sahara
    • highly available, distributed, eventually consistent object/blob store - Swift

    OpenStack Advanced - Keystone

    Can you describe Keystone service in detail?
    • You can't have OpenStack deployed without Keystone
    • It Provides identity, policy and token services
      • The authentication provided is for both users and services
      • The authorization supported is token-based and user-based.
    • There is a policy defined based on RBAC stored in a JSON file and each line in that file defines the level of access to apply
    Describe Keystone architecture
    • There is a service API and admin API through which Keystone gets requests
    • Keystone has four backends:
      • Token Backend - Temporary Tokens for users and services
      • Policy Backend - Rules management and authorization
      • Identity Backend - users and groups (either standalone DB, LDAP, ...)
      • Catalog Backend - Endpoints
    • It has pluggable environment where you can integrate with:
      • LDAP
      • KVS (Key Value Store)
      • SQL
      • PAM
      • Memcached
    Describe the Keystone authentication process
    • Keystone gets a call/request and checks whether it's from an authorized user, using username, password and authURL
    • Once confirmed, Keystone provides a token.
    • A token contains a list of user's projects so there is no to authenticate every time and a token can submitted instead

    OpenStack Advanced - Compute (Nova)

    What each of the following does?:
    • nova-api
    • nova-compuate
    • nova-conductor
    • nova-cert
    • nova-consoleauth
    • nova-scheduler

    • nova-api - responsible for managing requests/calls
    • nova-compute - responsible for managing instance lifecycle
    • nova-conductor - Mediates between nova-compute and the database so nova-compute doesn't access it directly
    What types of Nova proxies are you familiar with?
    • Nova-novncproxy - Access through VNC connections
    • Nova-spicehtml5proxy - Access through SPICE
    • Nova-xvpvncproxy - Access through a VNC connection

    OpenStack Advanced - Networking (Neutron)

    Explain BGP dynamic routing
    What is the role of network namespaces in OpenStack?

    OpenStack Advanced - Horizon

    Can you describe Horizon in detail?
    • Django-based project focusing on providing an OpenStack dashboard and the ability to create additional customized dashboards
    • You can use it to access the different OpenStack services resources - instances, images, networks, ...
      • By accessing the dashboard, users can use it to list, create, remove and modify the different resources
    • It's also highly customizable and you can modify or add to it based on your needs
    What can you tell about Horizon architecture?
    • API is backward compatible
    • There are three type of dashboards: user, system and settings
    • It provides core support for all OpenStack core projects such as Neutron, Nova, etc. (out of the box, no need to install extra packages or plugins)
    • Anyone can extend the dashboards and add new components
    • Horizon provides templates and core classes from which one can build its own dashboard

    Puppet

    What is Puppet? How does it works?
    • Puppet is a configuration management tool ensuring that all systems are configured to a desired and predictable state.
    Explain Puppet architecture
    • Puppet has a primary-secondary node architecture. The clients are distributed across the network and communicate with the primary-secondary environment where Puppet modules are present. The client agent sends a certificate with its ID to the server; the server then signs that certificate and sends it back to the client. This authentication allows for secure and verifiable communication between the client and the master.
    Can you compare Puppet to other configuration management tools? Why did you chose to use Puppet?
    Explain the following:
    • Module
    • Manifest
    • Node

    • Modules - are a collection of manifests, templates, and files
    • Manifests - are the actual codes for configuring the clients
    • Node - allows you to assign specific configurations to specific nodes
    Explain Facter
    What is MCollective?
    Do you have experience with writing modules? Which module have you created and for what?
    Explain what is Hiera

    Elastic

    What is the Elastic Stack?

    The Elastic Stack consists of:

    • Elasticsearch
    • Kibana
    • Logstash
    • Beats
    • Elastic Hadoop
    • APM Server

    Elasticserach, Logstash and Kibana are also known as the ELK stack.

    Explain what is Elasticsearch

    From the official docs:

    "Elasticsearch is a distributed document store. Instead of storing information as rows of columnar data, Elasticsearch stores complex data structures that have been serialized as JSON documents"

    What is Logstash?

    From the blog:

    "Logstash is a powerful, flexible pipeline that collects, enriches and transports data. It works as an extract, transform & load (ETL) tool for collecting log messages."

    Explain what beats are

    Beats are lightweight data shippers. These data shippers installed on the client where the data resides. Examples of beats: Filebeat, Metricbeat, Auditbeat. There are much more.

    What is Kibana?

    From the official docs:

    "Kibana is an open source analytics and visualization platform designed to work with Elasticsearch. You use Kibana to search, view, and interact with data stored in Elasticsearch indices. You can easily perform advanced data analysis and visualize your data in a variety of charts, tables, and maps."

    Describe what happens from the moment an app logged some information until it's displayed to the user in a dashboard when the Elastic stack is used

    The process may vary based on the chosen architecture and the processing you may want to apply to the logs. One possible workflow is:

    1. The data logged by the application is picked by filebeat and sent to logstash
    2. Logstash process the log based on the defined filters. Once done, the output is sent to Elasticsearch
    3. Elasticsearch stores the document it got and the document is indexed for quick future access
    4. The user creates visualizations in Kibana which based on the indexed data
    5. The user creates a dashboard which composed out of the visualization created in the previous step
    Elasticsearch
    What is a data node?

    This is where data is stored and also where different processing takes place (e.g. when you search for a data).

    What is a master node?

    Par of a master node responsibilites:

    • Track the status of all the nodes in the cluster
    • Verify replicas are working and the data is available from every data node.
    • No hot nodes (no data node that works much harder than other nodes)

    While there can be multiple master nodes in reality only of them is the elected master node.

    What is an ingest node?

    A node which responsible for parsing the data. In case you don't use logstash then this node can recieve data from beats and parse it, similarly to how it can be parsed in Logstash.

    What is Coordinating node?

    A Coordinating node responsible for routing requests out and in to the cluser (data nodes).

    How data is stored in elasticsearch?
    • Data is stored in an index
    • The index is spread across the cluster using shards
    What is an Index?

    Index in Elastic is in most cases compared to a whole database from the SQL/NoSQL world.
    You can choose to have one index to hold all the data of your app or have multiple indices where each index holds different type of your app (e.g. index for each service your app is running).

    The official docs also offer a great explanation (in general, it's really good documentation, as every project should have):

    "An index can be thought of as an optimized collection of documents and each document is a collection of fields, which are the key-value pairs that contain your data"

    Explain Shards

    An index is split into shards and documents are hashed to a particular shard. Each shard may be on a different node in a cluster and each one of the shards is a self contained index.
    This allows Elasticsearch to scale to an entire cluster of servers.

    What is an Inverted Index?

    From the official docs:

    "An inverted index lists every unique word that appears in any document and identifies all of the documents each word occurs in."

    What is a Document?

    Continuing with the comparison to SQL/NoSQL a Document in Elastic is a row in table in the case of SQL or a document in a collection in the case of NoSQL. As in NoSQL a Document is a JSON object which holds data on a unit in your app. What is this unit depends on the your app. If your app related to book then each document describes a book. If you are app is about shirts then each document is a shirt.

    You check the health of your elasticsearch cluster and it's red. What does it mean? What can cause the status to be yellow instead of green?

    Red means some data is unavailable. Yellow can be caused by running single node cluster instead of multi-node.

    True or False? Elasticsearch indexes all data in every field and each indexed field has the same data structure for unified and quick query ability

    False. From the official docs:

    "Each indexed field has a dedicated, optimized data structure. For example, text fields are stored in inverted indices, and numeric and geo fields are stored in BKD trees."

    What reserved fields a document has?
    • _index
    • _id
    • _type
    Explain Mapping
    What are the advantages of defining your own mapping? (or: when would you use your own mapping?)
    • You can optimize fields for partial matching
    • You can define custom formats of known fields (e.g. date)
    • You can perform language-specific analysis
    Explain Replicas

    In a network/cloud environment where failures can be expected any time, it is very useful and highly recommended to have a failover mechanism in case a shard/node somehow goes offline or disappears for whatever reason. To this end, Elasticsearch allows you to make one or more copies of your index’s shards into what are called replica shards, or replicas for short.

    Can you explain Term Frequency & Document Frequency?

    Term Frequency is how often a term appears in a given document and Document Frequency is how often a term appears in all documents. They both are used for determining the relevance of a term by calculating Term Frequency / Document Frequency.

    You check "Current Phase" under "Index lifecycle management" and you see it's set to "hot". What does it mean?

    "The index is actively being written to". More about the phases here

    What this command does?
    curl -X PUT "localhost:9200/customer/_doc/1?pretty" -H 'Content-Type: application/json' -d'{ "name": "John Doe" }'

    It creates customer index if it doesn't exists and adds a new document with the field name which is set to "John Dow". Also, if it's the first document it will get the ID 1.

    What will happen if you run the previous command twice? What about running it 100 times?
    1. If name value was different then it would update "name" to the new value
    2. In any case, it bumps version field by one
    What is the Bulk API? What would you use it for?

    Bulk API is used when you need to index multiple documents. For high number of documents it would be significantly faster to use rather than individual requests since there are less network roundtrips.

    Query DSL
    Explain Elasticsearch query syntax (Booleans, Fields, Ranges)
    Explain what is Relevance Score
    Explain Query Context and Filter Context

    From the official docs:

    "In the query context, a query clause answers the question “How well does this document match this query clause?” Besides deciding whether or not the document matches, the query clause also calculates a relevance score in the _score meta-field."

    "In a filter context, a query clause answers the question “Does this document match this query clause?” The answer is a simple Yes or No — no scores are calculated. Filter context is mostly used for filtering structured data"

    Describe how would an architecture of production environment with large amounts of data would be different from a small-scale environment

    There are several possible answers for this question. One of them is as follows:

    A small-scale architecture of elastic will consist of the elastic stack as it is. This means we will have beats, logstash, elastcsearch and kibana.
    A production environment with large amounts of data can include some kind of buffering component (e.g. Reddis or RabbitMQ) and also security component such as Nginx.

    Logstash
    What are Logstash plugins? What plugins types are there?
    • Input Plugins - how to collect data from different sources
    • Filter Plugins - processing data
    • Output Plugins - push data to different outputs/services/platforms
    What is grok?

    A logstash plugin which modifies information in one format and immerse it in another.

    How grok works?
    What grok patterns are you familiar with?
    What is `_grokparsefailure?`
    How do you test or debug grok patterns?
    What are Logstash Codecs? What codecs are there?
    Kibana
    What can you find under "Discover" in Kibana?

    The raw data as it is stored in the index. You can search and filter it.

    You see in Kibana, after clicking on Discover, "561 hits". What does it mean?

    Total number of documents matching the search results. If not query used then simply the total number of documents.

    What can you find under "Visualize"?

    "Visualize" is where you can create visual representations for your data (pie charts, graphs, ...)

    What visualization types are supported/included in Kibana?
    What visualization type would you use for statistical outliers
    Describe in detail how do you create a dashboard in Kibana

    Filebeat

    What is Filebeat?
    If one is using ELK, is it a must to also use filebeat? In what scenarios it's useful to use filebeat?
    What is a harvester?

    Read here

    True or False? a single harvester harvest multiple files, according to the limits set in filebeat.yml

    False. One harvester harvests one file.

    What are filebeat modules?

    Elastic Stack

    How do you secure an Elastic Stack?

    You can generate certificates with the provided elastic utils and change configuration to enable security using certificates model.

    Distributed

    Explain Distributed Computing (or Distributed System)

    According to Martin Kleppmann:

    "Many processes running on many machines...only message-passing via an unreliable network with variable delays, and the system may suffer from partial failures, unreliable clocks, and process pauses."

    Another definition: "Systems that are physically separated, but logically connected"

    What can cause a system to fail?
    • Network
    • CPU
    • Memory
    • Disk
    Do you know what is "CAP theorem"? (aka as Brewer's theorem)

    According to the CAP theorem, it's not possible for a distributed data store to provide more than two of the following at the same time:

    • Availability: Every request receives a response (it doesn't has to be the most recent data)
    • Consistency: Every request receives a response with the latest/most recent data
    • Partition tolerance: Even if some the data is lost/dropped, the system keeps running
    What are the problems with the following design? How to improve it?

    1. The transition can take time. In other words, noticeable downtime. 2. Standby server is a waste of resources - if first application server is running then the standby does nothing
    What are the problems with the following design? How to improve it?

    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

    Azure

    • AZ-900 (Latest update: 2021)

    Kubernetes

    Additional DevOps and SRE Projects

    Credits

    Thanks to all of our amazing contributors who make it easy for everyone to learn new things :)

    Logos credits can be found here

    License

    License: CC BY-NC-ND 3.0