前田です。
ファーエンドテクノロジーが提供しているクラウドサービスと言えばプロジェクト管理のための「My Redmine」を思い浮かべる人が多いかと思いますが、実は My Subversion というサービスも提供しています。
1週間前の11月15日、My Subversionのサービス提供用のソフトウェアとインフラを新環境に切り替えました。主な変更点は、リポジトリ管理のインターフェイスを提供するソフトウェアをオープンソースソフトウェアの「Submin」から自社開発の「Repomat」に切り替えたこと、そしてインフラをニフクラからAWSに切り替えたことです。
My Subversionとは、バージョン管理システムであるSubversionのリポジトリをインターネット上で作成・共有できるクラウドサービスです。100ユーザーが利用可能でありながら月額2,500円(税込2,750円)からという利用しやすい料金で、ソースコードを複数拠点で効率的に共有できます。
今年10月からは料金を据え置いたままストレージ容量を拡大し、これまで以上にコストパフォーマンスに優れたサービスになりました。
Subversionの環境が必要な方、オンプレミスのSubversionのクラウド化をご検討中の方はぜひご利用をご検討ください。翌月末まで無料お試しもできます。
スタンダード | ミディアム | ラージ | エクストララージ | |
---|---|---|---|---|
月額料金 | 2,500円 (税込 2,750円) |
4,000円 (税込 4,400円) |
6,400円 (税込 7,040円) |
10,000円 (税込 11,000円) |
ストレージ容量 | 2GB | 6GB | 12GB | 30GB |
SVNリポジトリ数 | 100まで | |||
ユーザー数 | 100まで |
※2024年4月ご利用分からスタンダードプランの料金とストレージ容量をミディアムプラント同じ4,500円(税込4,000円)に改定します。また、2024年3月31日をもってミディアムプランの新規お申し込み受付を終了します。
SubversionはGitのような分散型システムとは異なる集中型バージョン管理システムです。2000年代半ばから2010年ごろまでは企業やオープンソースプロジェクトで特に広く利用されていました。
そのSubversionのリポジトリをネット上で作成し複数拠点でソースコードを共有できるサービスとして、My Subversionは2010年5月に提供を開始しました。ファーエンドテクノロジーのサービスとしてはMy Redmineに続き2つ目となります。
My Subversionのサービスを構想していた当時、企業におけるクラウドサービスの利用は今ほど活発ではなく、システム開発を行う企業ではオンプレミスで構築したSubversionサーバを使うということがよく行われていました。そのSubversionサーバには社外からはアクセスできず、協力会社とソースコードをやり取りするときにはZIPで圧縮してメールでやりとりするという面倒な手順も珍しくありませんでした。私もソースコード一式を添付したメールをやり取りしながら開発を進めた経験がありますが、かなり面倒だった記憶があります。
My Subversionのサービスを開発した理由の一つは、自らのそのような経験からも気軽にSubversionリポジトリをインターネット上で手軽に共有できる仕組みが欲しいと思っていて、Subversionをサービスとして提供すれば喜ばれるのではと考えたためです。
2つ目の理由は、前年2009年に正式サービスを開始したMy Redmineの価値を高めるためです。当時Redmineをシステム開発で利用する際にはSubversionと組み合わせて使うことが多かったため、My Redmineとセットで使ってもらうためにSubversionが利用できるサービスを揃えておきたいと考えました。
11月15日の移行前までのMy Subversionで使われていた技術要素を紹介します。
サービスはNifty Cloud(現・ニフクラ)上に構築しました。ニフクラを採用した最も大きな理由は国内にサーバがあるため、データの移動距離が大きい海外のサーバと比べてレイテンシーが遥かに小さいことです。Subversionは1回の操作で多数のHTTP通信が発生します。このため高レイテンシー環境では通信遅延がHTTP通信の数だけ蓄積して操作完了までの所要時間に顕著に影響するため、国内のお客様にサービスを提供するためには国内サーバの利用が必須でした。なお、AWSの東京リージョンが利用できるようになったのはMy Subversion開始翌年の2011年3月ですので、AWSという選択肢はありませんでした。
AWS東京リージョン開始のアナウンス:
Now Open: AWS Region in Tokyo | Amazon Web Services
Nifty Cloudは安定していて障害が大変少なく、安心して使えるサービスでした。
お客様がリポジトリやユーザーの作成、アクセス権限の管理を行うための管理インターフェイスとして、オープンソースソフトウェアのSubminを採用しました。画面の文言は英語のみでしたので、サービス提供用には独自に日本語訳したものを使用していました。
Submin公式サイト (Wayback Machine):
Submin: git/subversion web administration
WebSVNはSubversionのリポジトリ内のソースコードや更新履歴を参照できるオープンソースのリポジトリブラウザです。Submin単体ではリポジトリブラウザの機能を持たないため、WebSVNを追加でインストールして提供することとしました。
新システムへの切り替えた理由は、管理インターフェイスを提供するSubminの開発が数年前に終了したためです。開発終了の正式なアナウンスはありませんが、Subminの配布ページ https://supermind.nl/submin/ が無くなってしまったことから開発が終了したと判断しました。
開発が終了したソフトウェアを使い続けることは、セキュリティ脆弱性が見つかっても修正が行われないこと、プログラミング言語や実行環境のアップデートに追従しないためいずれ動作しなくなるなど、大きなリスクを抱えてサービスを提供することになります。
これを解決するための選択肢としては、Subminの使用を終了して別のソフトウェアに切り替えるか、My Subversionのサービスを終了するかの2つが考えられます。我々は当然前者を選択し、Subminに代わる新しい管理インターフェイスを自前で開発することにしました。
開発が終了したSubminを置き換えるために社内で開発したのが「RepoMat」です。SubminはPython 2.6で開発されていましたが、RepoMatはRuby on Railsで開発しました。Subminのコードは使用せずスクラッチからの開発です。
RepoMatの仕様で最も重視されているのがSubminとの互換性です。Subminを使っていたお客様が戸惑うことがないこと、旧システムから新システムへのデータ移行がなるべく簡単な手順で行えることに配慮しています。
お客様が戸惑うことなく使えるよう、画面レイアウトと画面遷移はSubminと近いものになっています。もちろんSubminと全く同じではなく様々な変更・改善が加えられているものの、Subminに慣れている方はどこに何があるのか、ボタンを押した結果何が起こるのか、容易に推測できると思います。機能もSubminと同一であり、SubminでできていたことはRepoMatでも同じように実現できます。
データ移行がスムーズに行えるよう、データ格納ディレクトリ構成と設定ファイルの内容をSubmin 1.2系と揃えました。データベースは使用せず、すべてのデータはSubmin 1.2と同様にauthz、htpasswd、userproperties.confの3つのファイルに格納されています。
Submin 1.2のデータディレクトリの構成:
. |-- authz # Subversionアクセス制御設定 |-- htpasswd # ユーザーIDとハッシュ化されたパスワード |-- svn/ # リポジトリ格納用ディレクトリ | |-- repo1/ | |-- repo2/ | `-- repo3/ `-- userproperties.conf # ユーザー情報(Submin固有)
オープンソースのSubversionリポジトリ管理ツールであるSubminの開発が終了したことを受けてSubmin互換ツールの開発を行いましたが、これにより管理画面をこれまでより見やすい・分かりやすいものに一新できました。
また、SubminからRepoMatへの切り替えを機にニフクラからAWSへの移行とシステム構成の見直しができ、より堅固かつメンテナンスしやすいシステムが構築できました。
今後も引き続きMy Subversionをお客様に安心してご利用いただける環境が整ったと考えています。
【スタッフ募集中】
弊社ではAWSを活用したソリューションの企画・設計・構築・運用や、Ruby on Rails・JavaScriptフレームワークなどを使用したアプリケーション開発を行うスタッフを募集しています。採用情報の詳細
弊社での勤務に関心をお持ちの方は、知り合いの弊社社員・関係者を通じてご連絡ください。
![]() |
My Redmine Gen.2をリリース!クラウドへの対応を進めより良いサービスになりました。 |
![]() |
RubyWorld Conference 2023にPlatinumスポンサーとして協賛。ブースではRedmineのクラウドサービス「My Redmine」を紹介。 |
![]() |
Google Search Console APIにアクセスするRubyのプログラムを作って分析をしています。 |
![]() |
Redmineのデモデータ用のCSVファイルを作成するのにGoogle Colaboratoryを利用しました。 |
![]() |
Redmineの他の開発者やユーザーからのフィードバックや反応を貰えるのがOSS活動の楽しさの一つであると感じています。 |
![]() |
社員研修に伴うサポート体制変更・休業のお知らせ(5/20〜23) 社員研修に伴い、5月20日〜23日はサポート体制の変更および休業とさせていただきます。 |
![]() |
オープンソースカンファレンス2025 Nagoyaに弊社代表の前田が登壇(ブース出展あり) オープンソースカンファレンス(OSC)2025 Nagoyaに弊社代表の前田が登壇。『Redmineの意外と知らない便利な機能(Redmine 6.0 対応版)』をテーマに発表します。 |
![]() |
エンタープライズプラン向け「優先サポート」を開始 My Redmineでは、エンタープライズプランをご契約のお客様向けにサポート対応を優先的に行う「優先サポート(プライオリティサポート)」を開始いたしました。 |
![]() |
プロジェクト管理ツール「RedMica」バージョン 3.1.0をリリース Redmine互換のオープンソースソフトウェア ファーエンドテクノロジー株式会社は、2024年11月19日(日本時間)、Redmine互換のプロジェクト管理ソフトウェア「RedMica 3.1.0」をリリースしました。 |
![]() |
Redmineの最新情報をメールでお知らせする「Redmine News」配信中 新バージョンやセキュリティ修正のリリース情報、そのほか最新情報を迅速にお届け |