• 日本語
    • English (英語)
Avinton JapanAvinton JapanAvinton JapanAvinton Japan
  • サービス
    • Avinton Data Platform
    • エッジAIカメラ
      • 自動車ナンバープレート自動認識システム
    • プライベートクラウド
    • AIサービス開発
    • AIカメラ/画像解析無料体験版
  • 最新情報
    • ニュースリリース&イベント情報
    • 技術ブログ&インタビュー
  • アカデミー
    • Avintonアカデミー
    • Academy on Campus
    • Academy with Platform
  • 採用情報
    • Avintonジャパン 採用ページ
    • 求人一覧
    • よくある質問
    • 新卒採用
  • 企業情報
    • 会社概要
    • 代表からご挨拶
    • SDGsへの貢献
  • お問い合わせ
Avinton Data Platform をなるべく簡単に解説

Avinton Data Platformをなるべく簡単に解説

By James Cauchi | 技術解説, 技術ブログ&インタビュー | Comments are Closed | 11 1月, 2022 | 1

Avintonではビッグデータ分析や機械学習プラットフォームへのソリューションとして、Avinton Data Platformという自社ソリューションを提供しています。数百TBレベルのデータを保持することができ、また高速にデータ分析や機械学習を行うことができるプラットフォームとなっています。世界的に最先端の技術が使用されており、非常に興味深いソリューションとなっていますが、一方で最先端ならではの複雑さや難しさもあるかと感じています。今回は、実際にプロジェクトに関わっている私から、Avinton Data Platformを支えるインフラ、プラットフォーム技術面をなるべく簡単に解説を行いたいと思います。

こちらの詳しい内容は、Avintonのホームページを参照していますので、こちらもご確認ください。

Avinton Data Platform flow visual

いくつかのキーワードに分けて説明したいと思います:

  • スケーラブルなクラスター
  • クラウドネイティブ
  • Kubernetes, マイクロサービス
  • データ分析、機械学習のためのOSS技術

スケーラブルなクラスター

Avinton Data Platform では、複数個のサーバーを1つの「クラスター(集合)」として構成し、そのクラスター上で処理を分散して実行することができます。これまでは、一つのサーバーになるべくたくさんのリソース(CPUやメモリなど)を詰め込んで(垂直方向のスケール)重い処理を実行しようとしました。Avinton Data Platform では、たとえ安価なサーバーでも、1つのクラスターに集約することで、高い計算能力とストレージ容量、そして拡張性(水平方向のスケール)を提供することができます。

これにより、数TBのビッグデータ分析処理や、GPUを複数個要求するような重い機械学習も、短時間・高パフォーマンスで処理することができます。またオンプレミス環境での稼働ができるので、AWSなどのパブリッククラウドと比較して、長期的に見てコストパフォーマンスが高くなります。

もしプロジェクトの経過とともに、データサイズや要件が拡大し、さらに追加の処理能力やストレージ容量が必要になれば、新しいサーバーを比較的簡単にクラスターに追加することができます。このスケーラビリティ(拡張性)は、「Kubernetes」とその上で走る「クラウドネイティブアプリケーション」による恩恵が大きいです。(もちろん既存のサーバーのリソース(CPUやメモリ)をアップグレードする、垂直方向のスケーリングも可能です。)

Masterノードはクラスターの管理を行うサーバーです。

Node が各ワークロードサーバーを示しています。
Nodeを水平方向に追加していくことで、より多くの計算リソースを提供できます。

クラウドネイティブ

クラウドネイティブなアプリケーション開発においては、アプリケーションとその依存関係、実行環境などをコンテナ化(パッケージ化)することで、クラウドやOS問わず、どんな環境上でも実行できることを目指します。コンテナの中に必要な依存関係がすべて含まれているため、どのような実行環境(OS, クラウドベンダー、オンプレミス、ローカルのノートPC、問わず)でも追加の環境設定ほとんどなしで、同一の動作を期待することができます。これは、コンテナの中に必要な依存関係がすべて含まれているからです。このように、どのような実行環境上でも動作するように設計された、ポータブル(可搬性)でスケーラブル(拡張性)、フレキシブル(柔軟性)なアプリケーションをクラウドネイティブと言います。

Types of deploymentソース: kubernetes.io

 

新しいサーバーをクラスターに追加する際には、コンテナが実行できさえすればOKで、プラットフォーム上で走っている個別のアプリケーションや依存関係を気にする必要がありません。

Kubernetes, マイクロサービス

