トップ  > メモ一覧  > カテゴリ「開発環境」の絞り込み結果 : 2件

2件中 1 〜 2 表示  1 

No.2952 グリーの開発環境(歴史と概要)

グリーの開発環境(歴史と概要)

こんにちは。グリーでインフラ的なお仕事をしているsotarokです。今回は、グリーの開発環境についてお話します。

グリーの開発環境

開発環境どうするか、という問題はエンジニアリングをしている会社であれば誰しも一度は悩んだことのある問題だと思います。開発環境の作り方は、会 社やサービスの規模、事業の形態などによって様々ですし、割と小さな規模から「歴史的な経緯」を経て成長してくることが多く、これといったスタンダードが あるわけでもありません。

グリーでも初期の頃から、いくつかの経緯を経て現在の開発環境があります。これは、特に画期的な開発環境やスタンダードに合わせてつくったわけではなく、日々の業務のなかで、あれこれ困ったことやより便利にしたいことなどを解決していくうちに作り上げられたものです。

今回は、グリーの開発環境の移り変わりと、今後の開発環境づくりについてお話させていただきます。

初期の頃の開発環境

グリーが比較的小規模だったとき、開発は全員が1台のマシン上に開発環境をつくり、ローカルからsshでアクセスしてそのマシン上で作業をするという形態をとってきました。

次のようにディレクトリを区切り、何番のディレクトリを誰が使っているのかをwikiで管理していました。

/home/dev001
/home/dev002
/home/dev003
...

それぞれのディレクトリに、VirtualHost でドキュメントルートを設定し、それぞれのホストをそれぞれの開発環境へのURLとして開発を行ないます。開発環境へのHTTPアクセスは社内からのみ許 可されている形です。この場合、すべての開発者が同一のマシンにアクセスし、ホスト名によって各自の環境への振り分けをおこなっています。

<VirtualHost *:80>
  ServerName   001.local.gree.jp
  DocumentRoot /home/dev001/htdocs
  <Directory "/home/dev001/htdocs">
    AllowOverride All
    Order deny,allow
    Deny from all
    ...
  </Directory>
  ...
</VirtualHost>

ソースコードの開発以外のところでは、環境は以下のようになっています。

  • ソースコードは Subversion で管理 (*1)
  • 開発環境用のDBやキャッシュサーバは全員で共通のものを使用。

イメージ図:

さて、1台のマシンで開発をするモデルは、環境を作り易く、非常に運用しやすいのですが、

  • リソースが足りなくなる (例えばみんなで svn up する、など重い処理をすると全員に影響する)
  • 環境が統一されているので、新しいライブラリなどをつか合う場合も他の人に影響する (実験的なバージョンアップなどもしづらい)

など、使いづらい面も多くあります。

そして、このどちらの問題も、そこそこの人数で割とすぐに、クリティカルな問題になってしまいます。

現在の開発環境

やがて人も増え、ひとつのマシン上で全員が作業をすることは困難になったため、1人1台の開発環境用マシンを持つようになりました。現在は、このモデルで運用されています。

入社時には開発用マシンとしてで1台マシンが渡され、手順にしたがって開発環境を各自で作成し、サーバルームに設置する形です。DBやキャッシュサーバは開発環境向けのものを全員で共有する点にかわりはありません。

1人1台の開発環境をもつメリット・デメリットは、概ね次のようなことが挙げられます。

  • メリット
    • リソースが独占できる
    • 好き勝手いじれる環境を持てる (ソースコードをいじる場合でも、実験的なライブラリなどを作成・導入する場合でも、他の人を気にする必要があまりない)
  • デメリット
    • 管理が一元化できない
    • コストがかさむ

イメージ図:

さて、そうはいってもこのモデルでは、人が増えればサーバルームの容量もたくさん必要になりますし、各人1つずつのマシンをもっていても、リソース の余った状態ではもったいないので、有効活用したいところです。というところをもう少し考えればコスト面でも、きっとお得です。

そこで、現在進められているのが、新世代の開発環境をつくるためのプロジェクトです。

新世代開発環境

新しい環境を作るにあたっては、今後人が増えても運用コストがかさまず、各個人の環境も使いやすいものをつくらなければいけません。

求められる環境は、

  • 簡単に作成できる (ワンクリックでセットアップしたりしたい)
  • 一元管理できる
  • 使用状況によってリソースの割り当てを動的に変えられる
  • 省スペース

あたりです。

そこで、現在、開発環境の仮想化プロジェクトを進めています。そうです、時代はクラウドです(!!!)。

昨今は仮想化するためのソフトウェア/ハードウェアも色々な選択肢がありますが、コスト面や柔軟性の面で、今回はXenを導入することにしました。

Xenの特に素晴らしい点が、Xen APIが非常に充実しているところです。Xenは(特に国外では)多くのホスティングサービスのVPSにも利用されていますので、実績も十分かと思いま す。ということで、Xenを採用して開発環境構築することのできるプラットフォームを構築することにします。

イメージとしては、こんなかんじです。

まとめ

というわけで、今回はグリーの開発環境について、これまでのものとこれからのものについて、概要だけ述べました。

次回から現在進められている新世代の開発環境に必要ないくつかの要件と、具体的な環境開発の実装について話していきたいと思います。

