まがいなりにもシステムエンジニアとして8年のキャリアを歩んできた。
残念ながらコーディングのスキルを業務の中で磨くチャンスは得られなかったが、要求定義や基本設計レベルであればそれなりに出来るようになった。システムインフラ周りの要件定義や性能設計も得意な領域だと思う。
しかし、実の所、今一人でポンと社会に放り出されたとして、自分の技術力で本当にやっていけるのかという不安がないと言えば嘘になる。会社の性格上、実作業をパートナー企業の技術者にお願いする形になってしまうことが多く、実際に手を動かす機会はそう多くはない。
そんなわけで、プライベートの時間で日曜大工的に開発やってみたり、目標を立てて資格の勉強をしてみたり、会社でも周りを巻き込んで新しい技術を紹介しあう試みなんかもやったりしている。腐っても技術者の端くれ、自分でも一通り”できる”ようになりたいし、知識ぐらいしか売りがないのならせめてそれぐらいはしっかり高めていきたいのだ。
そんなわけで、自分の頭の整理も兼ねて時折はこのブログでもIT系の技術ネタを取りあげてみたいと思う。どの程度突っ込んで書くかは悩ましいけど、iPhoneアプリやWordpress、JavaScript(というか、最近ならJQueryか)ぐらいまでならちょっとしたソースコードを載せるのもありかなと考え中。
ということで、ここからが本題。
■ビッグデータとクラウドとオープンソース
ビッグデータやクラウドというキーワードにはあまりときめかないが、そこで使われている技術にはとても心が躍る。
大規模データの分散処理基盤であるHadoopは勿論、Twitterが公開したリアルタイム分散処理基盤のStorm、大規模ログ収集基盤のFlumeなんかも実にcoolだと思う。そこにBIのpentahoを加えれば・・なんてことを考えてニヤニヤするのは実に楽しい。
今やKVMも商用に耐えるようになってきたし、OpenStackもなんか凄いことになってるし、いざシステムを設計する時には(Linuxやjavaは当然のことながら)こういった技術の活用を当たり前にするようになってきた。
ところで、ここ挙げた技術のほとんどが”オープンソース”であり、しかも、ここに挙げたものはごく代表的なものと言える。これを知っているのと知らないのでは出来ることに大きな差が生まれるし、そもそもこれらの基盤が提供してくれる”概念”を再発明する労力を抑えることができる。
知らないと知っているなら知っていた方が良いし、ただ知っているよりもこれらを使って何ができるかを考え、実際に自分の仕事に取り込んでいける方が良いだろう。本当は、オープンソースコミュニティに自ら分け入り、これら人類の財産を進化させることに貢献したいところだが、そこまでの技術力が無い事が残念でならない。
かつてLAMP(Linux、Apache、MySql、PHPの頭文字を組み合わせた造語)と称されたオープンソースによって所謂IT系のスタートアップの参入障壁は劇的に引き下げられた。IAサーバの流行と相まって、インフラ/ミドル周りのイニシャルコストが大きく引き下げられたのだ。
先に挙げたビッグデータやクラウド系のオープンソースもLAMPと同様かそれ以上にスタートアップにチャンスを与えるだろう。これらをゼロベースで研究開発するリソースだけでいくつ会社が興せるか、というレベルだ。
■AWSとTwitter Bootstrap
オープンソースパッケージに加えて、この頃ではインフラ周りやフロントエンドでもスタートアップに対して非常に良い環境が揃ってきた。
一つはAmazon Web Services(略してAWS)を筆頭とした、クラウド上でリソースを提供するIaaS事業者が増えたことだろう。有名なところだと、InstagramなんかはAWSのホスティングサービスEC2を用いているし、我らがEvernoteはストレージサービスのS3を用いてサービスを提供している。
AWSの人気の要因は色々あるだろうけど、いくつか例をあげてみよう。
- ものの十数分でインスタンスが使えるようになるという気軽さ
- リソースや帯域を使った分だけ料金を支払うという料金体系
- リソースの動的な割り当てが出来てスケールアップが容易
- バースト的な処理増にも自動的にリソース割り当てを増やして耐えられる
- 世界各地のデータセンター間でバックアップしあっている
- ハードウェア障害を気にしなくて良い(ライブマイグレーション)
スモールスタートという意味ではさくらのVPSあたりで十分なのだが、スケールアウトを考えたり、突発的な負荷増に対応することを考えると、AWSは非常に魅力的な選択肢となる。
もう一つ、スタートアップにとってTwitter BootStrapの登場とJQueryの興隆も非常に好ましい状況だと言えるだろう。
WebアプリのUIを作り込むのは非常に労力とセンスを要するが、CSSフレームワークであるBootStrapを用いることで”イマドキ”のWebサービスっぽいUIが簡単に作れてしまう。加えて、最近ではJQueryの豊富なプラグインによって、Webアプリのパーツを開発する労力も大幅に引き下げられている。
プログラマーな人達は結構Webデザインが苦手だったりするし、何より限られたリソースをこういったフレームワークを用いることで大幅に節約できるのだから、使わない手はないだろう。
■最後に
ビッグデータやクラウドなんてバズワードの是非はさておき、これらで用いられている技術や概念についてIT系な人達は知っておいて損は無いと思う。特にオープンソースが活用できる場面で、オープンソースを知らなかったが為にゼロベース開発を行ってしまった・・・なんてことは不幸以外の何者でも無い。車輪の再発明はなるべく避けるべきなのだ。
更に言えば、オープンソースやIaaSは(使いこなす技術力さえあれば)誰でも活用できてしまう点は留意が必要だ。つまり、競合がこういった技術を活用して、自社が活用できていないとすると、明確に競争力の差が生まれてしまう。そういう意味では、知っておいた方が良いレベルでは無く、知っていて活用もできる「リテラシー」として身に付けるべき事柄であると言っても過言ではないだろう。
参考書籍