Infrastructure as Code の弊害

(Image from: http://devops.com/2014/05/05/meet-infrastructure-code/)

Infrastructure as Code の弊害

本記事では、あまり触れられることのない Infrastructure as Code のデメリットについて書きます。 Infrastructure as Code ってなに?どのようなメリットがあるの? という話については、色々語られている記事がありますのでそちらをご覧頂ければと思います。

構成管理ツール色々

Infrastructure as Code というのは、 “インフラ構成をコードで管理しよう” という概念でしかないので、それを実現するためのツールが必要になります。
僕が最初に業務で使ったツールは Puppet ですが(2012年5月頃)、他にも色々な構成管理ツールがあります。

  • サーバ内部のアプリケーションやミドルウェアなど
    • Puppet
    • Chef
    • Itamae
    • Ansible
  • 仮想マシンイメージ (e.g. AMI)
    • Packer
  • インフラ全体
    • Terraform
    • AWS CloudFormation
  • DNS
    • Roadworker

参考までに現職では、 Itamae, Packer, Terraform, Roadworker を利用しており、テストツールとして Serverspec も使用しています。

ツールを使わない方が 10倍 早いという現実

たとえば、 Itamae を使って各サーバ群にミドルウェアをインストールすることを考えてみましょう。

A. 構成管理ツールを使わない場合

  1. Fabric や Rundeck などで、下記手順を対象サーバ群に一斉適用
    • Nginx を Yum でインストール
    • Nginx の設定ファイルを配布
  2. Serverspec でテスト
  3. 適用後のサーバを元にマシンイメージを作成

所要時間: 約5分

B. 構成管理ツール(Itamae)を使う場合

  1. Nginx 用のレシピを書く (Ruby)
  2. 対象サーバ用の Nginx テンプレートファイルを書く
  3. 対象サーバ用の Role ファイルで Nginx レシピを include する
  4. 対象サーバ用の Attribute ファイルに Nginx 用のパラメータを追加する
  5. Dry-run モードなどで、レシピの設定が正しく反映されるで”あろう”ことを確認する (または手元の仮想環境に適用してみる)
  6. 諸々の追加・修正したファイルを Git にコミットして GitHub に push する
  7. GitHub 上でレビュワーに Pull Request を作って、レビューを依頼する
  8. レビューが完了するまで待つ
  9. Itamae レシピを実際に本番環境に適用する (稀にエラーになるので、バグを修正して 5. に戻る)
  10. Serverspec でテスト

所要時間: 約30分

↑は 6倍 の差ですが、本番適用時にエラーになった場合はトラブルシュート&レビューやり直しなどでもっとかかります。特に Terraform は本番適用時のエラーが多いです。

複数の新規プロジェクトの立ち上げ段階などは、丸一日構成管理ツールのコードを書いている日も少なくありません。

現実とコードの乖離が深刻

また、インフラに対するすべての変更を 構成管理ツール + CI ツール 経由でやれれば良いのですが、現実はそうそう都合が良い訳でもなく、障害時や急ぎの場合には前述の問題により手動でインフラに変更を加える必要があったりします。

作業後に、構成管理ツールのコードの修正をやってもらえれば良いのですが、”喉元過ぎれば熱さを忘れる”と言うように後回しになってしまうことも多々あります。あるいは、変更作業を行った人が構成管理ツールの扱いにまだ慣れていないというケースもあります。

現実のインフラとコードが乖離した状態が長く続くと、次のタイミングで構成管理ツールを使ったときに手動で行った修正を打ち消してしまうなど、由々しき自体が発生し得ます。特に CI ツールなどと連携して設定変更を自動化しているとそのリスクはより高まります。

Infrastructure as Code の越えた先にある未来のインフラ

これらの課題を抱えつつも、 Infrastructure as Code の透明性は魅力的ではあります。しかしながら、コードと言えども結局は設定ファイルでしかなく、クリエイティブな作業ではないので楽しいものでは有りません。

これからのインフラ管理はどのようにあるべきなのでしょうか?

一つ考えられるのは、 マネージドなインフラ です。

Heroku や GAE 等の PaaS や、 AWS API Gateway + Lambda、 Found (Hosted Elasticsearch) など様々なソリューションがあります。

ただし、これらのサービスに依存し過ぎることには、ベンダロックインや使いたいアプリケーションが対応していないなどの課題もあります。

もう一つは、 コンテナベースのインフラ です。

開発者がビルドファイルさえ書けば、サーバープールに対してビルドされたコンテナを放り込むだけでデプロイし、モニタリング出来るインフラ。 Docker などの標準化された仮想化技術を使えば先のロックインや汎用性の課題も解決することが出来ます。まだまだ発展途上ではありますが、 Amazon ECS や Google Container Engine などのサービスが段々と充実して来ています。

まとめ

僕は、インフラ運用というものは基本的には価値を生み出さない仕事であると考えています。同時に、インフラエンジニアの使命はどんどん運用の仕事を減らしていき、開発にかけるリソースを増やしていくことだと考えておりますので、今後も様々な模索と努力をしていくつもりです。

DevOps Engineer, 山中


反論も含め、ご意見・ご感想は大歓迎です。
ブログ執筆を続ける活力となりますので、よろしければ下記のフォームか Twitter などでコメントを下さい。 (^^

Related

Comments

  • rimamorr rimamorr 3月 18, at 19:25

    My name is Rima. And I am a professional Content writer with many years of experience in writing. My primary goal is to solve problems related to writing. And I have been doing it for many years. I have been with several associations as a volunteer and have assisted people in many ways. My love for writing has no end. It is like the air we breathe, something I cherish with all my being. I am a passionate writer who started at an early age. I’m happy that I`ve already sold several copies of my works in different countries like USA, Russia and others too numerous to mention. I also work in an organization that provides assistance to many clients from different parts of the world. Clients always come to me because I work no matter how hard their projects are. I help them to save money, because I feel happy when people come to me for professional help. Professional academic Writer – Rima - <a href="http://www.wewritepaper.com/" / rel="nofollow">Wewritepaper</a> Corp

    Reply
  • beverlypier beverlypier 5月 28, at 17:17

    Hello and welcome to my blog . I’m Beverly. I have always dreamed of being a book writer but never dreamed I’d make a career of it. In college, though, I assisted a fellow student who needed help. She could not stop telling me how well I had done. Word got around and someone asked me for writing help just a week later. This time they would pay me for my work. During the summer, I started doing academic writing for students at the local college. It helped me have fun that summer and even funded some of my college tuition. Today, I still offer my research paper writing to students. Academic Writer – Beverly Pierce – <a href="http://book512.com/" / rel="nofollow">Book512</a> Company

    Reply
  • jenniek jenniek 8月 07, at 17:41

    Hello , I’m Lynsey. If you’ve ever been overscheduled and couldn’t finish a research paper , then you’ve come to the right place. I work with students in all areas of the writing technique. I can also write the assignment from start to finish. My career as an academic writer started during my school years . After learning that I was very capable in the field of academic writing, I decided to take it up as a profession. Professional Academic Writer- Lynsey- <a href="https://www.minds.com/blog/view/795226624805871616" rel="nofollow">Shortcut to a Successful Business</a> Company

    Reply
  • beverle beverle 11月 19, at 03:20

    Hello everyone, it’s Beverley here! I work as a professional an essay writer and have created this content with the intent of changing your life for the better. I started honing my writing talent in high school. I learned that my fellow students needed writing help—and they were willing to pay for it. The money was enough to help pay my tuition for my remaining semesters of college. Ever since college, I have continued to work as a professional writer. I was hired by a writing company based in the United Kingdom. Since then, the essays that I have written have been sold around Europe and the United States. In my line of work, I have become used to hearing, “Beverley Harmon, can you help me meet my writing assignment deadline?” I know that I can save their time. Professional Writer – Beverley Harmon – //crossroadscopenhagen.com/]CrossroadscopenhagenCorps

    Reply

Post Reply