並び順

ブックマーク数

期間指定

  • から
  • まで

161 - 200 件 / 1361件

新着順 人気順

redisの検索結果161 - 200 件 / 1361件

  • 最近見かける新しいライセンスについて - Kengo's blog

    Elastic社のブログをきっかけに、最近見かける新しいライセンスについて個人的に調べてみた。私は専門家ではないので要注意。公開情報も隅々まで追えているわけではないし。 なお一部ライセンスはOpen Source Initiative (OSI)による承認を受けていないので、ここではオープンソースライセンスではなく単に「ライセンス」と書くことにする。 新しいライセンスが誕生している背景 従来のオープンソースライセンスが再頒布以外の利用をあまり想定していなかった。 Open-core modelないし完全オープンソース戦略を採る企業が自衛策を必要とした。 既存のライセンスが難解なため、理解しやすいライセンスが求められた。 OSS活動を収入に繋げるためのモデルが試行錯誤されている。 新しいライセンスを導入しているプロジェクト(一例) プロジェクト ライセンス Elastic SSPLと独自ライ

      最近見かける新しいライセンスについて - Kengo's blog
    • なぜ私達は Python から Go に移行したのか - Frasco

      新しい言語に移行するのは常に大きな決断です。その言語をよく知る人がチームメンバーに1人しかいない時などは特にそうです。今年の初め、我々は Stream の主要言語を Python から Go に切り替えました。この記事では、なぜ私達が Python から Go に移行しようと決断したのか、その理由を説明します。 Go を使う理由 理由1 - パフォーマンス Go は速いです! Go は極端に速い。そのパフォーマンスは Java もしくは C++ に匹敵します。私達のユースケースでは、Go は Python より30倍速いです。Go と Java を比較したベンチマークはこちらです。 理由2 - 言語パフォーマンスの問題 多くのアプリケーションにとって、プログラミング言語は、単にアプリとデータベースを繋ぐものにすぎません。言語そのもののパフォーマンスは通常あまり重要ではありません。 しかしな

        なぜ私達は Python から Go に移行したのか - Frasco
      • GraphQLの全体像とWebApp開発のこれから - Qiita

        TL;DR GraphQLはクライアント側とサーバー側の双方の複雑化を解決するために利用されてる フロントエンドにとってGraphQLはHTTP上で動く信頼できる唯一のリソースとして振る舞う フロントエンドの状態管理のベストプラクティスとしてのApollo Client クライアントファーストなAPI, GraphQLはWeb APIのベストプラクティスになり得る クラシックアプリケーションを改修することなくGraphQLとモダンフロントエンドで今どきのアプリを作れる はじめに GraphQLは非常に良く出来たソフトウェア(の仕様)ですが、複数の側面を持つことからすぐに理解することが難しくまだ日本ではあまり受け入れられていない印象があります。GraphQLを端的に何と言われると "全てのフロントエンドのためのAPI BFF" なのですが、それだけで理解出来る人はなかなか居ないように思います

          GraphQLの全体像とWebApp開発のこれから - Qiita
        • 自作RDBMSやろうぜ!

          Skip to the content. 自作RDBMSやろうぜ! このサイトの目的 RDBMS(いわゆるリレーショナルデータベース)というものはプログラミング言語の処理系や、OSなどと同様に、世の中で広く使われているソフトウェアであるにも関わらず、いざ自作してみようと思うと日本語で記述されたサイトや書籍で、必要な情報・情報源がまとまったものがないことに気づきました そこで、叩き台として、本サイト管理人および数名のコミッタで開発している自作RDBMSである SamehadaDB が軌道に乗るまでの経験をベースに、自作RDBMSするための道筋をある程度整理して書き記してみました 各々の情報・情報源はあいかわらず多くが英語で記述されていますが、その点はご容赦下さい なお、本サイトは技術的な解説を提供するのではなく、適切と思われる情報・情報源をポイントするようなサイトとなることを想定しています

          • テストしやすいGoコードのデザイン

            テストしやすいGoコードのデザイン golang.tokyo #2 12 December 2016 Taichi Nakashima 言いたいこと 明示的であれ! 2 whoami @deeeet / @tcnksm (GitHub) http://deeeet.com A PaaS Dev&Ops (Using go for CLI tool, API, Batch jobs) 3 OSS Tools gcli - The easy way to build Golang command-line application ghr - Create Github Release and upload artifacts in parallel Packages go-httpstat - Go package for tracing golang HTTP request latency

            • 【新機能】Google Cloud 純正の構成図ツール Architecture Diagramming Tool が発表されました | DevelopersIO

              【新機能】Google Cloud 純正の構成図ツール Architecture Diagramming Tool が発表されました Google Cloud のアーキテクチャ図を書く純正のツール Architecture Diagramming Tool が発表されました。Google Cloud の構成図ツールの決定版になると思います。 ウィスキー、シガー、パイプをこよなく愛する大栗です。 先程 Google Cloud 純正のアーキテクチャ図作成ツールである Google Cloud Architecture Diagramming Tool が発表されました。 Introducing a Google Cloud architecture diagramming tool Google Cloud Architecture Diagramming Tool 今まではGoogle S

                【新機能】Google Cloud 純正の構成図ツール Architecture Diagramming Tool が発表されました | DevelopersIO
              • オレオレRailsアプリを支えるインフラの作り方 - くりにっき

                はじめに これは Ruby on Rails Advent Calendar 2014 - Qiita の19日目です 18日目 @yancya さんの Rails でシングルじゃないテーブル継承 - Qiita でした 19日目:オレオレRailsアプリを支えるインフラの作り方 最近では Heroku などのPaaS*1 も普及してインフラのことを知らなくても簡単にアプリを公開することができるようになりました。 しかしトラブルシューティングやパフォーマンスチューニングなどを行うにはアプリケーションコードだけで完結することは少なく、全体像を把握する必要があります。Railsアプリケーションの裏でどんな構成で動いているかを知っておくかは重要なのでざっくりと紹介したいと思います。 書かないこと Railsアプリを作る上でのノウハウ 便利なgemや外部サービスの紹介 *2 監視 アラート検知 モ

                  オレオレRailsアプリを支えるインフラの作り方 - くりにっき
                • 「フルスタック開発者」を名乗るなら身につけたい技術と知識【2017年版】

                  フルスタック開発者に求めるスキルは時代とともに変わっています。2017年のフルスタック開発者を名乗るなら最低限知っておくべき技術と知識をまとめました。 プロトタイプから完全なMVP(Minimum Viable Product:実用最小限のプロダクト)までカバーするフルスタック開発者のことを「多芸は無芸」と評価する人もいます。そんな一面もあるでしょう。まずは、フルスタック開発者を知るために、歴史を振り返ります。 以前のフルスタック開発者 2000年ごろ(インターネットでの17年前は大昔です)のフルスタック開発者の定義はこんな感じでした。 Photoshop、FireworksなどAdobe系ツールでWebページを手早く作る デザインをHTMLやCSSに変換し、画像にホットスポットを追加する(もはや忘却のかなたですか?) 簡単なPHP4.0スクリプト(当時のPHPはオブジェクト指向とは無縁)

                    「フルスタック開発者」を名乗るなら身につけたい技術と知識【2017年版】
                  • Railsで導入してよかったデザインパターンと各クラスの役割について - masato_hiのブログ

                    3年ほどRailsを書いてきてある程度知見が溜まってきたので、忘れないためのメモとしてKPTと導入例を交えながらダラダラと書いています。 見出しの命名規則は クラス名/ディレクトリ名の単数形をupper camel caseにしたもの + KPT です。 Keepは今後も使うもの、Problemは開発規模によっては問題が発生する(した)もの、Tryは現在使用していないが使用したほうが良いと思っているものです。 これらすべてを導入すれば上手くいくというわけでもないので、開発規模に合わせて適切に採用していくと良いと思います。 DDDやデザインパターン等見聞きはしているものの詳しいわけではないので間違っている部分等あるとは思うのでその辺りはコメントでご指摘お願いします。 はてブコメント欄で頂いた指摘内容等についてはまとめの後でまとめて返答を記載しています。 Asset (Keep) app/as

                      Railsで導入してよかったデザインパターンと各クラスの役割について - masato_hiのブログ
                    • GitHubクローンのGitLabを5分でインストールした - アルパカDiary Pro

                      ※2015/6/22 最新版の手順に更新 ※2015/1/7 アップグレードについての記事を書きました http://d.hatena.ne.jp/toritori0318/20150106/1420558625 ※2014/5/24 補足記事書きました http://d.hatena.ne.jp/toritori0318/20140524/1400955383 で、お決まりのパターンでOSSに流れて、 GitLabとかやってみたんだけど、むっちゃムズいのねあれ。 まともにインストールできん。 http://d.hatena.ne.jp/rela1470/20140520 「GitLab インストール」 でググるとたいていまともにインストールしようとしている記事が見つかって なにこれ使うまで面倒すぎ! ってなりますよね。かつての自分もそうでした。 しかし最近のGitLabはRPMが提供され

                        GitHubクローンのGitLabを5分でインストールした - アルパカDiary Pro
                      • iMacとMacBook Airを買ったので開発環境を整えた - #詰んでる日記

                        会社PCがiMacに変わり、その快適さの前に屈してMacBook Airを個人で買った。2週連続で開発環境を構築したのでそれをまとめておく。 ちなみにiMacは21インチでSSD256GB,メモリ8GB。Airは11インチでCore i7にした。 27インチじゃないのは会社が金をくれなかったから。Airを13インチにしなかったのは会社に13インチAirが溢れてるからなのと安価でCore i7したかったから。 GUI編 先にMacAppStoreやブラウザでダウンロードしてきてGUIで適当に入れる。開発用の環境はhomebrewなどで入れていくので後回し。 KeyRemap4MacBook キーボードの配置などをマッピングするためのもの。 インストール後再起動が必要なので最初に入れる。 英語配列のキーボードで、commandキーを単体で入力した場合に、かなや英数に切り替えるようにしたりできる

                          iMacとMacBook Airを買ったので開発環境を整えた - #詰んでる日記
                        • NoSQLデータモデリング技法 · GitHub

                          NoSQLデータモデリング技法.markdown #NoSQLデータモデリング技法 原文:NoSQL Data Modeling Techniques « Highly Scalable Blog I translated this article for study. contact matope[dot]ono[gmail] if any problem. NoSQLデータベースはスケーラビリティ、パフォーマンス、一貫性といった様々な非機能要件から比較される。NoSQLのこの側面は実践と理論の両面からよく研究されている。ある種の非機能特性はNoSQLを利用する主な動機であり、NoSQLシステムによく適用されるCAP定理がそうであるように分散システムの基本的原則だからだ。一方で、NoSQLデータモデリングはあまり研究されておらず、リレーショナルデータベースに見られるようなシステマティック

                            NoSQLデータモデリング技法 · GitHub
                          • こんな便利なのがあったとは!Web制作者やデザイナー向け、macOS用のアプリとツール 総まとめ

                            Web制作者やデザイナー向けの定番のアプリ・ツールをはじめ、あまり知られていない便利なものまで、macOS用のアプリとツールを紹介します。 制作者やデザイナーに限らず、macOSを便利にするツールもたくさん揃っています。 Awesome Mac -GitHub MITライセンスで公開されており、せっかくなので、翻訳してみました。 私が日常的に使うツールや、気になっていたツールも含まれており、こんなのもあるんだ!という便利そうなツールもたくさんあります。 エディタとIDE(統合開発環境) 開発ツール テストツール コマンドラインツール バージョン管理 データベース デザイン&プロダクト 仮想マシン コミュニケーションツール データ復旧 オーディオとビデオ オフィス・読み書きツール Ebookリーダー FTPクライアント ハイブリッドアプリ用のフレームワーク ダウンロードツール オンラインスト

                              こんな便利なのがあったとは!Web制作者やデザイナー向け、macOS用のアプリとツール 総まとめ
                            • Dockerで非エンジニアでも開発環境を上げ下げできる、mirageというツールを作りました - KAYAC engineers' blog

                              いやー今年もISUCONの予選参加募集がはじまりましたね! 昨年は出題側だったので胃が痛かったですが、今年は参加側ですので大変楽しみにしております。@acidlemonです。 Docker使ってますか? さてみなさん、Docker使ってますか? 使ってる? 使ってない? ぼくは使ってませんでした。えー今どきBlue-Green Deploymentやってないの? Immutable Infrastuctureじゃないの? と言われそうですが、世の中にはいろんなしがらみとかもあってなかなか簡単にエイヤーでコンテナに移行できるわけでもないのは皆さんなんとなく感じているのではないでしょうか。 とはいえ、最近これだけ話題になっているDockerですので、そろそろ使ってみたいなぁ…ということで、まずは開発環境をDockerで上げられるようにしました。 Dockerでコンテナを作るときには2つのアプロ

                                Dockerで非エンジニアでも開発環境を上げ下げできる、mirageというツールを作りました - KAYAC engineers' blog
                              • ソーシャルゲーム サーバーアーキテクチャ選定 | GREE Engineering

                                ※Read / Write のレスポンスタイムは大まかに計測した値のため適切な設定ができていない場合もあることをご了承ください MySQL 信頼と実績のあるRDBMS。新規タイトルの場合AWSではAurora、GCPではCloud SQLを利用することで運用の手間をある程度減らすことができる。分散システムではないため1クラスタでの書込性能には限界があり、ソーシャルゲームのように大規模なwrite処理がある用途では水平/垂直分割が必要になり、そのための設計とコーディングが煩雑になりがちである。またインスタンスのスケールアップ・ダウンで対応しきれない場合のクラスタの分割・統合のオペレーションは複雑なものになる。 スケールアップ・ダウンやnodeのメンテナンスなどでMaster nodeを切替える際には不通時間が発生してしまうため、安全のためゲーム自体をメンテナンス状態にする必要が発生する。 ※

                                  ソーシャルゲーム サーバーアーキテクチャ選定 | GREE Engineering
                                • あらためてRuby製のクローラー、"anemone"を調べてみた - プログラマでありたい

                                  3年ほど前に、Ruby製のクローラー"anemone"を紹介しました。その当時から完成度が高く、Rubyでクローラーを使う場合はanemoneを利用してきました。最近、他に新しくて良いのがないか調べましたが、機能面の網羅性という意味でanemoneを超えるものは見つけられませんでした。そこで改めてanemoneのソースを読んでみたところ、クローラーが必要とする機能を必要最小限で実装され、やはり中々良い出来です。冬休みの宿題ではないですが、勉強の意味を兼ねてソースを追っていくことにします。 Anemoneが利用しているライブラリ一覧 anemoneが利用しているライブラリは、4種類に分類できます。 Ruby標準or一般的なライブラリ データ取得で利用しているライブラリ データ解析で利用しているライブラリ データ保存で利用しているライブラリ この分類別に構造をみるとわかりやすいので、順番に追っ

                                    あらためてRuby製のクローラー、"anemone"を調べてみた - プログラマでありたい
                                  • Dockerホストのパフォーマンスを引き出すTCPカーネルパラメータチューニング - tehepero note(・ω<)

                                    2016 - 08 - 12 Dockerホストのパフォーマンスを引き出すTCPカーネルパラメータチューニング Docker Linux もう半年くらいフルDockerでmicroservicesなサービスを運用してるんですが、イマイチパフォーマンスを出し切れていないなという面がありまして、今回Dockerホストの TCP カーネル パラメータを抜本的に見直しました。 そしたら劇的に症状が改善して、 インスタンス 数も削減できた上に安定して メシウマ状態 になったので紹介します。実際効果があったのでチューニングポイントとしてはある程度正解であったと考えていますが、もちろん扱ってるアプリケーションの特性にもよるはずなので一つの ケーススタディ であることをご了承頂ければと。 前提 まずは今回のお話の前提を。こんな環境です。 EC2 c3.xlarge ホストは Ubuntu (EC2 Opt

                                      Dockerホストのパフォーマンスを引き出すTCPカーネルパラメータチューニング - tehepero note(・ω<)
                                    • Railsアプリケーション開発を完全にDocker化する

                                      Railsアプリケーション開発を完全にDocker化する Tweet Degica のすべてのサービスは Rails で開発しており、そのうちの一部は Docker を使用した本番環境にデプロイしています。しかし開発者個人の開発環境にはいまだに Docker を導入できていません。最も大きな障害は spring を docker コンテナ内で上手く扱う方法が確立されていなかったことですが、この問題は docker-compose を工夫して利用することで解決可能であることがわかりました。 ということで、今回は rails アプリケーションの開発環境を完全に docker 化する方法を紹介します。 完全に、というところがポイントです。この方法を使えば docker 以外のツールを一切ホストマシンにインストールせずに rails アプリの開発を行うことができます。 (ちなみに、弊社の本番環境は

                                        Railsアプリケーション開発を完全にDocker化する
                                      • DBマイグレーションを行う技術 - 発明のための再発明

                                        データベースのスキーマを変更するということはデータをいじる行為であり、最悪の場合データが消えます。 最悪の事態にはならなくとも、思わぬ場所に影響が起きたり、データの不整合が発生する恐怖と戦う必要が有ります。 テストや切り戻しを含めて計画し、大きな変更の場合にはダウンタイムまで考慮する必要があります。 そこで、RDBを対象にデータベースの変更を行う方法について書いていきます。 スキーマ変更 まずは、スキーマ変更について、 カラムを追加する 一番簡単で、影響も少ない変更です。 気をつけるのは、 ソースコードの変更よりも前にスキーマ変更を完了させる (長時間)ロックがかからない方法を選ぶ といったところでしょうか。 大抵の場合は、スキーマの変更とソースコードの変更の順番にさえ気をつければ問題は発生しません。 カラム名を変更する 「ALTER」でさくっと変えたくなりますが、ソースコードの変更が同時

                                          DBマイグレーションを行う技術 - 発明のための再発明
                                        • 最近やってるRailsプロジェクトのテスト方法 - #詰んでる日記

                                          Railsエンジニアになってから1年半くらいが経ち、社内のRailsのプロジェクトを全部で5つくらい触って、今やってるAbilie*1でようやく人並みにテストを書いてる気がしてきたので、現時点でやってるテストの方法をまとめておく。 テストのルール的なの rspecでは必ずモデルのテストは書くようにしてる。ヘルパーも大体書いてるけど、コントローラやルーティングのテストはあまり書いてない。 というのも、コントローラーのコードを極力短くしてモデルを太らせているのでコントローラのテストはあんまり意味が無い気がしていて、その代わりにCapybaraでテストを書いておけば十分なんじゃないかなと思ってきたから。Capybaraは書いてるので、そういう意味では書いてるとも言える。 社内の管理者だけが使える管理画面も作ってるけど、そっちはテストあんまり書いてない。ここは動かなくなっても一般ユーザーには影響が

                                            最近やってるRailsプロジェクトのテスト方法 - #詰んでる日記
                                          • Azureの東日本リージョンが7時間にわたってダウン。原因はデータセンターの冷房が失われ自動シャットダウン。日本のリージョンはこの1カ月で三回目の障害

                                            Azureの東日本リージョンが7時間にわたってダウン。原因はデータセンターの冷房が失われ自動シャットダウン。日本のリージョンはこの1カ月で三回目の障害 3月31日金曜日の午後11時頃から最大約7時間にわたって、Microsoft Azureの東日本リージョンの仮想マシンやストレージなどを含むほとんどのサービスがダウンするという大規模な障害が発生しました。 「Azure の状態の履歴」によると、マイクロソフトは原因をデータセンターの冷却が正常にできなくなったためだと次のように説明しています。 Engineers have identified the underlying root cause as loss of cooling causing certain Storage and Compute scale units to perform an automated shut down

                                              Azureの東日本リージョンが7時間にわたってダウン。原因はデータセンターの冷房が失われ自動シャットダウン。日本のリージョンはこの1カ月で三回目の障害
                                            • 開発しやすいRails on Docker環境の作り方 - Qiita

                                              最近、Rails界隈でDocker使い始めました、という話を聞く機会が増えてきたので、自分が開発環境整備用に構築したDockerの設定をまとめておく。 ちなみに、production運用については以前書いたので適当に探してくださいw 結論から書いておくと、volumeをちゃんと活用すればいい、ってだけの話です。 まず、本番用と開発用のDockerfileは分けた方が良い。一つでやろうとするとどうにも無理がでるので。 自分はDockerfileとDockerfile-devというものを用意している。 docker-composeはほぼ必須です。少なくともrailsプロセスとDBだけでも二つは必要だし、Dockerfileを分けてると事故るので。 Dockerfileはこんな感じ。 FROM mybase:ruby-2.3.1-debian RUN echo "deb http://http.

                                                開発しやすいRails on Docker環境の作り方 - Qiita
                                              • AWS をどう使わずにおくか - portal shit!

                                                ジョブキューイングシステムをどうするかでチームのリーダーとやりあって考えたことがあるのでまとめておく。 Rails で使うジョブキューイングシステムの技術選定で、リーダーは Amazon SQS 推し(レガシーシステムで SQS を使っている)、自分は Sidekiq 推しだった。前職時代に Sidekiq を使ってトラブルに遭遇したことはなかったし、とても簡単に使えるので Sidekiq で十分だと思っていた。 Sidekiq は GitHub でのスター数は 9000 オーバーで、 Rails の ActiveJob バックエンドとしては事実上のデファクトスタンダードだといえると思う。ググれば情報がいっぱい出てくるし、チームメンバーもリーダー以外は全員 Sidekiq の使用経験があった。 GitHub - sidekiq/sidekiq: Simple, efficient back

                                                  AWS をどう使わずにおくか - portal shit!
                                                • 「コード書きました、あとはよろしく」では優れたソフトウェアは生まれない コンテナのスペシャリストが語る、運用性を損なう8つの実装例

                                                  今押さえておくべき知識をアップデートし、ノウハウを共有し、さらなるスキルアップを実現する場として開催されている、AWS で最も Developer に特化したカンファレンス「AWS Dev Day Online Japan」。ここでSr. Product Developer Advocate, Elastic Containersの原氏が登壇。続いて、運用性に優れたソフトウェアが重要な理由と、運用性を損なう8つの実装例について紹介します。前回はこちらから。 You build it, you run it 原トリ氏:(スライドの「You build it, you run it」を指して)この言葉、聞いたこと、見たことがある方がいるかもしれません。これは、2006年にACM(Association for Computing Machinery)という団体が、Amazon AWSのCTOで

                                                    「コード書きました、あとはよろしく」では優れたソフトウェアは生まれない コンテナのスペシャリストが語る、運用性を損なう8つの実装例
                                                  • フロントエンドのお仕事図鑑

                                                    Webフロントエンドエンジニア2年生になりました。 この1年で本当に多種多様なフロントエンドエンジニアの方たちとお話する機会をいただき、その度に「フロントエンドの領域って様々な役割があるなー」と思わされる毎日です。 一方で、「フロントエンド開発」という単語が形骸化してきている感覚も抱いており、具体的には 「フロントエンドチームに入社してみたけれどスキルミスマッチで苦しんでいる」 「フロントエンドの業務に対してビジネス側や採用側の理解が得られない」 という話を目にする事も少なくありません。 今回はこれまで自分が出会ってきたり仕事でこなしてきたフロントエンド領域の業務について改めて整理する事で、 非フロントエンドエンジニアの方に少しでも興味を持ってもらう より実態に即したジョブロール細分化に向けた議論の下地を提供する フロントエンドエンジニア自身が得手不得手を踏まえたキャリア選択をできるよう、

                                                      フロントエンドのお仕事図鑑
                                                    • React Server Components はウェブ開発を変えるゲームチェンジングな技術である

                                                      去年末に Facebook の人達が出した React Server Components というものが、React 界隈に激震を及ぼしていますが、速報以外でこの技術について言及している国内のブログが見当たらないため、この記事で解説してみます。間違いや分かりづらい部分があればぜひツッコミをお願いします。 React Server Components は、ただのサーバーサイドレンダリングではありません。クライアントサイドレンダリング(SPA)とサーバーサイドレンダリングを、ギアを切り替えずにいいとこ取りする仕組みです。これまでに存在した様々な技術よりも踏み込んで、フロントエンドとバックエンドの境目を曖昧にしてしまうユニバーサルな技術です。 勝手な造語としていうなら「コンポーネント指向ユニバーサルウェブ開発」とでも呼ぶべきものでしょう。 そして、これはただのユニバーサルなだけの仕組みではあり

                                                        React Server Components はウェブ開発を変えるゲームチェンジングな技術である
                                                      • GoとMySQLを用いたジョブキューシステムを作るときに考えたこと - ゆううきブログ

                                                        【追記】2023年3月21日 YAPC::Kyoto 2023で、ジョブキューシステムFireworqの設計と運用実績も含めて発表されました。id:tarao ++ 【加筆修正】 2020年2月16日 執筆時から6年も経過していますが、たまたまこの記事を振り返る機会があったので、日本語がおかしいところを一部修正したり、一緒に取り組んだ方々の名前が書かれていなかったところを修正しました。 【追記】2017年12年24日 このエントリのジョブキュー実装がFireworqという名でOSSとして公開されました。id:tarao ++ github.com この記事ははてなエンジニアアドベントカレンダー2014の4日目です。 前回は Mackerelで採用している技術一覧とその紹介 - Hatena Developer Blog でした。 社内の開発合宿で、 id:taraoさん、id:hakobe

                                                          GoとMySQLを用いたジョブキューシステムを作るときに考えたこと - ゆううきブログ
                                                        • Webアプリケーションにおける正しいキャッシュ戦略 - Sansan Tech Blog

                                                          こんにちは。プロダクト開発部のサーバサイドエンジニアの荒川です。普段はSansanのスマホアプリのAPIの開発をしています。 今回扱うテーマは皆さん大好きキャッシュ(Cache) です。 Webアプリケーションを開発するエンジニアである以上、キャッシュの存在からは逃れられないでしょう。 例えばパフォーマンスを向上させる手段として、キャッシュを仕込むことは往々にしてあるかと思います。 キャッシュを使えばパフォーマンスが向上しそう、というイメージも強いため安易に選択する戦略になりがちですが、正しく扱うことは本質的に難しいです。 しかしキャッシュを上手に使えば、ユーザ体験を圧倒的に向上させることができます。 そんな諸刃の剣キャッシュ💰について考慮するべきこと、その戦略を改めてまとめてみました。 今回の対象 今回の対象は、アプリケーションレベルでのキャッシュ戦略を取り扱います。 いわゆるキャッシ

                                                            Webアプリケーションにおける正しいキャッシュ戦略 - Sansan Tech Blog
                                                          • にひりずむ::しんぷる - homebrew で最低限これだけはいれておけってやつ

                                                            新卒向けなんたらカレンダーの X日目です。 そもそも homebrew 使ってない まず Xcode を入れる必要がある。Xcode は App Store からインストールして、 Preference → Downloads → Components → Command Line Tools をインストール。 そしたらおもむろに以下のコマンドを打つ $ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)" おしまい。 sl $ brew install sl 必須コマンド。 zsh $ brew install --disable-etcdir zsh OS X は PATH をゴニョゴニョやられてむかつくので /etc/zshenv を読まないように --disable-etcdir 付きでインス

                                                            • Twitterはタイムラインをどうやってキャッシュしているか - Qiita

                                                              Twitterの内部構造を読解してみる 前口上 Twitterのようなマイクロブログサービスでは短時間で書き込みも多く、特にタイムライン周りは単にRDBのデータを出し入れるするだけではスケールしなくなります。 インターネット上に断片ながらTwitterの中の人がアーキテクチャについて解説した記事や動画がいくつか落ちていたので、Twitterがタイムラインをどうやってキャッシュしているかについてまとめてみたいと思います(推測を含みます)。 Twitterのテーブル構造 単純なTwitterのテーブル定義をRDBで定義すると以下のようになると思います。 tweets ツイート id user_id contents tweet_at followers フォロワー source_user_id destination_user_id users ユーザー id user_name timeli

                                                                Twitterはタイムラインをどうやってキャッシュしているか - Qiita
                                                              • Repositoryパターンのアンチパターン - Qiita

                                                                よく見かけるRepositoryパターンのアンチパターンの紹介と対策です。 Repositoryパターンとは Repositoryパターンとは永続化を隠蔽するためのデザインパターンで、DAO(DataAccessObject)パターンに似ていますが、より高い抽象度でエンティティの操作から永続化ストレージを完全に隠蔽します。 例えばDBコネクションやストレージのパス等はReposiotoryのインターフェースからは隠蔽され、Repositoryのユーザは永続化ストレージが何であるか(例えばMySQLやRedis等)を意識することなく保存や検索の操作を行うことができるようになります。 これによりRepositoryを利用するロジックは業務的な操作に集中できるようになる他、データベースの移行等の永続化層の変更が発生した際にロジックへの影響を切り離すことができるようになります。 // 例) ユーザ

                                                                  Repositoryパターンのアンチパターン - Qiita
                                                                • Awesome Java : 素晴しい Java フレームワーク・ライブラリ・ソフトウェアの数々 - Qiita

                                                                  元記事: Awesome Java Awesome List in Qiita Awesome Ruby Awesome JavaScript Awesome Node.js Awesome Python Awesome Go Awesome Selenium Awesome Appium Bean マッピング Bean マッピングを容易にするフレームワーク dOOv - 型安全なドメインモデルの検証とマッピングのための API を提供します. アノテーション, コード生成, および型安全 DSL を使用して, Bean の検証とマッピングを迅速かつ簡単にします. Dozer - アノテーション, API または XML 設定を使用して, あるオブジェクトから別のオブジェクトへデータをコピーするマッパー. JMapper - 高速コードマッピングのためにバイトコード操作を使用. アノテーシ

                                                                    Awesome Java : 素晴しい Java フレームワーク・ライブラリ・ソフトウェアの数々 - Qiita
                                                                  • Kubernetes-nativeなアーキテクチャ導入の手引き 先進的なクラウド環境を最強テストベッドで体験|ハイクラス転職・求人情報サイト AMBI(アンビ)

                                                                    Kubernetes-nativeなアーキテクチャ導入の手引き 先進的なクラウド環境を最強テストベッドで体験 Kubernetes-nativeなエコシステムを実現する最強テストベッド環境です。さまざまなミドルウェアを運用したマイクロサービスをフルgRPCなサービス間通信で実現するだけでなく、CI/CDと開発環境も用意しています。 こんにちは。株式会社サイバーエージェントのAI事業本部でインフラエンジニアをしている青山真也(@amsy810)と漆田瑞樹(@zuiurs)です。今回は、Kubernetesが好きな2人が考える最強のKubernetes-nativeなお試し環境を構築してみました。記事公開時点で、総コミット数が900に迫るリポジトリになっています。 現在、Kubernetesとそれを取り巻くエコシステムは急速に発達しており、便利なツールやミドルウェアが日々生まれています。これは

                                                                      Kubernetes-nativeなアーキテクチャ導入の手引き 先進的なクラウド環境を最強テストベッドで体験|ハイクラス転職・求人情報サイト AMBI(アンビ)
                                                                    • WebSocketには注意が必要 | POSTD

                                                                      近い将来WebSocketがRailsで使用できるようになると聞くと、デベロッパはみんな舞い上がって興奮します。 しかし、 あなたのユーザは、あなたがWebSocketを使用しているかどうかなんて気にしません 。 ユーザは、”快適なリアルタイムWebアプリ”を求めている。 デベロッパは、”快適でビルドが簡単なリアルタイムWebアプリ”を求めている。 オペレーションは、”デプロイ、スケール、管理が簡単なリアルタイムWebアプリ”を求めている。 上記全ての要望をWebSocketがかなえてくれるのなら素晴らしいことですが、この実装の詳細は高いコストがかかります。 超高性能で全二重なクライアントとサーバ間の通信は、本当に私たちに必要なのか? WebSocketは、クライアントに情報を配信するための簡単なAPIと、クライアントからWebサーバへ情報を送信するための簡単なAPIを提供します。 サーバ

                                                                        WebSocketには注意が必要 | POSTD
                                                                      • 監視について思うとこ - y-ohgi's blog

                                                                        TL;DR 監視はユーザーにサービスを提供できているかを観測するための行為 SLI/SLOを定めて、SLOを守れるようにモニタリングする ダッシュボードは定常的に表示しておくものと障害時に活用するものを作ると良い アラートはレベル分けして人間が対応しなければならないものだけ人間へ通知する 監視とは サービスを健全に動作させ続けるために監視を行います。 「健全に動作している」の定義はサービスによって異なり、ユーザーにWebページを見せることができることだったり、バッチが正常に終了することだったりします。 最終的にユーザーに正常にサービスを提供できていることを観測するために行うことに変わりはありません。 さてユーザーにサービスを提供するために何を監視しましょうか? クラウド前提であれば個人的にリソースベース(CPU/Memory)より、 SLI/SLOをベース に監視する事が望ましいと考えてい

                                                                          監視について思うとこ - y-ohgi's blog
                                                                        • Railsアプリやgem作る時にいつも入れているgem一覧 - くりにっき

                                                                          id:joker1007 さんに触発されました。 Ginza.rb 21回の発表資料。rails_adminのつらみとオススメgem達。 1年間で10個以上アプリやgemを作っている中でよく使うgemをまとめてみます Railsアプリ(rails new した直後に必ず入れる) annotate https://github.com/ctran/annotate_models modelのソースの先頭にテーブルのスキーマ情報を付加してくれるgem。いちいちschema.rbを見に行く必要がなくなるので超ベンリ こんな感じ # == Schema Information # # Table name: plugins # # id :integer not null, primary key # name :string # title :string # version :string #

                                                                            Railsアプリやgem作る時にいつも入れているgem一覧 - くりにっき
                                                                          • Pinterestの急成長を支えてきたアーキテクチャとは? Pythonで開発しAmazonクラウドで運用

                                                                            Pinterestの急成長を支えてきたアーキテクチャとは? Pythonで開発しAmazonクラウドで運用 急速に人気が急上昇するWebサービスでは、どのようにスケールするアーキテクチャを構築し運用していくのかはサービスの成否を分けるほど重要です。Pinterestのように急成長してきたサービスのソフトウェア構成やリソース構成はどうなっているのでしょうか、Web上でいくつか情報が公開されているのでまとめてみました。 Pythonで開発し、Amazonクラウドで運用 1年ほど前なので少し古い情報ではあるのですが、Q&AサイトのQuoraにPinterestのco-founder Paul Sciarra氏が書き込んだソフトウェア構成の説明があります。 PinterestはPythonで開発されており、MemcachedやNginxなど高速なレスポンスに配慮した構成になっている様子がうかがえま

                                                                              Pinterestの急成長を支えてきたアーキテクチャとは? Pythonで開発しAmazonクラウドで運用
                                                                            • "リアルタイム Web" に関するプラクティスのアウトプット - Block Rockin’ Codes

                                                                              追記 11/12/26 MLのスレッドへのリンクが間違っていたので修正。 introduction WebSocket なんかをつかって、従来のステートレスな処理以外に、コネクションを継続するステートフルな処理が可能になりました。 これを利用すると、これまで実装が難しかったリアルタイムな表現を Web に持ち込むことができます。 そして、 WebSocket を用いたプログラムを作成する上で、Node.js と Socket.IO を用いる方法について、 今年はこのブログでも何度か紹介してきました。 今日は今年一年の集大成として、自分が色々試しながら得たリアルタイム Web に関する知識、技術などを、 ここにまとめてアウトプットしたいと思います。 今回お話しするのは、 東京Node学園 3時限目 : ATND で発表した下記内容の抜粋です。 Node Academy | "About Sl

                                                                                "リアルタイム Web" に関するプラクティスのアウトプット - Block Rockin’ Codes
                                                                              • Go言語で API サーバーを開発する | カメリオ開発者ブログ

                                                                                こんにちは!白ヤギの開発者、森本です。 白ヤギではいま API サーバーを Go 言語で開発しています。 皆さんも Go の話題をよく見聞きするようになっていると思います。今回は白ヤギの業務でどんな風に Go を使って開発しているかの一端を紹介します。 余談ですが、先日、大学の先生とお話ししたときにこんな話を伺いました。その先生は学生にプログラミングを教えているそうですが、何割かの学生は及第点に届かないそうです。しかし、そういった学生がプログラミングの素養がないかというとそういう訳ではなく、プログラミングを学ぶ上でその学生にとって何が理解を促すのかが違うだけなのだと仰っていました。教える側として全ての学生が習得できるプログラミング教育というのを見つけられていないのが悔しいといった話をされていました。 何かを学ぶというのを一般論では語るのは難しいということかもしれません。そのため、私はこうい

                                                                                  Go言語で API サーバーを開発する | カメリオ開発者ブログ
                                                                                • 本当は怖いMemcached - Qiita

                                                                                  はじめに データアクセスの高速化、セッションの保持などに非常に重要なポジションを占めているMemcached 特徴をあげると、速い安い美味いで、AWS上のサービス化などされており、非常に扱いやすいプロダクトなのですが、Memcachedそのものが単一障害点とならないように冗長化を測った時に深刻な問題が発生する可能性があることをご存知でしょうか。 システムに心あたりがある方は今すぐ代替手段を検討しなければなりません。 どうしてもMemcachedを使いたいという方はこちらへ それでもMemcachedを使いたいあなたへ 前提条件 そもそも冗長化をしなければ問題ないという運用はその時点で怖いのでNG cache機構という性質上、データが飛ぶのは問題ない(”正”となるデータを他から読み出すだけ)が、誤ったデータが読み出されるのをNGとする Memcachedを利用した時に利用ノードを決定するのは

                                                                                    本当は怖いMemcached - Qiita