Yandex の勤務シフトをどのようにして回避したか

Yandex の勤務シフトをどのようにして回避したか

仕事が XNUMX 台のラップトップに収まり、他の人から自律的に実行できる場合は、遠隔地に移動することに問題はありません。午前中は家にいるだけで十分です。 しかし、誰もがそれほど幸運であるわけではありません。

当番交代はサービス可用性スペシャリスト (SRE) のチームです。 これには、職務管理者、開発者、マネージャーに加えて、それぞれ 26 インチの 55 個の LCD パネルからなる共通の「ダッシュボード」が含まれます。 会社のサービスの安定性や問題解決のスピードは当直の働きにかかっています。

今日はドミトリー・メリコフ タル10n当直当直の責任者である彼は、数日のうちにどのようにして機器を自宅に運び、新しい作業プロセスを確立したかについて語ります。 私は彼に発言権を与えます。

- 時間が無限にあるときは、どこにでも何を持ってでも快適に移動できます。 しかし、新型コロナウイルスの急速な感染拡大により、私たちはまったく異なる状況に置かれています。 Yandex の従業員は、自己隔離制度が導入される前から、いち早くリモートワークに切り替えました。 それはこのように起こりました。 12 月 13 日木曜日、私はチームの仕事を自宅に移す可能性を評価するように頼まれました。 17日の金曜日にリモートワークへの切り替えが勧告されました。 XNUMX 月 XNUMX 日火曜日の夜、すべての準備が整いました。職員は在宅勤務し、機器は移動され、不足しているソフトウェアは書き込まれ、プロセスは再構成されました。 それでは、どのようにしてそれを実現したかを説明します。 しかし、まず最初に、勤務シフトによって解決されるタスクについて覚えておく必要があります。

私たちは誰ですか

Yandex は数百ものサービスを提供する大企業です。 検索、音声アシスタント、その他すべての製品の安定性は開発者だけに依存するわけではありません。 データセンター内で電力供給が停止する可能性があります。 アスファルトの張り替え作業中に作業者が誤って光ケーブルを損傷する可能性があります。 あるいは、ユーザーのアクティビティが急増し、容量の緊急の再割り当てが必要になる可能性があります。 さらに、私たちは皆、大規模で複雑なインフラストラクチャの中で生活しているため、ある製品のリリースが誤って別の製品の機能低下を引き起こす可能性があります。

当社のオープン スペースにある 26 枚のパネルには、XNUMX のアラートと XNUMX を超える当社サービスのチャートとパネルが表示されます。 実際、これは巨大な診断パネルです。 経験豊富な業務管理者は、これを見ることで重要なノードの状態を迅速に把握し、技術的問題の調査の方向性を定めることができます。 これは、人がすべてのデバイスを常に監視する必要があるという意味ではありません。自動化自体は、当直担当者の特別なインターフェイスに通知を送信することで注目を集めますが、視覚的なパネルがなければ、問題の解決が遅れる可能性があります。

問題が発生した場合、担当者はまず優先順位を評価します。 その後、問題を特定するか、ユーザーへの影響を最小限に抑えます。

問題を切り分ける標準的な方法がいくつかあります。 その XNUMX つは、勤務中の管理者がユーザーがあまり気付かない機能の一部を無効にした場合のサービスの低下です。 これにより、一時的に負荷を軽減し、何が起こったのかを把握することができます。 データセンターに問題が発生した場合、当直担当者は運用チームに連絡し、問題を把握し、解決のタイミングをコントロールし、必要に応じて関連チームをつなぎます。

担当の管理者がリリースによって発生した問題を切り分けることができない場合、サービス チームに報告し、開発者は新しいコード内のエラーを探します。 それを理解できない場合、管理者はサービスを利用できるようにするために、他の製品から開発者やエンジニアを引きつけます。

すべてがどのように調整されているかについては長く話すことができますが、本質はすでに伝えられていると思います。 勤務交代はすべてのサービスの作業を調整し、世界的な問題を制御します。 勤務中の管理者にとって、目の前に診断パネルがあることが重要です。 そのため、リモートワークに切り替える場合、単に全員にラップトップを持ち帰って与えることはできません。 グラフとアラートは画面に収まりません。 何をするか?

アイデア

オフィスでは、勤務中の 26 人の管理者全員が、810 台のモニター、XNUMX 台のコンピューター、XNUMX 枚の NVIDIA Quadro NVS XNUMX ビデオ カード、XNUMX 台のラックマウント型無停電電源装置、およびいくつかの独立したネットワーク アクセスを含む同じダッシュボードで交代で作業しています。 誰もが在宅勤務の機会を確保できるようにする必要がありました。 アパートではそのような壁を組み立てることは不可能です(妻は特に喜ぶでしょう)。そこで、家に持ち込んで組み立てることができるポータブルバージョンを作成することにしました。

構成の実験を開始しました。 すべてのデバイスをより少ないディスプレイに収める必要があったため、モニターの主な要件は高ピクセル密度でした。 私たちの環境で利用可能な 4K モニターのうち、テストには Lenovo P27u-10 を選択しました。

