もうすぐ2013年が終わる。年越しそばも食った。また、一歩、死に近づいた南無南無(-人-)。仕事でやったこととかプライベートなことの日記。



この1年の仕事

まずは仕事のことから。自分的トピックを挙げてみる。

AWS使ってるサービスをリニューアルした

初めて仕事でAWSを触る。AWSは自分のアカウントで1〜2インスタンスたてて遊んだことがあるくらいのレベルだったので、この仕事を通して良い芸の肥やしになった。10~20インスタンス程度の小規模サービスだったってのもやりやすくて、本番入門としてはやりやすかった。
このサービスを最初にみたときは、DBのバックアップは取ってないし、コンフィグもほとんどデフォルトみたいな状態だった。リニューアル環境は適切なインスタンスタイプにする、バックアップは取る、モニタリング環境を整備する、とまあ普通のことをやった。
技術的な反省点としては、もっとAWSの機能を活用したスマートな仕組みを作れればよかったなーというところ。リニューアル期間が短かったってのと、元々がオンプレ脳なので、例えばMySQLのバックアップ方式はxtrabackupで別のサーバに転送するという普通のやり方をした。別にこれはこれでいいんだけど、EBSのスナップショットを活用するなどもっとクラウドっぽいやりかたにすればよかった。そうそう…boto便利だね。

とあるサービス群のインフラの頭になった

”俺チーム”みたいなものができて、数ヶ月ほどマネジメントもどきに手を染めた。正直、この手の役割は志向に合わないんだが、これも仕事。一応金貰ってるプロのつもりなので、自分の趣味志向に合わない仕事であってもチームに求められた役割であれば極力ワガママは言わないようにしている(強いて言うなら技術的なものに触れる時間を必ず確保できることが最低限の条件)。
で、まあその自分の志向に合わないこのお仕事の自己評価なんだけど、「失敗はしなかった」という感じだったかな。関係各所の調整だったり、調整や折衝を円滑に進めるための根回しだったりはうまくできてたと思う。このへんの振る舞いはSIerで大規模PJやってたときの経験が活きた。が、関連したサービス群のインフラに現状以上の価値をもたらすことはあまりできなかったと思う。マイナスだった状態のものをゼロにすることはできたが、ゼロだったものをプラスにしたり、プラスだったものをさらにプラスにすることはできなかったというか…。

改めて思うのは、俺はやっぱ人のモチベーションを上げるのが下手だな、と。人が仕事面で高揚するツボを見つけるのが下手というか。まあ、おれのコミュ力の問題かな。俺以外の人がやった方がもっとウマく回っただろうなあ、と思う。おれはこの数ヶ月を皮肉で「社内ニート」と呼んでいた。そこまでアクセス数が多いサービスはなかったので、割と空いている時間が確保できた。調整とかも四六時中やるようなものじゃないしね。なので、この時期に空いている時間を使って運用ツールの開発や技術的な検証をしていた。これは自分としてはプラスだったかな。

Riakを検証した

主に運用の観点で検証。検証の記録はこのブログでも綴っている
どこぞのチームが使いたいと言い出したので先手を打って運用面の検証しとこうと思ったのがきっかけ。結局ユースケースに合わなかったので本番導入はしなかったが。
分散DBの動向は今後も追っていきたい。何年か前はSQLとテーブルのリレーションがDB層の共通言語でだった。しかし今はそうではない。山のようにあるDBの中から最適なものを採択して運用できるようにならないと…。すべてをマスターするのは非現実的なんだけど、ある程度はちゃんと自分/チームの手で触って特徴を掴んでおかないと…。来年も一個くらい何か検証したいね。

BIG IPのAPI

いわゆる”アプリケーションエンジニアがインフラエンジニアに依頼してLBの設定をする”、とかそういうのを全部無くしたくて。コマンドラインからノードの追加/削除、ノードの有効化/無効化、プールへのノード追加/削除、など、アプリケーションエンジニアが普段やりたいであろう機能は一部のチームに提供できた。正直、簡素で稚拙なスクリプトなんだけど、意外と喜ばれたのでよかった。簡単なものでも人の役に立つものはどんどん作っていきたいね。
最終的には「物理マシンをラッキングしたら、ホスト名等に応じて勝手にLBの設定が完了している!」みたいなのを作りたいと考えていたんだけど、志半ばにして下述するソーシャルゲームの担当になってしまった。

ソーシャルゲームの基盤改善、運用

これは現在進行形。今やっている。秋口くらいからこの立場になった。割とヒットしているのでトラフィック多くておもしろい。イベント時のスパイク。システム障害の時間がPV/金額に表れる緊張感。この感覚は久しぶりだ。鳴り響くアラートや障害の緊張から解放されたいと思うが、もし解放されたら俺は廃人になっちまうんじゃねーかと思ったりするときがある。やっぱパンクするくらいトラフィックあるシステムはおもしろいよねー。
まずはDB層のアーキテクチャを変更した。このサービスは典型的なWeb+DBな構成で、DBはMySQLでマスタ:スレーブ = 1 : Nだった。すべてのデータが1マスタに集約されているため、ストレージ容量が逼迫される、高負荷時にストールする、などの問題を抱えていた。なので、まあそりゃやるっしょってことでマスタ分割を施した。現在マスタは3つになっている。これでとりあえずDBの詰まりが原因で死ぬようなことはなくなったので良かった。あとDB層で残ってる問題は、人気イベント時の瞬間最大風速に耐えられないのでレプリ遅延のリスクを孕んだ状態でスレーブを使っているという点。なので、レプリ遅延の影響を受けたらヤバいクエリはマスタに向ける、遅延が許可できるクエリはスレーブに向けるようにしたい。普通の時間帯だったらマスタのみで全部捌けるんだけどね…。
あとはWebサーバのハードウェアを変更した。CPU種/メモリ/OS…etcがすべて同じで、2種類のベンダの機種が混在してたんだけど、某ベンダの機種は高負荷時にレスポンスタイムが著しく低下することに気づいた。普通のときは特に大きな差はなくて、(俺は)気がつかないレベルだった。しかしハイトラフィック環境化ではこの問題が顕在化する。なので安定している方のベンダの機種で統一した。Apacheのコンフィグがちょっとアレなのでこれも直さないとなー。一個一個着実に問題をつぶしていこうと思う。