分散プラットフォームを支える技術がKubernetesです。Kubernetesはコンテナ化されたアプリケーションの展開、管理、運用をサポートします。複数サーバ間で、アプリケーションへのリソース割り当て、ストレージやネットワークの設定、アプリケーションが停止した際には自己修復、などをほぼ自動で行ってくれます。開発者は、アプリケーションの理想の状態を定義するだけでよく、Kubernetesはその定義どおりにアプリケーションを維持します。もし、アプリケーションが停止した際には、理想の状態に戻そうとしてくれます。これを宣言型APIといい、開発者は一度アプリケーションの定義をすれば、細かい部分はKubernetesに任せることができます。

Kubernetesについて、詳しくはこちらをご覧ください。

Kubernetes上で動作するアプリケーションは、「マイクロサービスアーキテクチャ」と呼ばれます。マイクロサービスでは、アプリケーションをコンポーネントレベルで分割します。例えば、以下の図のような、掲示板機能を提供するWebアプリケーションを想定しましょう。フロントエンドとバックエンド、データベースなどのコンポーネントが必要になります。マイクロサービスでは、それぞれを独立したコンポーネント(部品)として扱います。コンポーネント間の結合が緩くなるので、各コンポーネントは別のコンポーネントの変更や障害の影響を受けにくくなります。例えば、フロントエンドの更新をしたい場合には、他のコンポーネントを更新、停止する必要はありません。そのため開発やテストにかかる時間も短縮されます。

反対に従来型のアプローチは、「モノリシックアーキテクチャ」と呼ばれます。一つのアプリケーションの中にすべての機能が詰まっているパターンです。モノリシックな場合は、ソフトウェアの改修やテストにより多くの工程が必要になります。

マイクロサービスについては、AWSのこちらのページが分かりやすいです。

マイクロサービスでは、Dockerという技術が一般的に利用されることが多いです。Stackoverflowによる調査では、2021年に55%の開発者はDockerを使用した、と回答しています。Kubernetesも約20%のエンジニアが使用したと回答しています。今後も需要は高まることが予想されます。

Stack Over Flowの調査はこちらです。他の項目も面白いのでおすすめです。

データ分析、機械学習のためのOSS技術

Kubernetes上でビッグデータ分析、機械学習を処理するための基盤として、次のようなアプリケーション、フレームワークが利用されています。いずれもコンテナでKubernetes上で稼働しています。アプリケーションやフレームワーク、処理環境が理想の状態で動作しているように、Kubernetesがサポートしてくれています。理想の状態でない場合は、Kubernetesが自己修復を試みます。

  • 分散ストレージ技術: HDFS, Ceph
      • データを複数サーバに分散して保存することで、耐障害性や高パフォーマンスを実現
  • データ処理フレームワーク: Spark
      • 収集された生データを分析、変換、抽出、また機械学習への利用など
  • 機械学習基盤: Kubeflow
      • データ準備、パラメータチューニング、トレーニング、可視化、推論サーバーの作成など、機械学習の処理環境を提供
      • 一連の処理をパイプラインとして自動化可能
  • モニタリング/ロギングシステム: Prometheus, Grafana, Elasticsearchなど
      • データ分析や機械学習のパフォーマンスを分析、トラブルシューティング
      • Kubernetesクラスター自身の問題を検出

 

また、Kubernetes上で繰り返し処理の自動化を行うことは比較的簡単であり、一度コード開発が完了し、自動化パイプラインを構築すれば、何度も繰り返し実行することができます。例えば、毎月の売上データなど、定期的に同種のデータを収集できるならば、自動化パイプラインにデータをインプットし、あとは結果を待つだけです。

上記以外にもたくさんの最先端のソフトウェア、技術が利用されています。しかも、Kubernetesを含め、そのほとんどがOSS(オープンソースソフトウェア)であるため、低コストで構築、運用できます。OSSでは、ソフトウェアを使用するためのライセンスに対する支払いが不要で、無料で商用利用可能です。

Avinton Data Platform - Technologies

まとめ

Avinton Data Platformでは、Kubernetesという技術でクラスターを構成し、クラウドネイティブなアプリケーションやフレームワークを使用し、スケーラブルなオンプレミス環境で、ヘビーな機械学習やビッグデータ分析を効率よく行うことができます。奥が深くアップデートが早い領域でもありますので、「なるべく簡単に」といいながら、小難しい内容になってしまいました。興味がある方は、以下の学習リソースを見てみてください!

 

余談

オンプレなのにクラウドネイティブ?と違和感を感じる方もいるかもしれません。インターネットを介して、オンプレミスのデータセンターのリソースやサービスにアクセスする形式を「オンプレミスプライベートクラウド」と呼ぶことがあります。

「クラウド」と聞くとAWSやAzure, GCPなどを想像する方も多いかと思いますが、こちらは「パブリッククラウド」と呼び区別されています。最近では、複数クラウドを併せて使用する「マルチクラウド」、プライベートとパブリックを併せて使用する「ハイブリッドクラウド」というアプローチも出現しています。

