実践Node.jsパフォーマンスアップ|Stream編

この記事は、2021/7/8 に行われた WESEEK Tech Conference の内容です。

パフォーマンスって何だろう

パフォーマンスについて調べると次のような意味が出てきます。

パフォーマンスは、プロセス、システム、プロセッサー、ネットワーク、またはデバイスが、
特定の作業単位の負荷に対してどのように働くかを意味します。

出典: IBM 「パフォーマンスを特徴付ける条件」 から引用 https://www.ibm.com/docs/ja/zos/2.2.0?topic=tuning-how-is-performance-characterized

難しい定義を意識しなくとも、日常生活では直感的に感じているはずです。
例えば、Webサイトである操作を行なった時にその結果が反映されるまで時間がかかることや、動作が重くなってサイト自体が落ちることなど。

ユーザーの視点で見るとかなり表面的な部分が評価されます。

ユーザーは厳しいです。
少しでも使いづらいと感じると直ちに離脱の要因になってしまいます。

このスライドでは、ユーザーの離脱を防ぐために処理速度やメモリ消費を改善する方法について考えていきます。

ある問題へのパフォーマンスチューニングを依頼されたと仮定して
問題の認識、原因調査、戦略立案、実践・評価
を行い一緒に考えていきましょう 🤝

続きを読む

SaaS運用での大障害の思い出と対策の共有(大噴火編)

この記事は、2021/6/24 に行われた WESEEK Tech Conference の内容です。

弊社が開発するSaaS型社内wiki・ナレッジベースサービス GROWI.cloud で、過去に発生した障害をピックアップしてご紹介します。

思い出すのもツラいところがありますが、発生した障害の中でも比較的大きいものを紹介しておりますので、
当時感じたツラさを感じてください。(^^;

前回よりも障害の規模は大きめです。

記事内容と見どころ

障害に関連するシステム情報をはじめ、原因と対策は技術・運営の観点を紹介してますので、次の点が役に立つかもしれません。

  • システム可用性の向上に対するヒント
  • 同じプロダクトへの対策
  • 似た構成への対策の参考
  • 障害時の運営方針決定の参考

目次

続きを読む

SaaS運用での大障害の思い出と対策の共有

この記事は、2021/5/27 に行われた WESEEK Tech Conference の内容です。

弊社が開発するSaaS型社内wiki・ナレッジベースサービス GROWI.cloud で、過去に発生した障害をピックアップしてご紹介します。

思い出すのもツラいところがありますが、発生した障害の中でも比較的大きいものを紹介しておりますので、
当時感じたツラさを感じてください。(^^;

記事内容と見どころ

障害に関連するシステム情報をはじめ、原因と対策は技術・運営の観点を紹介してますので、次の点が役に立つかもしれません。

  • システム可用性の向上に対するヒント
  • 同じプロダクトへの対策
  • 似た構成への対策の参考
  • 障害時の運営方針決定の参考

目次

続きを読む

GitOpsをArgoCDで学ぶ

この記事は、 2021/5/13 に行われた WESEEK Tech Conference の内容です。

ArgoCDを使用したGitOpsについてお話ししました。実際のArgoCDの設定例などを紹介しながら、デモ形式でのGitOps構築までの道のりを紹介しました。

目次

続きを読む

コスト7割減!Kubernetes本番サービス環境の運用ノウハウ

この記事は、 2021/4/22 に行われた WESEEK Tech Conference の内容です。

Google Compute Engine のプリエンプティブルインスタンスを利用したクラウド利用料を節約するお話をしました。
Google Cloud Platform 上で稼働している GROWI.cloud を実例に上げつつ、節約額、稼働率の運用実績についてもご紹介しました。

目次

続きを読む

Raspberry Piでコミュニケーションシンクロ率を上げる

この記事は、 2021/4/8 に行われた WESEEK Tech Conference の内容です。

Raspberry Pi や Arduino を使ってデバイスを作成し、社内環境の改善をするお話をしました。今回のお話は、ハードウェアについてが多めです。時間の都合でソフトウェアの話まで広げられなかったので、それはまた後日記載したいと思います。

関連記事

Raspberry Piで温度・湿度・気圧センサーと天気予報APIでペット環境を見守る

目次

続きを読む

JavaScript/Node.jsでMongoDB+Mongooseのデータマイグレーション

古くは「LAMP」に代表されるような技術スタック、JavaScript 界隈では「MEAN」スタックという用語もあるくらい、JavaScript(Node.js) との組み合わせでは MongoDB がよく使われるようです。

NoSQL ではスキーマレスのためデータマイグレーションを気にせず開発することも多いわけですが、例えば一度バージョン1をリリースして既にユーザーがついているシステムを更改するような場合、後方互換を保つためにもデータマイグレーション機構は重要です。

本記事では、Node.js 環境で MongoDB および Mongoose を利用しているようなシステムにデータマイグレーション機構を導入する Tips を紹介します。

続きを読む

Dev in Container on WSL2でボリュームのパフォーマンスを比べる

こんにちは。武井です。

2020年5月末に待望の Windows 10 May 2020 Update が公開され、WESEEK, Inc. で開発中の GROWI でも WSL2 と Docker Desktop を利用して Dev in Container を実現した新しい開発スタートアップ を採用しました。

本日のエントリーでは、その開発時に利用するストレージ(Docker volume)の種類によってパフォーマンスがどれくらい変わるのかを実験した際の結果を紹介します。

取り立てて高速化のための新しい手法を試しているというわけではありませんが、昨今の node プロジェクト開発における node_modules、rails プロジェクト開発における vendor/bundle 等、依存関係ディレクトリの取り扱いの参考になれば幸いです。

目次

続きを読む

CircleCI 2.1とkubernetesで動作するアプリケーションの CI/CD 事始め

はじめに

この記事は CircleCI Advent Calendar 2019 の 19 日目の記事です。

拙稿となりますが Ruby on Rails, Vue.js によるモダン WEB アプリケーション 実践編 (その2) にて GitHub Action を使って k8s 上で動作する Ruby on Rails アプリケーションを CI/CD する Workflow を作ったので、同じ機能を CircleCI で作ってみることにします。

尚、Rails アプリケーションを前提としてますが、k8s の deployment manifest で定義されたアプリケーションであれば概ね流用できると思います。

続きを読む