Presentation is loading. Please wait.

Presentation is loading. Please wait.

Azure Solution Alignment Workshop

Similar presentations


Presentation on theme: "Azure Solution Alignment Workshop"— Presentation transcript:

1 Azure Solution Alignment Workshop
5/11/2018 4:01 AM Azure Solution Alignment Workshop Module 8c – Automation © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

2 How to Present this Section
Your primary goals are to: Outline the Cloud Platform Integration Framework Outline how provisioning, monitoring, automation, management, BC/DR and operations are required elements for all cloud-enabled workloads Introduce Azure monitoring scenarios and technologies DELETE THIS SLIDE BEFORE DELIVERY

3 Automation Overview 5/11/2018 4:01 AM
© 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

4 Cloud Platform Integration Framework
5/11/2018 Cloud Platform Integration Framework Functional Areas Architecture Deployment (Provisioning and Deprovisioning) Business Continuity and Disaster Recovery Monitoring Maintenance Operations These functions (or “pillars”) of CPIF will be explained in more detail. By integrating these functions directly into workloads, ‘platforms’ can be developed which allow for further configuration by tenants to enable extended software services. Builds on the capabilities provided by hybrid cloud platform and management solution (Microsoft Azure, System Center and Windows Server) CPIF seeks to extend the operational and management functions to support managed cloud workloads

5 Automation Windows Server, System Center, Azure
Microsoft System Center Service Management Automation Orchestrator Azure Azure Automation Azure DSC Partners OEMs Management Products ISVs Automation Products Windows Server PowerShell PowerShell Workflow Just Enough Admin Desired State Configuration

6 Typical Automation Scenarios
5/11/2018 Typical Automation Scenarios Patch Azure IaaS VMs without downtime, leveraging Traffic manager. Enable regeneration of storage account keys while avoiding downtime in the application. SQL Backup on a schedule. Backup and restore IaaS VMs. Patch / Update / Backup Orchestration Change Control & Provisioning Deploy a VM on an Azure / On-Premise cloud and enable monitoring for the VM. Deploy a new service to Azure and configure the end points for CPU and Memory alerts. Deploy application from Git, run validation tests, and swap to production if tests pass. Monitor SharePoint online for an approval to update a service and update the service once approved. Monitoring & Remediation Alert on a VM then turn on tracing, collect logs, upload to Azure Storage and make available in Visual Studio for troubleshooting. Monitor for when a new service gets created, and configure it for the right tracing / backup policy. Notify users of a subscription who have underutilized VMs and perform remediation. © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

7 Azure Automation What? How?
5/11/2018 Azure Automation What? Orchestrate and automate time consuming repetitive tasks across multiple systems including systems external to Azure platform. Perform development, testing, deployment and management of automation resources from within azure environment. There is no need for on-perm installation and configuration of infrastructure components. How? Leverages PowerShell workflow Supports integration modules to connect to Azure & external systems Overall architecture & design of automation service stems out of SMA (Service Management Automation) © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

8 Azure Automation Capabilities
5/11/2018 Azure Automation Capabilities Integration into other systems: Import PS modules and create additional modules and runbooks for Azure services or to connect into 3rd party systems Runbook Authoring in Azure: Create runbooks to automate all aspects of cloud operations, from deployment, monitoring, and optimizations Highly Available Engine: Support requirements for scale and H/A. Built on PowerShell Workflow. Isolation for runbook jobs Azure Monitoring Systems Change Control Anything  Automation Backup SQL Azure on a schedule Staged deployment of a service Remediate alert on a service Patch Azure VMs without downtime © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

9 Azure Automation Automate Operational Tasks Achieve On Demand Delivery
5/11/2018 Azure Automation Automation Author Automate Operational Tasks Achieve On Demand Delivery Integrate Operate Integration Orchestration Automation Optimize and extend existing processes Deliver flexible and reliable services Lower costs and improve predictability Integrate into existing systems with PowerShell integration modules Extend by building PS modules to enable integrating into other systems Accelerate time to value with flexible process workflows Improve service reliability across multiple tools, systems, and department silos Enable operations to focus on work that adds business value Reduce error-prone manual activities while lowering costs © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

10 Azure Automation Azure Automation Automation Orchestrator (Graphical)
5/11/2018 Azure Automation Library for runbooks & assets Rich runbook authoring Community gallery Highly available PowerShell engine Job Audit & troubleshooting Integrate into Azure and 3rd party services Gallery Azure Automation Engine Jobs Orchestrator (Graphical) SMA (PowerShell) Orchestrator SCO SMA Orchestrator Orchestrator SCO SMA Automation Enables enterprises to integrate systems and automate operational tasks helping IT do more faster Programmable Workflow Automation Automated Remediation Reduced manual & repetitive tasks Highly available, scalable Automation Engine © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

