支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡

  • TOP
  •   
  • コラム
  •   
  • DevOpsモデルとは? AWSでの

DevOpsモデルとは?

DevOpsモデルとは現在の早い時代の流れに対応するために企業がアプリケーションやサービスを高速で配信できるような方針、ツール、プラクティスです。イメージとしては素早くリリースするための様々なリソースのことです。従来型の開発手法では現在の多様化するニーズに対応することが難しくなりました。その対策のためにDevOpsという開発手法が注目されるようになりました。

もともとのDevOpsの考え方

DevOpsはDevelopmentとOperatinosを掛け合わせた単語です。Developmentは開発チーム、Operatinosは運用チームのことです。これまでは様々な新サービスを提供したい開発チームと、安定的にシステムを稼働させたい運用チームの対立によるサイロ化(縦割りにより横のつながりがなくなること)が問題となっていました。もともとのミッションは価値の高いシステムを安定的に供給することでユーザーの問題解決に貢献することです。しかし、開発チームは価値の提供に重きを置き、運用チームはシステムの安定的な供給に重きを置いたことにより、もともと同じミッションを掲げていたにも関わらずお互いが対立してしまうことが多々ありました。これはサービスを提供する上での足かせになっていました。DevOpsではこういったサイロ化を取り除くために2つのチームが一緒に作業をしたり、両方の役割を持ったエンジニアを配置することもあります。2つのチームの頻繁なコミュニケーションによって開発の生産性、運用の信頼性、サービス品質の向上へとつなぎます。そしてそれらを可能にするための情報共有をしやすくするためのツールを導入します。このようにユーザーへ素早く品質の高いものを提供するために人、モノ、組織、考え方、といった文化を絶えずカイゼンすることがもともとのDevOpsの考え方です。

DevOpsの手法

継続的インテグレーション

ソフトウェア開発手法の一つで、開発者が定期的に変更のマージし自動化されたビルド、テストを実行します。今までは各開発者が独立して作業をしていたことにより、長い間小さなバグが見逃されマージする時間もかかっていました。しかし、細かく何度も確認する継続的インテグレーションによりバグの早期発見、品質向上、最終確認の時間短縮が見込まれます。AWSではAWS CodePipeLine、AWS CodeBuildといったサービスを活用できます。

継続的デリバリー

ソフトウェア開発手法の一つで、コード変更が発生するとビルド、テスト、リリース準備が実行されます。これは継続的インテグレーションを拡張したものです。これにより標準化された品質の成果物を保証できます。AWSではAWS CodePipelinといったサービスを活用できます。

マイクロサービス

アプリケーションを小さなサービスでまとめたものとして設計手法です。個々のサービスは独立しているため開発を平行できる、不具合時には他サービスへの影響がない、不具合の特定が容易といったメリットがあります。既存の設計構造であるサービス指向アーキテクチャと違いシステム間の連携がとてもシンプルに構成されているという特徴もあります。AWSではAmazon Container ServiceやAWS Lambdaといったサービスを活用できます。

Infrastructure as Code

インフラストラクチャをコードやソフトウェア開発技術により管理する手法です。開発者とシステム管理者がプログラムでインフラストラクチャを操作できるためインフラ管理のための負荷が軽くなりアプリケーション開発に集中できます。また、コードにより管理するため標準化された方法が使用でき、反復可能でミスが少なくインフラを管理できます。AWSではAWS CloudFormation、Amazon EC2 Systems Manager、AWS OpsWrorks、AWS Configといったサービスを活用できます。

モニタリングとロギング

変化の激しい顧客のニーズに対応するためにはメトリクスやログをモニタリングし、アプリケーションやインフラストラクチャのパフォーマンスの顧客への影響を確認しなければなりません。これらの結果を分析しよりよいサービス向上のために生かします。AWSではAmazon CloudWatchやAWS CloudTrailといったサービスを活用できます。

コミュニケーションと共同作業

DevOpsの文化にはチームの垣根を超えた協調が根底にあります。いままで紹介したようなDevOpsのツールを使用することで開発と運用への作業と責任が物理的に一緒に発生するため共同作業が定着します。これらのツール以外にもコミュニケーションを円滑にするようなアプリケーションを使用することでより効果を発揮するでしょう。

まとめ

以上でDevOpsの概要と手法とそれを実現するためのサービスを紹介しました。AWSはもともとDevOpsを行うためのサービスが用意されています。公式ページでは各サービス内容のセミナー動画も公開されているのでご参照いただければより具体的なイメージができるので是非御覧ください。