システム構築
趣味あるいはノマドでソフト開発を行うために以下のことを重視して開発システムの構築を行います。
- PCだけでなく,(ちょっとしたことなら)iPadでも開発できる
- 外出先でも(電波が届くとこならどこでも)開発できる
- 大きなダウンロードを外出先ですると容量が心配なので避けたい
- 外出先でもGPUをブンブン回して実行したい
- セキュリティは各コンポーネントで確保したい
まず,外部からアクセスして開発する部分の説明を。
- 開発および実行は(実際には)HostPCで行う。
- HostPCは自宅に置き,定額のブロードバンド回線に接続する。
- HostPCには
Amazon Route53
を使ってノートPCあるいはiPadからSSH接続する。 - セキュリティは図に書いてるものとかを混合で使う。

次に,ホストPCの内部の説明を。
- 実行環境を
Docker
コンテナでつくる- ランタイムはホストのものを使う。
- データとコードはホストと共有しているフォルダに置いて使う。
こうすることで新規PCに環境移行する際に以下の5つの手順だけ行えばいいようになります。
- OSのインストール
- SSHのインストール
- ランタイムのインストール
- Dockerのインストール
- ネットワーク設定
そして,この手順はGitLab上のWikiに書いておくことで作業をルーチン化します。

最後にデータの共有方法の説明を。
- Web関連は
Google Chrome
やFirefox
のブックマーク同期- 開発で参考にしているサイトをPC間で共有
-
GitLab
,Github
でコードを共有 -
Trello
でToDoリストを共有
-
GitLab
上のシェルをダウンロードして実行- ホスト内のHomeのディレクトリ構成を作り変える
- NASからデータをダウンロードする
- 必要なアプリケーションをダウンロード・インストールする。
- Codeを
GitLab
上からダウンロードする

どこでも開発できて,移植・増殖しやすく,データの喪失が少ない,そこそこセキュアでコスパがいいソフト開発環境のお話でした。