17-660 Designing and Managing Software Systems Platforms
6 units, Carnegie Mellon University
Platform economy has taken over many industries. It essentially has a network effect on the way services between industries are consumed. Instead of competing, businesses often leverage each others strengths to enhance their business. They engage each other in coopetition rather than competition. This course starts with discussing an overview of platform economy and its benefits. Creating software system platforms requires a different way of approaching the software development. It requires software engineers to focus on the domain and design reusable entities and services that support variety and evolvability. Domain driven design DDD is one of the proven approaches for identifying reusable assets. A systematic approach to designing systems using DDD techniques is dealt with in this course. To ensure robustness of the platform, it must be deployed and managed on reliable infrastructures. Incidents and outages must be dealt with efficiently. In this course the students will learn disaster recovery management. Topics such as incident investigation, RPO Recovery Point Objective and RTO Recovery Time Objective planning with respect to business goals, among others, will be discussed. Most software systems platforms today are deployed in the Cloud environment that poses additional issues. Cloud deployment and monitoring will be discussed in this course. As the software system platform goes into production, we need to have confidence in the operation of the platform. Chaos engineering addresses many of these issues by creating hypotheses on past outages and developing experiments for the possible incidents. Chaos engineering principles, techniques, and ROI will be discussed in this course.
Prerequisites: none listed
Courseweave needs JavaScript to show sections, workloads and planning tools.