11 Intro to Automation Assets
TechReady 18 5/11/2018 Intro to Automation Assets Secure storage Create and edit via UX or API Azure Automation objects available to all runbooks in the account Module (cmdlets) Schedule Variable Connection Credential Certificate © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

12 Integration Modules Integrate systems
Tech Ready 15 5/11/2018 Integration Modules Integrate systems Extend Azure Automation by importing PowerShell modules that function against other systems Large ecosystem of PowerShell modules exist today Integration Module = PowerShell Module + one extra optional file © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

13 Architecture Invocation Point Azure Portal Azure Scheduler PowerShell
REST API Invocation Point

14 Automation Accounts & Dashboard
5/11/2018 Automation Accounts & Dashboard Create Automation Accounts Organize your automation by group or individual contributor Accounts can live in different regions Create up to 30 accounts Use Automation Dashboard Operational dashboard for analysis and troubleshooting Quickly access “problem” jobs to get up and running quickly © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

15 Runbook Authoring Author
SMSG Readiness 5/11/2018 Runbook Authoring Author Create PowerShell Workflow runbooks Call existing runbooks in library Manage and browse and insert assets in runbooks Modules and Activities Credentials (PowerShell Credentials and Certificates) Variables (standard and encrypted) Connections Schedules Test Run runbook and see results within authoring window Troubleshoot issues Publish Edit draft before publishing © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

16 Using assets in runbooks
TechReady 18 5/11/2018 Using assets in runbooks Best practice When you have a hierarchy of nested runbooks, get assets in the parent runbook and pass the values of these settings into child runbooks Benefit: Only need change in parent runbook when changes to referenced assets are required. © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

17 Manage Runbooks and Jobs
SMSG Readiness 5/11/2018 Manage Runbooks and Jobs Dashboard View View runbook jobs over time Find jobs that may need attention Runbooks View Filtering of jobs based on status and date Identify authoring state (New, In edit, Published) Filter by tags to group related runbooks Jobs View History of jobs per runbook Who last updated and when Input parameters and output Drill into each job to view streams generated to help troubleshooting Stop, Suspend and Resume job © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

18 Variables Global data to use across runbooks
Tech Ready 15 5/11/2018 Variables Global data to use across runbooks Define and manage common global values for use in runbooks in the account Change variables dynamically during runbook execution Support for string, integer, boolean, datetime, and object types Optional encryption © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

19 Connections Store connection data for easy reuse
Tech Ready 15 5/11/2018 Connections Store connection data for easy reuse Group of variables needed to connect with a system (e.g., Azure) Connection type name and fields are defined in Integration Modules (extra .json file) Fields vary with requirements of the system being connected with Fields may be encrypted (e.g., password) © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

20 Credentials and Certificates
Tech Ready 15 5/11/2018 Credentials and Certificates Store secrets securely Define secrets at the global level, reference them across runbooks Easily change secrets referenced in many runbooks from one place Stored encrypted in the database © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

21 Enable automation across Azure resources and external systems
Provisioning Monitoring Monitoring Gmail Account Manual Tasks Patch Remediation Cloud Service App On Azure Monitor Gmail for new alert Backup Disaster Recovery Collect logs from App Incidents Response Visual Studio Online Application Insights monitors App Send Alert VM Lifecycle Mgmt. Store logs in different Azure storage Change Control Release Mgmt. Send notification to Hotmail account with logs location for investigation Compliance SLA Adherence © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

22 Enable automation across Azure resources and external systems
Monitoring Manual Tasks Patch Remediation Backup Disaster Recovery Incidents Response VM Lifecycle Mgmt. Change Control Release Mgmt. Monitor SharePoint for new deployment in staging SharePoint Release Management Applying Policy Compliance Provisioning SLA Adherence Deploy to production Update SharePoint with progress Apply policy to the deployment in staging © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

23 PowerShell Desired State Configuration
Simplifies configuration Prevents configuration drift Flexible deployment options Enables continuous deployment Modules available from PS Gallery

24 Configuration Staging Area
DSC Pull Model DSC Push Model “Make it So” Phase (Declarative configuration is reified through imperative providers.) Staging Phase Fully declarative configuration representation using DMTF standard MOF instances Configuration is calculated for all nodes Authoring Phase (May include imperative as well as declarative code) Local Configuration Store PowerShell Configuration Staging Area (Contains DSC data) Pull Server (Contains DSC data and Modules) Parser and Dispatcher 3rd party languages and tools Resources When authoring in PowerShell: Declarative syntax extensions Schema-driven Intellisense Schema validation (early-binding) Resources implement changes: Monotonic Imperative Idempotent

