タグ

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

  • 僕たちとECSとデプロイとその改善 | 株式会社ヌーラボ(Nulab inc.)

    みなさんこんにちは。Backlog課のGitチームに所属するテリーです。今回は僕たちが日々運用するECS Fargate上のアプリケーションのデプロイ方法とそれをどう改善してきたかについてまとめました。デプロイについて迷っている方や日々の業務の改善が好きな人に読んでもらえたらと思います。 Git機能におけるデプロイ ECS上で動くアプリケーション BacklogのGitはEC2上で動くアプリケーションとECS Fargate上で動くアプリケーションで構成されています。 アーキテクチャの外観は上記のようなになっています。Gitのアーキテクチャについて過去に詳しく説明したブログを発表していますので詳しくはこちらを参照ください。 僕たちは上記のアーキテクチャ中の4つのアプリケーションをECS Fargate上で運用しています。また、内部的な話になりますがBacklogには内部構造として複数の

    僕たちとECSとデプロイとその改善 | 株式会社ヌーラボ(Nulab inc.)
    honeybe
    honeybe 2022/07/21
  • 最高のテックブログを書くために気をつけている3つのこと | 株式会社ヌーラボ(Nulab inc.)

    こんにちは。ヌーラボのCacooチームの木村です。テックブログを書く上で個人的に気をつけていることを紹介します。 「せっかく苦労して記事を書いたのに全然読んでもらえない」「筋とは関係ないコメントが来て消耗してしまう」といった悩みはないでしょうか。それらはもしかしたら技術記事の書き方に原因があるかもしれません。 僕は普段進めている仕事に、ある程度の成果が出たら、そこで得た知見を会社のテックブログに記事としてまとめるようにしています。そのときには以下の3つのことを心がけています。 「なぜ」を徹底的に書く 読者の認知負荷を下げる 想定読者の知識レベル下げる そうすることで以下のような効果が期待でき、読者と著者だけでなく著者が所属する会社にとってもいい記事になると考えられます。 記事の内容が正確に読者に伝わる 読者にとって有益な情報を提供できる 著者(たち)の置かれている状況や抱えている課題が読

    最高のテックブログを書くために気をつけている3つのこと | 株式会社ヌーラボ(Nulab inc.)
    honeybe
    honeybe 2022/07/14
  • 運用中のPostgreSQLのスキーマを無停止で安全に変更する | 株式会社ヌーラボ(Nulab inc.)

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

    運用中のPostgreSQLのスキーマを無停止で安全に変更する | 株式会社ヌーラボ(Nulab inc.)
    honeybe
    honeybe 2020/09/04
  • さよならパスワード!WebAuthnに対応したBacklog / Cacoo / Typetalkで指紋を使って安全ログイン | 株式会社ヌーラボ(Nulab inc.)

    BacklogmacOSの指紋認証でログインする様子 ヌーラボでは2019年3月にW3Cで標準化されたパスワードレス認証の「Web Authentication API」(WebAuthn: ウェブオースン)と、「FIDO2」(Fast IDentity Online: ファイド)対応のサーバを実装することで、Backlog / Cacoo / Typetalk上でのパスワードを使わない新しい認証に対応しました。 WebAuthn / FIDO2を使用した生体認証ログインのメリットは次のとおりです。 生体認証でログインが素早く簡単になります 生体情報はネットワーク上には流れず、ローカルのセキュリティ デバイスに保存されるため安全です 2要素認証※2のため安全です サーバに登録する認証情報は公開鍵のため、パスワードリスト型攻撃や情報漏洩のリスクがありません ドメインが検証されるため、フィッ

    さよならパスワード!WebAuthnに対応したBacklog / Cacoo / Typetalkで指紋を使って安全ログイン | 株式会社ヌーラボ(Nulab inc.)
  • Go言語 で Gitサーバー を書いてみた。 | 株式会社ヌーラボ(Nulab inc.)

    Backlogチームのnabe_です。もっぱら仕事JavaScala、最近の趣味Go言語 です。今回、 Go言語 で nulab/go-git-http-xfer という Git ライブラリ を書いたので紹介させていただきます。 役割 動機 仕組み 使い方 試用 まとめ 役割 このライブラリを使うと、GitのリモートリポジトリへHTTPでアクセスするためのサーバーを作ることができます。HTTPアクセス自体は、BacklogGithub等のGitをホスティングしているサービスであれば概ねサポートしているので、普段あまり気にすることはないかと思いますが、独自にGitを運用している場合、リモートリポジトリの前に clone、push、fetch  等で発生するHTTP通信を捌く仕組みを、なにかしら用意しなければなりません。 動機 私自身まだまだGoのニュービーなのですが、兎に角手を動か

    Go言語 で Gitサーバー を書いてみた。 | 株式会社ヌーラボ(Nulab inc.)
    honeybe
    honeybe 2019/03/27
  • Cacoo、AWSのインフラ構成図を自動で描画する機能をリリース | ヌーラボ

    <トピックス> 全世界300万人が利用するオンライン描画ツール「Cacoo」、AWSのインフラ構成図を自動で描画する機能をリリース AWSのアイコンを自動で配置するため、AWS構成図を簡単に素早く描画することができるように ベータユーザーの方からは「既存のAWS環境を図に起こす作業にかかる時間が半分くらいには短縮できそうだ」とのコメントも 株式会社ヌーラボ(社:福岡県福岡市、代表取締役:橋正徳)が提供しているビジュアルコラボレーションツール「Cacoo (カクー)」は、AWSのインフラ構成図(以下、AWS構成図)を自動で描画する機能(以下、機能)をリリースしました。「Cacoo」からAWSに通信を行い、AWSのアイコンを自動で配置するため、AWS構成図を簡単に素早く描画することができるようになります。 ■ 機能の詳細について ダウンロード不要で共同編集ができるビジュアルコラボレーシ

    Cacoo、AWSのインフラ構成図を自動で描画する機能をリリース | ヌーラボ
    honeybe
    honeybe 2018/10/18
    まじか。
  • Cacooの新UIを裏で支えるHeadless Chromeによる自動保存機能の実装 | 株式会社ヌーラボ(Nulab inc.)

    こんにちは、Cacooチームの平山です。僕は対外的には技術のことをお話しする機会は最近はあまり無いのですが、今回はCacooのUIリニューアルに伴い追加された、内部的には「自動保存」と呼ばれる機能の技術的な仕組みについてお話しします。 皆さん(きっと)ご存知の通り、Cacooは2018年6月28日に全面的なユーザーインターフェースの刷新を行いました。これに伴い、以前は図の閲覧用と編集用に分かれていたページを、編集機能を持つ一つのエディタで担うという変更を実施しました。Google Docsをはじめとする、オンラインのドキュメントツールと同等のユーザー体験に倣うような変更とも言えます。 新しいユーザーインターフェースのエディター さて、以前からCacooを利用されている方はおそらくご存知かと思いますが、ダッシュボード(図の一覧表示)のサムネイルや、ブログ等に張り付けるための画像などは、図の編

    Cacooの新UIを裏で支えるHeadless Chromeによる自動保存機能の実装 | 株式会社ヌーラボ(Nulab inc.)
    honeybe
    honeybe 2018/07/26
  • Web Animations APIとは?ブラウザのネイティブAPIで広がるアニメーションの世界 | 株式会社ヌーラボ(Nulab inc.)

    Cacoo 開発チームの山岸です。ウェブにおけるアニメーション・インタラクションが好きなので今回は Web Animations API を紹介します。 Web Animations API (以下 WAAPI)とは これまでの CSS Transitions / Animations や SVG AnimationJavaScript で実現するための API です。WAAPI によりアニメーションにおける統一的なインターフェースを提供することを目的として仕様策定が進められています。 何を解決するか CSS によるアニメーションの場合、実行時の制御ができないことや複雑な CSS Animations の修正の大変さがありました。 また、CSSJavaScript の両方を用いることも多いですが、アニメーション表現と実行のコントロールが別になることでの管理のしづらさ、reque

    Web Animations APIとは?ブラウザのネイティブAPIで広がるアニメーションの世界 | 株式会社ヌーラボ(Nulab inc.)
    honeybe
    honeybe 2018/07/13
  • ヌーラボ、「リゾートワーク制度」を始動--社員の宮古島におけるリモート就業を支援する社内制度 | プレスリリース | 株式会社ヌーラボ(Nulab inc.)

    チームのコラボレーションを促進し、働くを楽しくするツール「Backlog (バックログ)」「Cacoo (カクー)」「Typetalk (タイプトーク)」を開発、提供する株式会社ヌーラボ(社:福岡県福岡市、代表取締役:橋 正徳、以下 ヌーラボ)は、宮古島市教育委員会と共同で、社員の宮古島におけるリモート就業を支援する社内制度「リゾートワーク制度」を始動しましたので、お知らせします。 ■ 「リゾートワーク制度」始動の背景 「リゾートワーク制度」は、宮古島からリモート環境で通常業務などに従事する「リゾートワーク」を希望する社員を社内公募し、選抜された社員(およびその家族)の旅費などの一部をヌーラボが負担する内容です。 ヌーラボは、自身が開発・提供する3つのコラボレーションツール「Backlog」「Cacoo」「Typetalk」によって、地球上のどこにいてもオンラインで仕事ができています。

    ヌーラボ、「リゾートワーク制度」を始動--社員の宮古島におけるリモート就業を支援する社内制度 | プレスリリース | 株式会社ヌーラボ(Nulab inc.)
    honeybe
    honeybe 2018/06/28
    宮古島に流刑されたい(マテ / というかあの辺りだとスギ花粉は飛ばない(植生の南限より南のはず)ので春先花粉症の人とか最高なのでは? / http://miyacojima.com/solution/archives/1783 これ。最高の予感
  • Gitリポジトリ上でAWSアクセスキーを大公開しないためにAnsible Vaultをフル活用する | 株式会社ヌーラボ(Nulab inc.)

    こんにちは。Backlog のSite Reliability Engineering (SRE) を担当している吉澤です。 AWS アクセスキーを含むコードを GitHub の公開リポジトリにプッシュしてしまい、そのアクセスキーがビットコインの採掘に使われて AWS から高額請求が来た!という話をたまに目にします。今年の2月に検証された方(GitHubAWS キーペアを上げると抜かれるってほんと???試してみよー!)によると、git push から13分で不正利用開始されたらしいです。怖いですね……。 Backlog のソースコードは Backlog の提供する Git リポジトリで管理しています。Backlog の Git にはリポジトリの公開機能はないので、AWS アクセスキーをプッシュしたからといって即座に悪用される可能性は低いです。とはいえ、漏洩時の影響が大きいため、AWS

    Gitリポジトリ上でAWSアクセスキーを大公開しないためにAnsible Vaultをフル活用する | 株式会社ヌーラボ(Nulab inc.)
    honeybe
    honeybe 2018/05/09
  • jQueryを卒業したかった僕がReact StaticでReactをイチから学んでWebサイトを作った話 | 株式会社ヌーラボ(Nulab inc.)

    Typetalk チームフロントエンドエンジニアの岡藤(@johnykei)です。先日 Typetalk Webサイトリニューアルに伴い、フロントエンド技術を jQuery から React + styled-components に刷新しました。記事では、React を用いた Web サイト制作についてお伝えします。 はじめに タイトルにもあるように、僕は今まで JavaScript を書く必要がある時は使い慣れた jQuery を使っていました。 フロントエンドエンジニアという肩書きではありますが、フロントエンドエンジニアという職種は幅広く、僕はどちらかというとページやUIのスタイリングが主な業務で、普段 JavaScript を書く頻度もそんなに高くありませんでした。 最近海外ではそのような業種の人をフロントエンドデザイナーと呼ぶ動きも出てきていますが、jQuery しか使ってい

    jQueryを卒業したかった僕がReact StaticでReactをイチから学んでWebサイトを作った話 | 株式会社ヌーラボ(Nulab inc.)
    honeybe
    honeybe 2018/03/26
  • re:dashでAWSのコストを分析してみた | 株式会社ヌーラボ(Nulab inc.)

    Backlog SREチームの山崎 ( @revsystem )です。2017年11月に開催された Geeks Who Drink in Tokyo -AWS & 神楽坂 Edition- では「Backlogのインフラを支えるAWSの活用事例」をご紹介しました。今回は、SREチームが行っている、re:dashを用いたAWSのコスト分析についてご紹介します。 目次 なぜコスト分析を行うのか どのように分析しているか 具体的にどのような分析をおこなっているか 月別レポートCSVから必要な情報を取り出すには なぜコスト分析を行うのか AWS の活用事例でもご紹介しましたが、Backlogは Web, App, API, Git, WebDAV などで構成されるインスタンス群を1環境として、合計7環境、約200 のインスタンスで稼働しています。( 2018年1月現在 ) Backlog SREチ

    re:dashでAWSのコストを分析してみた | 株式会社ヌーラボ(Nulab inc.)
    honeybe
    honeybe 2018/02/08
  • fish-shell でシェルの海をスイスイ泳いでみた | 株式会社ヌーラボ(Nulab inc.)

    Backlog開発チームの佐藤です。自宅と会社でWindows/Macを併用しているせいか、日語と英語を切り替えるとき、自宅のWindowsではWindows+スペース、会社のMacではescキーをよく押してしまいます。 それはさておき、私がコンソールで操作するときはデフォルトで入ってるものをそのまま使います。Macデフォルトのbashのディレクトリ移動にいい加減疲れを感じたのと同時に、zshに憧れを抱いていました。そんな最中、「fish shell」というシェルを見つけて超快適になったので、その素晴らしさをお伝えします。 fishとは? 後ろがshとなっている通り、シェルの名前です。お魚じゃないよ!githubにてthe friendly interactive shellと自称しているだけあり、ユーザーフレンドリーさに重点を置いて開発されています。 fishの特徴として、他のシェルと

    fish-shell でシェルの海をスイスイ泳いでみた | 株式会社ヌーラボ(Nulab inc.)
    honeybe
    honeybe 2018/01/17
  • ヌーラボのアカウント基盤を 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.)
    honeybe
    honeybe 2017/09/21
  • 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.)
    honeybe
    honeybe 2017/08/30
  • テスト駆動開発 (TDD) の第一人者、和田卓人(@t_wada)さんによる社内エンジニア向けセミナーが行われました! | 株式会社ヌーラボ(Nulab inc.)

    テスト駆動開発 (TDD) の第一人者、和田卓人(@t_wada)さんによる社内エンジニア向けセミナーが行われました! こんにちは!Meggyです。2017年6月9日(金)、ヌーラボのエンジニア向けに、 和田 卓人 さん( @t_wada さん)による テスト駆動開発 のセミナー・ペアプログラミング実習が行われました! 日のテスト駆動開発( 以下、TDD ) の第一人者である和田さんによるセミナーとあって、エンジニア陣はわくわく。当日は、福岡オフィスと京都・東京オフィスをオンラインで繋ぎ開催しました。 テスト駆動開発の第一人者、和田卓人(@t_wada)さん登場! テスト駆動開発 ( TDD :test-driven development ) とは、「①まず最初に、各機能に必要なテストを書き、②最低限の実装を行なったあとで、③コードを洗練させていく」開発手法のこと。コードを書いた後に

    テスト駆動開発 (TDD) の第一人者、和田卓人(@t_wada)さんによる社内エンジニア向けセミナーが行われました! | 株式会社ヌーラボ(Nulab inc.)
    honeybe
    honeybe 2017/06/18
  • 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.)
    honeybe
    honeybe 2016/08/26
  • 密着 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.)
    honeybe
    honeybe 2016/05/21
  • From Java to Kotlin with lots of fun | Nulab

    From Java to Kotlin with lots of fun Even though Kotlin is just approaching its official 1.0 release, chances are you’ve already heard about this fun language. Kotlin is a great way to improve your code’s readability. It’s also easy to try, relatively fast to learn, and 100% interoperable with Java. When & why we started using Kotlin Last November, we released Backlog Android 1.2 — our first use o

    From Java to Kotlin with lots of fun | Nulab
    honeybe
    honeybe 2015/12/22
  • 実録!サービスを止めずに Amazon Aurora へ移行した話 | 株式会社ヌーラボ(Nulab inc.)

    Photo via Visual hunt ヌーラボアカウントではつい先日、Amazon RDS for MySQL から Amazon Aurora へと移行しました。ここでは、その経緯と実際に実施した作業を簡単にご紹介させていただきます。 移行の経緯 ヌーラボアカウントは Backlog や Cacoo、Typetalk といったヌーラボのサービスへの認証機能を提供しています。もし認証機能が使えないとすべてのサービスを利用できなくなってしまいます。そのため、ヌーラボアカウントには常に認証機能を提供し続けられるような、高いアベイラビリティが求められています。 ヌーラボアカウントではこれまで RDS for MySQL を利用していましたので、MySQL 互換を掲げる Amazon Aurora は、リリースされたときから移行の可能性を検討をしてきました。Aurora のメリットについては

    実録!サービスを止めずに Amazon Aurora へ移行した話 | 株式会社ヌーラボ(Nulab inc.)
    honeybe
    honeybe 2015/12/22
    おそらくこうだろうと思っていた移行手段だが実録かつ詳細というのは大変助かる。 / まぁ移行の予定が消滅したので不要なのですが…(ぐぬぬ