タグ

ブックマーク / mixiengineer.hatenablog.com (64)

  • Amazon EC2 リザーブドインスタンスの利用状況をDatadogで監視する(AWS Summit Tokyo 2017 で発表してきました) - mixi engineer blog

    はじめまして。北村です。 先日行われた AWS Summit Tokyo 2017 で、Datadog 様の EXPO セッション枠の一部を頂いて SNS「mixi」における Datadog 活用事例について紹介させていただきました。 speakerdeck.com 今回は、その発表の中で紹介させていただいた EC2 リザーブドインスタンスの管理・購入を支援する以下の自作ツールについて紹介をしたいと思います。 github.com ツールの概要 先にツールの概要を解説しますと AWSAPI から得られた EC2 インスタンスの稼働状況とリザーブドインスタンス契約情報を集計し 稼働中のインスタンス数 有効なリザーブドインスタンス数 オンデマンドインスタンス数 未使用状態のリザーブドインスタンス数 以上の推移を、Datadog 上でリアルタイムで可視化するというインスタンス集計プログラム

    Amazon EC2 リザーブドインスタンスの利用状況をDatadogで監視する(AWS Summit Tokyo 2017 で発表してきました) - mixi engineer blog
  • 総行数57,000の巨大CSS群をLessに書き換えた軌跡 - mixi engineer blog

    こんにちは!フロントエンド闇祓いの Kuniwak です。 この投稿はmixiグループ Advent Calendar 2015の20日目の記事です。 今年の9月に、スマートフォン Web ブラウザ版 mixi「mixi Touch」の巨大 CSS を Less (CSS プリプロセッサー)でビルドする環境へと移行しました。 書き換えた CSS の行数は、なんと 56,725行 です。😵 ということで、今回は弊社の大規模 CSS → Less 移行事例についてお話しします。 背景 スマートフォン版 mixi は、2010年5月に始まりました。 この頃のスマートフォンは、iPhone 端末であれば iPhone 3GS、Android 端末であれば Nexus One という時期です。 また、スマートフォンの世界では、Webkit ベースのブラウザーが席巻していた時代ということになります。

    総行数57,000の巨大CSS群をLessに書き換えた軌跡 - mixi engineer blog
    lEDfm4UE
    lEDfm4UE 2015/12/21
  • 2日でできる! JavaScript トレーニング - mixi engineer blog

    こんにちは。SNS mixi の JavaScripter、kuniwak です。 新しい仲間たちが入社する季節になりましたね。 さて、ミクシィを支えるエンジニアが作成した JavaScript 研修の資料を Github にて公開しました。 ミクシィは 2013年から研修資料を公開していましたが、今年は JavaScript の進化に合わせて内容を刷新しています! 2015年度の JavaScript 研修は、Web アプリケーションの部品(モジュール)をつくれるようにすることを目標とした、実践的な研修として計画されました。 JavaScript 研修のために与えられた期間は2日ということもあり、MVC や Flux といった設計方面の話題には踏み込めていませんが、Promise、Fetch API、Bower など、現在・未来のフロントエンド開発に必須の要素を盛り込んだ最新のJavaS

    2日でできる! JavaScript トレーニング - mixi engineer blog
  • OpenStackとLXCを導入した話 - mixi engineer blog

    こんにちは、運用部 アプリ運用グループの清水です。Golang鋭意勉強中です。 今回は、SNS「mixi」に限った話ではなく、ミクシィ社全体として利用している仮想環境について紹介したいと思います。パブリッククラウドも一部のサービスで利用していますが、今回は、自社で運用している仮想環境にフォーカスして書いてみようと思います。 今まで利用してきた仮想環境 今まで利用してきた仮想環境というと、手作業で構築したKVM(Kernel-based Virtual Machine)環境が中心でした。手作業といってもある程度手軽に構築できるように、シェルスクリプトとCobblerでVMを構築できるようになっています。構築の流れは以下のとおりです。 CobblerにVMのIPやホスト名などをスクリプトで登録する。 KVMのホスト上でスクリプトを実行(koanコマンドでCobblerと連携してVMをセットアッ

    OpenStackとLXCを導入した話 - mixi engineer blog
  • systemdを本番運用してわかったこと - mixi engineer blog

    こんにちは、運用部 アプリ運用グループの清水です。モンスト仲間募集中です。 以前、Fedora 8からFedora 17への移行のお話を書きました。Fedora 17ではsystemdがデフォルトで使われています。そのsystemd番環境で運用して1年以上が経ち、様々な経験をしてきました。systemdの環境で知っておくと役に立つと思われることについていくつか紹介したいと思います。 まずは、systemdの概要について簡単に紹介します。 systemdの概要と歴史 systemdは、従来のSysVinit/Upstartに代わるもので、Linuxサーバの起動時に初期設定やサービス起動をおこなうことにとどまらず、プロセスやリソースなど様々な管理をおこなうデーモンです。 Fedora 14の頃(2010年11月リリース)にTechnology Previewとして提供され、Fedora 1

    systemdを本番運用してわかったこと - mixi engineer blog
  • Android の Commons な知見を集めたライブラリを作りました - mixi engineer blog

    こんにちは。今日も元気に Android アプリの開発をしています、横幕です。 最近は、アプリで画像処理をゴリゴリとするのが楽しくなってきました。端末も進化してきており、メモリ搭載量も飛躍的に増えてきているので、そろそろ 64 bit 対応の空気を感じつつ有ります。 さて、私はこれまで、4 つの Android アプリ開発プロジェクトに携わってきました。mixi 公式クライアントアプリ、mixi コミュニティ公式クライアントアプリ、そして今現在はノハナにジョインして、フォトブックアプリと年賀状アプリに携わっています。 新卒入社以来配属から2年半ほど経ち、その中で得た知見を、Android-Device-Compatibility や AndroidTraining といった形で公開してきましたが、今回新たに、Android アプリを開発する中でよく遭遇する、あるあるネタを詰め込んだ Ama

    Android の Commons な知見を集めたライブラリを作りました - mixi engineer blog
  • OpenContrailを勉強してみた - mixi engineer blog

    サービス環境における仮想ネットワーク検討して、OpenContrailは追いかける価値があるのではないかと考えましたので、その過程を書こうと思います。3行でまとめると次のとおりです。 今日時点で使えそうなゲートウエイ実装を考えたときに、OpenContrailは良い選択肢です openvswitchはL2スイッチをエミュレーションしていて、OpenContrailはルータをエミュレーションしています。 macアドレスの隠蔽やmssの調整など、openvswitchではやりづらいこともケアされています。 今日の夜、OpenStack勉強会でOpenContrailの話があるらしいので、負けじと書いてみました。 背景 現在のミクシィのネットワークの悩みはたくさんありますが、特に次の2つの悩みを持っています 大きなL2ネットワークで運用する際の一般的な悩みを抱えている 単一のサービスを動かすこと

    OpenContrailを勉強してみた - mixi engineer blog
  • OAuthのセキュリティ強化を目的とする拡張仕様を導入しました - mixi engineer blog

    こんにちは. 研究開発グループ ritouです. だいぶ前の記事で紹介したとおり, mixi Platformは様々なユーザーデータをAPIとして提供するにあたり, リソースアクセスの標準化仕様であるOAuth 2.0をサポートしています. mixi PlatformがOAuth 2.0の最新仕様に対応しました | mixi Engineers' Blog mixi Platformをさらに安全にご利用いただくため, OAuth 2.0におけるCSRF対策を目的とした拡張仕様を検討, 導入しましたので紹介します. OAuth 2.0の認可フローとCSRF エンジニアの方であれば, Webサービスに対するCSRF(Cross-site Request Forgery)をご存知でしょう. CSRF攻撃とは悪意のある外部サービスへのアクセスや特定のURLへの誘導などをきっかけとしてユーザーの意図

    OAuthのセキュリティ強化を目的とする拡張仕様を導入しました - mixi engineer blog
  • 社内研修「JavaScript基礎」の資料を公開します! - mixi engineer blog

    どうも、新卒2年目エンジニアJavaScript委員会の重田です。 帰省がてら鳥取砂丘や小豆島に行ったらだいぶ日に焼けてしまいました。 さて、もう4ヶ月ほど前になってしまったのですが、新卒研修でJavaScript基礎の講師を担当したので、そのときの資料を公開します。加えて、JSを学ぶ上で押さえておくとよいポイントを解説します。 研修資料 https://github.com/mixi-inc/JavaScriptTraining JavaScript初心者向けの資料になります。 JavaScriptに触れるのがはじめての人でも、配属後すぐに活躍できるようになることを目指して研修を実施しました。 デベロッパーツールで素早くトライ&エラーを繰り返し、JSを学ぶ 去年ぼくはこの研修を受ける立場でした。今年の講師を担当するにあたって、研修の進め方で最も変えたのはデベロッパーツールを積極的に使う

    社内研修「JavaScript基礎」の資料を公開します! - mixi engineer blog
  • Cobblerを使ったOSインストールとその後のクラウド化 - mixi engineer blog

    こんにちは。運用部 アプリ運用グループの清水です。趣味の楽器も気づけば20年目を迎えましたが、いっこうに上達している気がしません。 何回かに渡ってOS移行のお話を書いてきましたが、今回は、OSのインストールで使っているCobblerというツールの利用例を中心に紹介したいと思います。 OSインストールを楽にしたい ミクシィでは非常に多くのサーバーを運用しています。それらのサーバーにおいて、OSインストール作業は日常的に行われています。OSのインストールが必要になるケースは、例えば以下のような場合です。 サーバーを購入した サーバーが壊れ、修理した OSをバージョンアップする(移行する) サーバーの役割を変える(クリーンインストールする) VM(Virtual Machine)を作る 当然ながら、OSインストール作業をするために、わざわざデータセンターに行ってCDやDVDといったメディアを使い

    Cobblerを使ったOSインストールとその後のクラウド化 - mixi engineer blog
  • Gradleプラグイン作ってみた - mixi engineer blog

    こんにちは!最近暑すぎて外に出たくなさすぎて家でPCといちゃいちゃしてるリア充のhentekoです! 現在DeployGate開発チームでインターンとして開発に参加させてもらい、色々させてもらっています。 このミクシィのエンジニアブログ、インターンとして参加する前から結構見てたのですが、まさか正社員になる前に書くことになるとは思ってなかったので結構緊張してます。 そんな僕が作ったものがつい先日リリースされました! GradleからDeployGate APIを簡単に操作できるGradleプラグインです。 GitHubにてソースコードを公開してます。 https://github.com/DeployGate/gradle-deploygate-plugin 今回はこのGradleプラグインについて話したいと思います。 Androidアプリ開発必須ツール、DeployGate まずは簡単にD

    Gradleプラグイン作ってみた - mixi engineer blog
  • mixiのアプリの設計がよく分かるブログ - スマートフォン開発研修教材の補足 - mixi Engineers' Blog

    こんにちは。Android の横幕です。Android が好きすぎて、来る日も来る日もアプリの実装が頭から離れず、毎日7〜8時間ほど睡眠をとっていますが全く疲れがとれた気がしない今日このごろです。はやく iOS のアプリ開発を覚えたいですが、まだ NSLog の使い方を覚えたばかりです。 さて、先日スマートフォン開発研修教材の公開についてでも触れましたが、Android・iOS のアプリ開発を始める人向けのトレーニング資料を公開しましたところ、以下のブログのような反響をいただきましたので、この場でもって回答をさせていただきたいと思います。 mixiのアプリの設計がよくわからない http://yamitzky.hatenablog.com/entry/2013/06/19/173713 に遷移します 設計思想の基は MVC iOS も Android も、フレームワークとしては MVC

    mixiのアプリの設計がよく分かるブログ - スマートフォン開発研修教材の補足 - mixi Engineers' Blog
  • スマートフォン開発研修教材の公開について - mixi engineer blog

    クラフトワークの来日公演3-D CONCERTS 1 2 3 4 5 6 7 8を観にいったら、顔が大きいのか、3Dメガネがきつくて切なかったもりもとです。 株式会社ミクシィでは、新卒入社スタッフをはじめ、これからスマートフォンアプリ開発を行っていく全スタッフを対象に、社内で「スマートフォン開発研修」を始めています。その研修資料をこのたびgithubで公開させていただきました。 mixi-inc/iOSTraining · GitHub https://github.com/mixi-inc/iOSTraining mixi-inc/AndroidTraining · GitHub https://github.com/mixi-inc/AndroidTraining これら文書は、それぞれCC BY-SA 3.0およびApache License 2.0とCC 2.5 Attributi

    スマートフォン開発研修教材の公開について - mixi engineer blog
  • ロングテールな画像配信 その2 - 3,000万の画像を配信するシステム - mixi engineer blog

    Squidを検索する度に最初に表示される画像検索の結果に吹き出しそうになる開発部・システム運用グループの長野です。前回のロングテールな画像配信のその2ということで、実際の画像配信システムについて書かせて頂きます。 ■プロフィール画像の配信について 前回紹介しましたが、mixiにおいてプロフィール写真を設定を設定しているユーザ数は全体の約70%、1,000万人の方が設定をされています。現在配信をしているプロフィール画像のサイズは180x180、76x76、40x40と3サイズあり、合計3,000万以上のファイル数になっています。また、もっともよく使われる76x76のサイズ1,000万件において、1日にアクセスされる画像の数は800万ファイル以上、うち97%が30回以下と非常に広範囲に渡ってアクセスされています。そのため大量の画像を配信できる仕組みが必要になります。 ■配信システムの全体像 プ

    ロングテールな画像配信 その2 - 3,000万の画像を配信するシステム - mixi engineer blog
  • mixi Engineers’ Blog » ロングテールな画像配信 その1

    開発部・システム運用グループの長野です。最近は「サーバ/インフラを支える技術」を読みながら通勤しています。今回はmixiの画像配信について書かせて頂きたいと思います。1回目は画像配信の課題について説明させて頂きます。 ■画像配信の種類 これまで画像の配信は大きく分けて2種類あると考え、システムを構築してきました。1つは1ファイルあたりへのアクセスが非常に多くなりますが、ファイル数が少ないもの。もう一つはファイル数が膨大になる代わりに、1つのファイルへのアクセスは少ないものになります。 前者はmixiの中で使われるロゴ画像やメニューの画像等のページ部品、また広告画像や絵文字画像になり、後者はユーザがアップロードする日記やアルバムの画像にあたります。ページの部品の画像はファイル数はそれほど多くないものの、サーバへのアクセス数が最大で秒間に数万リクエストにもなります。逆にアルバムや日記の画像は全

    mixi Engineers’ Blog » ロングテールな画像配信 その1
  • Google I/O 2013 報告会 やってみた - mixi engineer blog

    こんにちは、Android の横幕です。 Google I/O 2013 に参加して、綺麗なお姉さんに Google Glass について手取り足取りレクチャーしていただけたので、とてもテンションが上がっています。 去る 2013 年 5 月 28 日、弊社にて、「Google I/O 2013 に行ってきた@ mixi ~行ってる間に社長が代わってた\(^o^)/~」と題して、Google I/O 2013 の報告会を開催致しました。 ATND http://atnd.org/event/mixigoogleio Togetter まとめ http://togetter.com/li/509960 http://togetter.com/li/509928 弊社で大々的に報告会を開催するのは初めてでしたが、非常に多くの方にご参加いただき、大盛況のうちに無事幕を閉じることができました。 今

    Google I/O 2013 報告会 やってみた - mixi engineer blog
  • ユーザーファーストを実現するmixiの開発プロセス - mixi engineer blog

    デザインユニットUXデザイン担当の酒井です。 mixiでは昨年来、最重要キーワードとして「ユーザーファースト」を掲げ、ユーザー様のご意見やご利用状況に基づいたサービス施策の実現を素早く行えるようになるために、開発プロセスの改善を継続的に行なっています。今回は、この「ユーザーファースト」なmixiを実現するための取り組みについて、具体的にご紹介していきたいと思います。 なぜ今、ユーザーファーストなのか? 昨年11月に開催した『ユーザーファーストウィーク』で笠原社長からもご説明させていただきましたとおり、mixiというサービスが大きく成長したこれまでの数年の間に、いつのまにかユーザー様と私達との間に「ギャップ」が生まれてしまったという強い反省があります。mixiを取り巻く外部環境の変化に対応していく中で、これまでもユーザー様にとっての「心地よいつながり」とは何なのかを真摯に検討し、時流に合わせ

    ユーザーファーストを実現するmixiの開発プロセス - mixi engineer blog
  • Android開発の効率を今日から確実に5%改善する方法 - mixi engineer blog

    暖かくなったり寒くなったり視界が真っ黄色になったり忙しい今日この頃ですが、皆様お元気でお過ごしでしょうか。動かないことで定評のある「右の方」raiです。mixiのAndroidクライアントアプリ初回リリース以来の登場です。部署もたんぽぽグループからイノベーションセンターという謎の組織へ移りました。大変ご無沙汰しております。 今回は、ミクシィにおけるAndroidアプリ開発現場で得られた経験から、意外と見えづらい開発プロセス上のボトルネックと、それを「いますぐ」「簡単に」改善できる、素敵なサービスについて簡単にご紹介したいと思います。 はじめに さて、ミクシィもAndroidアプリ開発を始めてから2年半ほどが経ちました。 2年も経つと、結構いろんな課題が見えてきて、それらに対する解決策もいくつか生まれます。 Androidプラットフォーム上での開発そのものに関して言えば、以前のエンジニアブロ

    Android開発の効率を今日から確実に5%改善する方法 - mixi engineer blog
  • 続・技術的負債の把握と改善を促すために - mixi engineer blog

    こんにちは, 先日Kansai.pmで発表させて頂いたgoccyこと五嶋@たんぽぽグループです. 今回は, 前回紹介した技術的負債の把握と改善を促すためにの続編として, 僕が作ったPerl5コードのコピペ検出器について紹介させて頂きます. はじめに 今やPerl, Ruby等さまざまな言語で, 便利なライブラリ群やフレームワークを利用できる時代になりました. これらを使うことでソフトウェアの開発コストは格段に下がり, より素早く開発することができるようになっています. しかし, 当初予定されていた機能を実装して, 「よしできたから終わり!」というわけにもいきません. 何か物を生み出せば, 必ずそれを保守・運用するコストが発生します. 開発することが便利になった今, 開発物を保守・運用することを支援するツールも求められています. ですが, 保守や運用, とりわけ保守に関して支援するツールはそ

    続・技術的負債の把握と改善を促すために - mixi engineer blog
  • mixiのサーバOS移行のお話 - ビルド&Kernel編 - mixi engineer blog

    こんにちは。年末と年度末になるとブログを書きたくなる運用部アプリ運用グループの清水です。 気づけば前回の記事から3ヶ月が経過してしまいました… 今回は、ビルド&Kernel編と題して、Fedora 17向けにおこなったパッケージのビルドや、KernelのConfig、TCP周りの変更点について紹介したいと思います。 パッケージのビルド OSが大幅にバージョンアップすると、依存しているライブラリに大きな変更が入ったり、RPMの仕様変更もあるため、Fedora 8時代のパッケージのリビルドなど、多くのRPMパッケージを作りなおさなければなりません。 mixiでは、Fedora標準パッケージとは別に150個以上のパッケージを、 configureなどビルドオプションを変える Fedoraで提供されないパッケージを作る ディストリビューションに依存しない構成のパッケージを作る(あとで紹介するPer

    mixiのサーバOS移行のお話 - ビルド&Kernel編 - mixi engineer blog