Amebaのソーシャルゲーム全般のインフラを担当しつつ賃貸マンションの間取りを眺めたり、 戸境壁の工法による防音性の違いについて日夜研究しています。 いつかD値が60以上のマンションに住みたいです。
![『オンラインで安全にスキーマ変更可能なpt-online-schema-change』](https://cdn-ak-scissors.b.st-hatena.com/image/square/0fa8db8c0d237e73e362cd29fc7fd0802ed1c9e3/height=288;version=1;width=512/https%3A%2F%2Fstat.ameba.jp%2Fuser_images%2F20160223%2F18%2Fprincipia-ca%2F8a%2Fc3%2Fp%2Fo0400030013575078305.png)
こんにちは!サイバーエジェント アドテクスタジオ新卒の黒崎 (@kuro_m88) と申します。 Dynalystというチームに配属され、一人前のサーバサイドエンジニアになるべく修行をしています(`・ω・´)最近はScalaを書くことが多くて、Sparkで大量のログを集計するバッチの開発をしています。ほぼ100%AWSで構成されているプロダクトなので業務でネットワークの運用もしませんし、構成の事を意識する事はあまりありません。 そんな中でネットワークの事が知りたくなったのは、広告の配信に関わる開発をしてみて、広告の配信の仕組み自体も技術的にめちゃくちゃ面白いんですが、それと同時に自分たちのサーバから広告が表示される端末までの間がどうなってるのか気になってしまったのがきっかけです。学んでいくにはやはり手を動かすのが一番ですよねo(((^^)))o
こんにちは、サーバーサイドのエンジニアをやっているoinumeです。今回は昨年8月ぐらいから作っていたAmeba Owndというサービスで行ったSEO対策について紹介します。 AmebaOwndって?ブログ機能を備えたスタイリッシュなデザインのWebサイトを簡単に作成できるサービスです。 香川真司オフィシャルサイトスターバックス コーヒー オフィシャルブログなどのサイトがAmeba Owndを利用して作られています。 アーキテクチャユーザーさんがWebブラウザでアクセスするページについてはAngularJS + REST API(Nginx + Go)で作られています。一方でGooglebotなどのクローラーからのアクセスの場合は、受けたリクエストをNginxがPrerender CacheというシステムにProxyして、このPrerender CacheからHTMLを返すようにしています
サイバーエージェント公式ブログをご覧の皆さんこんばんは、インフラ&コアテク本部の須藤(@strsk)です。普段はAmebaのソーシャルゲーム全般のインフラを見つつ、日本語ラップの啓蒙をしながら弊社社員を素材にコラ画像をつくったりしています。好きなAAは麻呂です。 はい、というわけで今回はMySQLインデックスチューニングの基本的な流れについてまとめてみました。 ソーシャルゲームは更新も参照もめちゃくちゃ多いです。数秒のレプリケーション遅延も致命的なので適切なテーブル、クエリとインデックス設計が重要です。(何でもそうですけど)インデックスが多くなると更新コストなどが懸念されますが、インデックスが正しく使われていないクエリを放置している方が悪です。そんなこんなで、割と例も偏ったりしてるかもしれませんがあしからず。 前提としてはInnoDBを想定しています。MyISAMはほとんど使っていません。
こんにちは。最近専らjavascriptを書いています、maginemuです。今回はjavascriptとは全く関係ないエントリーです。 はじめに 巷でスタンディングデスクとか言われてどれくらい経ったのでしょうか。 サイバーエージェントでもスタンディングデスクをしている人は少しだけ居ます(僕のチームくらいしか見たことない)。 そういう試みをしてる人も居るよということで紹介してみたりします。 スタンディングデスクとは? にわかに話題になった「スタンディングデスク」というキーワード。一言でいえば「立って仕事をする」ということなのですが、思いの外メリットもあるようです。 ざっと「スタンディングデスク」で検索すると沢山エントリーが出てきます。 いくつか挙げてみましょう。 スタンディングデスクを3カ月試して感じた6つのメリット 長時間座っていることは喫煙並にあなたの寿命を縮める 「1日に6時間座って
こんにちは。 アメーバピグでNode.jsを使って開発をしている中村と申します。 平日はエンジニア、土日は主夫として働いています。 さて、早速ですが、この記事ではESLintを使って、JavaScriptのソースコードのバグを発見する手順をご紹介したいと思います。 ESLintとは ESLintはNicholas C. Zakas氏が中心となって開発しているJavaScriptのLintツールです。 JavaScriptのLintツールといえば、最近ではJSHintが定番だと思います。 ESLintはJSHint同等の機能を持つ他、解析ルールが完全にプラガブルになっており、独自ルールを自由に追加できるという特徴があります。 例えば、JSHintでいうところの、strict(strict modeで実行されるかをチェック)というオプションは下記のURLのように個別のルールとして実装されていま
2ヶ月前にインフルエンザとウィルス性胃腸炎でひどくダメージを受けた増田(@masudaK)です。アメーバピグは2009年2月に始まったサービスで、FLASH・Javaで作られています。そして、データストアにMySQLを用いてます。本記事では、わたくしが2年ほど見続けているアメーバピグのDB環境について構成や、日々どのようにして問題と向き合っているかを紹介したいと思います。インフラ寄りの内容が多いため、アプリ寄りの話は弊社生沼の資料を御覧ください。 1. 構成と規模 1.1. 構成 まず構成ですが、読み書きはすべてマスターへ行うようにしています。そのため、スレーブには参照を向けず、ホットスタンバイとして使っています。バージョンに関しては2012年中旬までは5.0を使ってましたが、DC移転にあわせて5.5にあげました。ロック機能を用いたシャード構成をしてまして、2014年3月現在6シャードにな
はじめに 初めまして。 2011年度入社のつちはしと申します。 アメーバのゲーム部門でエンジニアをしています。 今回はエンジニアブログを書く機会を頂きましたので、大好きな Scala について書かせていただきました。 「たのしさ」というとらえどころのない話しゆえ、すこしゆるーくなっておりますが、ご了承くださいませ。 というわけで、よく「Ruby は使っていて楽しいお 気持ちいいお」と聞くけど、 Scala も楽しいし気持ちいいんだよー! とゆうのを伝えたいです。。 伝わるといいです。。 (この記事は私が Scala の楽しいと感じる部分に的を絞って書いています。 Scala には楽しくない部分もいろいろありますが、それに関してはここでは触れません。 Scala たんは俺の嫁) さくっと書いてためしてみることが出来るの 本題に入る前に。。 Ruby には irb という、その場でプログラムを
ロック機能のポイントはSETNXです。 指定したキーがなかった場合は値をセットして1を返し、 既に存在する場合は何もせず0が返ってきます。 つまり、1はロック成功、0は他からロック済みと判断することができます。 それでは実装に進みましょう。 まずロックのインタフェースを用意します。 public interface Lock { public void lock() throws TimeoutException; public void unlock(); } 最低限のロックとアンロックを用意しました。 続いて中身を実装します。 public class RedisLock implements Lock { private static final String LOCK_KEY_PREFIX = "lock:"; private static final int LOCK_EXPIR
皆様こんにちは 以前、社内勉強会制度 Skill U Friday のご紹介をさせていただいた織田と申します。 昨年は多くのセミナーを通じて、当社エンジニアをお引き立てくださりありがとうございました。 さて今回は、昨年サイバーエージェントのエンジニア職が登壇したセミナーのプレゼン資料をまとめてご紹介差し上げます。 今年も、多くの外部セミナーや当社発信のセミナーを通じて皆様と技術交流が出来ることを楽しみにしております。 宜しくお願い申し上げます。 ■秋葉原ラボ
あけましておめでとうございます。 あけましておめでとうございます。 仕事柄まだ去年からの障害を引きずっていて年明けどころじゃないよ!と言う方もいらっしゃるかもしれませんが・・・。 新年ということで心機一転システム改善/新規開発、頑張って行きましょう! 昨年は滞っていた更新を定期更新ペースに戻すことが出来たのではないかと思っているサイバーエージェント公式エンジニアブログです。 2013年エンジニアブログランキング それでは、早速ですが2013年の総決算として2013年に公開された記事のアクセス数ランキングを公開いたします! この年始のお時間あるときに読んでいただけましたらと思います。 10位:ピグ麻雀のアルゴリズム ピグのミニゲームとして提供している麻雀ゲームのアルゴリズムについての記事です。 麻雀やったこと無いエンジニアの人たちが麻雀ゲームを作るための苦悩も綴られていますw 9位:redi
Node.js Cluster+Socket.IO+Redisによるリアルタイム通知システム | サイバーエージェント 公式エンジニアブログ
皆様初めまして。 12年度新卒のぱっとしない方のハカマタです。 アメーバピグの制作部署で、サーバサイドエンジニアとして陰ながら頑張っています。 さて、突然の告白ですが最近私は仕事中にアメーバピグで麻雀をしています。 しかし私は今まで一度たりとも叱られたことがありません。 それは、私が叱責に耐えうるメンタルが無いと先輩方に諦められているからでしょうか? 違います、私は麻雀ゲームの制作者メンバーで、デバッグという名目で、ピグで麻雀をしているためです。 本日の記事は、ピグでリリースしたピグ麻雀についてお話します。 ピグ麻雀はエンジニア・ディベロッパー・デザイナー各1名で制作したもので、 私はエンジニアとして参加しました。 サイバーエージェントのクリエイターブログに過去の記事として、デザイナーの鈴木さんの記事『ピグ麻雀におけるデザインのポイント』と、ディベロッパーの鈴木さんの記事『ピグ麻雀がリリー
どうもこんにちは、社内ではJava嫌いで有名になってしまった oinume です。最近Javaに慣れすぎてむしろスクリプト言語が苦手になってきています。今回は「これがあればJavaでの開発もそんなにストレスないかもなぁ」と思える個人的な3種の神器のひとつである lombok を紹介します。 lombokってなに?一言でいうとJavaの野暮ったいgetter/setterメソッドなどを自動的に生成してくれるソフトウェアです。例えば @Data アノテーションをつけて以下のようにメンバー変数を定義するだけで、lombokがgetter/setter/equals/hashCode/toStringのメソッドをコンパイル時に生成してくれます。 package sample; import lombok.Data; @Data public class User { private int id;
また、RAIDカードのパラメータはWritback、bs/512K、マウントパラメータはnoatime,nobarrier、queue_depthなども設定しています。 リニューアル構成 現在、上記の構成をリプレースしており 次期には分散ファイルシステムのOpenstack Swiftを使用した構成になります。 Swiftに関しては最近話題なので、ここでは割愛します。 ちなみにSwiftを採用した理由としては、こんな感じです。 ・分散できる(*´ω`*) ・RESTful(*´ω`*) ・pythonでかかれてる(*´ω`*) ・自動復旧機能がある(*´ω`*) ・コミュニティが活発(*´ω`*) ・試験的にもよかった(*´ω`*) まず分散できるという点。 Swiftはデフォルトで3つのレプリカを持つことができます。 また、zoneという概念をもっており、同じオブジェクトは複数のzone
ちょりーっす!コミュニティ部門でWebデベロッパーをしています石本(@t32k)です。今回は6/18-6/20、米国のサンタクララで開催されたVelocity 2013のレポートを書いてみるよ。 Velocityは『ハイパフォーマンスWebサイト』の著者でも有名なSteve Souders氏が2008年から開催している、Web Performance(フロント、バックエンド問わず), Web Operationsなどを幅広く取り扱ってるカンファレンスです。また同名のカンファレンスが、ニューヨーク、ロンドン、北京でも開催されており、まさしく世界的なカンファレンスと言ってもいいでしょう。 『ハイパフォーマンスWebサイト』を読んだ時から、私にとっていつかは行きたいと思ってた憧れのカンファレンスだったので、3日間興奮しまくりでした。その中でも特に印象的だったTwitter社のMarcel Dur
はじめまして。 アメーバ事業本部でアメーバピグの開発/運用を担当しております、丸山と申します。 去る6月18日、CROOZ株式会社主催の勉強会テックヒルズにて第6回はJenkinsをテーマにして開催されました。そこでアメーバピグにおけるJenkinsの活用事例について登壇の機会を頂きました。 当日は、すでにローンチして2年以上経った状態でのアメーバピグにおいて、 * コード品質管理 * バッチ制御 * オペレーションの自動化 の3点をJenkinsを利用して如何に実現してきたかを実例を交えて話させていただきました。 が、あまりにも内容が赤裸々すぎたので後で会社から怒られないか若干心配です。 なお、発表時の資料をslideshareに上げておりますので、これからJenkinsを導入する方にとってで少しでも参考になれば幸いです。
はじめまして。サービスインフラというチームに所属している@oranieと申します。前回の弊社 佐野からCassandra芸人による他のネタも・・・という話があったのでこれ幸いとCassandraネタでお茶を濁そうと思っています。そもそも他にもネタを持っているエンジニアがいる中で僕に執筆依頼を出す時点で、なんて節操の無い寛容な人達だとビックリしました。多分ダーツかなんかで決めたんだと思います。 入社以来、なぜか弊社でデファクトとして使われているデータストアのMySQLにもほとんど触らず、ひたすらCassandra運用とか他には仕事チャット上で一人だけ勝手に盛り上あがって麻呂のAAを貼りつけたり等の社内ピエロ雑用をやっています。おかげさまでエキサイティングな日々を毎日送る事が出来た為、酒の量が一時期増えたのと多少は小ネタを覚えたのでまだ運用していない方に少しでも運用・監視周りのお役に立てれば幸
こんばんは。社内ニートの佐野と申します。所属はいちおAmebaのインフラチームです。Twitterもやっていますがフォローする価値はないです。つぶやいているのはメシと酒の話と下ネタだけです。 最近、組織改編とかもろもろありましてこのたびは雑用からニートになりました:(;゙゚'ω゚'): あまり目立たないように生きてたんですが、何気にこのブログへの登場は3回目になります...。前回は2012年12月に「QCon San Francisco 2012の参加レポ」を書かせていただきました。その前は2012年5月に「Virident FlashMAXの検証」として名前だけ登場しました。なんか、ニートだけど会社に貢献してる気がしてきた(^ρ^) そんなわけで以前WebSocketを使った監視ツールもどきを作ったので、それについての簡単な説明と、各種技術要素(Python, Jolokia)のTips
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く