以前に私が書いた「 Dockerの本番運用:失敗の歴史) 」という記事は、非常に多くの反響を呼びました。 その後、長い議論を交わして、何百件ものフィードバックや何千件ものコメントを読み、さまざまな人々や主要事業者とも顔を合わせました。Dockerでの試みが増えるほど、その失敗談は増えていきます。そうした現状を、今回アップデートしておきたいと思います。 この記事では、最近の交流や記事から得た教訓を紹介しますが、その前に簡単におさらいをして軽く背景を説明しましょう。 免責事項:対象読者 たくさんのコメントから、世の中には10種類の人々が存在するということが明らかになりました。 1) アマチュア 実際のユーザがいない試用版のプロジェクトやサイドプロジェクトを実行している人々です。Ubuntuのベータ版を使用するのが当然だと考えており、「安定したもの」は古いものと見なすようなタイプです。 注釈:書
こんにちは、サービス開発部の荒引 (@a_bicky) です。 突然ですが、RDBMS の既存のテーブルを見てみたら「何でこんなにインデックスだらけなの?」みたいな経験はありませんか?不要なインデックスは容量を圧迫したり、挿入が遅くなったりと良いことがありません。 そんなわけで、今回はレコードを検索するために必要なインデックスの基礎知識と、よく見かける不適切なインデックスについて解説します。クックパッドでは Rails のデータベースとして主に MySQL 5.6、MySQL のストレージエンジンとして主に InnoDB を使っているので、MySQL 5.6 の InnoDB について解説します。 InnoDB のインデックスに関する基礎知識 インデックスの構造 (B+ 木) InnoDB では B+ 木が使われています。B+ 木は次のような特徴を持った木構造です。 次数を b とすると、
App Service on Linux のカスタム Docker Image を利用していると、やっぱり Heroku のように foreman を使ったプロセス管理が使いたくなってきました。 Heroku では Procfile をルートに用意しておくと、いい感じにランタイムが読み込んで実行してくれます。 2 月に試した時には Ruby on Rails アプリケーションの実行が上手く出来ませんでしたが、最近 Hanselman が動かしていたので試してみます。 Runtime Stack の Dockerfile やスクリプトもいい感じに公開されていたので、参考しながら利用します。 帝国兵殿曰く、Built-in の Runtime Stack に対しては特殊処理が入っているらしいので、独自の Runtime Stack を作る場合には少し手間がかかります。そのままの Dockerf
ブログを書くのは久々です。 京都で小さな会社をやっていて、自社開発でClojureとClojureScriptを使用し続けて、概ね3年くらい使い続けています。その過程で、Clojure自体にも小さいながらソースレベルの貢献ができたりして、オープンソースプロジェクトとしても面白かったのですが、もともとオブジェクト指向言語ばかりやってきたところから、Clojureという、まったくオブジェクト指向言語ではない言語に飛び込んだ経験や考えたことなんかを、ブログにストックすると、何か他の人にも役立つこともあるかと思って、ブログに書くことにしました。 このところずっと、自社の仕事とは別に、恵比寿にある 株式会社ユーザベース さんのお仕事に参加しています(私が法人を作る前からなので、もう5、6年くらいになります)。そちらの方でもClojureやシステム設計の話(プレゼンなど)などを何度かさせてもらったり、
In the previous table, think of a mental model of the two in terms of existing software. Canvas resembles MSPaint, where you can draw and create images by using shapes and other tools. SVG resembles a Office PowerPoint slide that has programmable support and the ability to add a theme. When to Use <canvas> and when to Use SVG: The Scenarios This section describes the technical benefits and limitat
2023年03月31日追記:この記事を基に、@sadnessOjisanさんより、コードレベルにより踏み込んだ、かつ、グリーンスレッドベースの新しいWebサーバアーキテクチャも含めて整理された記事 Webサーバーアーキテクチャ進化論2023 | blog.ojisan.io が公開されました。 主に新卒のWebエンジニア向けに、古典的なWebサーバアーキテクチャを学ぶ道のりと代表的な実装モデルの概要を紹介します。 この辺りの話題がWeb界隈で流行っていたのは数年以上前というイメージですが、Webサービスは相変わらずWebサーバの上で動いているので、流行り廃り関係なく学ぶべき内容だと思っています。 また、HTTP/2がいよいよRFC化し、既にh2oやtrusterdなどのHTTP/2のサーバ実装があり、今後Webサーバアーキテクチャを再訪することが増えるような気がしています。 ところが、We
Microsoft Azureのサービスは、140カ国以上の地域に配置された100以上のデータセンターで運用されている。物理インフラを意識せずに使えるのがパブリッククラウドだが、そのデータセンターの中身にちょっと興味はないだろうか。日本マイクロソフト クラウド&ソリューションビジネス統括本部 クラウドソリューションアーキテクトの真壁徹氏に、Azureデータセンターの物理インフラについて教えてもらった。 真壁:こんにちは、マイクロソフトの真壁です。Azureのアーキテクトですが、前職はヒューレット・パッカード エンタープライズ(HPE)で物理のサーバーやストレージ、ネットワークも扱っていました。データセンターの中のことはチョット詳しいです。 Azureのデータセンターには、マイクロソフトが運用するものと、各国のパートナーデータセンターを借りて運用しているものの2種類があります。今回は前者、マ
今回はソケットプログラミングについて。 ソケットというのは Unix 系のシステムでネットワークを扱うとしたら、ほぼ必ずといっていいほど使われているもの。 ホスト間の通信やホスト内での IPC など、ネットワークを抽象化したインターフェースになっている。 そんな幅広く使われているソケットだけど、取り扱うときには色々なアーキテクチャパターンが考えられる。 また、比較的低レイヤーな部分なので、効率的に扱うためにはシステムコールなどの、割りと OS レベルに近い知識も必要になってくる。 ここらへんの話は、体系的に語られているドキュメントが少ないし、あっても鈍器のような本だったりする。 そこで、今回はそれらについてざっくりと見ていくことにした。 尚、今回はプログラミング言語として Python を使うけど、何もこれは特定の言語に限った話ではない。 どんな言語を使うにしても、あるいは表面上は抽象化さ
Twitterでハッシュタグ「#naoya_sushi」が生まれてしまうほど、無類の寿司好きとして知られる伊藤直也氏(@naoya_ito)。そんな伊藤氏をホスト役とし、トップエンジニアをゲストに招いて、寿司をつまみつつホンネで語ってもらおうという、この企画。 第七回にして本対談もついに最終回を迎えることになりました。その栄えある最終回を飾ってくださるのは、あの『株式会社ドワンゴ』の川上量生氏! 創業期からエンジニアとして第一線で活躍し、現在は代表取締役会長と『象徴CTO』を兼務。そして『株式会社KADOKAWA・DWANGO』(10月1日付で社名を『カドカワ株式会社』に変更予定)の代表取締役社長、『スタジオジブリ』のプロデューサー見習い、アニメーション製作会社の『株式会社カラー』では取締役と、業界では知らぬ者はいないスーパースター。そんな川上氏が、プライベートでもゲーム仲間として交流のあ
伊藤直也氏が語る「仕事の流儀」の第2回は、KAIZEN platform Inc.の立ち上げに参画して実感したリモートワークツールの重要さについて。 スタートアップ企業でエンジニアが快適に開発できる環境とはどのようなものか、KAIZENでの事例をもとに、いま感じてることを語ってもらった。 by 馬場美由紀 (CodeIQ中の人) リモートワークをしながら「全員同席」するためのツール KAIZENのようなスタートアップ企業で、かつリモートワークをする社員もいる環境で、どんなふうにアジャイル開発を進めていくか。 それが最近の僕の重要な関心事です。 ちょっとKAIZENのリモートワーク風景を見てほしいんですけれど……(Sqwiggleというオンラインミーティング・ツールで自宅で仕事をしているエンジニアを呼び出し、会話を始める)。 Sqwiggleを起動すると、カメラが有効になっていて、こんな感じ
こんにちは、Kosukeです。:) IncrementsのQiitaプロダクトマネージャー及川卓也さんがMisocaへいらっしゃったので、インタビューさせて頂きました! (左から共同創業者 松本、及川さん、代表 豊吉、Kosuke) 及川卓也氏のプロフィール 一般社団法人情報支援レスキュー隊 代表理事。東京出身。早稲田大学理工学部卒。 専門だった探査工学に必要だったことからコンピューターサイエンスを学ぶ。 卒業後は外資系コンピューター企業にて、研究開発業務に従事。米国マイクロソフトに派遣され、Windowsの開発を行う。その後もWindows関連のプロジェクトに関わっていたが、どうせWindowsの仕事をするのならと、マイクロソフト株式会社(当時)に転職。 マイクロソフトではWindowsの開発を行い、最終的には日本語版と韓国語版のWindowsの開発の統括を務める。 2006年にグーグル
自らもエンジニアながら、3社の経営に携わっている竹内真氏をインタビュアーに迎え、注目のIT・Webサービスを展開する企業の技術トップにインタビュー。CTO同士の対話から、エンジニアがどのように「ビジネスを創ることのできる技術屋」へと進化すべきか、その思考・行動原則をあぶり出していく。 今回登場してくれたのは、代表取締役社長の村上太一氏が「史上最年少上場社長」の記録を更新したことでも知られるリブセンスのシステム開発部部長・平山宗介氏だ。 2012年に着任した“中途組CTO”である平山氏は、これまで数社で経験を積み、急成長中の同社にやってきた。業務系からWeb開発、プラットフォーム構築までと幅広い経験を通じて、彼が学んできたものは何だったのか? 体験談ベースでCTO力の高め方を聞く。 写真右:株式会社レイハウオリ代表取締役/株式会社ビズリーチ・株式会社ルクサ CTO 竹内 真氏 (blog:s
2018年4月25日をもちまして、 『CodeIQ』のプログラミング腕試しサービス、年収確約スカウトサービスは、 ITエンジニアのための年収確約スカウトサービス『moffers by CodeIQ』https://moffers.jp/ へ一本化いたしました。 これまで多くのITエンジニアの方に『CodeIQ』をご利用いただきまして、 改めて心より深く御礼申し上げます。 また、エンジニアのためのWebマガジン「CodeIQ MAGAZINE」は、 リクナビNEXTジャーナル( https://next.rikunabi.com/journal/ )に一部の記事の移行を予定しております。 今後は『moffers by CodeIQ』にて、 ITエンジニアの皆様のより良い転職をサポートするために、より一層努めてまいりますので、 引き続きご愛顧のほど何卒よろしくお願い申し上げます。 また、Cod
Shebangとは、UNIXのシェルスクリプトの業界標準で、シェルスクリプトの一行目のコメントの、#!を意味する。sheが短母音か長母音か分からなかったので、英語ネイティブにたずねたところ、人によって意見が違う。短母音の方が多数派のようなので、一応シバンが近いものになるだろう。日本語版のWikipediaでも、シバンとしている。この機能には他にも多数の名前があるが、もっとも有名なのが、Shebangだそうだ。 その業界標準的な文法は、以下の通り(ただし、後述するように、この文字列の扱いについては違いがある) #! 文字列 [改行] 普通、実行権限のついたファイルは、標準のシェルで実行されるが、このShebangがある場合は、#!から改行までの間の文字列を、後述するバラバラな方法で解釈して、execで実行し、その際の引数には元のシェルスクリプトファイルへのパスが指定される。 問題は、このsh
昨年、libpam-mrubyを使って、Linux Serverにおける認証やその管理について思うところを書きました。今回はその続きです。 libpam-mrubyを使ってGithubのチームで認証をする OSSを使ってのLinuxユーザ管理といったら、一般的にOpenLDAPを用いると思いますが、LDAPって統合管理でやれること多いかわりにちゃんと使おうとしたら敷居が高い感じがするんです。LDAPを触る頻度が低いと、LDAPコマンドを毎回ググる事になり、地味に面倒というのは経験している人多いと思います。そして、自分たちがLDAPを通して解決したいことって単にsudo権限を持つ管理者かそうでないユーザの管理で意外とシンプルだったりします。それに気づかせてくれたのは、イケてる同僚の@pyama氏プロダクトのSTNSというやつで、STNSはユーザや鍵の管理をTOMLで行うというものでした。設定
Go の言語仕様はシンプルで他の言語に比べてはまりどころが少なくて学習コストが小さめな言語のように思います。しかし、それでもはまるところがないわけではないので、自分がはまって時間を無駄にしてしまったことを書き留めておきます。 念の為誤解のないように追記しておくと、この文書の目的は Go を批判することではなく Go が Go であるがゆえに C++/Java/Python など利用者が Go を使い始めるときに困惑あるいは誤解するであろうポイントをまとめておくことで初めて Go を触る人がスムーズに Go を使い始められるようにすることです。私個人は Go はバランスがとれた良い言語でだと思いますし、気に入っています。 目次 interface と nil (Go の interface は単なる参照ではない) 文献 メソッド内でレシーバ(this, self)が nil でないことをチェ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く