ラップトップからは、16 インチ MacBook Pro を採用しました。 複数の 4K ディスプレイに画像をレンダリングするために必要な、かなり強力なグラフィック サブシステムと、XNUMX つのユニバーサル Type-C コネクタが搭載されています。 なぜデスクトップではないのかと疑問に思うかもしれません。 ラップトップを倉庫から取り出したまったく同じものと交換することは、同一のシステムユニットを組み立てて構成するよりもはるかに簡単かつ迅速です。 そしてはい、それはより軽いです。

次に、ラップトップに実際に接続できるモニターの数を理解する必要がありました。 ここでの問題はコネクタの数ではなく、システムをアセンブリとしてテストすることによってのみ判明します。

Yandex の勤務シフトをどのようにして回避したか

テスト

すべてのチャートとアラートを 4 台のモニターに快適に配置し、ラップトップにも接続しましたが、問題が発生しました。 接続されたモニターで 4×3K ピクセルをレンダリングすると、ビデオ カードに負荷がかかりすぎて、充電中でもラップトップが放電してしまいました。 幸いなことに、この問題は Lenovo ThinkPad Thunderbolt 2 Dock Gen XNUMX ドッキング ステーションの助けで解決され、モニター、電源、さらにはお気に入りのマウスとキーボードをドッキング ステーションに接続することができました。

しかし、別の問題がすぐに表面化しました。GPU が異常に膨張し、ラップトップが過熱しました。つまり、バッテリーも過熱し、その結果、保護モードになり、充電が停止されました。 一般に、これは危険な状況から保護する非常に便利なモードです。 場合によっては、換気を改善するためにラップトップの下にボールペンを置くというハイテク装置の助けを借りて問題が解決されました。 しかし、これはすべての人にとって役に立たなかったので、標準ファンの速度も上げました。

もう一つ不快な特徴がありました。 すべてのチャートとアラートは、厳密に定義された場所に配置する必要があります。 あなたが着陸する飛行機を操縦していると想像してください。すると、速度計、高度計、バリオメーター、人工地平線、コンパス、位置計器などがサイズを変え、さまざまな場所で飛び回り始めます。 そこで、これを支援するアプリケーションを作成することにしました。 ある晩、私たちは既成のファイルを利用して Electron.js 上にそれを書きました。 API ウィンドウの作成と管理に使用します。 構成ハンドラーとその定期的な更新、および限られた数のモニターのサポートを追加しました。 少し後に、さまざまなセットアップのサポートが追加されました。

組み立てと配送

月曜日までに、ヘルプデスクのウィザードは 40 台のモニター、XNUMX 台のラップトップ、そして同数のドッキング ステーションを私たちに用意してくれました。 彼らがどうやってそれをしてくれたのか分かりませんが、本当にありがとうございました。

Yandex の勤務シフトをどのようにして回避したか

これらすべてを勤務中の管理者のアパートに届けることが残っていました。 これらはモスクワのさまざまな地域にある 45 の住所です。南、東、中心部、そしてオフィスから XNUMX キロ離れたバラシハもあります (ちなみに、セルプホフからのインターンも後で追加されました)。 これらすべてを何らかの方法で人々の間で分配し、物流を構築する必要がありました。

マップにすべての住所を入力しましたが、さまざまな地点間のルートを最適化する機会はまだあります (宅配業者用のツールの無料ベータ版を使用しました)。 私たちはチームを XNUMX 人からなる XNUMX つの独立したチームに分け、それぞれが独自のルートを受け取りました。 私の車が一番広いことが判明したので、従業員 XNUMX 人分の装備を一度に運びました。

Yandex の勤務シフトをどのようにして回避したか

配達には記録的なXNUMX時間かかりました。 私たちは月曜日の午後XNUMX時にオフィスを出ました。 午前XNUMX時に私はすでに家にいました。 その同じ夜、私たちは新しい装備を持って任務に就きました。

その結果と

XNUMX 台の大きな診断コンソールの代わりに、各当番職員のアパートに比較的持ち運び可能な XNUMX 台の診断コンソールを集めました。 もちろん、まだ解決すべき点がいくつかありました。 たとえば、以前は通知用に当直職員の「鉄の」電話が XNUMX 台ありました。 新しい状況ではこれは機能しませんでした。そのため、勤務者用の「仮想電話」を考案しました (実際には、メッセンジャー内のチャネル)。 他にも変更がありました。 しかし重要なことは、記録的な速さで、プロセスや製品の安定性に悪影響を与えることなく、人々だけでなく感染のリスクを軽減するだけでなく、すべての在宅勤務を移管することに成功したということです。 私たちはこれをXNUMXか月間続けています。

以下に、私たちのアテンダントの実際の仕事の写真を示します。

Yandex の勤務シフトをどのようにして回避したか

Yandex の勤務シフトをどのようにして回避したか

Yandex の勤務シフトをどのようにして回避したか

Yandex の勤務シフトをどのようにして回避したか

Yandex の勤務シフトをどのようにして回避したか

出所: habr.com