お世話になります。
webアプリのサーバ構成や作り方について質問があります。
開発環境Webサービス(例えばVisual Studio Online)はどのような構成で動いているのでしょうか?
近頃、Web上でソースコードを編集し、実行することできるサービスが色々あると思います。
自分で構築してみたいわけではありませんが、このようなクラウド開発環境(?)的なサービスは非常に未来を感じます。Docker,vargrant,chef...など色々な仮想環境のキーワードを聞きはするものの、しっかりと把握はできていません。
開設してあるサイトや、どういう技術で成り立っている等、なにかヒントでも良いので教えて頂ければ幸いです。よろしくお願い致します。
■参考URL:
安藤幸央のランダウン(67):プログラミングもクラウドへ―― 学習&開発環境Webサービス23選まとめ (1/3) - @IT http://www.atmarkit.co.jp/ait/articles/1402/24/news026.html
Visual Studio Online の概要 http://www.visualstudio.com/products/visual-studio-online-user-plans-vs
まず、前提として、IDEとか開発作業のための所謂開発環境と、開発したアプリケーションをテストするテストサーバは、オーバーラップする部分もありますが、基本的には異なる話です。
これは従来手法もオンラインも基本は変わりません。
Docker,vargrant,chefといったものはテスト環境構築のためのツールです。
vargrantは仮想マシンを使ってます。
仮想マシンの場合、ファイルシステムが仮想化されて1つのファイルになってますから設定済みファイルシステムをベースに周辺環境の調整を自動化すれば済みます。
他はパッケージシステムを使ってる感じがしました。
設定ファイルを作ることでインストール作業とその設定を自動化出来るようにしてる感じでしょうか。
前述仮想マシンと組み合わせることでより柔軟な環境構築が可能だと思います。
さて、サーバアプリに付いて書いたわけですが、インストールやセッティングはサーバアプリに限ったものではありません。IDEやバージョン管理システムだってセットアップ出来ます。
さらに両者を一括することでデプロイの自動化なども一緒にパッケージング出来ます。
話はかわって、デスクトップアプリですが、今では様々なアプリがオンライン化されました。
Webメールはメールソフトを置き換え、今ではワードやエクセルもオンライン化されました。
これらはajaxに始まる非同期通信とjavascriptがJITコンパイルされるようになって高速化でwebブラウザ上でjapascriptで書かれたアプリが性能的に問題なく動くようになったためでしょう。
また、microsoftはSilverlightやActiveXも持っています。他にもflashやhtml5など、表現力を増す手段がたくさんあります。
バージョン管理システムはgithubなど、既にオンライン化されてます。
当然IDEも作れるだけの能力があります。
#未確認ですが、他言語やバイナリもjavascript化(コンバートやエミュレート?)するソリューションもあったように思います。
この様に、web上で開発環境を開発する環境は整っています。
さらにテストサーバもクラウドと仮想環境により揃えることが出来ます。
クラウドのバックエンドではクラウドの管理のため前半で述べた仮想環境とパッケージの管理自動化システム(自社製とは思います)が動いています。
それらは先に述べたようにIDEやバージョン管理システムなど開発環境など様々なwebアプリを自動デプロイ出来ます。
さらにユーザが開発したコードも別の仮想マシンに自動デプロイ出来ます。
そしてクラウドですので、開発が終わればそのまま本番環境が構築できます。
かくしてweb上でワンストップサービスが出来上がり、クラウドビジネスとしてはユーザの囲い込みが出来るわけです。
コメント(0件)