こちらは2020年のクラウド技術に関する世界的な調査の結果です。データセンターの分類ではプライベートクラウドの人気が増加しています。

 

おすすめ学習リソースなど

クラウド系

  • クラウドネイティブとは
      • Microsoftがクラウドネイティブ関連の用語について説明してくれています、比較的わかりやすいですが、.NETやAzureなどのMicrosoft固有のものは無視してOKです
  • マイクロサービスについて
      • AWSの説明
  • メルカリがマイクロサービス化に取り組んだ際のブログ

 

Docker, コンテナ技術

  • Docker チュートリアル
  • Play with Docker
      • ブラウザ上でDockerを遊べます
  • Linuxで動かしながら学ぶtcp/ipネットワーク入門
      • コンテナ間通信などを理解する上で、とても分かりやすいです。

 

Kubernetes

  • 開発者のためのKubernetesガイド (ダウンロードにはVMwareのサイトへの登録が必要です。)
      • VMwareが発行したKubernetesガイドです、15ページと短いのでおすすめです。
  • Kubernetesの基本を学ぶ
      • Kubernetesの公式チュートリアル
  • Okteto
      • 無料でKubernetes環境を利用できます。クラウド上で簡単にKubernetesをいじってみたい方におすすめです。(GCPやAWSでKubernetesをやろうとするとお金がかかります…!)
  • Play with Kubernetes
      • ブラウザ上でKubernetesを遊べます

あなたも、Avintonでこのような最先端技術を習得し活用してみませんか?

社員の成長を導きながら、AIやビッグデータなどの最先端技術をプロジェクトに活用していくことが私たちのビジョンです。Avintonの充実した技術研修でスキルアップを図り、あなたのキャリア目標を一緒に達成しませんか?

採用情報
サーバークラスター, クラウトネイティブ, ビックデータ, 機械学習, Kubernetes, Avinton データプラットフォーム

Related Post

  • G検定合格体験記

    G検定合格体験記

    By Avinton rk | Comments are Closed

    Read more

  • Kubernetes入門:初心者からプロフェッショナルへ – 学び方とおすすめリソース

    Kubernetes入門:初心者からプロフェッショナルへ – 学び方とおすすめリソース

    By Avinton rk | Comments are Closed

    Read more

  • deploying-postgresql-operator-in-Kubernetes

    PostgreSQL Operator on Kubernetes

    By Avinton rk | Comments are Closed

    Read more

  • AIモデルの最適化

    AIモデルの最適化

    By Avinton rk | Comments are Closed

    Read more

  • Pytorch Datasets & DataLoaders

    PyTorch – Datasets & DataLoaders

    By Avinton rk | Comments are Closed

    Read more

採用情報

採用情報

Categories

  • 相互学習
  • 採用
  • 社員インタビュー
  • 学習&資格取得
  • 技術解説
  • イベント告知
  • 学内説明会&講義
  • 産学連携
  • 就職活動
  • イベントレポート
  • その他
  • 技術ブログ&インタビュー
  • mainpage
  • New Graduates Interviews
  • 中途エンジニア
  • カテゴリーなし
  • ニュースリリース&イベント

Avinton SDGs

SDGsへの貢献

Search

タグ

AI AvintonAcademy Avintonデータプラットフォーム EdgeTech+2022 IFAC2023 Kubernetes Linux Meetup Pandas PM&PMO PyTorch SDGs SF思考 VUCA アカウントマネージャー インタビュー インタビュー記事 エッジAIカメラ エンジニア運動会 キャリアアップ クラスタリング データサイエンス データ可視化 ビジネスメンター フロントエンド ヘルプデスク ボランティア ローカルイベント 人流データ 効率性を高める 国際自動制御連盟 地元応援 地域コミュニティ 基本情報技術者 天野禎章 小島秀藏 展示会 工場 新卒、キャリア 産学連携 産官学連携 社内イベント 社内レポート 社員インタビュー 転職
© 2023 Avinton | All Rights Reserved | プライバシーポリシー
  • サービス
    • Avinton Data Platform
    • エッジAIカメラ
      • 自動車ナンバープレート自動認識システム
    • プライベートクラウド
    • AIサービス開発
    • AIカメラ/画像解析無料体験版
  • 最新情報
    • ニュースリリース&イベント情報
    • 技術ブログ&インタビュー
  • アカデミー
    • Avintonアカデミー
    • Academy on Campus
    • Academy with Platform
  • 採用情報
    • Avintonジャパン 採用ページ
    • 求人一覧
    • よくある質問
    • 新卒採用
  • 企業情報
    • 会社概要
    • 代表からご挨拶
    • SDGsへの貢献
  • お問い合わせ
  • 日本語
    • English (英語)
Avinton Japan