unhurried

コンピュータ関連ネタがほとんど、ときどき趣味も…

システム設計の先導者 ITアーキテクトの教科書[改訂版]

https://www.nikkeibp.co.jp/atclpubmkt/book/18/267970/

本書では、システム開発の各ライフサイクルでITアーキテクトのすべきこと(成果物)が、筆者の経験を基に解説されている。要件定義から運用・保守、システム再構築に渡って必要な成果物の作り方が例を交えて説明されているので、網羅的かつ具体的な内容となっている。

本書の元となった日経SYSTEMSの記事が2013年のものであることと、対象がエンタープライズシステムであることから、最近のWebシステムには必ずしも当てはまらないもの(ウォーターフォール開発や、RDBMS前提のデータモデルなど)もあるが、このようなシステムでは本書の成果物の一部のみ作成すれば十分な場合が多いため、十分参考にできる。

オープンソースカンファレンス 2019 Tokyo/Spring まとめ

数年ぶりに参加したので、聴講したセッションの内容をまとめた。

https://www.ospn.jp/osc2019-spring/

(1) OpenSDS,始めてみませんか(BOF

OpenSDSとは

各社のストレージ製品を統一管理するためのソフトウェア(管理のみでデータ送受信は既存のプロトコルを使う。)

Kubernetes CSI (Container Storage Interface) 用のDriverも開発されている。

現在のステータス

開発コミュニティはLinux Foundationがホストしている。EMCやHuaweiに加えて、NTTコミュニケーションズYahoo! Japanといった日本メーカーも参加して開発を進めているが、現在はまだデモができるレベルの完成度となっている。

参考

(2) Ansible・Serverspecベースの自動化のフレームワークSHIFT wareの紹介

SHIFT wareとは

TIS株式会社が開発するインフラ管理自動化のためのオープンソースソフトウェア

https://shift-ware.github.io/ja/

Ansibleの設定ファイルとServerspecのテストコードをExcelから自動出力できる。インフラ管理者が使い慣れているExcelを使うことで、導入時の学習コストを下げられる。

  • Ansible:サーバー構成管理ツール(yamlで設定ファイルを書いていく)
  • Serverspec:サーバーテストツール(Rubyでテストコードを書いていく)

(3) Elastic Stackでマイクロサービス運用を楽にするには?

Elastic Stackとは

Elasticが開発するデータの収集・検索・分析・可視化のためのOSSの組み合わせ

  • Beats
    • 軽量データシッパー
    • パケット、ファイル、各種メトリクスなどを送信する。
  • LogStash
    • データのパースや変換を行う。
  • Elasticsearch
  • Kiabara
    • データを可視化・ダッシュボード機能を提供する。

SaaS版(Elastic Cloud)やオンプレミス版(Elastic Cloud Enterprise)も提供されている。

マイクロサービス運用での活用

Beatsファミリーでマイクロサービスの様々なデータを収集できる。

APM (Application Performance Monitoring) にも対応している。

  • 各アプリケーションフレームワーク用のエージェントを組み込むことで分散トレーシングができる。

その他に、通常時のログから機械学習でモデルを作成し、異常検知を行う機能(有償)もある。

参考

(4) スケールアウト型データベース GridDB

GridDBの概要
データモデル
  • NoSQLで一般的なキーバリュー型とは異なり、行指向に近いキーコンテナ型というデータモデルを採用している。
  • キーバリュー型では各行をキーとバリューの組み合わせで表現するが、キーコンテナ型ではキーに対応するコンテナに行を格納する。
  • 時系列データを扱いやすく、コンテナ内では行単位のACIDトランザクションもサポートされる。
クラスタ構成
  • ノード間でマスターノードを自動的に決定するため、管理ノードが不要で単一障害点がない。
  • ノード間でのデータの偏りが生じないように、データの再配置を自律的に行う。
性能比較
  • 主としてメモリにデータを格納することで高速なアクセスを実現する。
  • Yahoo! Cloud Service BenchamarkではCassandraを上回る性能が出ている。
参考

自動車登録の住所変更手続き

転居したときには自動車登録の変更が必要となるが、警察署と運輸局の両方に出向く必要があり、手続きが複雑になっている。 備忘録として、自分の経験をもとに自動車登録の氏名・住所変更手続きの流れをまとめた。

(1) 自動車保管場所証明を取得する

都道府県の警察署で自動車保管場所証明(車庫証明)を取得する。(申請と証明書受け取りで警察署に2度出向く必要がある。)

準備するもの

  • 自動車保管場所証明申請書
  • 保管場所の所在図・配置図
  • 自動車保管場所使用承諾証明書(もしくは駐車場契約書の写しなど)

※ 申請書は各県警のWebサイトから入手できる。(長野県の場合:長野県警Webサイト

(2) 自動車登録を変更する

運輸局支局で自動車登録内容の変更を申請する。

準備するもの

  • 申請書(第一号様式)
  • 車検証
  • 自動車保管場所証明(発行から1ヵ月以内のもの)
  • 戸籍謄本(発行から3ヵ月以内のもの)

※ 申請書は運輸局のWebサイトからダウンロードできる。

書籍「プロダクションレディサービス」まとめ

UberのSREが可用性の高いマイクロサービスに必要な標準について解説した書籍です。説明されている標準の中から対応できていないサービスが多いと感じたものをまとめました。

qiita.com

ソーシャルアプリプラットフォーム構築技法

立ち寄った書店で見かけて衝動買いした書籍ですが、簡単に感想をまとめました。

自社サービスを社外の開発者に公開するためのプラットフォームを構築するときに必要となる、社内の組織構造や企画・開発・運用について、筆者の経験をもとに解説されています。

最近は多くの企業が他社と連携するためのプラットフォームを開発しており、私も同様のプラットフォーム(筆者のものに比べれば小規模ですが)の開発に携わったことがあります。

構築の際にまず困ることがこれらのプラットフォームの企画・開発・運用に関する情報はあまり公にはされていなく、他社事例の情報が少ないことです。この書籍は開発時のアーキテクチャやデータの設計まで踏み込んで解説されているため、プラットフォームの1つの構築事例としてとても参考になりました。

もちろん書籍で解説されていることが全てのプラットフォームにそのまま適用できるわけではありませんが、これからプラットフォーム構築を検討されている方には事例として役に立つでしょうし、すでにプラットフォームを運用している方にとっては、自分のサービスと比較することで今後の方針検討に活用できると思います。

Pythonではじめる機械学習

Pythonではじめる機械学習を読みましたので、簡単に内容をご紹介します。

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

本書は、機械学習の数学的な理論を概念レベルで理解しつつ、実践で機械学習アルゴリズムを使えるようにすることを目指す書籍である。

sckit-learnで利用できる機械学習アルゴリズムについて、それぞれの特徴と使い方が説明されている。また、実践的なテクニックとして、グリッドサーチを使ったパラメータのチューニングや、前処理を組み合わせてパイプラインを構成する方法についても詳細な解説がある。

自動車 TCO見積もりツール Vue.js対応

約1年前にReact + Material-UIを使って実装した自動車 TCO見積もりツールをVue.jsで置き換えました。

利用しているライブラリ

github.com