アジャイル DevOpsの記事
IBMのアジャイル DevOpsの記事があったのでリンクしておく。
アジャイル DevOps: ソフトウェア・リリース・プロセスのフラット化
アジャイル DevOps: あらゆるものをバージョン管理する
アジャイル DevOps: Chaos Monkey を使用する
クラウドは今はとても重要な技術の一つ。
その意味は、環境が単に仮想化できるという意味だけではない。
どんな環境も即座に作れるようになったことで、インフラ構築もアジャイルな設計・構築が可能になったことだ。
従来のインフラ構築では、リリース後に使われる性能要件をあらかじめ予想して、サーバー・メモリ・HDD・ネットワークなどのハードウェアを購入する必要があった。
何故なら、それらハードウェアはとても高価だったし、たとえ安くなったとは言え、リリース後に性能を増強するのは、稼働中のサーバーを止めることができない故に難しいからだ。
だから、インフラ構築は、設計・構築・テストというWF型のプロセスが今もなお主流。
でも、AWSのようなクラウドが普及していく中で、インフラ構築もアジャイルな構築が可能になってきている。
計各時の性能見積もりに厳密さを求めなくても、試行錯誤しながら、クラウド上のインスタンスをスケールアップすればいいだけだからだ。
その場合、インスタンスの設定やスケールアップの作業そのものも、プログラミングで自動化することができる。
ChefやPuppetはそういう類のツールだと思った方がいいだろう。
さようならPuppet、こんにちはChef - Masatomo Nakano Blog
サーバの構築作業やシステム管理を自動化する「Chef」|サイバーエージェント 公式エンジニアブログ
すると、環境構築の設定をプログラム化できると、それらのバージョン管理が必要になり、更には即座にデプロイするビルド管理ツールも必要になってくる。
デプロイメントの自動化としてCapistrano、ビルド自動化としてJenkinsなどが使われるわけだ。
今更聞けないCapistranoでリリースの自動化 - プログラマになりたい
また、DBスキーマの変更管理として、LiquibaseというOSSのドメイン特化言語(DSL)まであるらしい。
これはこれで面白そう。
「DBリファクタリング」をツールで実現しているみたいだ。
Liquibase | Database Refactoring | ja:home
簡単に環境を作れるとなると、性能テストだけでなく障害テストのような信頼性のテストも行うことができる。
性能負荷テストではJMeterが良く使われてきたけれども、障害テストならChaos Monkeyを使って、故意に障害を起こして耐障害性を高める修正を行うこともできるだろう。
サービス障害を起こさないために、障害を起こし続ける。逆転の発想のツールChaos Monkeyを、Netflixがオープンソースで公開 - Publickey
インフラ構築すらもプログラマブルにしてしまうというクラウドの発想は、今後も注目し続けていく。
| 固定リンク
「プログラミング」カテゴリの記事
- Javaのモジュールシステムの考え方をまとめてみた(2022.10.21)
- Javaのモジュールシステムは複雑性をより増している(2022.09.10)
- Javaはなぜ関数型言語になろうとしているのか(2022.09.02)
- Javaのラムダ式の考え方(2022.08.10)
- Javaはオブジェクト指向言語ではなく関数型言語だった~「[増補改訂]関数プログラミング実践入門」はお勧めの本だ(2022.08.06)
「ソフトウェア」カテゴリの記事
- Javaのモジュールシステムの考え方をまとめてみた(2022.10.21)
- Javaのenum型はシングルトンクラスみたいだ(2022.06.20)
- テスラが従来の自動車メーカーと異なるところは工場までソフトウェア化すること(2022.02.09)
- 「RubyやRailsは終わった」という記事のリンク(2022.01.09)
- 実践した後に勉強するのがエンジニアの本来の道(2022.01.09)
「ソフトウェア工学」カテゴリの記事
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
- 「システムアーキテクチャ構築の原理」の感想(2024.05.06)
- ソフトウェア工学の根本問題から最近のソフトウェア設計を考えてみる(2024.03.03)
- マイクロサービス設計は従来のアーキテクチャ設計と何が違うのか(2024.01.02)
- 「ソフトウェアアーキテクチャ・ハードパーツ」の情報リンク~マイクロサービスの設計技法の課題は何なのか(2023.11.12)
「構成管理・Git」カテゴリの記事
- 「GitLabに学ぶ 世界最先端のリモート組織のつくりかた」の感想(2023.12.10)
- パッケージ設計の原則の意義は変化しているのか(2023.09.30)
- 小説活動にプルリクエスト駆動が必要になってきた(2022.05.08)
- 【資料公開】チケット駆動開発の解説~タスク管理からプロセス改善へ #redmine(2022.01.14)
- プログラミングしてる時はでっかいピタゴラ装置を作ってるみたいな感じ(2022.01.09)
「Agile」カテゴリの記事
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
- 「スクラムの拡張による組織づくり」のScrum@Scaleの感想(2024.03.31)
- ソフトウェア工学の根本問題から最近のソフトウェア設計を考えてみる(2024.03.03)
- 「GitLabに学ぶ 世界最先端のリモート組織のつくりかた」の感想(2023.12.10)
- 概念モデリングや設計原則は進化しているのか(2023.10.21)
「Jenkins」カテゴリの記事
- 第12回東京Redmine勉強会の感想 #redmineT(2017.05.14)
- 技術的負い目の記事がすごい(2016.01.03)
- RedmineとGitLabを連携すると、RedmineをGitHub化できるか(2014.10.17)
- 「チーム開発実践入門」が発売されている(2014.04.08)
- 最近、ツールとプロセスを組合わせたソフトウェア開発手法の本が増えている(2014.04.03)
コメント