タグ

ブックマーク / ameblo.jp/principia-ca (15)

  • 『AWAにおけるDevOps』

    はじめに AWAでサーバサイドエンジニアをやっている山下といいます。初めてエンジニアブログを書かせていただきます。よろしくお願いします。 簡単に自己紹介をさせていただくと、2011年にSIerからサイバーエージェントに中途入社し、いくつかのコミュニティ系サービスの立ち上げ・運用、インフィード広告配信APIの作成などを経て、2015年4月からAWAチームに参加しました。 今回は、(今さら?な) DevOpsについてです。といってもスムーズな連携をするには といった話ではなく、現在のチームに参加してからというもの、「エンジニア間の役割が変わってきていて、DevOpsって現状にあってないんじゃないか」と感じており、それについてご紹介させていただきます。 AWAとは 定額制音楽配信サービスです。 スマートフォン、PCでアプリを提供しており、他のデバイスにも順次対応をすすめています。2015年のベス

    『AWAにおけるDevOps』
  • 『自動購読課金について【Android編】』

    はじめに AWAサーバサイドエンジニアの辻(jun06t)です。 前回の続きで今回はAndroidの月額課金のための実装について書かせていただきます。 基的な流れは前回と同じになってます。 注意事項 ※1:開発中にプラットフォーム側の仕様変更があったため、記載している内容は情報が古い可能性があります。 ※2:記載している動作は十分に調査できていないものも含んでいるため、内容が不正確である可能性があることをご了承ください。 対象環境 目次 Google公式ドキュメントAndroidでの購読登録処理の流れ署名の検証データフォーマットレシートの検証購読期間自動更新手順アップグレードとダウングレード実装していて困ったことレシート検証用ライブラリの紹介まとめ謝辞 Google公式ドキュメント Google Play In-app Billingアプリ内アイテムと定期購入代金の請求 Android

    『自動購読課金について【Android編】』
  • 『自動購読課金について【iOS編】』

    はじめに AWAサーバサイドエンジニアの辻(jun06t)です。 今回はiOSとAndroidの月額課金のための実装について書かせていただきます。 形式として読み物と言うよりドキュメントっぽくなっています。 理由は私が実装しようとした際に実装方法についてまとめて書かれた記事が少なく、「検証時に使えるフィールドはどれだろう?」「昔はこうだったけど、今は違う?」「Androidではできるけど、iOSではできない(逆も然り)」など、色々と分からない部分が多くとても困ったためです。 やや長い記事となったため、iOSの実装を前編、Androidの実装を後編として説明させていただきます。 注意事項 ※1:開発中にプラットフォーム側の仕様変更があったなど、記載している内容は情報が古い可能性があります。 ※2:記載している動作は十分に調査できていないものも含んでいるため、内容が不正確である可能性があること

    『自動購読課金について【iOS編】』
    takkecy
    takkecy 2015/09/17
  • 『最速を究める! 2つのサーバ間で特盛りデータを30倍速で転送する方法』

    最速を究める! 2つのサーバ間で特盛りデータを30倍速で転送する方法 | サイバーエージェント 公式エンジニアブログ こんにちは. エンジニアの平野です. ふだんはプライベートクラウドのサーバハードウェアとストレージを担当しています. サーバのリプレイスや増設, 仮想サーバの移植などでテラバイトクラスのデータを2つのサーバ間で転送することがよくあります. こんなとき, 転送終了を待ちながら「あと何時間掛かるのかなー」とか「もっと速く転送終わらないかなー」なんて考えたことはありませんか? 今回は下記のようなシーンで活躍する, 特盛りデータを30倍高速に転送する方法をご紹介します. - サーバの交換でデータを移設したい - MySQLスレーブサーバの増設したい - 仮想サーバを別のホストに移植したい - 大量のファイルを別のサーバに移設したい - 大容量データをバックアップしたい ■ 環境を用

    『最速を究める! 2つのサーバ間で特盛りデータを30倍速で転送する方法』
  • 『ソシャゲからアドテクになって技術的に変わった7つのこと』

    どうも、アドテクスタジオ所属RightSegmentチームの安田です。 元ソシャゲエンジニアで今はアドテクエンジニアしてます。 サーバーサイドJavaエンジニアです。 なので、昨今は特別派手なネタがないので ソーシャルゲームからアドテクに業種変更して技術的な違いとか書きたいと思います。 ちなみにRightSegmentはDMPという位置づけなのですが DMPとはData Management Platformの略で 広告主がもつデータ、第三者のデータなどを一元管理・分析し、 最適な広告配信をするために活用されるプラットフォームになります。 主にタグと呼ばれるJavaScriptを広告主のサイトに貼ってもらい、 サイトに訪れたユーザーのアクセス履歴からユーザ情報を作成してカテゴリ(セグメント)管理しています。 例えば、 某不動産サイトが有名サイトに広告配信したいとした場合、 ランダムに全国の

    『ソシャゲからアドテクになって技術的に変わった7つのこと』
  • 『MySQL初心者に贈るインデックスチューニングのポイントまとめ2014』

    サイバーエージェント公式ブログをご覧の皆さんこんばんは、インフラ&コアテク部の須藤(@strsk)です。普段はAmebaのソーシャルゲーム全般のインフラを見つつ、日語ラップの啓蒙をしながら弊社社員を素材にコラ画像をつくったりしています。好きなAAは麻呂です。 はい、というわけで今回はMySQLインデックスチューニングの基的な流れについてまとめてみました。 ソーシャルゲームは更新も参照もめちゃくちゃ多いです。数秒のレプリケーション遅延も致命的なので適切なテーブル、クエリとインデックス設計が重要です。(何でもそうですけど)インデックスが多くなると更新コストなどが懸念されますが、インデックスが正しく使われていないクエリを放置している方が悪です。そんなこんなで、割と例も偏ったりしてるかもしれませんがあしからず。 前提としてはInnoDBを想定しています。MyISAMはほとんど使っていません。

    『MySQL初心者に贈るインデックスチューニングのポイントまとめ2014』
  • 『Cassandraのデータ設計で注意していること』

    Ameba Smart Phone PlatformAPI開発を担当している狭間と申します。今回はAmeba Smart Phone Platformで使用しているCassandraのデータ設計時に気をつけていることを実際に起きた事例を交えてお話したいと思います。 Cassandraのverstionは1.1.5を使用していて、100台構成のクラスタを組んでいます。ピーク帯ではおよそ50000write/sec、40000read/secのリクエストを処理していて、およそ45TBのデータを保持しています。そのような条件下で発生した事例と対処方法を紹介させていただきます。

    『Cassandraのデータ設計で注意していること』
  • 『JavaネットワークアプリケーションフレームワークNettyの紹介』

    こんにちは、新規開発局のイニシャルP.です。 今回はJBoss OpenSource Projectの一つであるNetty Projectを紹介します。 Nettyは高性能・高スケーラビリティなネットワークアプリケーションを快速開発するために設計されたNIOクライアント・サーバフレームワークです。 Nettyを使うと複雑なNIO Selector APIを知らなくても簡単に非同期なイベント駆動型のネットワークアプリケーションの作成が可能になります。 簡単とはいえ、APIや使い方の説明になると楽しくないので、 ここでは実際にNettyを利用してMemcachedサーバを作ってみることにします。 動作環境について ・JDK1.5以上 ・Nettyの最新バージョン(現時点で3.2.1-Final) Memcachedサーバの実装について ・Binary Protocolのみ ・GetとSetのみ

    『JavaネットワークアプリケーションフレームワークNettyの紹介』
    takkecy
    takkecy 2013/05/27
  • 『QCon SF参加レポート(後編)』

    こんばんは。Amebaで雑用をしている佐野と申します。 前編を執筆した寺に引き続き、QCon San Francisco 2012の参加レポート後編を執筆させていただきます。 3日間で20セッション近く聞いたのですが、特に印象的だったものについて概要をレポートさせていただきます。 1. Architectural patterns for high availability → Netflixのアーキテクチャについて。 NetflixはWebでDVDのレンタルを提供するサービスを展開していて、 DVDはストリーミングでも視聴可能。 そのトラフィックは北米でトップ(モバイルのトラフィックは除く)。 下りトラフィックは、北米の下りトラフィックの33%を占める(ちなみにyoutubeは14.8%)。 そのシステムの中核はAWSとCassandraでした。 2. Scaling Pinteres

    『QCon SF参加レポート(後編)』
  • 『redis、それは危険なほどのスピード』

    どうも、プラットフォームDivでエンジニアをやっている Wataru です。 最近3人目の子供が産まれて、産後自宅勤務をさせてくれた弊社はとてもいい会社だと思います。出産予定のあるエンジニアのかたは是非弊社に転職を。 さて、今回はRedisの紹介をさせて頂きたいと思います。 Redisってすごくマイナーなわけではないのですが、めちゃくちゃ便利なのにあまり注目されていないなーという印象があるので、これを機会に是非使ってみてもらえると嬉しいです。 Redisって何?Redisとは「remote dictionary server」から名前が付けられたオープンソースのkey-valueデータストアです。 MemcacheDB等のKVSとの最大の違いは、格納するバリューがデータ構造というところです。 つまり、リスト・セット・ハッシュなどのデータ構造で格納できるのでバリューに対してアトミックな操作が

    『redis、それは危険なほどのスピード』
  • 『ハイブリッドAndroidアプリ開発7つの工夫』

    こんにちは。サイバーエージェントでアプリケーションエンジニアをしているkamiyaU(@fuzzy31u)です。 デビュー作girls picに続きCandyというAndroidアプリの開発を担当しました。 今回は「ハイブリッドAndroidアプリ開発7つの工夫」と題して実装上の創意工夫について触れたいと思います。 Candyとは。 女子中高生をメインターゲットとしたスマホで自分のページをデコれるサービスです。 ひとり当たりプロフィール、フォト、ブログ(アメブロと連携)の3つのページを持ちます。 さて。一見通常のWebサービスなのでWebVIewで表示するだけじゃないの?と思われるかもしれません。が、これらのデコデコしたページを管理編集するのがネイティブのお仕事。 デザイン編集に使用するパレットツールだったり アルバムを作るための画像投稿・編集画面だったり デコ絵文字をふんだんに使ったブロ

    『ハイブリッドAndroidアプリ開発7つの工夫』
  • 『OSキャッシュの便利な利用方法』

    アメーバ事業部スマートフォンゲームDiv兼ソーシャルゲームDivの岩と申します。 アメーバのソーシャルゲーム開発を担当しているエンジニアです。 今回は、アメーバのソーシャルゲームを開発する際によく使われる、WEBサーバ上でのOSキャッシュを、Java、Springを利用して実装する便利な方法をご紹介いたします。 またここでのOSキャッシュとは、JavaのJVM上でのヒープメモリにsingletonで情報を格納することとします。 ■まず何をキャッシュしたいのか? 下記のデータを対象にします。 ・DB上のマスター情報で参照のみのデータ よくあるマスタデータです。毎回DB上にSQLを投げてもいいのですが、結果は同じになります。 システム側での情報の更新も行いません。キャッシュしたいですよね!! よく使うキャッシュは、下記の3点です。 ・MySQLのクエリーキャッシュ ・Memcached ・

    『OSキャッシュの便利な利用方法』
  • 『ドキュメント指向データベース「MongoDB」』

    皆様、はじめまして。 アメーバ事業部と言うところでサービス開発のプログラマをしている津田と申します。 先日、M.S.氏より、当エンジニアブログにて「技術に関して書くように」とお達しが下りました。 同じ技術者として、尊敬の気持ちを通り越し、畏怖の念すら抱いているM.S.氏に 「技術」に関して書けと言われるとは、もはや路頭に迷った子羊の気分です。 どうにか違う話題に出来ないかとごまかしてはみたものの、 やはり「技術」に関して書くようにと念を押されてしまいました。 路頭に迷っていても致し方ないので、今後サービスに利用する予定で検証を行っていた 「MongoDB」と言うドキュメント指向データベースに関して紹介させて頂きます。 ■MongoDBとは ここ数年注目を浴びている「NOSQL(NotOnlySQL)」のデータストアの一つ KVSとは異なり、スキーマレスではあるが、カラムに近い概念がある

    『ドキュメント指向データベース「MongoDB」』
  • 『MongoDBを用いたモバイルゲーム開発について』

    こんにちは。アメーバ事業部のブログDivでエンジニアをしている@ygenkiと申します。 今回は、2010年12月末から2011年3月にかけて開発したモバイルソーシャルゲーム(以下、モバイルゲーム)で導入したMongoDBの話をさせていただきたいと思います。 MongoDBについては、すでに当エンジニアブログで津田氏によって紹介されております。 ドキュメント指向データベース「MongoDB」 ■MongoDBを使った理由 今回のゲームは私にとって2つめのモバイルゲーム開発になりました。 前回の開発ではMySQLを使用しておりましたが、モバイルゲーム開発の以下の特徴からMongoDBを採用いたしました。 ○開発効率の向上 モバイルゲーム開発は短期間での開発が求められ、ゲームという特性上仕様変更が頻繁に行われます。スキーマレスであるMongoDBはデータ構造の変更に柔軟に対応する事ができると

    『MongoDBを用いたモバイルゲーム開発について』
  • 『サーバの構築作業やシステム管理を自動化する「Chef」』

    皆様、はじめまして。2010年9月に入社した並河です。 インフラ周りの話題を・・・ということで、今回はサーバの構築やシステム管理作業を楽にしてくれるツールである「Chef」について紹介します。 ■ Chefとは「Chef」は、サーバOSでのインストール・設定・各サービスの状態管理等、諸々のシステム構築や運用作業を自動化してくれるRuby製のシステム管理ツールで、オープンソースとして公開されており、既に、37signalsやEngine Yard、RightScaleなどでも使われており、利用実績も出始めています。 Ruby製のシステム管理ツールといえば「Puppet」を思い浮かべる方も多いのではないでしょうか。ChefはPuppetの競合ソフトウェアとなる位置付けで、出来ることだけでいうと、特別大きな差はないと感じていますが、Puppetは外部DSLとして設定を記載するのに対し、Chefは

    『サーバの構築作業やシステム管理を自動化する「Chef」』
  • 1