Understanding Graceful Routing Engine Switchoverのメモ
Understanding Graceful Routing Engine Switchoverがわからんので、 https://www.juniper.net/documentation/us/en/software/junos/high-availability/topics/topic-map/gres-understanding.html を見ていた。日本語にしていたら実質翻訳みたいになったので、供養する。
※ この文章は2024/05時点のものであり、翻訳の正しさについては責任を取れません。商用環境に設定をいれる場合はちゃんとオリジナルの方を見てご対応をお願いしまします。
GRESの説明と要件についての説明
- Graceful Routing Engine Switchover Concepts
Graceful Routing Engine Switchover (GRES) はJunos とJunos Evoで利用可能で、たとえprimary REが落ちても冗長系のREがパケットのフォワーディングを継続して実施する。 GRESはインターフェースとカーネルの情報を保存し、通信に影響がないようにする。しかし、GRESはc-planeの情報を保存しない。
- Junos Evo: - Junos Evoが乗っているPTX10k (PTX10004, PTX10004, PTX10016)はGRESがデフォルトでenableになっていてdisableにすることができない
- Note: - Tシリーズのルータはnonstop active routing (NSR) とGRESを組み合わせた場合にc-placeを保持する。またGRESが有効である状態だとPacket Forwarding Engineごとにline rateの75%のトラフィックを落とさずに通信する。
隣接するデバイスは、デバイスが再起動したことを検出し、個々のルーティングプロトコルの仕様で指定された方法でそのイベントに反応する。
switchover中もルーティングを提供するために、GRESは下記を組み合わせないといけない。
- Graceful restart protocol extensions
- Nonstop active routing (NSR)
primary REが切り替わるような事象が起きた際にbackup REにできるだけ早く切り替えを実施するためにいくつかのアップデートがある。
- Note: 2つのREがsyncするための要件やlogicのために、NSR/GRESのパフォーマンスはシステムの中のREの最も重いものために制限がある。
Primary Roleがbackup REにswtichするための条件は下記:
- primary REのカーネルの動作が止まった
- primery REのハードウェア故障
- 管理者が手動でswitchoverした
Note: switchoverの間にルーティングプロトコルのstateの情報を保持素早く修復するために、GRESはgraceful restartかNSRのどちらかか両方を組み合わせるべき(must)。 graceful restartの追加情報は https://www.juniper.net/documentation/us/en/software/junos/high-availability/topics/concept/graceful-restart-concepts.html を、NSRは https://www.juniper.net/documentation/us/en/software/junos/high-availability/topics/concept/nsr-overview.html を見てね。
もしbackup REがprimary REからkeepaliveを2秒( M20では4秒 )受け取ることができなかった場合は、primary REが故障したと決定すし、primary roleを引き受ける。 Packet Forwarding Engineは
- シームレスに古いREを切り離す
- 新しいREにつなぎ直す
- 再起動しない
- トラフィックに影響を与えない
もし新しいREとPacket Routing Engineはその後同期する。新しいprimary REがPacket Routing Engineが最新でないことを検知した場合、state update messageを再送信します。
下記のGRESの挙動の推奨と要件について注意すること
Junos 12.2から、もし隣接機器のhelpeのpeerrがタイムアウトしたり、デバイスが再起動したら、graceful restart protocolの拡張が再起動を起こしそうなことについてhelperデバイスのpeerが知らせることができない。Gracefull restartは停止し、トラフィックを落とす可能性がある。隣接関係を維持するために、IS-ISではhold-timeをデフォルトの27秒から40秒よりも大きくする。
連続したSwitchoverは両方のREが起動してから最低でも240秒ごとに実施する必要がある。240秒以内にswitchoverを試みると下記のようなメッセージが表示される。
Standby Routing Engine is not ready for graceful switchover. Packet Forwarding Engines that are not ready for graceful switchover might be reset
もしswitchoverが手動で実施された場合、デバイスはgraceful switchoverのための準備ができてないPacket Forwarding Engineのみリセットする。FPCは自動的に再起動してないようにする。warningが表示されなくなるまで待ってからswitchoverを実施することを推奨する。
Junos 14.2からMXシリーズでGRESをする場合は、clear synchronous-ethernet wait-to-restore コマンドを新しいPrimary REでwait-to-restore timerをクリアするために実施しなければならない。このコマンドはlocal REのタイマーのみをresetするため実施が必要である。
TX Matric Plusで3D SIBを使っている場合は、連続したREのswitchoverは両方のREが起動してから900秒以上経過しなければならない。同期に関する問題を避けてGRESするために一つだけで実施する必要がある。
Juniper社は下記を推奨しない。
- GRESが有効になっているデバイスでのbackup REへのcommit オペレーション
- backup REでGRESが有効になっている任意のシナリオ
あなたがNonstop routingをGRESと共にQFX10000で有効にしているとき、Juniper社は [edit routing-options] の階層に nsr-phantom-holdtime を設定することを強く推奨します。switchoverのときにトラフィックをロスすることを助けるために。もしこの設定を入れていたら、特定のhold-timerが切れるまで、phantom IPアドレスはswitchoverの間もカーネルに残る。タイマーが切れたあと、デバイスは適切なルーティングテーブルに対応する経路を追加する。Ethernet VPN (EVPN) - VXLAN環境では、Juniper社はhold-timeを300秒にすることを推奨します。このオプションは冗長REがなく、GRESをサポートしていないQFX10002では受け入れられません。
図1はGraceful Routing Engine switchoverのシステムアーキテクチャと、switchoverのためのREの準備に関するプロセスを表したものだ。
図は本家サイト見てね。
Note: 下記の両方を実行してGRESの準備ができていることを確認してください。 - Primary REで request chassis routing-engine master switch check を実行する。 - Backup REで show system switchover を実行する。
GRESのためのswitchoverの準備工程を下記の1から8で説明する。
- primary REのスタート
- routing platformプロセス (chassisプロセス[chassisd]のような)のスタート
- Packet Forwarding engineがスタートし、primary REと接続
- システムのすべての情報がアップデートされる
- backup REスタート
- システムはGRESを有効にできるか決定する
- kernel synchronization プロセス (ksyncd)はbackup REをprimary REと同期する。
- ksyncdが同期を完了させたあと、すべての状態の情報とforwardingテーブルをアップデートする
図2はルーティング(やスイッチング)プラットフォーム上でのswitchoverの効果を示している。switchoverは下記の1から5のステップで構成されている。
- primary REからkeepaliveがロストしたとき、システムはbackup REへの優雅な切り替えを実施する。
- Packet Forwarding Engineは新しくprimaryになった旧backup REに接続する。
- Routing platoformはGRESに含まれていない(rpdのようなroutingプロセス)の再起動を実施する。
- スイッチオーバーの時点から学習した状態情報はシステム内で更新される
- グレースフルリスタートプロトコルの拡張が設定されている場合、隣接するピアヘルパーデバイスからルーティング情報を収集し、復元する
Note: MXシリーズルーターで拡張サブスクライバー管理を使用している場合、新しいバックアップルーティングエンジン(以前のプライマリルーティングエンジン)は、優雅なルーティングエンジンの切り替えが実行されたときに再起動する。この再起動により、バックアップルーティングエンジンの状態が新しいプライマリルーティングエンジンの状態と同期され、切り替え中に発生した状態の不一致を防ぐ。
Note: GRESを使用するTシリーズおよびM320ルーターでは、GRES中にスイッチインターフェースボード(SIB)がオフラインになり、1つずつ再起動する。これは、SIBを管理するスイッチプロセッサメザニンボード(SPMB)が関連するSIBの状態情報を適切に取得するための時間を確保するためである。ただし、すべてのFPCがフルラインレートでトラフィックを送信している完全にポピュレートされたシャーシでは、切り替え中に一時的なパケットロスが発生する可能性がある。
注意:GRESが構成されていて、TX Matrix Plusルーターに3D SIBが搭載されている場合、restart chassis-controlコマンドを実行してもどのルーティングエンジンがプライマリになるかは判別できない。これは、chassisdプロセスがrestart chassis-controlコマンドの実行時に再起動するためである。chassisdプロセスはプライマリの役割を維持および保持する責任があり、再起動されると新しいchassisdはデバイスの負荷に基づいて処理される。その結果、どちらかのルーティングエンジンがプライマリになる。
Effects of a Routing Engine Switchover
表1は異なる機能をenableにしたときのREのswitchoverの効果について説明する。
- high availabilityの機能を使わない
- Graceful Routing Engine switchover
- Greceful restart
- Nonstop active routing
RE冗長あり(機能は有効になってない場合)
利点:
- 新しいプライマリルーティングエンジンへの切り替えが完了すると、ルーティング収束が行われ、トラフィックが再開されます
考慮点:
- すべての物理インターフェースがオフラインになる
- Packet Forwarding Engineの再起動
- backup REはルーティングプロトコルのプロセス(rpd)を再起動する
- すべてのハードウェアとインターフェースは新しいprimary REを発見する
- switchoverにいくつかの時間がかかる
- デバイスのすべての隣接関係は、物理的な変更(インターフェースのアラーム)およびルーティングの変更(トポロジー)に気付く
GRESが有効
利点:
- スイッチオーバー中、インターフェースとカーネル情報は保持される
- パケット転送エンジンは再起動されないため、スイッチオーバーは高速である
考慮点:
- 新しいプライマリ ルーティング エンジンはルーティング プロトコル プロセス (rpd) を再起動します。
- すべてのハードウェアとインターフェースは、ウォームリスタートに似たプロセスで取得されます。
- すべての隣接関係は、デバイスの状態変化を認識しています。
GRESとNSRが有効
利点:
- スイッチオーバー中、トラフィックは中断されません。
- インターフェースとカーネル情報は保持されます。
考慮点:
- サポートされていないプロトコルは、各プロトコル固有の通常の回復メカニズムを使用して更新する必要があります。
GRESとgraceful restartが有効
利点
- スイッチオーバー中、トラフィックは中断されません。
- インターフェースとカーネル情報は保持されます。
- 優雅な再起動プロトコルの拡張は、隣接デバイスから迅速にルーティング情報を収集し、復元します。
欠点
- 隣接デバイスは優雅な再起動をサポートする必要があり、待機間隔が必要です。
- ルーティングプロトコルプロセス (rpd) が再起動します。
- 特定のプロトコルでは、ネットワークの重大な変更が優雅な再起動を停止させる可能性があります。
- Junos OS リリース 12.2 以降では、再起動デバイスと隣接するピア「ヘルパー」デバイス間の隣接がタイムアウトした場合、優雅な再起動が停止し、トラフィックの中断を引き起こすことがあります。
YAPC::Japan::Oneline 2022 参加したり回答者で登場しました
#yapcjapan ライブコーディングバトル参加します
— Kaoru Nagashima (なかてやん) (@kaoru_nkchan) 2022年3月4日
酔っぱらいコーディング大会になりそう https://t.co/tIHqro212h
ということで
の懇親会、クイズ企画の回答者として参加させていただきました!!
ご飯とお酒が美味しすぎて飲酒コーディングでいい気持ちでコードが書けましたし、youtubeで配信されている緊張もなく(それでいいのか?)ワイワイできました。
僕のコード書けてなさはyoutubeでのちほどアーカイブがでるのでいいとして、Discordで挙げられていたコードをいくつか見ていこうかなと思います~
昨日のクイズ大会の第1問です。コード書いて楽しんでください! #yapcpajan pic.twitter.com/00tzm2BHys
— tomcha@転職検討中 (@tomcha_) 2022年3月5日
一問目
これがわかりやすいなぁと思いながら見ていました。
if ($input =~ /\A(.+?)(\d)年) { // $1= 元号 // $2 = 年 }
これよこれ。ちなみに僕は
@input = split /\A(.+?)(\d)年/ $ARGV[0]
的なことがしたかった。あー、これしなくてもいいのかと思い出した。(参加する前にコード書いておけと言われると刺されて死ぬ)
二問目
昨日のクイズ大会の第2問です。コード書いて楽しんでください! #yapcpajan pic.twitter.com/57QLQJ0MQZ
— tomcha@転職検討中 (@tomcha_) 2022年3月5日
なんで飲酒崩壊ライブコーディング中にこれが出てくるんだと思ったw。配信終了後に裏側で解説を聞いて理解できた。すげーまじで。
思ったこと
最初にお声がけ頂いたときはちゃんと書けるかどうかすごく心配だったんですが、書ける書けないよりも、「みんながガヤガヤしながら楽しくコードを書く」っていうのをできたのでいいのかなと思っています。(書けたほうがいい、それはそう)「わかんね~」とか「なんで~」とか言ってるのめちゃくちゃ配信されるんだなぁとか思いつつも、入学式のコンテンツ的にはわからないから落ち込むんじゃなくてヘラヘラしてる姿ってのを見せられてすごくいいということにしておこうと思います。いいイベントだったなぁ。関係者の皆様、いろいろありがとうございました!!!!
お酒とかご飯が美味しかった
よきよき
— Kaoru Nagashima (なかてやん) (@kaoru_nkchan) 2022年3月4日
#yapcjapan pic.twitter.com/B6SUGrW7yK
うぉぉぉ
— Kaoru Nagashima (なかてやん) (@kaoru_nkchan) 2022年3月4日
#yapcチキン pic.twitter.com/nkG56ZyHbR
🍕きた!!
— Kaoru Nagashima (なかてやん) (@kaoru_nkchan) 2022年3月5日
#yapcjapan pic.twitter.com/mD5ASUGiFr
最高最高!!!
トーク系の感想は気が向いたら書きます。
久しぶりのYAPCは非常に楽しかったです。 ではでは
LTの説明をするLTスライドを作った
自粛のなか 楽しいことをしたいなって思った.
あと,研究室で週一オンラインミーティングが開催されることになった.
どさくさに紛れてLT文化を根付けないかなということを思いついたので,
今日のミーティングでLTとは?LTをしようと思って資料を作った.
とはいえ,言い出しっぺなので自分のLT資料も作った.
あまりにもB4とお話をする機会が少なすぎる.というわけでお互いをしるようにしたいなって思った.
自粛期間だからいい感じにできるかなって思ってやり始めてみる.
Mac のセットアップについて
この記事は僕個人のMacのセットアップの備忘録と,研究室のB4にむけて「こんなソフト便利だよ!」っていう宣伝です.どこまでするかはおまかせします.とはいえ,高いお金を払ってMacを買ってるので,使いこなせるに越したことはありません.ぜひぜひ,自分だけのMacを作り上げてください.
ちなみに有料ソフトも入れております.僕は気づいたら課金していますが,みなさん,自分のお財布と相談してください.別に課金してって言ってるわけじゃないです.僕が異常なので無視してください.
有料には有料と記載
ちなみに,ちょこちょこした設定は,下記のブログから欲しい物だけ適用したらいいと思います.いらんものはべつにやらなくてもいいので. Macのオススメ初期セットアップ(Mojave) - Qiita
文字入力編
Google日本語入力 or ATOK
Google 日本語入力 – Google ATOK.com | ジャストシステム 有料
好きなものを使えばいいと思っているが,挙げるならこの 2つかなぁ.(ATOK使ったことないけど) 研究室生活では句読点をカンマ,ピリオドに変えるのを忘れずに!
使ってると研究独自のワードもスラスラでるようになります.
Terminal
めちゃめちゃ使います.デフォルトのターミナルよりも良いソフトがあるので,これ入れちゃってください.いろいろ便利です.
iTerm2
iTerm2 - macOS Terminal Replacement
なにが便利かというと,タブとか,画面分割が便利です.まじで神.他にもいろいろな機能があるので,ぜひぜひどうぞ. MacのターミナルアプリはiTerm2で決まり!!オススメの設定と基本的な機能まとめ – Webrandum
ちなみに僕は痛Terminalを作りました. iTerm2でSSHログイン先別にプロファイルを自動的に切替えて事故防止する方法 | Developers.IO

Office
研究室生活では不可欠です.大学で入れましょう.
Latex
美文書作成入門付属のインストーラー
最新の版が研究室にあります.見てみてください. 改訂版が出たら先生に言って,買ってもらうことを推奨
日本語でLatexのバイブルと言ってもいい.奥山先生のインストーラーでLatexを入れたら問題はないって基本的に思っていいです.そこら編の無料のLatexとは安心感が違う.
PATH: /Applications/TeXLive/Library/texlive/2017/bin/x86_64-darwin
エディター
ここはこだわりましょう.これを使う!っていう感じで一個決めておくとよいです.これからたくさんの文字を打ちます.そのときに自分にあうソフトウェアで効率よくやっていきましょう.以下,おすすめです.
プログラミング
「CotEditor」をMac App Storeで Visual Studio Code – コード エディター | Microsoft Azure
Markdown
「Bear - プライベートメモ」をMac App Storeで 僕はとりあえずこれを入れました.すこし課金するとiPadと同期して作業できるので.
ぶっちゃけ,vscodeとかでもMarkdownかけるので,そっちでもいいと思う.
Latex用エディター
Texpad · Smoothest way to write LaTeX TeXShop - TeX Wiki
Texpadが課金装備です.僕はもう戻れません.無理です. ちなみにMacのデフォルトはTexShopです.まずはTexShopでいいと思う.
Twitterクライアント
いるなら入れてください.僕は夜フクロウを入れてみました.あとはdeckかなぁ
夜フクロウ
「夜フクロウ」をMac App Storeで 極力ブラウザではなくアプリで動かしたい.まあ有名どこだと思うので,使ってる.
Tweetdeck
TweetDeck Windows は多くがこれ使ってるイメージ.僕も夜フクロウが違うなって思ったらこれに戻る感じ.
メール
研究室では,結構な量でメールのやり取りがあります.そして,何よりも,フォルダ分けしましょう.混乱します.
Macの「メール」で受信するメールをルールを使用して管理する - Apple サポート
その他
Onedrive for Business
大学のアドレスはOffice 365なわけですが,もれなくOnedrive が1TBついています.有効活用しましょう. macOS で OneDrive for Business を利用する - らくがきちょう
Alfred(無償版も有料版もある)
Splotlightのようなイメージをしてもらったらいいかなって思う.それの高機能版. 無料版でも十分にやれるかなって思います.もし興味があったら課金したら?って感じです.(僕は来月にでも課金予定です. Alfred - Productivity App for macOS Alfredを使いこなせてない君に!【Alfredの使い方完全版】 - Qiita
Karabiner Elements
Karabiner-Elements キーコンフィグを変えるソフトウェア.Macの日本語配列は優秀な並びしてるからいらんか.
BetterSnap Tools(有料)
Windowsでいう,画面の端にウインドを持ってきたら画面の半分になったり,有料だけど,あるとちょっと便利って感じです.
ウイルス対策ソフト
大学で入れれるウイルスバスターでも,ノートンでもesetでもお好きなものを使ってください.
開発環境の作り方
別途記事を書く.
IPv6 only な環境でUbutnuを使う
IPv6なネットワークで行きていく
IPv4がない,本当に純粋なIPv6環境でインターネットにつなぐことになった際に詰まったことがあったので,それらを書いていきます.
前提
ネットワークに接続するのはUbuntu16.04です.
あとアドレスはRAでふってきますが,上流の都合でDNSの情報はふってきません.あとでGoogleのPublic DNSを設定します.
やること1 DNSの設定
所々の都合でGoogleのPublic DNSを使うことに,アドレスわからんから調べてみるとこんなページが
おっ あるやんけ,これ使おう. しかもアドレスが 2001:4860:4860::8888 とわかりやすいなーと思った.
しかし,その下に何やらあった.
You can configure Google Public DNS addresses for either IPv4 or IPv6 connections, or both. For IPv6-only networks with a NAT64 gateway using the 64:ff9b::/96 prefix, you can use Google Public DNS64 instead of Google Public DNS IPv6 addresses, providing connectivity to IPv4-only services without any other configuration.
ふむ,IPv6 onluならNAT64を使うか,DNS64を使ってくれとのこと.「NAT64ってあれでしょ,v6をv4でどうこうするんでしょ? よくわからん」という状態.寄り道勉強楽しいんだけど,軽く本を読む程度にして,DNS64を使うことにした.
というわけで,設定は 2001:4860:4860::6464 にしました.
やること2 リポジトリの変更
名前解決もできるようになったので,”次はapt updateだ!”といういつものノリで,コマンド叩いたけどまず "jp.archive.ubuntu.com"と通信できない.
"あれれ?"となったのでレコードの確認
$ dig jp.archive.ubuntu.com AAAA ; <<>> DiG 9.11.3-1ubuntu1.3-Ubuntu <<>> jp.archive.ubuntu.com AAAA ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40735 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;jp.archive.ubuntu.com. IN AAAA ;; ANSWER SECTION: jp.archive.ubuntu.com. 589 IN CNAME ubuntutym.u-toyama.ac.jp. ubuntutym.u-toyama.ac.jp. 7189 IN CNAME ubuntutym3.u-toyama.ac.jp. ;; Query time: 18 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) ;; WHEN: Sat Jan 26 23:53:10 JST 2019 ;; MSG SIZE rcvd: 113
なるほどなぁ AAAAレコード返ってきてないやん.
ぐぐってみるとこの記事を発見
jaistのサーバに変更した.
これで全部うまくいくとおもった.
しかし, archive.ubuntulinux.com はどのミラーサーバもIPv4にしか対応していなかった.
んー なかなか厳しいですねぇ
とりあえず,タイムアウトまで待った.
まとめ
普段,使うものなのに,いろいろ詰まった. というわけで,IPv6 Only環境を想定した.各プログラミング言語,フレームワークのサイトと,OSのリポジトリ対応状況を調べてみようと思います.
どこかでTLのネタにしよう
# 備忘録
ネットワークとプログラミングの話
この記事は 琉大情報工学科(知能情報コース) Advent Calendar の11日目です.
自己紹介
そこら辺の人も参加していいよということだったので,参加しました.
九州の学生です.
普段はネットワークの研究を主にやってます.あとはバイトでセキュリティと,フロントエンドをやったりしてました.
コミュニティ的なところで行くと,Perl入学式のメンターなどやったりしてます.(あんまいけてないけど)
こんな自称フルスタックエンジニア(笑)な僕が,普段はプログラミングをいっぱいしてであろう皆さん(勝手なイメージ)に少し,ネットワークのお話をしてみたいと思います.
もちろん講義みたいな話ではなく,ネットワークやインフラとプログラミングの調和みたいな話をしたいと思います.
僕も登録したらいいんですか?(すっとぼけ) https://t.co/AcxSIfGtj2
— Kaoru NAGASHIMA (@kaoru_nkchan) 2018年12月5日
ちなみにこんな流れで書くことになりました. アナグラくんとはかれこれ2年くらい?の仲になってます??(あんま覚えてないや 3年?
ネットワークを知ると,どんなことがうれしいの?
まずは何が嬉しいかという話をします.
インターネットは今やつながるのが当たり前で社会基盤として存在しています.特に今の大学生の年齢だと,あるのが当たり前だと思います.僕もそうです.
ただ,ちゃんとわかっているかと言われれば,きっとそうではないと思います.
当たり前にあるし,IT=プログラミングみたいな風潮もあり,高校生まででネットワークしたいって人はまあまずいないんじゃないかな.
ただ,ある程度わかると,すごく楽しい.
そして,ニュースになるようなレベルの障害発生時はやることそっちのけで,自分で「普段のネットワークと比べてここがおかしいから,原因はこれか?」みたいなことができます.
大規模な接続障害、Googleが謝罪 「ネットワークの誤設定」原因
これを覚えていますか? 去年の8月に起こったゴタゴタになります.
ツイッターでは「Githubが繋がらないから仕事ができない」や「slackが死んだので仕事できない」みたいなツイートがよく見受けられました.
せっかく仕事できないので,エンジニアらしく原因追求しましょう.
そうすると「ツイッターではOCNが死んでる」という情報を得て終わりなんですが,実際にgithubにパケットを送って経路を確かめたりできます.
原因がわかるとすごい楽しい.まさに世界レベルでのデバック大会.
そんな世界だと僕は思っています.
ちなみに,ネットワークばっかりやるとどのプログラミング言語でweb appを書こうとTCPレベルでは,どの言語も変わらないぜ!!って思ってしまう.
アプリケーション側でどれだけ高速化の処理を行おうと,ネットワークが遅ければ,意味ないしな.
ここからさきはインフラとネットワークと意味を厳密に区別せずに話をします.なのでわかる方には違和感あるかもですが,ご了承ください.
どっちもいるの??
じゃあプログラミングとネットワークをどっちもやるのかという話になります.
実際のところ,どっちもできるひとはかなり少ないです.片方ならプロという方はいっぱいいるのが現状です.
そしてPaaSやSaaS,FaaSの出現でさらにネットワークを意識しなくてもよい機会が多くなっています.
じゃあネットワークわかんなくても,WebサービスをPaaSに乗せればサービス提供できるじゃん!と思うんではないでしょうか.
まあ実際そうなっていってるんじゃないかなぁと思います.
しかし,そんな中,インフラとプログラミングの両方を必要とするような仕事も出てきています.
今日はそんな2刀流な分野の紹介をしたいと思います.
前置きが長くなったけど,ここから本題 2つほどご紹介したいと思います.
Infrastructure as code
これはインフラをコード化する(そのまま)ことを言います.
これによってあるサーバの設定など(IaaSレベル)を冪等性がある状態を,「コード」を通して再現することができます.
これはネットワークというよりは,インフラよりな話にはなります.
しかし,「インフラ+プログラミング」をする分野になっています.
SRE
「Site Reliability Engineering」の略です.
Googleが提唱したシステム管理とサービス運用の方法論になります.
可用性の確保、レイテンシの低減、パフォーマンスの管理、作業の効率化、変更管理、モニタリング、障害対応、キャパシティ管理という管理業務に加えてソフトウェア開発を行う部隊になります.メルカリさんとかもあった気がします.
こちらも「インフラ+プログラミング」です.
まとめ
今,ご紹介したように,時代の進化とともに,なにか一つの分野だけというよりは複数分野を組み合わせた職業も出てきています.
そんなものに少しでも興味を持っていただけば嬉しいです.
ただ,知らないと興味を持つこともないので,この記事が誰かの興味を少しでも広げることができればいいなと思います.
ツイッターとか貼ってるのでよければフォローください.