Durable Functions for Node.js を試してみた

Build2018でいよいよGAとなったDurable Functionsですが、同時にこっそりNode.js版がパブリックプレビューとなっていました。

個人的にFunctionsの実装はNode.jsがお気に入りなので、これはちょっと嬉しい発表でした。早速自分のMac + VSCode環境で動くかどうかを試してみたのでここで紹介します。

Read More

Azure Functions で Cosmos DB と MySQL のデータ連動

先日、いつものように Azure Cosmos DB を使ってサービスを構築していたら、どうしてもGroup Byを使わなければならない場面に遭遇しました。しかし現時点ではCosmos DBではGroup Byがサポートされていません(そのうち実現するかもしれないのでこちらからVoteしましょう)。
こういう時、普通ならGroup Byに相当するストアドプロシージャを頑張って作ったりするのでしょうが、そういう頑張りが嫌いな私は、 CosmosDB TriggerのFunctionを使って集計専用のセカンダリRDBを作って解決してしまえ、というなんともクラウドネイティブ?な設計に走りがちです。

Read More

Cosmos DB入出力バインドを使ったAzure FunctionsをJavaScriptで実装する

Azure Functionsを書くときはもっぱらVisual StudioとC#で作っていますが、
とある機会があって久々にJavaScriptのFunctionをAzureポータル上で作成してみたところ、
(ポータル上での実装は避けていましたが)これはこれでありかなと思えてきましたので、自分用のメモとしてざっと手順を残しておきます。

Read More

Dockerに統合されたkubernetesでローカル開発用のMySQLを運用する

DockerCon EU 2017でDockerにKubernetesが統合されるとアナウンスされていましたが、早くもDocker CE for MacのEdgeリリースでk8sがローカル環境で使えるようになってました。これまでローカルのk8s環境はminikubeをインストールしていたのですが、この機会にDockerで完結させるように移行してみました。

Read More

ASP.NET MVCでKnockoutからVue.jsに移行してみた

この記事は Vue.js #3 Advent Calendar 2017 の22日目の記事です。

ASP .NET MVCでは、数年前までデフォルトのJavaScriptライブラリとしてKnockoutが付属していた時期が長く続きました(現在はAngularやReactを選択できる)。

Knockout自体は細々とメンテナンスされているものの、メジャーバージョンアップはされない雰囲気になっています。そのため、当時開発したアプリを改修しようとすると、情報が不足していたり、モダンなフロントエンドの開発テクニックが使えなかったりと少し残念な状況になっています。

そこで、最近のメジャーなスタックを使って改修できないかといろいろ検証していたところ、クラシックなASP .NET MVCでは、Vue.jsへの移行がわりといい感じにできたので、この記事ではKnockoutからVue.jsに移行する方法を紹介したいと思います。

Read More

Xamarin.FormsからAzure Event Hubsに大量のメッセージを送信する

これは、Xamarin その1 Advent Calendar 2017の7日目のエントリーです。

先日、Tech Summit 2017というイベントでAzure Cosmos DB を使った高速分散アプリケーションの設計パターンというセッションを担当させていただいたのですが、その中で取り上げた設計パターンのひとつとして「リアルタイムデータ分析」がありました。

この設計パターンでは、イベント発行元にIoT機器を想定していたのですが、良く考えたらXamarinで作成したアプリにも適用できそうだなと思い今回検証してみました。

Read More

Kubernetesのローカル開発環境をMinikubeで構築する

自分のMacをリフレッシュする機会があったので、ローカルのDocker環境をKubernetesベースに変えてしまおうと思い、Minikubeを使って環境を構築しました。

Minikube環境の構築

Minikubeに必要なもの

Read More

Azure FunctionsのCosmos DBトリガー

2017年のIgniteで発表されたCosmos DB関連の新機能で個人的に注目しているのが、Azure FunctionsとCosmos DBのネイティブ統合です。

Cosmos DBにはもともとChange Feedという機能がありますが、以前このブログ記事「DocumentDBのChange Feed機能を使う方法」で書いたように、Change Feedというわりには若干中途半端な機能だなと感じていました(変更イベントの検知を自分で作り込む必要があったという意味で)。

今回発表されたAzure FunctionsのCosmos DB Triggerは、まさに従来のChange Feedに足りなかった部分を補うもので、「Cosmos DBのデータ変更を自動的に検知してイベントを起こしてくれる」機能がやっと出たなという感じで少し安心しました。

Read More

Try Cosmos DB for freeを試してみた

ここ数日私のTLを賑わしている「Try Cosmos DB for free」を早速試してみました。
この手の無料特典モノは制約がきつく使いにくいことが多いのですが、Try Cosmos DBに関してはそこそこ使える印象だったのでそのあたりをレポートしたいと思います。

Try Cosmos DB for freeとは

「Try Cosmos DB for free」はCosmos DBをAzure上で無料にて試せるプランです。これまでCosmos DBには無料プランがなく、ローカルのエミュレータで試すしかない状況でしたので、これは歓迎すべき対応だと思います。

Read More

Cosmos DBで読み取りリージョンへ明示的にルーティングする

Cosmos DBのセッションでよくみかける「世界地図をポチポチしてDBをグローバルに分散させるデモ」、いとも簡単にデータを世界に分散させられるように見えますよね。
はい、確かに”DB”はポチポチするだけで分散します。でも、アプリのトラフィックはポチポチしただけでは分散しないんです。

私はこのテーマで1ヶ月くらい検証したり、ドキュメントを漁ったり、いろんな人を捕まえたりしてモヤモヤしてましたが、ようやくとある筋から確証情報を得たので、記事にすることにしました。

Read More