銀の光と碧い空

クラウドなインフラとC#なアプリ開発の狭間にいるエンジニアの日々

2018年の振り返り

https://4.bp.blogspot.com/-q8a--fFvCD4/WhUgHSGkXkI/AAAAAAABILo/vyaE1hmpv5IksvmWGFa_FCMNjkIclyYSQCLcBGAs/s350/osyougatsu_text_2018.png

少し早いですが、Advent Calendarの最後として今年の振り返りで終わりたいと思います。

adventar.org

しばやんせんせーの人気記事ランキング生成ツールを使って上位20記事を出してみました。

  1. ASP.NET Core 2.2のHealthchecks機能を試してみる
  2. .NET Coreにおける新元号対応について
  3. 古い10£紙幣と1£硬貨を交換しようとした話
  4. IBM Q をQ#から動かしてみる
  5. Microsoft Build 2018 のSignalR関連のセッションの整理
  6. Q# の開発環境を準備する (.NET Core CLI + Visual Studio Code編)
  7. AzureのLinux仮想マシンで、起動すると3%くらいの確率で発生する事象を調査するために無限再起動スクリプトを使った話
  8. Visual Studio SDK でも ReactivePropertyを使いたい (bindingRedirect編)
  9. Q# Coding ContestでのDriverクラスの書き方
  10. Visual Studio 2017 SDKでXAMLのモーダルダイアログを出す
  11. giffgaffをアイルランドとイギリスで使ってみた 2018年版
  12. Azure の Linux 仮想マシンを仮想マシンの内部からdeallocateする
  13. Microsoft Build 2018 のQ#関連のセッションの整理
  14. 福岡.NET Conf で「ゼロから始めるQ#」のセッションをしました
  15. Azure VM のDiskのAttachとDetachをREST API経由でやってみる
  16. kubernetes の Azure Cloud Providerについてあれこれ
  17. Azure CLI を使ってLinux VMにAzure Disk Encryptionを適用する
  18. kubernetes on Azure の1.7~1.9あたりの更新をまとめてみた
  19. SQL Server Always On 可用性セットをOpenShift 3.11上にデプロイしてみた
  20. Q# Programming Contestが開催されるようです

最近公開した記事が1位になるほどにはPVが全体的に低いですね... テーマ別に振り返ってみます。

kubernetes/OpenShift on Azure

実際のところ仕事含め今年一番やっていたのが、このテーマです。kubernetes on Azureはほかのパブリッククラウドに比べるとやや機能実装が遅れていたのがですが、去年今年で追いつくべく一気に実装が進んだ感があります。kubernetes on Azure の1.7~1.9あたりの更新をまとめてみたは、まさにその機能を把握するために調べていました。Azure VM のDiskのAttachとDetachをREST API経由でやってみるは、Azure DiskをkubernetesのPVとして使う時のトラブル調査の一環でやったものです。

Twitterでもにょもにょ言っていたのですが、定性的な印象としては、kuerbernetesのCloud Providerを使ったPVからみでAzureは特にトラブルが多かったです。AWSやGCPはよりバージョンが小さい段階でバグを潰せたのに対し、AzureはManaged Diskの対応をようやく1.7(だったはず)で入ったように、比較的最近のバージョンになってもバグ*1が残っていたという印象です。が、ここ最近怒涛の修正PRが行われているので、かなり安定してきています。

自分の担当製品はOpenShiftなわけですが、Cloud Provideの部分はkubernetesの機能をほぼ使っているので、AKS (およびkubernetes on Azure)と共通する部分が大部分です。このあたり、トラブルの回避方法や調査方法、もっと便利な機能の紹介など来年もできたらいいなと思っています。

また、Windows Server Nodeのサポートや、"Managed" OpenShift on Azure、Azure Stackのサポートなどもあるので、ネタとしては来年もいろいろ出てきそうです。

RHEL on Azure

OpenShiftではなく、RHEL単体をAzureで動かす場合のトラブルも見ているのですが、AzureのLinux仮想マシンで、起動すると3%くらいの確率で発生する事象を調査するために無限再起動スクリプトを使った話Azure の Linux 仮想マシンを仮想マシンの内部からdeallocateするはその辺の結果をまとめたものです。RHELをAzureで動かす場合、WALinuxAgentが必要不可欠なサービスで、エージェントとして必要な設定を行っています。この設定回りで問題が起きることもあり、かなりコード(Python)も読みました。時々致命的な不具合があって更新されていることがあるので、WALinuxAgentは最新版を強く強くおすすめします。

.NET Core

今年7月のMVP再受賞で、Visual Studio and Development Technologies (当時)からAzureに変わったように、.NET Core/C#関連のアウトプットはやや減り気味です。ASP.NET CoreがLinuxで動き、はやりのkubernetesの上でもすごく普通に動くのですが、これをもっと使ってもらいたい...と思うもののあまりアウトプットできませんでした。ASP.NET Core 2.2のHealthchecks機能を試してみるや最近の記事なのでランキング外ですが.NET Core コンソールアプリをOpenShiftのcronjobとして動かすのようなkubernetesと.NET Core/ASP.NET Coreの機能を組み合わせたような実例を紹介できればと思います。

あと、ランキング一位が .NET Coreにおける新元号対応についてなので、これはその日が来たら実際に試してみたいですね。連休でお出かけの可能性もありますが...

SQL Server on RHEL/kubernetes

SQL Serverほぼさわったことなかったものの、RHELでサポートで言うことでさわりはじめて1年ちょっと。いくつかの記事でRHEL上での使い方を紹介してきました。そんな中、SQL Server Always On 可用性セットをOpenShift 3.11上にデプロイしてみたのように、SQL Server自身がkubernetes/OpenShift上での動作をサポートすることになって、そちらも勉強している最中です。単にkubernetes上で動かすというだけでなく、むしろkubernetesで動くことを強みにしようと推している雰囲気があるので、来年も面白い機能を紹介できればと思います。

Visual Studio SDK (VS拡張)

ほそぼそと興味を持って触っています。来年はVisual Studio 2019が出るので、その辺の紹介もできればと思います。

イギリス

雑記に書いたほうがよかった気がしますが、古い10£紙幣と1£硬貨を交換しようとした話giffgaffをアイルランドとイギリスで使ってみた 2018年版がランクインしてました。また、昨年に引き続き海外のコミュニティで登壇できました。

www.meetup.com

また、こそっと動画セッションもしてました。

commons.openshift.org

海外での登壇は雰囲気も違って面白いので、引き続き機会を見つけたいと思います。

Q#

日本語で記事書く人が少ないせいか、ランキングに入った数では一番でした。もちろん仕事とは関係なく、そんな仕事も(見る限り)まだないので、完全に趣味のレベルでの勉強をしています。来年はAzureでより大きいシミュレーター、そして実機も利用可能に...?という可能性があるので、引き続きブログに書いていきたいと思います。

このハンズオンの2回目以降も考えていますし、

openql.connpass.com

去年に引き続き福岡に戻って登壇したようなQ#のセッション形式も考えています。

fukuten.connpass.com

まとめ

相変わらず取り組み技術はごった煮な感じで進んでいます。来年の目玉としては、OpenShift(kubernetes) on Azure、Visual Studio 2019 + .NET Core 3.0 + C# 8.0、Q#、SQL Server 2019 on kubernetesあたりでしょうか。登壇、執筆など機会を見つけてやっていきたいなと思っています。今年一年ありがとうございました。

*1:単純なバグやAzureプラットフォームとしての制約をうまく処理できていないような設計の問題含む