Second day is focusing on application architectures in Azure.
Azure Stencils
- Go to Visio
- Open shapes
- Search for word "cloud" and click for Online results
- Download Microsoft Azure Cloud Icons
- If you have older Visio you can download older stencils directly and copy to Documents/My Shapes folder here
- If you are using different tool, download SVG library and import to tool of your choice here
Example solution
- schema https://docs.microsoft.com/en-us/azure/architecture/reference-architectures/identity/azure-ad
- description https://docs.microsoft.com/en-us/azure/architecture/reference-architectures/identity/azure-ad#architecture
- pricing https://azure.microsoft.com/en-us/pricing/calculator/
- example architectures https://azure.microsoft.com/en-us/solutions/architecture/
Timing:
- 10min intro
- 50min design
- 20min presentation and recommended solution
- Download and install storage explorer here
- Open storage explorer and connect to storage (key will be active only for duration of our workshop)
- Click on electricity plug icon on left side and select Use a storage account name and key
- Use following Account Name: architects
- Use following Account Key: <- will be provided at training date ->
- Go to architects, Blob Containers, right-click and create container for your group
- Upload results of your work to container with prefix scenario1 etc.
Application architecture
- .NET Framework based scalable web layer
- .NET Framework based application layer
- Microsoft SQL database
Requirements
- All components must be deployed with zone redundancy
- Design scalable web layer with ability to easily scale number of nodes based on load with advanced balancer (reverse proxy)
- Design highly available application layer as active/active with load balancer
- Web and application layers require IaaS due to legacy code that is using low-level OS calls
- Ensure TLS is terminated on security device with Web Application Firewall functionality
- Protect against DDoS
- To achieve high availability make sure solution use multiple availability zones
- Application has been tested to work with Azure SQL Database PaaS
- Application is accessing legacy systems on-premises, design private connectivity solution with leased line and IPSec VPN as backup
- Calculate composite Azure infrastructure SLA. Does it meet 99,9%?
- Ensure DR to different Azure region with RPO < 24h and RTO < 24h
Application architecture
- Node.JS web app
- PostgreSQL database
- A lot of static content (PDF files and images)
- Video content
Requirements
- To ease operations do not use IaaS, only PaaS
- Design application that can scale based on time of day and usage to ensure optimal user experience while saving costs
- Design solution for storing and serving static content in cost effective way and cache it close to user locations
- PDF files as well as records in database must have centralized joint full-text search capability
- Application is designed for customers and requires authentication and authorization, account management and integrations with Google and Facebook logins
- Users are uploading pictures of cars and we need to automatically check and povide feedback when they accidentaly upload picture of something else
- Users are uploading scanned paper forms and we need to parse information out of images
- There is requirement for 4 environments - dev, test, staging and production
- Design automated build and release with CI/CD pipeline
- Video content needs to be encoded to multiple bitrate streams so player can switch quality based on strenght of user connection, content need to be protected with Digital Rights Management
Application architecture
- Mix of .NET Core and Java
- 30 containerized microservices
- Angular frontend
- Asynchronous operations between some services using publish/subscribe pattern
- Microsoft SQL database for each microservice
Requirements
- Design secure and highly available store for container images
- Design container orchestration cluster to deploy microservices
- To ease development of Angular frontend code find solution to document, manage and secure backend APIs
- Externalize all stateful operations into PaaS including queing and database
- Design CI/CD pipeline
Application architecture
- IoT devices capturing telemetry from machines (Azure Sphere)
- IoT gateway devices doing pre-processing including aggregations and anomaly detection (Raspberry Pi)
- Two legacy factories store telemetry as files on local SMB storage
- Centralized stream data processing
- storing RAW data for deeper analysis (which by itself is not in scope of this project)
- storing aggregated data for visualization using JSON-based NoSQL database
Requirements
- Use PaaS to connect and manage devices and collect data
- Find solution to prepare filtering (custom code), data aggregation and anomaly detection logic centrally in cloud and publish it to IoT gateway devices for local processing
- Find serverless solution to process captured data, export to RAW storage, calculate aggregations and write results to NoSQL database
- Detect anomalies in data stream and trigger custom code to create alarm and based on user preferences react by sending SMS, email, pushing notification to mobile application or create incident in ITSM tool
- Web application will be available to customers for alerts management and visualization
- As visualization engine use PowerBI, but there is requirement to add this functionality into custom web application mentioned earlier
- Modernize legacy factories data collection by deploying cloud-managed SMB share with local data aggregation capabilities and automatically push aggregated data to Azure Blob Storage for central processing. You need to reconnect if connectivity goes down and limit outbound bandwidth during daytime. Minimize custom development of such solution.
Application architecture
- Business applications built on top of SaaS platforms (Sharepoint Online, Dynamics365, Office365)
Requirements
- Provide solution for rapid application development with as little coding as possible
- Provide custom Machine Learning features with as little coding as possible
- Provide solution for distributing mobile applications to internal users
- Use serverless to provide integration logic and workflows between Sharepoint, Dynamics, Office365 and legacy systems
- Design simple IoT add-on with as little coding as posible
Prerequisites: Notebook with Visio (or similar tool)
TBD