*1: Git にしたい・・・!ですが、グリーの開発はSubversion上での開発に非常に最適化されています。まあ、その話は機会があればまた。

引用元

更新:2010/08/24 01:02 カテゴリ: web開発  > 開発環境 ▲トップ

No.2013 仕事を効率よく行う為の基本的なPC環境作り

仕事を効率よく行う為の基本的なPC環境作り

 
ツール紹介

あまりにも基本的過ぎるとは思うのですが、今回は仕事を効率よく行う為の「作業ディスプレイのデュアル化」と、「複数PCでのマウス&キーボードの共有」を紹介したいと思います。

まずはデュアルディスプレイ!


「デュアルディスプレイ」って何よ?というと、「マルチモニター」とも「マルチディスプレイ」とも呼ばれ、簡単に説明すると、「モニターで表示させる領域を増やしたいなら、画面数を増やせば解決するじゃん!」みたいなものです。

例えば、「1280x1024」の画面サイズで作業エリアを増やしたい場合、ワイド型液晶等(「1680x1050」や「1920x1200」)の大画面モニタに買い替えるのではなく、もう!つ、別途「1280x1024」サイズのディスプレイを繋いで、「2560(1280x2)x1024」の画面サイズにしてしまおうという事です。

設定はいたって簡単。モニタを拡張用のコネクタに繋ぎ、画面のプロパティの設定で、「ディスプレイをこのモニタ上で移動できるようにする」にチェックを入れて設定するだけ。あとは画面のサイズを微調整すれば完了です。

導入前: メール・ウェブ・管理ツール他・ウィンドウが重なりまくりで非効率です。
1


導入後: 左はメール・社内チャット。右はエクセル・エディタ・ターミナル他で使いわけます。
2


こうする事で、左画面でウェブサイトを見ながら右画面で資料作成とか、メールやチャットで打ち合わせをしながらコードの修正などが容易に行えるようになります。

確認や作業を行う度に、作業ウィンドウを前面に出させるといった作業がなくなり、もうショートカット「alt+TAB」などとはおさらばです!

弊社では多くの社員が、古くなったモニタや、退社した人が使っていたモニタをデュアルディスプレイ用として再利用しています。特に、メインの使用PCがノートPCのために画面サイズが小さく、このデュアルディスプレイ化は作業効率を上げる為の必須アイテムとなっています。

複数のPCでマウス&キーボードの共有!


会社から支給されたメインのPCに加え、持ち運び可能のモバイルPCや、開発の為にWinPCとMacPCの2台を使うなど、複数のマシンを利用する事が多い業種ですが、作業するPCごとにキーボードやマウスへ作業の手を移していたら、すごく面倒だと思いませんか?

そういう時に弊社では「synergy」というソフトを使っています。

これまでディレクターブログに登場してこなかったのが不思議なくらい、使用率の多いソフトです。

2台のPCに限らず、複数台のPCでマウスとキーボードを共有できます。またWindowsPC同士に限らず、MacintoshPC、UNIX系、Linux系ともマウスとキーボードを共有できます。そのため、作業する手を移動させること無く、作業する画面に目を移すだけでよくなります。

作業するPCを変更させるには、カーソルを作業するPC画面に移すだけという直感的な操作性。更に驚くべき便利機能は、クリップボードの共有ができる事です。テキストのコピー&ペーストが接続PC間で行えます!

なお、私がデュアルディスプレイ+synergyを使用した結果、作業環境は次のような感じになりました。
3

メインPCは中央のノートPC:主にメールやオフィス系ソフトや開発など、作業用
左のモニタはデュアルディスプレイ:主にウェブや資料表示用
上部のブックPC: 「synergy」で接続、社内チャットや各種検証用のソフトやブラウザを表示

尚、2つのPCの音は「Belkin Multi Headphone」でまとめられ、1つのヘッドフォンに出力されています。これにより、2つのPCから出力されるチャットでの呼び出し音や、ねとらじ放送を1つのヘッドフォンで確認する事ができます。

一日何時間も向き合う機器ですので、効率よく作業が出来る様に自分に合った環境を作る事は、ディレクターとして基礎的な事だと考えます。

引用元

更新:2010/01/20 09:52 カテゴリ: web開発  > 開発環境 ▲トップ
2件中 1 〜 2 表示  1 

FuelPHP

Mac

フロントエンド開発

web開発

プロマネ

マネタイズ

プレゼン

webサービス運用

webサービス

Linux

サーバ管理

MySQL

ソース・開発

svn・git

PHP

HTML・CSS

JavaScript

ツール, ライブラリ

ビジネス

テンプレート

負荷・チューニング

Windows

メール

メール・手紙文例

CodeIgniter

オブジェクト指向

UI・フロントエンド

cloud

マークアップ・テキスト

Flash

デザイン

DBその他

Ruby

PostgreSQL

ユーティリティ・ソフト

Firefox

ハードウェア

Google

symfony

OpenPNE全般

OpenPNE2

Hack(賢コツ)

OpenPNE3

リンク

個人開発

その他

未確認

KVS

ubuntu

Android

負荷試験

オープンソース

社会

便利ツール

マネー

Twig

食品宅配

WEB設計

オーディオ

一般常識

アプリ開発

サイトマップ

うずら技術ブログ

たませんSNS

rss2.0