IoT を使ってみる(その2:AWS IoT モノの準備編)
前回は、AWS IoTの簡単接続手順(チュートリアル)を実行してIoTデバイス(Raspberry Pi)とAWS IoTの通信を行ってみました。 今回はチュートリアルを使わずに、AWS IoTコンソールを使って最初から「モノ」を登録していきましょう。 前置き # 前回使用したIoTデバイス(Raspberry Pi)に”電圧降下エラー”が頻発するようになってしまい、動作が不安定になってしまいました。 おそらく電源アダプタの劣化か、USBコネクタの不良あたりが原因でしょう...
記事を読むCloud Custodian: AWSリソース作成時に自動でOwnerタグをつける
技術検証等の目的で1つのAWSアカウントを組織内で共有して利用することは結構多いかと思います。 弊社でもサンドボックスAWSアカウントを保有しており、個人の勉強からプロジェクトでの技術検証まで様々な用途で利用されています。 ここでよくある悩みの種は、AWSリソースを消し忘れて意図しない課金が発生してしまうことです。目的によっては一時的に高スペックなEC2インスタンスを起動することもありますが、利用終了後に消し忘れると継続的に高価な請求がきます...
記事を読むMicroProfile Healthの機能と利用
MicroProfileの機能を紹介していくシリーズの今回はMicroProfile Health(MP Health)です。MP Healthはアプリケーションの「生きてますか?」を確認するヘルスチェックに関する仕様をまとめたものです。ヘルスチェックは機能としては小さく地味ですが、マイクロサービスのような分散システムでアプリケーションを正常に運用にするためには欠かせない要素です。今回はそんなヘルスチェックに対しMP Healthが規定、提供する仕様や機能を紹介していきます...
記事を読むMicroProfile OpenAPI 3.0の新機能と既存機能の比較
Helidon 3.0からMicroprofile OpenAPI 3.0(MP OpenAPI 3.0)が使えるようになりました。今回はMP OpenAPI 2.0からMP OpenAPI 3.0までに取り入れられた新機能を紹介します。今回紹介する新機能はそれほど多くなく、それだけでは少し寂しいため、新機能と既存機能の比較として前回紹介できなかった便利な機能も併せて紹介します...
記事を読むエクストリームプログラミング解説 その5:原則
はじめに # 中佐藤です。XP解説その5です。前回までで「価値」「プラクティス」の解説が終わり、今回は「原則」。本連載の最初に出した図を再掲します。 原則 # 位置づけ # この図、さんざん使ってきましたが、我ながら少々気持ち悪い図です。このどこにもつながっていない「原則」が何なのかがわかりません。XPの原則とはどういう意味を持つものなのか。 まず書籍に書かれていることを見ると、原則は価値とプラクティスをつなぐ橋のようなもの、と表現されています...
記事を読むDeno を始める 第1回:開発環境とランタイム
この連載では「遅まきながら Deno を使い始める」というテーマで Deno の環境構築から始めて、エコシステム、ユースケースなどを扱っていこうと考えています。 Deno は Node.js を開発した Ryan Dahl が Node.js の設計の反省点を活かして開発し世に送り出した JavaScript / TypeScript ランタイムです。セキュアな設計、TypeScript をファーストクラス言語とすること、シングルバイナリの deno CLI だけで動くことなどを特徴とします...
記事を読むAWS Controllers for Kubernetes(ACK): AWSサービスをKubernetesカスタムリソースで管理する
Kubernetesを利用した開発では、クラスタ内で動作するアプリケーションやミドルウェアをDeploymentやStatefulSet等のKubernetes APIリソースとして管理します。 また、これにArgoCDやFlux等のデプロイツールを組み合わせて継続的にクラスタに同期することが一般的です。 一方で、クラウド環境を利用する場合は、クラウドベンダーが提供するサービスを使うことが多いかと思います...
記事を読むKnative EventingのKafka BrokerでリトライとDead Letter Sink(DLS)を試す
KafkaをイベントレイヤーとするKnative Eventingの環境をリトライとDLSが可能な様に構成した上で、意図的に処理を失敗させるKnative Servicveをデプロイし、処理失敗時のリトライやDLSへのメッセージ送信を確認しました。 モチベーション # KafkaをイベントレイヤーとするKnative Eventingの設定例でよく見られるものは、KafkaSourceのSinkに直接Knative Serviceを設定するシンプルなものが殆どです...
記事を読むMicroProfile Config 3.0へのキャッチアップ
Helidon 3.0がリリースされMicroProfile5.0準拠となり、ついにHelidonでもMicroProfile Config 3.0(MP Config 3.0)の機能が使えるようになりました。そこで今回は前回紹介できなかった2.0から3.0までに取り入れられた便利な機能をその差分として紹介します。このため、今回の記事は以前紹介した「お手軽便利MicroProfile Config」の理解を前提にしています。まだの方はそちらから読んでいただければと思います...
記事を読むエクストリームプログラミング解説 その4:プラクティス
はじめに # 中佐藤です。XP解説その4です。前回までで、「価値」の解説が終わっています。今回は「プラクティス」についてです。 プラクティス # いきなりですが、すべて列挙してみましょう。第2版のプラクティスを軸(左欄)に置いて、対応する(と思われる)第1版のプラクティスを右に配置しました。ざっと眺めて下の解説に行ってください...
記事を読むペアワイズ法テストケース生成ツール「PictMaster」のサブモデルを使う
前回はペアワイズ法テストケース生成ツール「PictMaster」の”重み”機能について紹介しました。 今回はPictMasterの”サブモデル”機能について紹介したいと思います。 一部の因子の組み合わせ網羅数を他の因子よりも多くしたい場合 # 2因子網羅のテストケースを効率よく生成するペアワイズ法ですが、特定の因子の組み合わせ網羅数を他の因子よりも多くしたい場合、テストケースの生成方法に工夫が必要になります...
記事を読むカスタムワークフローで GitHub Pages デプロイが可能に
GitHub Pages は専用のブランチか docs などのターゲットディレクトリを指定して公開する方式です。したがって、SSG(Static Site Generator) を使う場合、ソースコードだけでなくビルド成果物もリポジトリ管理する必要がありました。7月に GitHub Actions ワークフローによるデプロイがベータ版として利用可能になりました...
記事を読む初心者のためのJavaプログラミング再学習(その1 基本データ型とオブジェクト型)
はじめに # 「初心者のためのJavaプログラミング再学習」と題して、初心者の方向けにJavaプログラミングの解説シリーズを立ち上げました。Javaプログラミングを網羅的にカバーするのではなく、新人研修等で躓く受講者が多い部分、一度勉強したけど理解が難しい部分に絞って執筆する予定です。どちらかといえば、厳密な理解よりも、イメージを掴んでもらうことを重視した内容です。 初回は「基本データ型とオブジェクト型」について解説します...
記事を読むコンテンツ重視の静的サイトジェネレーター Astro でドキュメントサイトを構築する
Astro は SSG (Static Site Generator) の1つです。「高速でコンテンツにフォーカスした Web サイトを構築するためのオールインワン Web フレームワーク」というのがキャッチコピーです。 Astro | Build faster websites v1.0 がリリースされました。 Astro 1.0 | Astro ブログやポートフォリオサイトの他、ドキュメンテーションサイトのテンプレートも提供されています。公式ドキュメントには日本語版もあります...
記事を読むIoT を使ってみる(その1:AWS IoT チュートリアル編)
「IoT」という言葉が世の中に広まって、結構な時間が経ったと思います。 私達が日頃「ああ、これがIoTだ」と実感することはそれほど多くないと思いますが、IoTは私達の生活の中に着実に広がっています。 今回から数回に分けて、AWS(アマゾン・ウェブ・サービス)の「AWS IoT」とIoTデバイスの「Raspberry Pi」を使って、IoTについて紹介していきたいと思います。 また必要に応じて他社のIoTサービスやIoTデバイスについても比較検討してみたいと思います...
記事を読むペアワイズ法テストケース生成ツール「PictMaster」の重みを使う
前回はペアワイズ法テストケース生成ツール「PictMaster」の”エイリアス”について紹介しました。 今回はPictMasterの”重み”機能について紹介したいと思います。 組み合わせの一部を他より多くテストしたい場合 # 2因子網羅のテストケースを効率よく生成するペアワイズ法ですが、特定の因子・水準データだけを他の組み合わせよりも多くテストしたい場合、テストケースの生成方法に工夫が必要になります。 例えば、特に重要な因子・水準は他の因子・水準よりも重点的にテストしたい場合などが該当します...
記事を読むGitHub の外部サービス自動リンク参照で英数字の識別子が利用可能に
GitHub の Pro/Team/Enterprise のアカウントでは、外部サービスへの自動リンク参照が利用できます。 Jira や Zendesk などの GitHub 以外のサービスで課題やインシデントを管理しているいるプロジェクトも多いでしょう。その場合、GitHub の issue、PR、コミットコメントに JIRA#1 のように プレフィクス<ID> の形式で書くと自動でリンクしてくれる機能です。課題やインシデントを追跡する上で役立ちます...
記事を読むエクストリームプログラミング解説 その3:価値(2/2)
はじめに # 中佐藤です。XP解説その3です。一応、エクストリームプログラミング解説 その1:全体像から続き物として読んでいただくことを想定しています。前回は「価値」のうち「コミュニケーション」を解説しました。 価値(続き) # あらためて4+1の価値を再掲します。今回は「フィードバック」から。 コミュニケーション ⇒ その2:価値(1/2)を参照 フィードバック シンプリシティ 勇気 リスペクト 価値:フィードバック # これは理解しやすいです...
記事を読むEKS Blueprints(CDK)ですぐ使える実用的なEKSクラスタ環境を簡単に手に入れる
EKSクラスタを構築するには、Kubernetesだけでなくその土台となるAWSネットワーク・セキュリティの知識も少なからず必要です。 また、素のEKSクラスタをそのまま利用することはほとんどなく、Ingress Controllerやオートスケーラー、メトリクスコレクター等多くのツールを別途セットアップする必要があります。 複数チームで共有するようなマルチテナント環境の場合は、NamespaceやRBAC等、やることはたくさんあります...
記事を読む今さら聞けないMaven – コンテナも一緒にビルドしたい。テスト実行前にコンテナを起動したい
Javaの開発ではMavenなどのビルドツールでビルドやテストの手順を定義し実行するのが一般的ですが、コンテナも一緒にビルドしたいなぁと思うときはありませんか?また、マイクロサービスの普及に伴ってREST通信を行う処理が多くなってきましたが、REST通信部分のテストは手間が掛かるので、いっその事、スタブにコンテナを使いたいけど、テスト実行前にコンテナを起動するにはどうしたらいいんだろう?など...
記事を読む