開発サイクル - 1m-llc/Flutter-KtoK GitHub Wiki
Agile, CI/CD, DevOps+DevSecOps
引用:https://www.synopsys.com/blogs/software-security/ja-jp/agile-cicd-devops-glossary/
Agile
■説明 「アジャイル(agile:俊敏)」というネーミングから、アジャイル開発ではとにかくスピードや効率を重視する傾向があるが、ソフトウェアをサービスとしてとらえた場合は、スピードと同時に「ユーザーに提供する価値」を常に意識する必要がある。
既に手順が決まり切っている簡単な問題を扱うのであれば、昔ながらのウォーターフォール手法が最も効率がいいでしょう。逆に問題領域が複雑で、しかも周囲を取り巻く環境が刻一刻と変化するような課題を扱うような場合にはアジャイルが適しています。また、どっちとも判断できないような場合には、必要に応じてアジャイルとウォーターフォールを使い分ければいいでしょう。あるいは、複雑を通り越してもはや『カオス状態』になってしまった問題領域を取り扱う場合には、Kanbanのようなプロセスを適用するのがいいでしょう
CI/CD(継続的インテグレーション/継続的デリバリー)
■説明 継続的インテグレーション(CI)サービスを使用すると、新しいコードの変更をプッシュするときにテストを自動的に実行できます。これにより、コードの変更が期待どおりに機能するかどうかに関するタイムリーなフィードバックが提供され、バグは発生しません。さまざまな継続的統合サービスでテストを実行する方法については、以下を参照してください。
継続的デリバリー(CD)は、CIで構築およびテストしたシステムをパッケージ化してデプロイします。ソフトウェアを構築、構成、パッケージ化し、デプロイでは常にソフトウェア定義方式(低コストで高度に自動化された方法)で運用環境にリリースできるように調整します。
以下、Flutter公式サイトからのリンク https://flutter.dev/docs/testing#continuous-integration-services
- Continuous delivery using fastlane with Flutter
- Test Flutter apps on Appcircle
- Test Flutter apps on Travis
- Test Flutter apps on Cirrus
- Codemagic CI/CD for Flutter
- Flutter CI/CD with Bitrise
DevOps
開発者(Development)と運⽤者(Operations)が協調・連携しソフトウエアの開発、リリースをいち早く実施しようという概念、取り組み
DevSecOps
■説明 DevOpsエコシステムをソフトウェアセキュリティにまで拡げるという概念 開発者(Development)と運⽤者(Operations)とセキュリティ担当者(Security)が協調・連携しセキュリティを保ちつつ、ソフトウエアの開発、リリースをいち早く⾏っていこうという概念、取り組み
今まで | これから | |
---|---|---|
文化 | セキュリティチームのみ責任を負う | 開発ライフサイクルに携わる全員がセキュリティに責任を負う |
技術 | ⼿動テスト | セキュリティチェックの⾃動化 |
プロセス | セキュリティは後付け | シフトレフト(開発の初期段階からセキュリティチェックを組み込む) |