CSCI E-94 Fundamentals of Cloud Computing with Microsoft Azure
Spring term 2018 CRN 25152
Cloud computing provides for highly scalable consumer and enterprise applications with minimal or no capital investment. Most start-ups and Fortune 500 companies are embracing cloud computing for many reasons including higher profit margins, competitive advantage, elastic scalability, increased security, and global reach. 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 AD for authentication, Azure app services, Azure SQL, Azure API management, Azure functions, Redis Cache, notification hubs, Azure storage and queues, Azure CosmosDB, Azure search, and Azure Internet of things suite. 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.