WHITEPLUS TechBlog
https://blog.wh-plus.co.jp/
株式会社ホワイトプラスのエンジニアによる開発ブログです。
フィード
Docker Desktop 4.35で追加されたApple Silicon Mac専用のハイパーバイザーが開発体験を改善するか検証する
WHITEPLUS TechBlog
先日リリースされたDocker Desktop 4.35でApple Silicon Mac専用のハイパーバイザーである Docker VMM (Virtual Machine Manager) がベータ版として追加されました。 docs.docker.com www.docker.com これはApple Silicon Macでのみ利用できるコンテナに最適化された新しいハイパーバイザーです。Linuxカーネルとハイパーバイザーレイヤーの両方が最適化されていて、一般的な開発タスクにおいて従来のApple Virtualization Frameworkと比べ大幅にパフォーマンスが向上されるよ…
1ヶ月前
GKEの新機能と不具合情報まとめ 2024年11月
WHITEPLUS TechBlog
2024年11月にGKEのReleaseNoteに流れてきた情報から、新機能と変更内容、stableチャンネルに影響のありそうな不具合情報のみをまとめて紹介します。 11月も多数のリリースがありましたが、中でも最大65,000ノードのクラスタに対応したこととコントロールプレーンに対するDNSベースのアクセスは大きなリリースでした。一般的なWebサービスではそこまでの数のノードが必要になることはないため影響はありませんが技術的に面白いですし、コントロールプレーンに対する新しいアクセスはBastionサーバーを用意しなくてもセキュアにアクセスできるようになって便利になります。どちらも公式のブログで…
1ヶ月前
LaravelのGateとPolicyの仕組みを理解!認可を使いこなせるようになるために
WHITEPLUS TechBlog
こんにちは! ホワイトプラスのコアシステム開発Gエンジニアのさとうです。 開発をしていく中で、複雑化したシステムを改善するのに認可を整理すると良いかも…という話題が上がりました。 PHP・Laravelを使って開発をしているのですが、Laravelの認可機能については「そういうものがあるらしい」程度の理解しかありません。 そこで、この記事では改めてLaravelの認可について調べてみたことをまとめました。 Laravelの認可の設定がよくわからない ユーザーの属性を調べるif文がいろいろなところに散りばめられている こんな悩みをお持ちの方は、ぜひご一読いただけると嬉しいです。 認可とは? 認可…
1ヶ月前
GKEの新機能と不具合情報まとめ 2024年10月
WHITEPLUS TechBlog
2024年10月にGKEのReleaseNoteに流れてきた情報から、新機能と変更内容、stableチャンネルに影響のありそうな不具合情報のみをまとめて紹介します。 先月のリリースが少なかった影響か10月は多数のリリースが行われました。中でも GKE control plane authority によってコントロールプレーンのaudit logを見ることができるようになったり、メトリクスが追加されたことにより観測できる範囲が増えたりと、安定運用に繋がる機能が強化されたことは嬉しく思います。 新機能 10/31 Cloud Tensor Processing Unit (TPU) v3のマシン…
2ヶ月前
Flutterアプリに最適なWebViewパッケージを選ぶ方法
WHITEPLUS TechBlog
1. WebViewとは? WebViewは、モバイルアプリ内にWebページを表示するためのコンポーネントです。通常はブラウザで表示されるWebコンテンツをアプリ内に直接埋め込み、操作できるようにします。 2. FlutterでWebViewを使用する理由 FlutterアプリでWebViewを利用する理由は、Webコンテンツをアプリ内に埋め込む必要がある場合や、ネイティブアプリとWebアプリの両方の利点を活かしたハイブリッドアプリを開発する場合などがあります。特にFlutterを利用したアプリ開発を行う場合では、より工数を削減する目的でWebViewを利用する場面が多くあります。 3. Fl…
2ヶ月前
GKEの新機能と不具合情報まとめ 2024年9月
WHITEPLUS TechBlog
2024年9月にGKEのReleaseNoteに流れてきた情報から、新機能と変更内容、stableチャンネルに影響のありそうな不具合情報のみをまとめて紹介します。 9月は新機能のリリースが少ない月でした。以前と比べリリースは減っていてGKEも少しずつ成熟してきているのかもしれません。 新機能 9/11 gpu-driver-versionフラグを使用しない場合GKEバージョンに対応したデフォルトのNVIDIA GPU driverを自動的にインストールするようになります GKE 1.30.1-gke.115600以降で作成されたGPU node poolsが対象です。 9/4 GKE 1.29…
3ヶ月前
コードの削除しやすさを考慮した設計の重要性
WHITEPLUS TechBlog
こんにちは、CX開発グループでWeb開発を担当している德廣です! 早速ですが弊社は創業から15年が経過し、その間にサービスが進化し続けてきました。それに伴い、システムも複雑化し、コードベースも肥大化してきました。 長い年月の中で追加され続けたコードの中には、現在のサービスに不要なものも少なくありません。 しかし、複雑な依存関係が増えるにつれ、不要なコードの削除が容易ではなくなっています。 今回の議論は、PHPやLaravelの最新化プロジェクトを振り返った際に、「不要なコードが見つかったが、削除するのが困難だった」という声が挙がりました。 そこで、チームで「なぜコードの削除が困難だったのか」「…
3ヶ月前
WAFを導入しようとしたが簡単には導入できなかった
WHITEPLUS TechBlog
WAFが必要になってきた 近年サイバー攻撃が増加しているというニュースをよく耳にします。ホワイトプラスが運営するサービスのLenetも例外ではなく、日々多数の攻撃を受けています。攻撃は防ぎ切れていますが対応に時間を取られているのが現状です。Lenetは少数のエンジニアで運用しているため、もっと手軽に効率よく対応できないかということでWAFの導入が検討されました。 Lenetのアーキテクチャ紹介 まずは導入対象となるLenetのインフラ構成を簡単に紹介したいと思います。 LenetはGCPをメインに使用していて、アプリケーションはGKEで稼働しています。GKEで使用しているIngressのコント…
4ヶ月前
GKEの新機能と不具合情報まとめ 2024年8月
WHITEPLUS TechBlog
2024年8月にGKEのReleaseNoteに流れてきた情報から、新機能と変更内容、stableチャンネルに影響のありそうな不具合情報のみをまとめて紹介します。 8月はいくつか目立つリリースがあった月です。k8s 1.31に対応したことに加え、カスタムコンピューティングクラスの登場によってスケール時のノードの選択やワークロードの配置などがより詳細に制御できるようになりました。1つのクラスターで多数のワークロードを動かしている大規模な環境にとっては料金の節約や安定性向上など多数の恩恵がありそうですね。 新機能 8/27 addon-resizerが実行されているGKE Metrics Serv…
4ヶ月前
CircleCI上でしか発生しなかったエラーをジョブコンテナにSSH接続して検証した
WHITEPLUS TechBlog
はじめに 以前大規模なデータベースの変更をした際、ローカル環境ではエラーが起きないのCircleCI上でのみエラーが発生する事象が発生しました。 最初はロガーを仕込んで検証していたのですが、都度コミットして確認ではとても非効率だったので何かいい方法がないか調べたところ、 CircleCIにはSSH を使用したデバッグができることを見つけてこれを使用して解決することができました。 今回は、CircleCI上のジョブコンテナにSSH接続を使用して直接コンテナ内で検証する方法について説明します。 手順 1. SSH接続を有効にする 問題が発生したジョブのページを開く 画面右上のRerunを開き、その…
4ヶ月前
GKEの新機能と不具合情報まとめ 2024年7月
WHITEPLUS TechBlog
2024年7月にGKEのReleaseNoteに流れてきた情報から、新機能と変更内容、stableチャンネルに影響のありそうな不具合情報のみをまとめて紹介します。 7月は月末に大きなリリースがあり、Extended release channelという有料の延長サポートが使用可能になりました。有料ではありますが10ヶ月追加でマイナーバージョンを使用することができバージョンアップ対応の猶予ができます。標準のサポート期間でバージョンアップ対応を終えることがベストですが、何らかの事情によって間に合わないときに役立ちそうです。 新機能 7/31 GKE Standard clusterにExtende…
5ヶ月前
GKEの新機能と不具合情報まとめ 2024年6月
WHITEPLUS TechBlog
2024年6月にGKEのReleaseNoteに流れてきた情報から、新機能と変更内容、stableチャンネルに影響のありそうな不具合情報のみをまとめて紹介します。 6月は過去で一番と言ってもいいぐらいアップデートが少なかったです。保守コストを考えるとありがたいですが少し寂しさもありますね。 新機能 6/7 GKE 1.29.3-gke.1093000以降でFully managed cAdvisor/Kubelet metricsが利用可能になりました メトリクスの詳細はこちらから確認できます。 cloud.google.com 修正、変更 6/28 anetd Podsのリソース要求増加しま…
6ヶ月前
リネットにおけるPHP・Laravel環境でのアーキテクチャ
WHITEPLUS TechBlog
TL;DR クリーンアーキテクチャやオニオンアーキテクチャを参考にしたオリジナル フレームワークの力を活用するためにドメイン層以外ではLaravelの機能を使用 標準実装パターン・ガイドラインを整備しボトムアップでDDDを推進 始めに こんにちは、ホワイトプラスでテックリードをしている仲見川です。 今回はホワイトプラスが運営する宅配クリーニングサービス「リネット」の開発で用いているアーキテクチャについてご紹介しようと思います。今回のアーキテクチャはLaravel上に構築するアプリケーションの範囲となります。 背景 リネットではWebで注文を受け付けると集荷の連携や工場作業の予定登録などが行われ…
7ヶ月前
クリーンアーキテクチャ+DDDの魅力
WHITEPLUS TechBlog
ホワイトプラスでユーザー向けのWEB開発を行っているアキト927です。 業務系WEB開発が5年ほど、BtoC向けWEB開発に10年ほど携わってきました。 ホワイトプラスには入社して1年弱です。 経歴はそこそこ長くなりましたが、まだまだ勉強中の日々を送っています。 今回はホワイトプラスで採用しているクリーンアーキテクチャ+DDDについてざっくりとした解説を行い、これらを採用する魅力をお伝えできればと思います。 What's クリーンアーキテクチャ? 早速ですが、クリーンアーキテクチャって何?という部分を紹介していきたいと思います。 クリーンアーキテクチャはRobert C. Martin氏が提唱…
7ヶ月前
GKEの新機能と不具合情報まとめ 2024年5月
WHITEPLUS TechBlog
2024年5月にGKEのReleaseNoteに流れてきた情報から、新機能と変更内容、stableチャンネルに影響のありそうな不具合情報のみをまとめて紹介します。 5月はk8s 1.30の対応がリリースされましたがそれ以外のGKEに関するリリースは少なめでおとなしい月でした。大規模なGKEを運用している場合はGKE Gateway controllerの新機能は嬉しい内容かもしれません。 新機能 5/24 GKEは保護されていないクラスタにバックアップ計画を作成するための推奨アクションを表示するようになります 作成から7日間たっているクラスタが対象になります。 また、現在は us-centra…
7ヶ月前
今更ながら基本情報技術者試験を受けてみました
WHITEPLUS TechBlog
はじめに こんにちは、ホワイトプラスのコアシステム開発グループでエンジニアをしているyamauchiです。 今年の3月に基本情報技術者試験を受けてきたので、既に数年エンジニアとして働いている身として資格を取得した理由やどのような恩恵があったかまとめてみました。 なぜ受けようと思ったのか 普段担当している業務の範囲を超えた議論がメンバー間で始まると、時折、専門用語や背景がわからず内容についていけないことがありました(ネットワーク・ハードウェア・セキュリティ等々) 自分に不足している知識は何をどのように学習することで吸収することができるか把握していなかったため、第一歩として基本知識を体系的に学ぶこ…
8ヶ月前
GKEの新機能と不具合情報まとめ 2024年4月
WHITEPLUS TechBlog
2024年4月にGKEのReleaseNoteに流れてきた情報から、新機能と変更内容、stableチャンネルに影響のありそうな不具合情報のみをまとめて紹介します。 新機能 4/30 containerd設定ファイルを使用して証明書を使用したprivate image registriesへのアクセス設定ができるようになりました GKE AutopilotのAcceleratorコンピュートクラスで1 つのノードに複数のGPUポッドがスケジューリングできるようになりました GKE 1.29.2-gke.1355000以降で使用できます。 同じノードに複数の GPU ポッドをスケジューリングするに…
8ヶ月前
転職エントリ
WHITEPLUS TechBlog
こんにちは、はじめまして。yumeと申します。 2023年11月1日に株式会社ホワイトプラスに入社しました。 入社してもうすぐ5ヶ月です。 あっという間に感じつつ、まだまだのびしろいっぱいというところです。 この記事では、 転職活動を行なっていた際に何を考えていたか 実際にホワイトプラスに入社してどうか などをお話ししたいと思います。 自己紹介 ネットクリーニング「リネット」の顧客領域を担当するCX開発グループに所属しています。 経歴と過去の転職理由 ホワイトプラスで3社目です。 一社目はSES・受託会社でした。 SESの魅力であるさまざまな技術や案件を経験できるというところで、 ソーシャルゲ…
9ヶ月前
GKEの新機能と不具合情報まとめ 2024年3月
WHITEPLUS TechBlog
2024年3月にGKEのReleaseNoteに流れてきた情報から、新機能と変更内容、影響のありそうな不具合情報のみをまとめて紹介します。 新機能 3/19 Ciliumを使用したクラスタ全体のネットワークポリシーがGAになりました 全てのGKEエディションで使用でき、1.28.6-gke.1095000、1.29.1-gke.1016000以降でGAになっています。 3/11 GKE 1.29.0-gke.1384000以降で作成されたプライベートクラスタはNodeがコントロールプレーンと通信するときにPrivate Service Connect (PSC)を使用するようになります 以前の…
9ヶ月前
Terraformを安全に実行できる環境を構築する
WHITEPLUS TechBlog
Lenetではクラウドインフラを宣言的構成で管理するようにしていて、メインのクラウドプロバイダーとしてGCPを、インフラのコード管理のためにTerraformを使用しています。 背景 インフラを変更するときは編集者権限を持つインフラチームが手元のPCでterraformコマンドを実行するというのが基本の流れでした。閲覧権限しか持たないバックエンドエンジニアなどがインフラを変更したい場合はインフラチームに要件を伝え依頼するか、Terraformを書いてプルリクを送り実行を依頼するという運用になっていました。 Terraformモノレポ Lenetでは複数のGCPプロジェクトを利用していて、プロジ…
10ヶ月前
月刊PHPに参加しています
WHITEPLUS TechBlog
はじめに こんにちは、ホワイトプラスのコアシステム開発グループでエンジニアリングマネジャー(EM)をしているinouehiです。 月刊PHPの第一弾である1月のPHPカンファレンス北海道に参加、登壇してきました。2月には第二弾のPHPカンファレンス関西に仲見川、古賀の2名が参加、登壇しました。というわけで、カンファレンスの模様、感想を書き留めたいと思います。 北海道 https://fortee.jp/phpcon-hokkaido-2024 どのトークもおもしろかったり学びがあったりしたのですが、各日1つずつランダムに選んで感想を記します。 PHP で作られたゲテモノを色々紹介する(自作他作…
10ヶ月前
Docker Desktopに統合されたmutagenが開発体験を改善するか検証する
WHITEPLUS TechBlog
先日リリースされたDocker Desktopの4.27.0で Synchronized file shares という新たなファイル共有システムが導入されました。 docs.docker.com www.docker.com これはDocker社が買収したMutagenというファイル同期ツールで実装されていて、Dockerを使用した開発でボトルネックになりがちなファイルアクセスが改善されることが期待されます。Lenetのサービスは主にPHPで実装されていてファイルアクセスが多数発生するため、開発体験が改善されるかもしれません。 設定 早速 Synchronized file shares の…
10ヶ月前
GKEの新機能と不具合情報まとめ 2024年2月
WHITEPLUS TechBlog
2024年2月にGKEのReleaseNoteに流れてきた情報から、新機能と影響のありそうな不具合情報のみをまとめて紹介します。 新機能 2/28 AutopilotのコンピューティングクラスでPerformanceが使用可能になりました Autopilotにはコンピューティングクラスを指定することができ、今回新たにPerformanceが追加されました。 PerformanceとはPod1つにNodeを専有させる機能です。この機能を使うことでCPUメインの重たいワークロードでNodeリソースの全てを使用することができパフォーマンスの向上が見込めます。 2/21 Stateful HA Ope…
10ヶ月前
情シス、はじめました
WHITEPLUS TechBlog
はじめに こんにちは! エンジニアリング部で情報システムを担当しているnakanoleeです。 1人目の情報システム担当者として入社し、早くも半年が経ちました。 今回は、入社後に感じた弊社の雰囲気、一瞬で過ぎ去った半年の間に達成したこと、そしてこれからやりたいことについてお話ししたいと思います。 入社後に感じた弊社の雰囲気 入社してすぐに、弊社の以下のような点について感銘を受けました。 部署間のコミュニケーションが非常に円滑。 まず、全員チャットでのレスポンスが早い。 専門用語が控えめで、認識のズレが起きにくい。 コミュニケーションの中で浮き球が出ない。出たとしても誰かがすぐに拾ってくれる。 …
10ヶ月前
PHPでOpenTelemetryを使ってメトリクスを収集する
WHITEPLUS TechBlog
こんにちは!ホワイトプラスのコアシステム開発グループでエンジニアをやっている古賀です。 以前、PHPでOpenTelemetryを使ってトレースを取得する方法を紹介しました。 今回はメトリクス編ということで、OpenTelemetryでメトリクス(リクエストレイテンシ)を収集し、OpenTelemetry Collectorを介してGoogle Cloudに送信する方法を紹介します。 前提 PHP:8.1 open-telemetry/opentelemetry:1.0.0 メトリクスとは メトリクスはデータの数値表現で、CPU使用率やリクエストレイテンシなどが挙げられます。メトリクスを取得し…
1年前
スクリプトを超えたアクター達の1年
WHITEPLUS TechBlog
この記事はWHITEPLUS Advent Calendar 2023 最終日になります。 こんにちは、こんばんは、そしておやすみなさい。(映画『トゥルーマン・ショー』のセリフを参考に) www.eiga-square.jp ホワイトプラスCTOの森谷です。 アドベントカレンダー最終日を昨年に続き今年も書くことになり、何を書こうかと考えているうちに、書き始めるまでに2日ほど時間がかかりましたが、今年も今年で変化が大きい年だったため、どんな変化が起こったのかをお届けしていきたいと思います。 カーテンアップ 今年は「開発リードタイムを縮めていこう」という組織目標を年初に掲げ、 エンジニア採用数を伸…
1年前
インボイス制度、自分には関係ないと思っていた
WHITEPLUS TechBlog
はじめに この記事は WHITEPLUS Advent Calendar 2023 の 12月21日の記事です。 こんにちは。株式会社ホワイトプラス、エンジニアの @n-black-cat です。 世間で色々と話題になっているインボイス制度がついに施行されましたね。 自分は会社員なので、この制度が始まっても「自分には関係ないや」と思っていました。 しかし、インボイス施行直前の9月に急遽業務で関わることになります・・・! 本記事では、弊社のインボイス制度施行に対して行った対応を共有したいと思います。 また、インボイス制度についても例を交えて解説します。 そもそもインボイス制度とは <売手側> 売…
1年前
LaravelのSQLインジェクション対策の実装方法を調べてみた
WHITEPLUS TechBlog
はじめに こんにちは。 ホワイトプラスのコアシステム開発Gエンジニアのyamauchiです。 現在のシステム開発ではフレームワークやライブラリを用いた開発が一般的であり、ありがたいことに元からセキュリティ対策が備わっているものが多くあります。 より便利になった環境でエンジニアとしてのキャリアをスタートした自分は良くも悪くもセキュリティを意識する機会が減ってきています。 最近、情報処理推進機構(IPA)が発行した「安全なウェブサイトの作り方」を読む機会があったため、 今回は、代表的なセキュリティ実装であるSQLインジェクション対策を改めて学習し、ガイドラインに記載されている対策毎に、普段触ってい…
1年前
リネットのNativeアプリをFlutterでフルリニューアルしました!
WHITEPLUS TechBlog
この記事はWHITEPLUS Advent Calendar 2023の19日目の記事です。 こんにちは、アプリ開発グループでエンジニアを務めるdomonrです。 入社から約6ヶ月が経ち、この度自分が入社してから取り組んでいたFlutterを使用したアプリのフルリニューアルについての経験を共有したいと思います。 背景 このリニューアルプロジェクトを立ち上げた背景と目的は以下の通りです。 開発効率の向上 Hot Reloadの利用 宣言的なUIフレームワークの採用 Dart言語のみの使用で、SwiftやKotlinの言語コンテキストスイッチの削減 コミュニケーションコストの削減 ビジネス領域に集…
1年前
PHPでOpenTelemetryを使ってトレースを収集する
WHITEPLUS TechBlog
こんにちは!ホワイトプラスのコアシステム開発グループでエンジニアをやっている古賀です。 12月に入ると楽しいイベントが目白押しですね。クリスマスがやって来たと思ったらすぐ冬休みに入って、大晦日にお正月。遊びに行くも良し、家でゆっくり過ごすも良し、人それぞれ楽しみ方があると思います。 しかし、そういった時期でもシステムが上手く動いてくれないとおちおち休んでいられません。普段からシステムの信頼性を高め、障害時にはすぐに復旧できる状態にしておくことが重要です。 ここでは、PHPでOpenTelemetryを使ってトレースを収集し、Google CloudのCloud Traceで可視化するまでの一連…
1年前