タグ

ブックマーク / nulab.com (25)

  • 運用中のPostgreSQLのスキーマを無停止で安全に変更する | 株式会社ヌーラボ(Nulab inc.)

    初めに こんにちは。ビジネスチャットサービスTypetalkを開発・運用している吉田です。Typetalkではデータの永続化ストレージとしてPostgreSQLを利用しています。扱うデータ量は多く、チャットというサービスの性質上書込み頻度はとても高いです。PostgreSQLを使い日々開発を進めていると、追加する機能によってはスキーマを変更する必要があります。メンテナンスを計画・告知してサービスを止めてしまえば、時間はかかるかもしれませんがスキーマの変更はそう難しくありません。しかしTypetalkはユーザーが日々の業務を進めるために利用しており、サービスが止まるとコミュニケーションが取れなくなります。業務を円滑に進めるためのビジネスチャットツールですので、極力サービスは止めたくありません(最後の計画メンテナンスは2019年6月30日で1年以上前となっています。)。記事では以下の3つのケ

    運用中のPostgreSQLのスキーマを無停止で安全に変更する | 株式会社ヌーラボ(Nulab inc.)
  • Serverspec から Goss に移行してサーバーのテストが 60 秒から 3 秒に! | 株式会社ヌーラボ(Nulab inc.)

    TypetalkのSREの二橋です。今回は、Gossの紹介をしたいと思います。 TypetalkではサーバーのテストにServerspecを利用していました。機能的には申し分なかったのですが、サーバーの台数/環境/テストの項目が増えるにつれて、ツールの実行速度やメンテナンス性に改善が必要になりました。Gossに乗り換えることで問題が解消されました。 サーバーのテストとは? サーバーのテストとは、サーバーの状態が意図したものになっているか検証するものです。例えば、以下のような項目を検証します。 意図したパッケージのバージョンがインストールされているか? 意図したサーバーと通信できるか? 意図したポートが待ち受けているか? 意図したユーザー/グループが存在するか? 意図したプロセスが動作しているか? 意図したファイルに指定した記述が存在するか? Serverspecで困っていたこと ①テスト実

    Serverspec から Goss に移行してサーバーのテストが 60 秒から 3 秒に! | 株式会社ヌーラボ(Nulab inc.)
  • CacooはなぜKubernetesによるmicroservicesへの道を選んだのか? | ヌーラボ

    こんにちは。Cacoo チームの木村(@cohhei)です。Cacoo チームでは、 Kubernetes によるアーキテクチャの microservices 化に取り組んでいます。今回は私たち Cacoo チームが microservices 化によって解決しようとしている課題と取り組みの内容、その成果についてご紹介します。 この記事では以下の内容を含みます。 Cacoo の開発チームがどんな課題を抱えていたか 何故 microservices の道を選んだか どんな技術を選んだか microservices 化してどうだったか 現状の課題 課題:古いフレームワークとモノリシックなアプリケーション Cacoo は2009年にベータ版がリリースされた歴史のあるプロダクトで、モノリシックなアプリケーション上ですべての機能が実行されていました。 そのため、それぞれのコードの依存関係を十分に理解

    CacooはなぜKubernetesによるmicroservicesへの道を選んだのか? | ヌーラボ
  • ヌーラボのアカウント基盤を Java 9 にマイグレーションして起きた問題と解決法 | 株式会社ヌーラボ(Nulab inc.)

    Java 9の起動パラメータ java.locale.providers に Java 8 と同じ優先度で国際化を行う指定をします。 java -Djava.locale.providers=COMPAT,SPI この設定で日付のフォーマットが Java 8 と同じように動作するようになり、自動テストが成功しました。 以上で 750 個のテストがすべて成功するようになりました。次はいよいよJava 9で既存のソースコードをコンパイルします。 Java 9でコンパイルして Java 9で動かす ヌーラボのアカウント基盤には Java のコンパイル対象が約 1,360 ファイルあります。目標は 1,360 のソースコードがJava 9 ですべてコンパイルできることです。 コンパイラの設定を Java 9に切り替える コンパイラを Java 9に切り替えます。Java 9のバージョン指定には注意

    ヌーラボのアカウント基盤を Java 9 にマイグレーションして起きた問題と解決法 | 株式会社ヌーラボ(Nulab inc.)
    lEDfm4UE
    lEDfm4UE 2017/09/23
  • 1ファイル・3コマンドで実現!Dockerでチーム全員の開発環境の構築を始めてみませんか? | 株式会社ヌーラボ(Nulab inc.)

    以下の3コマンド、これだけでプロジェクトに必要な開発環境ができあがる。そんな環境を Docker で作ってみませんか? $ git clone https://github.com/dataich/sample-docker.git $ cd sample-docker $ docker-compose up こんにちは、Typetalkチームのエンジニアの吉田です! 新しいエンジニアがチームに入ってきてまずやることは、DBやWebサーバなどの開発環境を構築することでしょう(9月に新しい人がチームに入ります、やったね!)。 Typetalkチームでも以前はREADMEに記述された手順に従って、開発者が個別に構築していました。その際READMEに書かれたミドルウェアのバージョンが古かったり、実は手順そのものが変わっていたりすることもあり、ハマることもありました。また、複数のプロジェクトで違う

    1ファイル・3コマンドで実現!Dockerでチーム全員の開発環境の構築を始めてみませんか? | 株式会社ヌーラボ(Nulab inc.)
  • Webエンジニアだったら当然知っておきたい「 クリックジャッキング対策 」とは? | 株式会社ヌーラボ(Nulab inc.)

    こんにちは。Typetalkチームの永江です。今回は4月にリリースした、BacklogとTypetalkの連携機能である「Backlogカード」の実装の際に行った クリックジャッキング対策 について説明します。 Backlogカードとは Backlogカードは、Typetalkのトピック内にBacklogの課題やコメントをカード形式にして表示する機能です。Backlogの課題キーや課題のURLを貼り付けるだけで、以下の画像のように表示できます(※詳しいご利用方法についてはこちらの「Typetalkのトピック上で課題の詳細を見られる Backlogカード をリリースしました!」をご参照ください)。 Backlogカードの実装は、TypetalkからBacklogに用意した埋め込み用の課題ページを<iframe>で表示するというものです。このような実装にしたのは、もともとBacklogに<if

    Webエンジニアだったら当然知っておきたい「 クリックジャッキング対策 」とは? | 株式会社ヌーラボ(Nulab inc.)
  • 続・目指すのはぶっちぎりの速さ! HTML5版 Cacoo で刷新されたデータアーキテクチャを紐解く | 株式会社ヌーラボ(Nulab inc.)

    こんにちは。Cacooの平山です。現在、僕たち Cacoo チームは脱Flash・ HTML5 化に向けて最終の追い込みの真っ最中です。そんな中ではありますが、前回の「ぶっちぎり」記事では、HTML5化に向けた描画技術としてSVGを選択したことをお伝えしました。今回は、HTML5版のもうひとつの改善ポイント「データ面での刷新」を紹介したいと思います。 Cacoo のデータ形式や構造の刷新・JSONフォーマットへの移行 HTML5版では、描画にSVGを採用するという変更だけではなく、抜的なデータ形式や構造の刷新も行いました。これには以下3点の理由があります。 Flash版ではAMFというFlashに特化したデータフォーマットを採用している 図に含まれるデータ量に応じて、パフォーマンスが低下しやすい構造である サーバー内でデータを処理しにくい 1点目はFlashから脱却するにあたり対応必須な

    続・目指すのはぶっちぎりの速さ! HTML5版 Cacoo で刷新されたデータアーキテクチャを紐解く | 株式会社ヌーラボ(Nulab inc.)
  • 3倍どころか10倍速い! Jenkins のビルドを高速化して、シャアを超えた男 | 株式会社ヌーラボ(Nulab inc.)

    実はガンダムを見たことがないので、時々社内のガンダムトークについていけないことがあります、中村です。今日は、 Jenkins のビルドを高速化し、リリースまでの時間を大幅に短縮した、改善策をご紹介します。全体で2~3倍程度、一部処理では何と10倍以上もビルドを高速化できました。 改善策1 : push 型デプロイから pull 型デプロイへ 改善策2 : テストケースを自動分割して、よりアグレッシブに並列実行 全体のリリース時間に対する改善結果 ビルド時間の可視化 改善策1 : push 型デプロイから pull 型デプロイへ まずはデプロイ時の方式を、push型デプロイからpull型デプロイに変更した改善策を説明します。ここで、push型デプロイは中央サーバからデプロイ用ファイルを転送する方式で、pull 型デプロイは各サーバがファイルを取得する方式とします。 各フェーズの構成は、下図の

    3倍どころか10倍速い! Jenkins のビルドを高速化して、シャアを超えた男 | 株式会社ヌーラボ(Nulab inc.)
    lEDfm4UE
    lEDfm4UE 2016/12/29
  • 3TB超のCacooのPostgreSQL 9.3を9.5にアップグレードした話 | 株式会社ヌーラボ(Nulab inc.)

    こんにちは。Cacooチームのイニエスタこと、とおのぶです。CacooはデータベースのPostgreSQLのバージョンアップを実施しました。基的には公式のpg_upgradeの手順に従っています。ここではドキュメントには記載の少ない具体的な作業内容の流れを紹介したいと思います。 理由 ユーザアンケートからみる Cacoo のコア・バリューで記されたとおり、全体的なパフォーマンスの向上については重要度の高い課題の一つです。PostgreSQL 9.5ではソート性能の大幅な改善が強化点の一つで、パフォーマンスの改善が見込まれます。またフェイルオーバ後、新しいマスターに追従するスタンバイとして、古いマスターサーバをオンラインに戻すことができるpg_rewindも、PostgreSQL 9.5の魅力の一つです。 バージョンアップ前の構成 構成は、マスタとスレーブのストリーミング・レプリケーション

    3TB超のCacooのPostgreSQL 9.3を9.5にアップグレードした話 | 株式会社ヌーラボ(Nulab inc.)
  • BacklogチームがScrumを始めてみた話 | 株式会社ヌーラボ(Nulab inc.)

    私達Backlog開発チームでは2016年1月から現在まで約3ヶ月、アジャイル開発手法のScrumに取り組んでいて、それなりに成果がでているように思います。理想的に上手く行っているという程ではありませんが、その試行錯誤の様子について書くことにしました。Scrumに興味がある方の参考になれば幸いです。 ※なお、私達の製品であるタスク管理ツール「Backlog」とScrum用語の「バックログ」が紛らわしいので、製品のほうはアルファベット、Scrum用語のほうはカタカナで表記しています。 もくじ 発端 目的 準備段階 第1回計画ミーティング 見積もり スプリントでの作業範囲決定 最初期(1回〜3回) すぐに発生した問題 最初の頃の感想 試行錯誤期(4回〜現在) 専門家に意見を聞いた 1週間スプリント ポイント見積もり・ベロシティ ケーキ 詳細見積もりによる精度向上 助けたこと/助けられたこと 実

    BacklogチームがScrumを始めてみた話 | 株式会社ヌーラボ(Nulab inc.)
    lEDfm4UE
    lEDfm4UE 2016/07/17
  • 密着 24時! MySQL 5.1 から Aurora への移行100日間 〜 Backlog 編 | 株式会社ヌーラボ(Nulab inc.)

    Photo via Visual hunt Backlog の一部のスペースにて Amazon Aurora へと移行しました。ここでは、その経緯と実際に実施した作業を簡単にご紹介させていただきます。 移行の経緯 昨年末データベース障害が発生しユーザー様には多大なご迷惑をお掛けしてしまいました。 Backlog には Terraform をどう使っているかを紹介したブログ にあるように複数の運用環境があります。 その各々の環境の構築時期によって EC2 上で自前運用していた MySQL もあれば、RDS for MySQL もある、といった統一されていない状況でした。また EC2 上ではまだ MySQL 5.1 も稼働していました。 移行を検討するにあたり、優先したのは障害時の復旧が素早く出来ることと、少しでも運用の管理コストを下げることでした。Backlog のサーバは 100 台以上で

    密着 24時! MySQL 5.1 から Aurora への移行100日間 〜 Backlog 編 | 株式会社ヌーラボ(Nulab inc.)
    lEDfm4UE
    lEDfm4UE 2016/05/20
  • Electronアプリをプロダクトとして「正しく」リリースするために必要な3つのこと | 株式会社ヌーラボ(Nulab inc.)

    Typetalkデスクトップアプリ 先日、弊社チャットサービスTypetalkのデスクトップアプリをリリースしました。おそらくTypetalk.appのパッケージを覗いてElectronの痕跡を見つけ出した方もいらっしゃると思いますが、その通りElectronをベースに実装しています。 ElectronはHTMLJavaScriptCSSなどWebの技術を使用してデスクトップアプリを開発できます。GitHub社のAtomエディタをはじめとして、今では非常に多くのアプリがElectronベースで公開されており、実装方法についても既に多くの記事が書かれています。 ただし、正式にアプリを公開する場合には、コードサイニングなどを行うなど、考慮が必要なポイントがいくつかあります。そこで記事では正式にElectronアプリをWindows/Mac向けにリリースするにあたって必要だった3つのことを

    Electronアプリをプロダクトとして「正しく」リリースするために必要な3つのこと | 株式会社ヌーラボ(Nulab inc.)
  • 僕がお話しているプロジェクト管理とチームの作り方などについて | 株式会社ヌーラボ(Nulab inc.)

    2015年3月25日に、株式会社ロフトワークさま主催の『ビジネスを躍進させる創造的チームの作り方』にて、千葉県の柏にある柏の葉オープンイノベーションラボ(KOIL)にて、「小さなままで世界を相手に冒険できる自己組織化したチーム」というタイトルでお話をさせていただきました。また、最近ではないですが、2012年9月には、Movida School にて「スタートアップは自己組織型であるべき」といったタイトルでスタートアップの起業家に向けてお話させていただきました。 いづれも、「チームの作り方」に触れるような内容でした。 また、同様の内容で、台湾のお客様の社内セミナーや、その他多くの場所でお話させて頂いてます。 自分自身もまだまだ勉強中だということもありますが、このような題材は、「こうすることが正解」というケースは無いと思います。なので、いずれも「会社の文化や、背景、業務内容などにあわせて、良さ

    僕がお話しているプロジェクト管理とチームの作り方などについて | 株式会社ヌーラボ(Nulab inc.)
  • MavenリポジトリをS3上に構築してMaven/Gradle/sbtから使う | 株式会社ヌーラボ(Nulab inc.)

    帰省していたと子供を迎えに羽田空港まで行ったのに、下の子がまったく嬉しそうじゃなくてガッカリな中村です、こんにちは。 今日は、S3にMavenインハウスリポジトリを構築して、3つのビルドツール(Maven/Gradle/sbt)から扱うための設定を紹介します。 S3にリポジトリ構築するに至った背景 まず、実際の設定内容を紹介する前に、なぜS3上にリポジトリ構築しようとしたのかと、そのメリットを簡単に説明します。 MavenもしくはJavaベースの言語を利用していた場合、インハウスリポジトリを構築すると色々便利だということは、WEB+DB PRESS Vol.39の記事中でも紹介しています。私達も、今までは社内サーバ上にMavenリポジトリを構築していましたのですが、社内サーバのメンテナンスコストも馬鹿にならなくなり、もっとメンテナンスコストを減らせるものに移行しようと決断しました。 メン

    MavenリポジトリをS3上に構築してMaven/Gradle/sbtから使う | 株式会社ヌーラボ(Nulab inc.)
  • Docker を利用した Drupal サイトのブルーグリーン・デプロイメント | 株式会社ヌーラボ(Nulab inc.)

    サービス環境での事例も耳にすることが多くなった Docker ですが、皆さんの現場でも活用されてますでしょうか?ヌーラボでは2014年の夏にローンチした開発者向けのウェブサイトである Nulab Developers にて Docker を利用したブルーグリーン・デプロイメントを行っています。エントリではサイト更新時のワークフローなども含めその全体像を紹介します。 ミドルウェアの構成 上図にあるとおり EC2 インスタンス上にブルーとグリーンの Docker コンテナを常時二つ上げており、同じインスタンス上に nginx がリバースプロキシとして動いています。ウェブサイトの構築には Drupal を利用しており、ブルーとグリーン環境内の Drupal が利用する MySQL のデータベースをおのおの用意しています。Docker のイメージは baseimage-docker に Apac

    Docker を利用した Drupal サイトのブルーグリーン・デプロイメント | 株式会社ヌーラボ(Nulab inc.)
  • 「実戦での Scala 〜 6つの事例から知る Scala の勘所〜」を開催しました! | 株式会社ヌーラボ(Nulab inc.)

    こんにちは、江口です。 2月21日(土)に「実戦での Scala 〜 6つの事例から知る Scala の勘所〜」をスマートニュース株式会社さんと共同で開催いたしましたので、その様子と発表内容を公開された資料とともに簡単に紹介します。 場所は渋谷にあるスマートニュースさんの新オフィスで行われました。Scalaへの注目度の高さもあってか、当日は広いスペースに用意された座席がほぼ満席という盛況具合でした。 ビズリーチの新サービスをScalaで作ってみた ~マイクロサービスの裏側 (株式会社ビズリーチ 竹添さん) 最初に、株式会社ビズリーチの竹添さんから、新サービスであるスタンバイという求人検索エンジンの開発についての発表が行われました。 サービス全体のアーキテクチャにマイクロサービスを採用し、各サービスの実装にはScalaを採用したというような内容でした。 Scalaを採用した理由として、並列処

    「実戦での Scala 〜 6つの事例から知る Scala の勘所〜」を開催しました! | 株式会社ヌーラボ(Nulab inc.)
  • 実践!ヌーラボサービスでの CloudFront の障害対策 | 株式会社ヌーラボ(Nulab inc.)

    CDNが単一障害点にならないようにするために ヌーラボでは 2010 年 Cacoo の商用サービスの開始に合わせて AWS における運用を開始しました。当時、運用環境として AWS を採択する決め手の一つになったのが CloudFront でした。その後も着々とエッジロケーションは増え、独自ドメインのサポートなど魅力的な機能も提供され、今ではヌーラボの全サービスの静的ファイルの配信で利用している、無くてはならないサービスとなっています。 その魅力の反面、CloudFront の障害は、アプリケーションそのものに問題がなくても、以下のような表示が崩れた画面が表示されて、ユーザが全くサービスを使えなくなるという、その影響が非常に大きいものです。また障害の原因が DNS やネットワークの経路における問題といった、私たちが直接解決しにくい領域にあることもしばしばです。 ただ、どんな事情であれ、障

    実践!ヌーラボサービスでの CloudFront の障害対策 | 株式会社ヌーラボ(Nulab inc.)
  • ヌーラボブログ | 株式会社ヌーラボ(Nulab inc.)

    ヌーラボのブログは、Backlog、Cacoo、Typetalkのリリース情報やコラボレーションやプロジェクト管理に関連するコラムをお届けしています。

    ヌーラボブログ | 株式会社ヌーラボ(Nulab inc.)
  • ヌーラボのインフラ運用最前線 〜イミュータブルを目指して〜 (後編) | 株式会社ヌーラボ(Nulab inc.)

    私たちの元々の目的は「イミュータブルインフラストラクチャ」を構築する事ではなく、前編で紹介した課題を解決するための運用フローを構築することでした。それを開発のフェーズからコツコツと模索した結果として「イミュータブルインフラストラクチャー」に少しずつ近づいている、というのが正直なところです。

    ヌーラボのインフラ運用最前線 〜イミュータブルを目指して〜 (後編) | 株式会社ヌーラボ(Nulab inc.)
  • ヌーラボのインフラ運用最前線 〜イミュータブルを目指して〜 (前編) | 株式会社ヌーラボ(Nulab inc.)

    このエントリは前後編に分かれています。前編は主に運用フローやそこでの工夫点、後編は実際の運用から得た知見や今後の課題といった内容です。 ヌーラボのインフラ運用最前線 〜イミュータブルを目指して〜 (前編) ヌーラボのインフラ運用最前線 〜イミュータブルを目指して〜 (後編) 最近はインフラ運用・DevOPS関連のトピックとして目にしないことはないくらい、「イミュータブルインフラストラクチャー」について様々な議論がなされています。私たちも昨年、継続的デリバリという文脈で、@IT の連載にてその基的な考え方について紹介させていただきました。 さて、今年の二月にローンチをしたばかりのヌーラボのシングルサインオンサービス「ヌーラボアカウント」では、イミュータブルインフラストラクチャの一歩手前として、特定の変更を加える場合のみ、ごっそり環境ごと入れ替えるというやり方にてその運用をスタートしました。

    ヌーラボのインフラ運用最前線 〜イミュータブルを目指して〜 (前編) | 株式会社ヌーラボ(Nulab inc.)