今回は、SREソリューション部で基盤システムの開発や運用を行っている中で、実際に学んだことや工夫を共有したいと思います。基盤システムの開発と運用に関する現状や課題について、実例を例に解説していきます。
執筆者
現状の共有
現在、社内システムを支える基盤システムの開発と運用を担当しています。この基盤システムは、社内の各種システムからのアクセスを受け付けるだけでなく、社外のシステムへのハブとしての機能も持っています。
この構造により、社内の各システムは基盤システムのみを認識していれば良く、社外システムへの関係を気にせずに開発を進められる便利さがあります。
しかし、社外システムへの接続の関係を基盤システムのみが担うため、データ不足やエラーなどの問題が発生することもあります。
アクセスをパラメータで管理
社外システムへのAPIアクセス通信に「skip_flag」を追加したことで、社外システムへのアクセスをスキップできるようにしました。これにより、社外システムの動作を前提に開発を進めることが可能になります。
ただし、本番環境で「skip_flag」が真になっていた場合に社外システムへのアクセスが実行されずに成功したように見えてしまう問題が発生しかねません。
設定によるアクセス管理
パラメータの管理のみでは完璧ではなく、社内システム側の設定で「skip_flag」が真になった場合に対応が困難な場面がありました。これを解決するために、管理画面から各システムのアクセス制御を設定できる機能を追加しました。
この設定により「skip_flag」が真であっても、アクセス管理の設定済みである場合にのみスキップ処理を行うことで、安全性を向上させることができました。
負荷試験における工夫
アクセス制御を二重に行うことで、本番環境における安全性は確保されますが、次に現れた問題は「負荷試験」でした。
負荷試験では多くのアクセスが発生し、社外システム側へのデータ流しを本番環境ではなく開発環境で行うことが主となります。このため、開発環境側のシステムに負荷がかかり、大きな害悪を与える可能性があります。
この問題を解決するため、負荷試験環境のシステムは、インフラ側で制御を行い、設定に関わらずモックの方向にデータを流すようにしました。
これにより、開発環境の負荷試験が社外システムに与える影響を消滅することができました。
終わりに
今回の共有が少しでも参考になれば幸いです。基盤システムは、社内外のシステムをサポートする大切な部分です。そこで発生した問題をどのように解決したかを下地になるように考えてきた結果として、この記事を作成しました。
この内容が、既に基盤システムを運用されている方や、これから導入を検討される方の何かの参考になれば幸いです。実際の運用ではさまざまな問題が発生しますが、それをひとつひとつ解決していく運用力が重要です。