Tech Sketch Bucket of Technical Chips by TIS Inc.

イベントレポート「Arista×Chefで実現するデータセンター自動化への展開」

Pocket

先日2014/9/18に東京エレクトロンデバイス株式会社、クリエーションライン株式会社共催で行われた「 Arista×Chefで実現するデータセンター自動化への展開 」というイベントに参加しました。
本記事ではそのイベントでの講演内容をご紹介します。

Chef_akiho.jpg

イベントの概要

Chefを中心としてデータセンター運用を自動化するための事例やソリューションの紹介等の講演が行われました。
セッションは以下の3セッションです。

  • Chef」を活用した運用コストの削減
    • 講演者: Chef社エンタープライズアーキテクト Michael Ducy氏
  • 「Arista×Chef」で実現するSDN/SDI
    • 講演者: 東京エレクトロンデバイス株式会社・アリスタネットワークジャパン合同会社
  • Chefのエンタープライズ事例
    • 講演者: TIS株式会社 秋穂

Chefを活用した運用コストの削減

最初の講演は、Chef社のエンタープライズアーキテクトのMichaelDucy氏による「Chefを活用した運用コストの削減について」というテーマで行われました。この講演ではChefの具体的な内容というよりは、運用に求められる要件の変化と、そういった変化に対してChefを使って運用する際の考え方の変化についてといったところがメインの内容でした。
以下、講演のサマリです。

講演のサマリ

変化のキーポイントとして一番大きな要素としては「Programatic Access」が挙げられます。
従来は手順に基づき手作業で実施していた作業をAPIベースでインフラ環境をプログラマラブルに制御できるようになってきています。
このような変化に基づき運用に対して求められることも変わってきています。
アプリケーション開発において「AgileやScrum」といった方式が採られ、より柔軟なビジネス要件に迅速に対応できるようになってきたのと同様にインフラシステムの運用の現場においても同じ思考が求められてきているのです。

Agile Infrastructure、Infrastructure as codeといった方式・考え方が広がる中で、より重要となってくるのは"テスト"です。
本当に意図した通りに稼動しているのか、動いていない場合その原因はどこにあるのかを確実に確認できるようにする必要性が出てきます。

Red-Green-Refactorの方式で、まずは仕様をテストコードに落とす。そして、テストに書いた仕様通りに実装しテストをGreen状態にする。テストがGreenになればRefactoringをしてよりスマートな実装に変更する。
この方式を採ることで仕様に従った間違いのないシステムを作ることができます。

テストコードを実装することで様々なフェーズで繰り返しテストを行うことが可能になります。

  • Chefのコードをコミットする前のテスト
  • コミット後に各種環境で本当に動かすことができるのかのテスト
  • 本番環境へのデプロイ前にテスト
  • 本番環境へのデプロイ後にもテスト

各フェーズでのテストを繰り返すことで、低リスクで確実に素早いデプロイフローを実現できます。

「Arista×Chef」で実現するSDN/SDI

次に東京エレクトロンデバイス株式会社・アリスタネットワークジャパン合同会社の方からAristaネットワークスイッチとChefとの連携ソリューションに関する紹介がありました。ネットワーク機器の設定をChefで自動化するためのソリューションです。
デモも交えて自動設定の仕組みを紹介いただきました。

講演のサマリ

Aristaネットワークスイッチは、従来のスイッチのCLI(CiscoのIOSのCLI)に準拠した標準のスイッチCLIを搭載しつつ、Linuxコマンドを実行できるCLIを搭載しています。
これにより、Chef Clientの導入なども通常のLinuxOSに導入するのと同じ要領で導入できるようになっています。
さらに、スイッチの構築や設定を自動化するための機能も充実しており、SDN/SDIを実現できるプラットフォームが整備されています。
特に注目すべき機能としてはZTPやeAPIがあります。

ZTP

スイッチをラックに搭載し接続した後、電源をONにすると自動的にOSイメージやコンフィグレーションをダウンロードし構築処理を実現する自動プロビジョニング機能です。

eAPI(※リンク先はpdfファイル)

JSON形式のWebAPIで、スイッチの設定をリモートから実行できる機能です。
eAPIをラッピングするWebGUIも提供されています。

これらの機能を活用することで、Aristaネットワークスイッチに対して以下の処理を自動化することが可能です。

  • Chef clientのインストール [ZTPの機能で実現]
  • Chef-ServerからAristaスイッチ設定用Cookbookのダウンロード [ZTPの機能で実現]
  • Cookbookを実行して設定を自動化 [Chefを使ってeAPI経由で実現]

Chefのエンタープライズ事例

最後に、TISの秋穂より ISHIGAKI Template の中でのChefの利用事例についての紹介を行いました。
Chefのユーザとして感じたメリットや使う上での注意点等を中心に解説しました。
資料はこちらです。

講演のサマリ

ISHIGAKI TemplateはOSSによるアプリケーション稼動基盤(ApacheやJBoss、PostgreSQL、Zabbix等の組み合わせ)の推奨組み合わせをすぐに利用できるようにするためテンプレートです。
このテンプレートの内部処理にChefを採用しています。
ISHIGAKI Templateでは、単に1台のマシンにOSS群をセットアップするだけでなく、Chef serverを利用し複数台でのクラスタ構成やHA(High Availability)構成の自動構築もサポートしています。
利用するためにはユーザはOSがインストールされたベースのマシンを用意するだけでよく、あとはISHIGAKI Templateが全て環境を自動構築します。
Chefを導入したことのメリットとしては手作業で構築していた時に比べて圧倒的に作業時間が短くなったことがあります。一度構築処理を走らせれば自動的に走るので人が動く時間がほぼなしで処理を終えることができます。
Chefを使う上で注意している点としては、Attributeの扱いとコミュニティCookbookの利用です。
Attributeはdefaultで適用するもの、Role単位で適用するもの、Node独自に設定すべきものという3段階で設定し柔軟に対応できるようにしています。
またCookbookはコミュニティが提供しているものをそのまま利用するのではなく、公開されているコミュニティCookbookを参考にして独自で作っています。
これは、SIの現場に適用するにあたって以下のような懸念点が生じたことを起因としています。

  • コミュニティCookbookは正式なサポートがない
  • バージョンアップ等による変更の影響を受ける可能性がある

このようにChefを導入してコード化することで作業負荷の低減や処理の見える化といった様々なメリットがありました。
ただし、冒頭のMichaelDucy氏の講演でもあったとおり処理途中でこけてしまって正常に終わっていないといったことも発生しうるので、Chefを利用する場合にはテスト実施が必須です。そういったテスト処理を自動化するためにISHIGAKI Templateでは Serverspec を採用しています。

TISではこのようにOSSを活用し運用を効率化する仕組みを検討したり、より安心してOSSを活用してもらえるようOSSのサポートサービスを提供したりしています。

まとめ

サーバのセットアップの領域でのChefの適用事例は非常に多く出てきていますが、まだまだネットワーク環境も含めたデータセンター全体の管理という面では事例が少ないと思います。
今回の発表にてネットワーク機器の構築・管理をChefにより自動化できるソリューションも出てきたので、今後はあるシステムに閉じた自動化だけでなくもっと広い範囲を統合的に自動管理するという取り組みが益々活発化してくるのではないでしょうか。

エンジニア採用中!私たちと一緒に働いてみませんか?