Cloud computing provides for highly scalable consumer and enterprise applications with minimal or no capital investment. This course starts by introducing the student to the fundamentals of cloud computing and server-less computing. We contrast the challenges and benefits offered by cloud computing, server-less cloud computing, and traditional self-managed cloud, and on-premises solutions. We cover the fundamental architecture and design patterns necessary to build highly available and scalable solutions using key Microsoft Azure platform as a service (PaaS) and server-less offerings. This course provides guidance on when to use one service over another based on performance, maintainability, complexity, and cost. Key services covered include Azure application services, Azure SQL, Azure API management, Azure functions, Azure AD for authentication, Azure storage, Azure service bus, Azure CosmosDB, Azure search, Azure container service and docker, Azure service fabric mesh and microservices, and Azure kubernetes service. An overview of Azure cognitive services is provided as well as more detailed coverage of the Azure cognitive services: computer vision and text analytics. In addition to Azure services and guidance, the course covers how to implement processes to streamline development such as continuous integration, continuous deployment (CICD), and automated testing using visual studio team services. Coverage would not be complete without examining the fundamentals necessary to make a system ready for users, including always-up architecture and deployment strategies, rollback strategies, A/B testing, testing in production, monitoring, alerting, performance tuning, snapshot debugging in production, and system health analysis using application insights and analysis services.
Harvard Extension School