クラウド アプリの永続トレーニングのマスター: クラウドでのアプリケーションの開発とデプロイメント
Madrid, スペイン
存続期間
2 Years
言語
スペイン語
ペース
フルタイム
申請期限
申請期限の申請
最も早い開始日
最も早い開始日をリクエストする
授業料
EUR 3,550
学習形式
通信教育
序章
現在、クラウドコンピューティングまたはクラウドコンピューティングが普及しつつある。このコンピューティング パラダイムは、インターネット上でアプリケーションを公開するためのプラットフォームを組織に提供します。そのサービスのおかげで、これらのアプリケーションはよりスケーラブルでフォールト トレラントになり、より頻繁にエラーを減らして更新できるようになります。ただし、新しいプラットフォームを活用するには、一連のパターンに従い、特定のテクノロジを使用してアプリケーションを設計および実装する必要があります。これらの新しいプラットフォーム向けに特別に設計されたアプリケーションはクラウド ネイティブ アプリケーションと呼ばれ、クラウド ネイティブ アプリケーションと言い換えることもできます。
目標
修士号の目的は、クラウド コンピューティングによってもたらされる新しいトレンドを活用したインターネット アプリケーションの開発と展開を可能にする技術、ツール、プラットフォーム、および優れた実践方法を提示し、適用することです。この分野の他の修士号とは異なり、その目的は、開発方法論、ソフトウェア品質、インターネット アプリケーション実装テクノロジ、クラウド コンピューティング プラットフォーム、統合と展開サイクルの制御など、アプリケーション開発とメンテナンスのライフ サイクル全体をカバーすることです。このため、修士課程プログラムは、これらすべての側面をカバーする 4 つのモジュールに分割されています。
- モジュール I: ソフトウェア品質: 設計、アーキテクチャ、テスト、XP
- モジュール II: Web サービス: テクノロジー、プロトコル、テスト、アーキテクチャ
- モジュール III: クラウド ネイティブ アプリケーション
- モジュール IV: DevOps、統合、継続的デプロイメント
入場料
カリキュラム
モジュール I - ソフトウェア品質: 設計、アーキテクチャ、テスト、および XP
- ソフトウェアの設計と品質
- パターン、知識、複雑さ
- ソフトウェア、規律、進化
- 設計、モジュラー設計、オブジェクト指向設計
- パターンとソフトウェア アーキテクチャ
- デザインパターン
- 創造、構造、行動パターン
- ソフトウェアアーキテクチャ
- Mv 建築スタイル*
- アジャイルなアーキテクチャ スタイル: 六角形、オニオン、クリーン
- ソフトウェアテスト
- テスト方法
- テスト設計: ブラック ボックス vs ホワイト ボックス
- 単体テスト
- テストでのダブルス
- エクストリーム プログラミング
- リファクタリング
- テスト駆動開発
- エクストリーム プログラミング (Xp)
- スクラム
- 統合開発プロセス (Pud)
モジュール II - Web サービス: テクノロジー、プロトコル、テスト、アーキテクチャ
期間: 10週間
シラバス:
- Web サービスのテクノロジとプロトコル
- Web サービス テクノロジの概要
- Webアプリケーション
- 安らかなアピス
- データベース
- 構築と展開
- リアクティブプログラミング
- プロトコル: REST、Grpc、Graphql、およびキュー
- サイバーセキュリティ
- アイデンティティ管理
- Web サービスの脆弱性
- Web サービスのアーキテクチャとパターン
- 前書き
- パターン
- 六角形のすっきりとしたアーキテクチャ
- Webサービスのテスト
- 前書き
- Spring と Testcontainers を使用したテスト
- 残りの API テスト
- 消費者主導の契約テスト
- 受け入れテスト
- 負荷テスト
- Web アプリケーションでのインターフェイスのテスト
- 永続化とデータ分析
- リレーショナル永続性
- マルチモデルデータベース
- データベースの進化
- 非リレーショナル永続性
- データサイエンス入門
モジュール III - クラウド ネイティブ アプリケーション
期間: 12週間
シラバス:
- クラウドコンピューティング
- 前書き
- アマゾンウェブサービス
- クラウドサービス
- サービスとしてのプラットフォーム
- クラウドネイティブアプリ
- サーバーレス
- オペレーション
- クラウドにおけるセキュリティとプライバシー
- コンテナとオーケストレーター
- Dockerコンテナ
- Docker Compose
- Docker セキュリティ
- Kubernetes
- Kubernetes のセキュリティ
- Helm を使用した Kubernetes アプリケーション
- Kubernetes を使用した開発ツール
- スケーラビリティとフォールトトレランス
- マイクロサービス
- マイクロサービスの概要
- アーキテクチャ: Ddd、Cqrs、およびイベント ソーシング
- マイクロサービスのパターン
- サービス間の通信
- 佐賀取引
- 外部API
- モノリスからマイクロサービスへ
モジュール IV - Devops、統合、継続的デプロイメント
期間: 6週間
シラバス:
- リポジトリと開発モデル
- ソフトウェアのライフサイクル
- Git バージョン管理
- 開発モデル: Gitflow と Tbd
- Monorepo を使用した開発
- 継続的な統合とデリバリー
- 前書き
- Ci サービス: Github Actions と Jenkins
- 静的コード分析
- アーティファクト管理
- 継続的な展開
- 前書き
- 並行した変更
- 増分展開: Blue-Green および Canary
- 継続的導入ツール
- 本番環境でのテスト
ファイナルマスタープロジェクト
すべての科目を履修したら、修士論文(tfm)を作成しなければなりません。この仕事では、学んだ知識が応用され、発展させられます。これは小さな「おもちゃ」プロジェクトではなく、学生にとって興味のあるトピックを掘り下げるための完璧な口実です。教師は一連のトピックを提案しますが、生徒がやる気を起こさせるプロジェクトを提案することもできます。たとえば、深く勉強する時間がないテクノロジー、仕事で行っていることのために念頭に置いている特定のアーキテクチャを実装する、さまざまな代替案を比較するなどです。最終修士プロジェクトは、個別にまたは複数人で実行できます。生徒のグループ。これにより、生徒は目的をさらに進めることができます。
プログラムの成果
一般的なスキル:
- CG1: コンピュータ システム、サービス、アプリケーションの構想、開発、活用を目的としたコンピュータ エンジニアリングの分野でプロジェクトを着想、執筆、組織、計画、開発する能力。
- CG2: 取得した知識に従って、コンピュータ システム、サービス、およびアプリケーションの開発と実行のためのハードウェアおよびソフトウェア プラットフォームを定義、評価、選択する能力。
- CG3: 取得した知識に基づいて、ハードウェア、ソフトウェア、ネットワークを統合した集中型または分散型コンピュータ システムまたはアーキテクチャを構想し、開発する能力。
- CG4: 自発性、意思決定、自律性、創造性によって問題を解決する能力。ソフトウェア アプリケーションの開発と展開の分野で、知識、スキル、能力を伝え、伝達する方法を知る能力。
- CG5: 取得した知識に従って、測定、計算、評価、鑑定、専門家による報告、研究、レポート、タスク計画、およびその他の同様のコンピュータ作業を実行するための知識。
- CG6: 学生は、社会的、技術的、科学的、または倫理的な性質の関連する問題についての考察を含む判断を下すために、関連するデータを収集および解釈する能力を持っています。
特定のスキル:
- CE1: ソフトウェア開発の方法論を適用する能力。特に、価値観、原則、優れた実践方法を備えた極端なプログラミングです。
- CE2: クリーン コード (クリーン コード) と優れたオブジェクト指向設計の推奨事項に従って、高品質のコードを生成する能力。
- CE3: ソフトウェア開発をガイドし、その品質を保証するためのソフトウェア テストを設計および実装する能力。
- CE4: コードの品質を向上させて拡張できるようにする機能。
- CE5: インターネット アプリケーションの開発にライブラリとフレームワーク ( フレームワーク ) を効果的に使用する能力。
- CE6: インターネット アプリケーションの通信プロトコルを設計および実装する能力。
- CE7: 保守可能で、自動化された方法で簡単にテストできるインターネット アプリケーションの実装に最適なアーキテクチャ スタイルを選択する機能。
- CE8: インターネット アプリケーションの機能テストと非機能テストを設計、実装、実行する能力。
- CE9: インターネット アプリケーションに最も適切なユーザー認証および認可メカニズムを組み込む機能
- CE10: 優れたプラクティスを使用して脆弱性を回避し、脆弱性が悪用された場合の影響を軽減する能力。
- CE12: リレーショナル データベース テクノロジと非リレーショナル データベース テクノロジの両方を使用して、アプリケーション データとその関係をモデル化する機能。
- CE13: アプリケーションのニーズに基づいて、最も適切な永続化テクノロジを選択する機能。
- CE14: 分散型、スケーラブル、フォールトトレラントな永続システムがどのように動作するかを知る能力。
- CE15: サービスの提供に影響を与えることなく、データ構造の変更を必要とする運用アプリケーションの更新プロセスを設計する機能。
- CE16: データ サイエンスの分野で使用される主要なテクノロジーと、それらのテクノロジーがアプリケーションの実装にどのようなサービスを提供するかを知る能力。
- CE17: インターネット アプリケーションのニーズに基づいて、そのアプリケーションに最適なクラウド コンピューティング プロバイダー サービスを評価し、選択する能力。
- CE18: インフラストラクチャ テクノロジをコードとして利用してコンピュータ システムを管理し、従来のモデルと比較した利点を知る能力。
- CE19: コンテナを使用してインターネット アプリケーションをパッケージ化および配布する機能。
- CE20: コンテナベースのインターネット アプリケーションの展開と管理にコンテナ オーケストレーション システムを効果的に使用する機能。
- CE21: サービスを停止することなく、コンテナ オーケストレーター内のアプリケーションを段階的に更新する機能。
- CE22: 電子メール、データベース、ファイル ストレージなどのクラウド プロバイダーが提供するサービスを使用してアプリケーションを設計および実装する能力。
- CE23: 運用環境でアプリケーションを管理するための可観測性システムを設計、実装、使用する能力。
- CE24: クラウド プロバイダーとコンテナ オーケストレーターが提供するレプリケーション サービスと負荷分散サービスを使用して、スケーラブルでフォールト トレラントなアプリケーションを設計および実装する能力。
- CE25: インターネット アプリケーションの実装にマイクロサービスに基づくアーキテクチャを効果的に適用する能力。
- CE26: 機能プラットフォームをサービスとして使用してアプリケーションを設計および実装し、他の代替手段と比較してそれらが適切であるかどうかを判断する能力。
- CE27: 開発チームと運用チーム間のプロセスを自動化するための一連の DevOps プラクティスを知る能力。
- CE28: 継続的な統合および展開システムを実装するための、さまざまな既存の代替手段を知り、選択する能力。
- CE29: 継続的統合およびデプロイメント システムでタスクを定義し、コード リポジトリに追加されてから運用環境で公開されるまでのソース コードのライフ サイクルを自動化する機能。
- CE30: ライフサイクル全体およびさまざまな種類の成熟度 (リリース、ベータ、スナップショットなど) でソース コードから取得した成果物を管理する機能。
- CE31: サービス障害やエラーを発生させずに運用アプリケーションを更新するために利用可能なツールとテクノロジを効果的に使用する能力。