25 DSC Terms and Processes
Configuration scripts: Node Configurations (.MOF config document) Nodes Compiled Applied To: Via Push or Pull 1…N per configuration script 1…N per node configuration 1…N

26 DSC Decouples … Intent WHAT : Structural Configuration
5/11/2018 DSC Decouples … Configuration Intent Intent WHAT : Structural Configuration Stays same irrespective of the environment WHERE : Environmental Configuration Changes as system goes through different env. Dev  Test  Production DSC Engine Dependency Resolution Logging & Error Handling Reboot Resiliency Repeatable Automation Make It So HOW : DSC Resources Do the heavy lifting in an idempotent way Resources Technology Specific © 2015 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

27 Resource Modeling Model/Design resources before writing “any” code
Resource modeling should satisfy 4 basic principles: Identifiable: Uniquely and reliably identify resource instance (e.g. key) Expressible: State the desired state of the resource, independent of the control flow Testable: Accurately test if the resource is in desired state (Test-TargetResource) Enactable: Make changes that will converge actual state to the desired state (Set-TargetResource) General focus is about the end state, not the transient state

28 Modeling the Sub-System
Easier to model physical entity rather than logical entity Physical entity – Firewall Rule, Registry Logical entity – Domain, Cluster, SaaS Modeling logical entity that spans multi-machine Consider entity as a property of a resource vs. a resource  E.g.: Cluster as a property of a node vs. a cluster resource that contain nodes Modeling SaaS as a logical entity Consider entity as a resource and service as the target node E.g.: AzureSQLServer is the resource, and Azure service as the target node Can have multiple resource that apply to same sub system E.g.: Firewall Rule and Firewall Profile

29 MOF-Based Resource Structure
Folder: <Module Name> Packaging Container DSC Resource Designer ages/xDSCResourceDesigner/ File: <Module Name.psd1> Module Manifest Folder: DSCResources Can contain multiple resources Folder: <Resource Name> Definition and implementation of a resource Folder: <Resource Name> Definition and implementation of a resource File: <Resource Name>.schema.mof Resource definition File: <Resource Name>.schema.mof Resource definition File: <Resource Name>.psm1 Resource implementation File: <Resource Name>.psm1 Resource implementation

30 Class-Based Resource Structure
Simpler to setup, manage and use MOF-Based Resource # of Folders = n+2 # of Files = 2n+1 Total # of Items = 3n+3 Class-Based Resource # of Folders = 1 # of Files = n+1 Total # of Items = n+2 Folder: <Module Name> Packaging Container File: <Module Name.psd1> Module Manifest File: <Resource Name>.psm1 Resource definition & implementation File: <Resource Name>.psm1 Resource definition & implementation

31 Composite Resource Configuration that acts as resource in other configurations Enables modeling of hierarchy of resources E.g.: Deploying SQL, Deploying VS, Creating HA DC Provides abstraction from the underlying building blocks Enables modelling of the sub system to appropriate level Enables code reuse Configuration parameters  Resource properties Placement is identical to simple resources Requires <ResourceName>.psd1 and <ResourceName>.schema.psm1 file In .psd1, RootModule = ‘<ResourceName>.schema.psm1’

32 Simple vs Composite Resource
Folder: <Module Name> Packaging Container File: <Module Name.psd1> Module Manifest Folder: DSCResources Can contain multiple resources Folder: <Simple Resource Name> Definition and implementation of a resource Folder: <Composite Resource Name> Definition and implementation of a resource File: <Resource Name>.schema.mof Resource definition File: <Resource Name>.schema.psm1 Resource definition & implementation File: <Resource Name>.psm1 Resource implementation File: <Resource Name>.psd1 Module Manifest

33 DSC Enables … Configuration as Code Cloud Scale DevOps
Reduce complexity from within On-demand system creation and tear down Configuration as Code Conflict detection Single source, multiple environment Composable solutions DevOps Apply Dev practices to Operations Continuous deployment

34 PowerShell DSC Availability
5/11/2018 PowerShell DSC Availability Ships in Windows Server 2012 R2, Windows 8.1 (PowerShell 4.0) and Windows 10 (PowerShell 5.0) Windows Management Framework (WMF) 4.0 For Windows Server 2012, Windows Server 2008 R2 & Windows 7 Windows support & cadence WMF 5.0 previews For Windows Server 2012 R2, Windows 8.1, Windows Server 2012, Windows Server 2008 R2 & Windows 7 Fix forward and faster cadence © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

35 5/11/2018 4:01 AM © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.


Download ppt "Azure Solution Alignment Workshop"

Similar presentations


Ads by Google