新型コロナウィルスの影響が甚大になっています。
今の現場でも自宅からのリモートワークに切り替わりました。
長期化しそうなため、僕たちフリーランスだけでなく会社勤めの社員さんにもどういった辛い時期が続くのか気になるところではありますが、
知見を広げ、技術面の追求は飽くことなく続けていきたいと思います。
AWSに触れる機会が増え運用を含めたシステムの自動化に興味を持っています。
そこでDevOpsについてAWSと絡めて簡単ですがまとめました。
DevOpsとは
開発と運用を組み合わせた一連の取り組み(コード, ビルド, テスト, パッケージ, リリース, コンフィギュレーション, モニター)で、
以前はサイロ化されていた役割 (開発、IT 運用、品質管理、セキュリティ) を連携させて協力することで、より信頼性の高い製品を生んでいくことです。
システムの開発からテスト、リリース、運用までのライフサイクルを短縮させ、ソフトウェアの品質を高める継続的デリバリーを実現することを目的とします。
元々はアジャイル開発から生まれたもののようですが、そこに運用チームも含めリリース回数が増えていくことも考慮しシステム開発全般の
ライフサイクルを管理・継続していく手法となっていきました。
継続デリバリー
DevOps は以下のライフサイクルを継続的に行う継続的デリバリーが重要で、リリースの高速化と品質向上を実現させ、市場競争力を高めていきます。
DevOpsを実現するために、人を介さずコードの管理やデプロイの自動化させるツールで構成していきます。
– コード : コードの開発とレビュー、バージョン管理ツール、コードのマージ
– ビルド : 継続的インテグレーションのツール、ビルドステータス
– テスト : パフォーマンスを決定するためのテストと結果
– パッケージ : 案件リポジトリ、アプリの展開前ステージング
– リリース : 変更管理、リリース承認、リリース自動化
– コンフィギュレーション : インフラストラクチャの設定と管理、インフラストラクチャとしてのコードのツール
– モニター : アプリの性能監視、エンドユーザーエクスペリエンス
AWS サービス
AWSではDevOpsを実現させるための様々なサービスがあります。
– コード : CodeCommit
– ビルド、テスト: CodeBuild
– パッケージ : Systems Manager
– リリース : CodeDeploy
– コンフィギュレーション : AWS Config
– モニター : CloudWatch
一連のプラクティスを進めるための自動化サービスとしてCodePipelineがあります。
また、これらサービスをAWSのマネージメントコンソールから手動でボタンをポチポチ設定するのではなく、設定もコードで管理することができる
CloudFormationがあり、DevOps開発を進めるのにとても充実しています。
概要だけの内容となりましたが、今後触ってみたり経験を積むことでこの辺りの中身も充実させていければと思います。