社員ブログ

社内システムのマイクロサービス化について考えてみた

MAXIMUM に投稿

1. はじめに

最近、マイクロサービスという言葉をよく見かけます。

マイクロサービスとは、従来だと単一でシステム化していた業務を区分ごとに小さなサービスに分割する考え方の枠組みです。

社内システムのアーキテクチャに組み込んで再設計してみても面白いと思ったので調べてみました。

2. モノリスとマイクロサービス

従来型の複数機能を単一アプリケーションにまとめた構成を『モノリス』と呼びます。

例えば、ファイルを共有するシステムがあるとします。

このシステムには下記のような機能があります。

テラフォームでAWS基盤設定を自動化出来ないかを考えてみた

MAXIMUM に投稿

タグ

1. はじめに

従来通り、AWS構築作業を手順書通りに手打ち…だと面倒なのとミスが出るリスクがある為、これを自動化したい。

IaCと呼ばれる手法があり、その中でも代表的なツールにテラフォームがある。このテラフォームはAWSのみではなく、他環境でも流用可能なため今回軽く触れてみた。

2. 初めて見る拡張子たち

よくあるコマンド手打ちを自動化する.shという拡張子があるが、これと合わせて.tfなどのテラフォーム用の拡張子がある。

とりあえず何者なのかを整理してみた。

【第6回・最終回】DrupalカスタムモジュールのPHPUnitテストについて

MAXIMUM に投稿

タグ

1. 目的

前回では、.installファイルを使用してテーブルを作成する方法について確認しました。

今回は最終回として、カスタムモジュールの処理をPHPUnitテストというもので試験してみます。

2. PHPUnitテストの利点

PHPUnitテストを使えば、単体試験をソースコード化することで自動化および再試験の簡略化が出来ます。

Drupalだと固有のUnitTestCaseを継承してテストクラスを作成できます。

final class Issue5MailTest extends UnitTestCase {

今回は、イベントの出欠回答時に通知送信するメールを例にします。

【第5回】Drupalカスタムモジュールの固有ファイル『.install』について

MAXIMUM に投稿

タグ

1. 目的

前回では、フォームから入力された内容をDBに保存するところまで追いました。

その際に保存先のテーブルは作成済みとしていましたが、今回はそのテーブルをDrupalでどのように作成しているかを確認していきます。

今回作成するのは.installファイルになります。

2. .installとは

まず.installってなんなのかですが、Drupalのカスタムモジュールでインストールや更新時の処理を書くためのDrupal固有のファイルです。

拡張子は.installですが、中身はPHPで書きます。

PHP自体に.installという仕組みがあるわけではなく、Drupal側がこのファイルをPHPとして読み込んでいます。

【第4回】Drupalカスタムモジュールで入力内容をDB保存する

MAXIMUM に投稿

タグ

1. 目的

前回でフォームを作成しました。しかし、入力内容がどのような流れでDBに保存されていくかを追えてなかったので、今回はそれを追って行こうかと思います。

前提として、フォームと保存先のテーブルは作成済みとします。テーブルの作成方法については次回の記事で取り扱います。※.install使用

2. フォームからの入力データ

前回にシステムの入り口として用意したフォームから出欠するしないというデータが送られてきます。もちろん各ユーザが入力します。

仮に出席しますといったデータが流れてきた場合は、出席扱いで名前などとセットでINSERTされます。

【第3回】Drupalカスタムモジュールで入力フォームを作成する

MAXIMUM に投稿

タグ

1. フォームってなに

先ずフォームってなんなのかですが、具体的には下記のようなテキストを入力・選択して送信するための画面部品のことを指す用語です。

  • ログイン画面
  • 検索欄
  • お問い合わせ画面
  • 会員登録画面
  • アンケート
  • 商品購入時の住所入力

2. PHPに定義を書いていく

PHPにフォーム定義をしていきます。

Drupalでフォームを定義する際にはHTMLではなく、PHPの配列で定義します。理由はDrupalのForm APIで纏めて管理しており、HTML部分については既にコアとして定義済みだからです。

【第2回】Drupalカスタムモジュールにてフックを使って既存処理に割り込む

MAXIMUM に投稿

タグ

今回はDrupalのフック関数について解説します。

前回のフォルダ構成で触れた「横から割り込めるフック処理を入れるmarucha.module以外については必須です。」という部分についての深掘りになります。

1. 今回やりたいこと

今回は例としてDrupalに元々存在する検索フォームを置き換えます。 通常の送信ボタンではなく、Marucha検索という表示に変更できます。

2. moduleファイル作成

とりあえず先ずはフック関数がどういう実装になるかですが、下記のようにmarucha_form_alterという感じでモジュール名を入れる必要があります。

hook_form_alter()が元々の形で、Drupalのコア機能が用意しているものになります。

【第1回】Drupalカスタムモジュールのフォルダ構成

MAXIMUM に投稿

タグ

これから数回に分けてDrupalカスタムモジュール作成方法についての社員ブログを書いていこうかと思います。
先ずは、最初の一歩として大雑把にでもアーキテクチャの勉強から入っていこうかと思います。
それでは一般的なフォルダ構成です。

AI に社内チャットを検索させる! RocketChat 用 MCP サーバーの作り方

トビウオ に投稿

概要

「あの話題、どこのチャンネルで話してたっけ……?」と、チャットツールの中を延々とさまよった経験は無いでしょうか。

弊社では社内チャットとして「RocketChat」を利用しています。RocketChat は、自前のサーバーでホストできるオープンソースのチャットツールとしては定番どころの一つで、Slack の代替として世界中で使われています(公式サイトによれば利用者は1,200万人以上)。ところがこの RocketChat、少なくとも私たちの環境では、Slack や Discord のような全チャンネルをまたぐ横断検索ができません。話題を探すには、チャンネルを一つずつ開いて検索して回ることになります。これが地味につらい。

Drupalで集計用コントローラを作成する手順

MAXIMUM に投稿

タグ

イベント出欠有無など、何かしらの回答データを集計したりグラフ化したい場面が多いかと思います。
そういった場面用に今回はDrupalカスタムモジュールにて実装手順を説明していこうかと思います。