2012/10/20

大きなシステムのアーキテクチャを自分の頭で考える。

今日からインターン、Sunriseがスタートしました。

大規模サービス構築プログラム「Sunrise」|VOYAGE GROUP インターンシップ ~ミチをソウゾウせよ~ https://voyagegroup.com/internship/sunrise/

Sunriseはその名の通り、大規模サービス構築をテーマとしたインターンです。内容としてもサービスのインフラに主眼をおいています。内容の目安としては100万人を超えるサービスのインフラをどのように構築するか、といったところが焦点となってきます。普段アプリケーションを開発している子たち向けに、どのような考えでインフラを作っているか、という話を中心に展開しています。

実際にインターンが始まって、こうして参加者の子たちと実際に話していると、ああインターンが始まったのだなぁという実感が湧いてきます。今日の朝は@makogaさんによるワークから始まり、手を動かしながら実際にシステムを計測を行うところから進んで行きました。みんななかなか慣れていない作業に最初は困惑しつつも、徐々に慣れていって考察を深めていったのはさすがだなぁと思ってみていました。

今回は僕もSunriseに講師として参加することになり、早速今日発表をしてきました。僕が発表したのはAWSに関する話、そしてSSPであるFluct と、今開発しているcosmiの話をしました。学生にとってはなかなか触れることのない、アドテクノロジーの世界。普段表示されているバナーの裏に存在している、いくつものステークホルダーとシステム。そういうシステムのインフラがどのように構築され、そしてどのようにアプリケーションが動いているのか、というトピックについて俯瞰するような形で講義を行いました。

とてもむずかしい部分ではあるのですが、なるべくそのシステムの要件や構築の背景についても話すようにしています。なぜかというと、リアルな仕事の現場で、実際にそのような要件が与えられて、その上でコスト感や規模感を自分たちで考えてインフラを設計する、というところまで見て欲しいからです。特にアドテクノロジーの分野の場合、関連するシステムやプレーヤーも多く、何が必要なのかということを理解するのに敷居が高いという部分はあります。でもそれは例えば自分がスタートアップでシステムを一から作るという場合でも一緒です。先がわからない。どこまで作りこめばいいのか見通しが立てづらい。急激なアクセスが何時来るかはある程度しか予想できない。ビジネスがどんな規模で成長するのかを見込まなければいけない。そういう背景を踏まえて、インフラの構成やアプリケーションの設計ができるエンジニアになってくれたらいいなぁという想いがあります。

学校でOSI参照モデルやネットワーク、OSの仕組みについて勉強しているかも知れません。そして自分でWebアプリケーションを作成できる。それは素晴らしいことです。しかし、必要になった時に本当に必要となるものを自分の手で、頭で、作れるのか。本当に自分はそういう背景知識を活かして実践できるのだろうか。知識としてただあるだけではなくて、実際に使えるものにしていく。自分がそういう立場になった時に、プロのエンジニアとして環境に適応していくことができる。そしてユーザにサービスを届けることが出来る。ビジネスを作っていける。そんなきっかけになれば、と思っています。

やっぱりそういう大きなサービスを支える、そして自分から創りあげる、そういうエンジニアが増えたら、もっと楽しくなるのではないかなぁと最近よく考えるようになりました。僕もまだまだ知らない事だらけですが、こうして教えることをしながら学んでいって、自分で考えることのできるエンジニアが増えていったら素敵だなあと思います。

来週の最終発表が今から楽しみです。