akiyamak

秋山康平

  • 2024年版 Colorkrew 自社サービスのインフラ業務の現状

    こんにちは。Azure Cloud Solution Architect 兼 DevOps Engineer の秋山です。 自社サービスのインフラリードを担当しています。 前回書いたブログが2年前になってしまいましたので、ここで最近のインフラの状況についてまとめてみます。 自社サービス Mamoru Biz で AKS 導入1周年で振り返る プロダクト開発チームの増加に伴う効率化 最も大きい変化はこれです。 2年前は自社サービスイコール Mamoru Biz(現在の Colorkrew Biz) でしたが、現在は「Colorkrew ID」「Colorkrew Intra」「AI Chatシステム」や開発中のプロダクトなど多岐にわたります。 いずれの製品もクラウドインフラを活用しているため、新しいシステムのインフラ構築を効率的に行う必要があります。 自社サービスのインフラチームは私を含めて現在4人、全員受託案件など他の業務と兼任しています。 直近の1,2年ではおおまかに以下の内容を進めることで、インフラ業務が滞らない状況を作り上げてきました。 プロダクト開発チームからの依頼テンプレート化 インフラ・デプロイコードのモジュール化 最新技術のトライアンドエラーとフィードバック 本エントリではこれらを順に説明します。 プロダクト開発チームからの依頼テンプレート化 弊社ではソースコード管理に GitHub を利用しています。 新しいプロダクトの開発が始まるタイミングや既存プロダクトで新たなクラウドインフラが必要になったときに、GitHub Issue に内容をインフラチームが自身でまとめるようにしました。 そしてそれが大体パターン化されてきたため、 Issue テンプレートを用意して、プロダクト開発チームに記載してもらうようにしました。 ref: リポジトリ用に Issue テンプレートを設定する 内容は以下です 必要なクラウドインフラリソース(DB, Storage, …etc) Kubernetes リソース(Pod, CronJob, …etc) デプロイフロー 環境別の期日(Debug は ASAP, Prod は2か月後, …etc) チャットのラリーで必要な情報を埋めていくのは非効率なため、一度で大半の情報を網羅できるのは効率的です。 また、プロダクト開発チームは別のプロダクトのインフラ依頼内容を参考にすることで、サイロ化を防ぎ横のつながりや理解にもわずかながらつながるという副次的な効果も見えています。
    ...
  • ChatGPT とコーポレートエンジニアの付き合い方

    こんにちは。Azure Cloud Solution Architect の秋山です。 お客様案件の業務の時間を少し減らし、今年の1月から少しずつコーポレートエンジニアとしての活動を始めています。 Chat GPT の話 最近は触れざるをえない ChatGPT の話です。 さまざまな企業が話題の ChatGPT を企業活動に取り入れ始めています。 Colorkrew でも ChatGPT を使いたい、という人はじわじわと増えてきました。 大きく2種類のタイプがいます。 いわゆる Open AI 社の ChatGPT をただ使いたい人 開発者として API をいじりたい人 コーポレートエンジニアとしては、以下の2軸を天秤にかけながら活動する必要があります。 情報統制によって組織防衛したいが、 従業員の生産性を高めたい Colorkrew での Chat GPT の導入について 私たちが直近で進めたことは以下の3点でした。 ChatGPT(やそれに類するサービス)の利用ポリシーを定めて周知する ChatGPT の API を触れるよう、開発者用アカウントを用意する 社内で気軽に利用できる環境を整備する まずポリシーについて、社内の機密情報を AI 学習に使われることには避ける必要があります。情報管理の観点からそのあたりの周知のために整備しました。 その後、つい今週 Chat GPT の Data Control の設定が追加されたため、これに合わせてポリシーも改訂しています。 ref: How do I turn off chat history and model training?
    ...
  • 自社サービス Mamoru Biz で AKS 導入1周年で振り返る

    こんにちは。Azure Cloud Solution Architect の秋山です。 今回の記事では自社サービスで AKS 導入を始めて1年が経ち、どうやってきたか、何が変化したのかについて書きます。 1年前に書いた Azure Kubenetes Service(以下 AKS) 移行の記事は以下です。 Vol.1 App Service から AKS へ移行の決断 Vol.2 AKS(k8s) 移行の下準備 Vol.3 AKS(k8s) 移行 AKS クラスターバージョンの更新管理 AKS では最新バージョンから2世代前までのマイナーバージョンをサポート対象としているため、 4-5カ月周期でリリースされるマイナーバージョンをキャッチアップする必要があります。 参考:AKS Kubernetes リリース予定表 Mamoru Biz では AKS クラスターをインプレースアップグレードと呼ばれる手法で更新しています。 システムが利用中のクラスターのバージョンをアップグレードし、ノードを順にアップグレードする方法です。 参考:Azure Kubernetes Service (AKS) クラスターのアップグレード もう一つ Blue/Green デプロイメントと呼ばれる手法も検討しましたが、利用していません。 下の図のように、現行クラスターに加えて新バージョンのクラスターを用意し、Front Door や Traffic Manager などで切り替える方法です。
    ...
  • CI/CD の推進について ~ Azure Data Factory ~

    こんにちは。 Azure Cloud Solution Architect の秋山です。 今回は推進している CI/CD の取り組みについて、 Azure Data Factory(以下、ADF) を取り上げて紹介します。 ADF そのものの紹介については今回は触れません。少し古いですが以前ハンズオンしたときの記事がありますので、参考にしてください。 Azure Data Factory 入門ハンズオンの資料を公開します なぜ CI/CD を推進しているのか みなさんは時間を持て余してますか? 私はいつももっと欲しいと思うことが多いです。 もし時間が袋詰めで売ってたら買いたいくらいです。 そんな有限で平等なリソースである時間を有効活用するためにも、 CI/CD の推進は重要です。 開発/検証/本番環境の3環境があるプロジェクトにおいて、開発環境より後述の環境に対しては、開発環境と同じ成果物を自動的にデプロイしたい、というニーズがあります。 その背景は、開発環境で修正したバグが検証/本番環境で発生してしまうといったつまらない問題を回避したい、というものです。 もしも人が3環境を手動でデプロイしていると、こういったつまらない問題がかなりの頻度で発生してしまいます。 人はミスをする生き物なので、避けがたい問題に時間を費やすのではなく、価値を生み出すことに時間を割きたいものです。 Azure Data Factory の CI/CD 構築例 構成イメージとしては以下のとおりです。 開発者は開発環境の ADF の開発ポータルを操作して開発します 開発者は開発の区切りで publish を行います publish を行うと、 ARM Template が Azure Repos に Commit されます Commit によって Azure Pipelines がトリガーされると、ARM Template を使って検証/本番環境の ADF にリソースをデプロイします 開発者は環境差異を ARM Template Parameter で管理して適宜更新します 参考: https://docs.
    ...
  • 自社サービスで Azure App Service から Azure Kubernetes Service に移行した話 vol.3

    こんにちは。 Azure Cloud Solution Architect の秋山です。 今回は前回に引き続き弊社の Mamoru Biz で k8s に移行した話について書きます。 Vol.1 App Service から AKS へ移行の決断 Vol.2 AKS(k8s) 移行の下準備 Vol.3 AKS(k8s) 移行 <- 本記事 移行をどのように進めたかについて書きます。 まずは移行のスコープの検討です。 移行の進め方 今回の移行では Azure インフラの置き換えが主であり、例えばアプリケーションが動作している Docker コンテナについてはこれまでのものをそのまま k8s 上で動かすことにしました。 (Mamoru Biz では Docker イメージを管理しているのは基本的にアプリケーションエンジニアです。) これは、できる限りインフラエンジニアがコントロール可能な範囲で移行を進めるための措置です。 (実際には k8s 上で動くようになった後に App Service 向けにカスタマイズしていた Docker コンテナを修正する、ということも追って対応しました。)
    ...
  • 自社サービスで Azure App Service から Azure Kubernetes Service に移行した話 vol.2

    こんにちは。 Azure Cloud Solution Architect の秋山です。 今回は前回に引き続き弊社の Mamoru Biz で k8s に移行した話について書きます。 Vol.1 App Service から AKS へ移行の決断 Vol.2 AKS(k8s) 移行の下準備 <- 本記事 Vol.3 AKS(k8s) 移行 Vol.2 AKS(k8s) 移行の下準備 前回の記事 で移行することは決めました。 次のステップは移行を始めるためのリソースの確保とチームへの説明です。 リソース確保 前回の記事に書いたとおり、インフラエンジニアは兼任です。 Azure のレイヤーは自分でどうにかするとして、 k8s, DevOps レイヤーを実装できるメンバが必要でした。 このプロジェクトでは、 DevOps 領域で仕事をしている ジェホ さんとともに取り組むことにしました。 AKS(k8s) 移行のようなプロジェクトでは DevOps 環境の整備はマストです。 自社の SaaS ビジネスとはいえ受託ビジネスのくらまねとやることは大差ありません。 参考: サーバーレス/コンテナ導入支援 | くらまね
    ...
  • 自社サービスで Azure App Service から Azure Kubernetes Service に移行した話 vol.1

    こんにちは。 Azure Cloud Solution Architect の秋山です。 今回は弊社の Mamoru Biz で k8s に移行した話について書きます。 思ったよりも長くなりそうなので以下のように記事を分けます。 Vol.1 App Service から AKS へ移行の決断 <- 本記事 Vol.2 AKS(k8s) 移行の下準備 Vol.3 AKS(k8s) 移行 App Service 移行した話の前に、 Mamoru Biz チームと App Service の関係について書きます。 Microsoft の App Service は簡単に Web アプリを公開できる、スタートアップに適したサービスです。 Mamoru Biz を始めた頃はまさにスタートアップで、私が受託ビジネス くらまね の片手間に短時間でインフラ構築をする必要があり、経験のある App Service を導入しました。
    ...
  • Azure Data Factory 入門ハンズオンの資料を公開します

    クラウドエンジニアの秋山です。 Tech Summit 2018 Day3(11/7) に Azure Data Factory の入門ハンズオンを行いました。 データ可視化のインフラ インテグレーション ~ 50 分でわかる Azure Data Factory 入門 試したい方へ Tech Summit 2018 Azure Data Factory 入門ハンズオン from 康平 秋山 上記ハンズオン資料はあらかじめ Azure Blob Storage と SQL Database が作成されている前提で進みます。 ポータル上で作成するか、 terraform がわかる方は以下の tfファイルを参考にしてください。 Blob Storage 上の emp.txt ファイルは以下の内容です。 所感 ご参加いただいた方はありがとうございました。 個別に質問いただいた点についてもここに記載しておきます。
    ...
  • Azure Web App で静的サイトをホスティングした事例

    こんにちは、Azure系エンジニアの秋山です。 今回は Azure Web App で静的サイトをホスティングした事例についてご紹介します。 前提 サイトジェネレータ Jekyll を利用 一部 PHP を利用 サイトを更新するユーザーは Jekyll を知らない、意識させたくない 構成 構成は単純に Web App を Web サイトとして使ったのみです。 静的ファイルのみならば、 Web サイトの PaaS である Web App を使う必要はないのですが、一部で PHP を利用する要件があったことから Web App を採用しています。 デプロイフロー 順を追って説明します。 今回、CMS として CloudCannon というサービスを利用します。 このサービスを使うことで Jekyll を意識せず、エンジニアでなくともページの更新や微調整を行うことができます。(手順1) CloudCannon では GitHub と連携できるようになっています。 CloudCannon 上でリアルタイムに jekyll build されたコンテンツをプレビューしつつ、各ページを更新することが可能です。(手順2)
    ...
  • Azureエンジニアから見たDockerを取り巻くDevOpsサービスのまとめ

    Azure系エンジニアの秋山です。 最近 Azure で Webサービスを Docker で動かす PaaS の Web App for Containers が GA となり、プレビューの頃から使っていた 立場としては嬉しい限りです。 今回は Production での導入が広がっていきそうな Docker を取り巻く Dev/Ops のサービスをまとめてみます。 Docker を取り巻く要素 Docker を使って Dev/Ops を構成するためには、 Dockerfile を含めたリポジトリを管理するソースコード管理システム(VCS) Docker イメージをビルドするビルドシステム ビルドした Docker イメージをホスティングするホスティングサービス の3つが必要です。 図に表すと以下のとおりです。 それぞれのサービスのポイントを書いてみます。 ソースコード管理 Visual Studio Team Service Git で PullRequest ベースでの開発が可 ライセンスが MSDN サブスクリプションに付いてくるため、既に持っていれば導入しやすい Scrum やアジャイルに沿ったプロジェクト管理が可 GitHub Git で PullRequest ベースでの開発が可 使い慣れたエンジニアが多い(特にWeb系) GitLab Git で PullRequest ベースでの開発が可 Freeプランがある SaaS を利用できないポリシーに対応可 ビルド Visual Studio Team Service Azure と連携しやすい ビルド時間課金 CircleCI 予約ホスト課金 2.
    ...
  • LAMP のシステムを Azure の PaaS に移行しました

    こんにちは。Azure系エンジニアの秋山です。 今回は LAMP のシステムを AWS から Azure に移行したことについて書きます。 移行前のアーキテクチャ システムはオーソドックスな LAMP 構成です。 以下のとおり、よくある構成ですね。 DNS(Route53) ロードバランサー(ELB) Webサーバー(EC2) バッチサーバー(EC2) キャッシュ(ElastiCache) データベース(RDS) 問題点 何のために移行するのか、解消したい問題点は以下のとおりでした。 Web サーバーがオーバースペックになっている Production へのデプロイは開発環境のEC2をAMIコピーして行う また開発環境が1台のみでソースコードのバージョン管理がされていない 外注で制作したが社内で誰も手を入れられていない Azure のメンバが面倒見ているサービスが AWS で動いている 移行後のアーキテクチャ このシステムは自社で運用していますが、ユーザ数がそこまで多くなく、サービスダウン時の影響の少なさから、現時点でプレビューである WebApp on Linux や Azure Database for MySQL を採用しています。 これによって IaaS を排除した PaaS のみの構成となりました。 2017/09/12追記: WebApp on Linux は Web Apps for Containers に名前を変えて GA しました。
    ...
  • Cognitive Services の Custom Vision Service を試す

    エンジニアの秋山です。 日本では de:code 2日目ということで、各種サービスへの注目が集まっています。 今回は先日の Build2017 で発表されました Custom Vision Service を試すための手順についてまとめました。 Custom Vision Service 概要 Custom Vision Service のページ を直接開くか、Azure の Custom Vision Service ページ から Try Custom Vision Service をクリックします。 現在はプレビュー期間のためか、利用料金がかからないことになっています。 分類器を作る Custom Vision Service にサインインします。 Azure ポータルとは異なり、Microsoft アカウントのみの認証となっています。 ログインすると、プロジェクト一覧だけのシンプルなページが開きます。 New Project で今回の分類器を作成します。 次に画像を登録します。 ここでは最低5枚登録する必要があります。 画像のパターン数が精度につながるため、さまざまな画像を用意しておくのがいいでしょう。 画像に対してタグ付けします。 このタグが教師データということですね。 判別したいタグの数だけ画像登録を繰り返して正解データをつくります。
    ...
  • Microsoft Build 2017 Azure アップデートまとめ ~ストレージ編~

    日本に帰ってきました。 エンジニアの秋山です。 現地時間の 5/10~12 にシアトルで開催されてました、Microsoft Build 2017 に参加し、今回は帰国後にレポートを投稿しています。 なお、Build の様子は Channel9 でご覧いただくことが可能です。 Big Data on Azure Blob Storage 今回は Azure のストレージ周り、表題のセッションについてまとめます。 というのもこのセッションがあった最終日の3日目はキーノートもなく、油断して聴いていたところ、思った以上にアナウンスが出てきたため、慌ててこの記事を書きました。 セッションの動画は以下のURLから確認できます。 Big data workloads with Azure Blob Storage 1日目のキーノートは こちら、2日目のキーノートは こちら、Azure 全般のまとめは こちら を参照ください。 Storage 大半はストレージそのものに関わる機能の発表です。 AzCopy Storage データを CLI で扱うユーティリティツール AzCopy はこれまで Windows のみでしたが、Linux 版である AzCopy on Linux がプレビュー公開されました。
    ...
  • Microsoft Build 2017 2日目キーノートまとめ

    シアトルからおはようございます。 エンジニアの秋山です。 現地時間の 5/10~12 にシアトルで開催されております、Microsoft Build 2017 に参加し、現地からこのレポートを投稿しています。 なお、Build の様子は Channel9 でご覧いただくことが可能です。 キーノートについて それでは、Build 2017 2日目のキーノートをざっくりまとめます。 1日目のキーノートは こちら、Azureアップデートについては こちら、Azure ストレージのまとめは こちら を参照ください。 Windows10 4/11 日に Creators Update がやってきましたが、秋を予定している次の Creators Update についての発表がメインでした。 New with the Windows 10 Creators Update Windows Story Remix 言葉で説明するのは難しいため、デモ動画を見ることをおすすめします。 Deep Learning によってコンテンツの主役に関連する写真、動画をリコメンドします。 BGM のジャンルを選択すれば、それに合わせて動画を組み合わせて一連の動画を作成します。 3Dコンテンツを取り込んで映画製作のようなこともできますね。 会場のデモでは他に、 最後の恐竜の動画の女の子にキャプションをつけると、走って移動しても女の子にキャプションが追随したり、 サッカーボールにエフェクトを指定して、アニメのような演出をしたりしていました。
    ...