fabric導入

リリースジョブや再起動ジョブなど、日々のオペレーションの一部をfabricでやっている。使いやすくて良い。
実はCapistranoを使おうと思ってた、最初は。だって、構築がchefでテストもserverspec。そしたらインフラ層はオールRubyにしたくなる。でもまあ個人的にPythonの方が好きってのと、fabricが使いやすすぎるので、ここだけはPythonなものを使っている。chefをansibleにしちまってPythonで支配してしまおうとも思ったんだけど、仕事の観点から考えるとそれはくだらないこだわりだし、スデにできあがっているchefのレシピを書き変えるのも非効率だしそんな暇もない…まあそりゃそうだよね。

serverspec導入

まだ中途半端だが導入した。サーバはキックスタートとchefで構築しているんだが、serverspecを流してみるとぽろぽろとほころびが見つかった。やっぱ継続的なテスト大事ね。もうちょっとしっかりテストを書いて、あとは最適な実行方式を考えんと。jenkinsよりも監視サーバから実行するのがいいのかな、とかいろいろ迷っている。

Dockerの検証

触り始めたばかり。今の開発環境があまり良くないので、チームにもっと良い環境を提供したいと思ってちょいちょい検証をしている。

しかし、こう書いてみて思ったが、意外とちゃんと仕事してた…w。これからも影の存在としてサービスを支えていきたいね。

クロアチアとボスニア・ヘルツェゴビナ行った

経路は↓みたいな感じ。ミュンヘン→ザグレブ→プリトヴィッツェなんとか公園→ザグレブ→バニャ・ルーカ→サラエボ→モスタル→ドブロブニク→ミュンヘンって感じで約一週間くらいかな。

hr-bh

ザグレブ市内。普通に街ですね。

DSC_1320

プリトヴィッツェ。癒される。

DSC_1355

DSC_1440

サラエボ。オープンカフェが多い感じ。夜も遅くまで営業してる。そしてムスリムの文化を強く感じた。水煙草がおいてあったり。場所が変わるとシナゴーグがあってユダヤっぽさがあったり、教会もあります。多文化な国はやっぱおもろい。

DSC_1473

DSC_1506

サラエボからモスタルへの電車の中から。自然が綺麗だった。

DSC_1566

1991~1993没が多かったですね。やはり。

DSC_1579

モスタル。世界遺産になっているスタリ・モストって橋をお隣の橋から撮ってみた。あらためて見ると景色がやはり綺麗な国だと思う。

DSC_1584

再びクロアチア、ドブロブニク。海青すぎ。

DSC_1641

こういう路地裏とか好き。路地裏の通路までレストランのテーブルが置いてあったりする。

DSC_1652

海が近いから海産物がうまかった。牡蠣を食う。

DSC_1668

やっぱり路地裏が好き。何度も撮ってしまう。観光地なんだけどちゃんと人も住んでる。洗濯物が干されてる。

DSC_1674

ドブロブニクを丘の上から見るとこんな感じ。紅の豚のモデルになった街。ここ。

DSC_1709

街は城壁で囲まれてて、城壁からも街を一望できる。

DSC_1776

今回も良い旅だった。

DSC_1808

 

去年の抱負的なことの振り返り

去年の年末にも同様の日記を書いてて、「来年の抱負」を宣言した。なので振り返ってみる。
  • 人間らしい生活をする!まずは部屋の掃除からだな、うん・・。
    • はい、アウトー!!!!!!!!のっけからアウト!!!!!wwwきったねえ部屋に住んでるわwww
  • 自炊を復活させる!ちゃんと毎日メシを食う。
    • アウトー!!!メシも食ったり食わなかったりだしw
  • 旅にも行く!廃墟探索もしたいなー。
    • 【達成!】クロアチアとボスニアいった!廃墟は行ってないがw
  • もっとコード書く!コード書いてないとやっぱダメだ。
    • 【達成!】ちょいちょい書いた!全然足りないけど一昨年よりは書けた。人の役に立つものも少しはアウトプットできた。
  • モダンな技術に手を出す!このままでは時代に取り残されてしまう〜。
    • 【達成!】Riak検証した。できれば、Dockerは年内にもっと深いところまで理解したかったが…自分だけで学ぶには時間が足りない。そういうときは人から吸収するしかないので久々に勉強会にでも顔出そうかな。オフ会のごとくハンドルネーム/Twitterアカウント名で呼び合うあの空間、実はちょっと苦手なんだがw 俺がコミュ障ってものあるけどw
平たく言うと、日常生活が荒んでますね…。遊び(ってか旅行)と仕事はある程度有言実行したが…。

来年の抱負的なこと

今年バージョン。
  • 人間らしい生活をする(一応書いとくw)
  • もっとコード書く。これは継続。
  • もちろん旅に出る。次はどこに行こうか。
  • 専門性を身につける。今はプログラミングもミドルウェアの知識もOSの知識もHWの知識もレベル4みたいな状態だと思っている。全部中途半端。できればレベル7くらいまでにはもっていきたいね。
関係者さま方、今年もお世話になりました。来年もよろしくお願い致します。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Set your Twitter account name in your settings to use the TwitterBar Section.