Deprecated: Use of "static" in callables is deprecated in /chroot/home/a40b7614/774635bdc8.nxcli.io/html/wp-content/plugins/moosend-email-marketing/vendor/moosend/website-tracking/src/Utils/Uuid.php on line 15 Deprecated: Use of "static" in callables is deprecated in /chroot/home/a40b7614/774635bdc8.nxcli.io/html/wp-content/plugins/moosend-email-marketing/vendor/moosend/website-tracking/src/Utils/Uuid.php on line 15 Deprecated: Use of "static" in callables is deprecated in /chroot/home/a40b7614/774635bdc8.nxcli.io/html/wp-content/plugins/moosend-email-marketing/vendor/moosend/website-tracking/src/Utils/Uuid.php on line 15 Deprecated: strtr(): Passing null to parameter #1 ($string) of type string is deprecated in /chroot/home/a40b7614/774635bdc8.nxcli.io/html/wp-content/plugins/moosend-email-marketing/vendor/moosend/website-tracking/src/Utils/Encryption.php on line 8 Deprecated: urlencode(): Passing null to parameter #1 ($string) of type string is deprecated in /chroot/home/a40b7614/774635bdc8.nxcli.io/html/wp-content/plugins/moosend-email-marketing/vendor/moosend/website-tracking/src/Payload.php on line 202 Scott Duffy – Page 5 – SoftwareArchitect.ca

Author: Scott Duffy

  • Azure World Newsletter – Issue 3.21

    Azure World Newsletter – Issue 3.21

    November 30, 2022

    Welcome to the twenty-first edition of the Azure World Newsletter in 2022.

    It’s been a busy month as we race toward the end of the year. Our American friends have finished eating their turkey, and most survived the sales pitches that filled our inboxes. The Thanksgiving season is over in America, and attention will quickly turn to Christmas.

    This will be my first Christmas in Europe, and I’ve discovered they are really into it in some places. I was in Zurich and Vienna recently, and the Christmas markets were just getting ready to open. And even in Lisbon, the trees are going up, the lights are on at night, and the year-end celebrations are starting.

    Thanks so much for being a subscriber! The unsubscribe link is at the bottom if you want to stop receiving these emails.


    ONE.

    Do you like Space? Specifically, do you like Outer Space?

    Last year, Azure introduced the Azure Orbital Ground Station. At the time, it was interesting but not super-exciting because it’s main feature was allowing you to communicate with your satellites without maintaining a ground station infrastructure. Who has their own satellite? Not many of us. And if we did, we’d already have our own ground station, I bet. I wasn’t too excited by that news.

    A couple of months ago, they announced their second space product – Azure Orbital Cloud Access. This allows you to access the cloud from anywhere. Effectively, this service ties in with both 5G and SpaceX’s Starlink service to bring fiber-speed 1-hop access to the Azure cloud from places that traditionally do not have Internet access.

    And this past month, Azure has introduced a product called Azure Orbital Space Software Development Kit (SDK). This one does seem more exciting.

    Effectively it’s a development platform for satellites.

    A satellite is like an Internet of Things (IoT) device. Azure has a long history of working it IoT devices and provides various IoT toolkits for developers to easily integrate their devices into the Azure Cloud backend. It made perfect sense so that developers could focus on the functionality of their devices and not need to worry much about how their devices communicate with the Internet or with Azure.

    And now, this same idea is available for satellites.

    “The Azure Orbital Space SDK was created to be able to run on any spacecraft and provide a secure hosting platform and application kit to create, deploy, and operate applications on-orbit. This “host platform” runs onboard the spacecraft including a containerized, scalable compute infrastructure with resource and schedule management capabilities.”

    There is also a virtual test harness so that developers can test their satellite programs without having an actual satellite.

    Read more:
    https://azure.microsoft.com/en-us/blog/new-azure-space-products-enable-digital-resiliency-and-empower-the-industry/
    And here:
    https://azure.microsoft.com/en-us/blog/any-developer-can-be-a-space-developer-with-the-new-azure-orbital-space-sdk/


    TWO.

    There were a bunch of small announcements this week, as you’ll see in the next section on Azure Updates. I’ll highlight two of them that look particularly interesting.

    One is that Azure Bastion now supports shareable links and is currently a preview feature. Until now, if you wanted to give someone access to a virtual machine and Azure Bastion was being used for access (even if it was a one-time-only access), you had to get them a portal account and grant them access to the resource using RBAC.

    Now, you can generate a shareable link to a VM, and they can access the VM this way. No portal account is required. They still have to authenticate via RDP or SSH in the normal way, and you still have to give the user those admin credentials or keys. But this does make like easier for Bastion-protected servers.

    Read more:
    https://learn.microsoft.com/en-us/azure/bastion/shareable-link

    And another exciting update is the ability to manage tables in a Log Analytics Workspace.

    As you may know, most Azure services allow you to collect their diagnostics data into a Log Analytics workspace, among other options. You can then run various Kusto queries in the Azure Monitor service to extract and analyze data.

    Now that we can access the underlying data tables inside Log Analytics, we can customize more options regarding what data is collected and how long it’s kept.

    You can override the default workspace retention policy for data on a table-by-table basis. If you’re on the correct log data plan, you can retain data for up to 2 years for interactive retention and up to 7 years in an archive model.

    You can also customize the columns on the individual tables by adding additional transformed columns or data from another source. For example, you may wish that the day, month, and year were three separate columns of the table instead of one “date” column. You can do that by adding the additional columns and deriving the value of the new columns from the original date field. It could be handy if you write a lot of queries.

    Read more:
    https://learn.microsoft.com/en-us/azure/azure-monitor/logs/manage-logs-tables


    AZURE PLATFORM UPDATES.

    The following announcements were made in the last four weeks:

    • Virtual Machine software reservations, in GA
    • Azure Static Web Apps now fully supports .NET 7
    • Functions now supports .NET 7 in an isolated worker process
    • Block domain fronting behavior on newly created customer resources
    • Azure Automation supports Availability zones
    • Manage your Log Analytics Tables in Azure Portal
    • Rotate SSH keys on existing AKS nodepools, in preview
    • Azure Static Web Apps now Supports Node 18, in preview
    • Static Web Apps support for stable URLs for preview environments
    • Static Web Apps support for Gitlab and Bitbucket
    • Static Web Apps support for preview environments in Azure DevOps
    • Multivariate Anomaly Detection in Azure Cognitive Services
    • Azure Front Door zero downtime migration, in preview
    • Azure Front Door integration with managed identities, in preview
    • Encrypt managed disks with cross-tenant customer-managed keys
    • Use Azure Quota REST APIs to manage service limits (quotas), in preview
    • TLS 1.3 with Application Gateway
    • Azure SQL Managed Instance backup portability to SQL Server 2022
    • Azure SQL trigger for Azure Functions, in preview
    • Azure Bastion now supports shareable links, in preview
    • Cross Subscription Restore for Azure Virtual Machines, in preview

    Important retirement or migration announcements:

    • Azure Multi-Factor Authentication Server will be deprecated 30 September 2024
    • Azure Percept DK will be retired on March 30th, 2023

    Check out the Azure Updates page if any of these affect you.

    https://azure.microsoft.com/en-us/updates/


    COMING UP FOR ME.

    If you don’t mind the self-promotion, I invite you to check out my Microsoft Azure courses on Udemy.

    https://udemy.com/users/scottduffy2

    As a special thank you for subscribing, I’ve created a special coupon code for my Azure and TOGAF courses on Udemy. With the coupon code NEWSLETTER, most of my courses are US $9.99 for the next four days only. Some courses are a little more, but that’s out of my control.

    Remember to use the code NEWSLETTER at checkout for special savings only for newsletter subscribers like you. And yes, you can share the code with a friend if you feel they are worthy. 🙂

    I mentioned in the last newsletter that I was speaking at the Azure Portgual User Group a couple of weeks ago. I’ve recorded that talk, and it’s available as a free course on Udemy.

    https://www.udemy.com/course/ha-in-azure/

    Enjoy!


    WHERE TO FIND ME.

    And that’s it for issue 3.21. Thanks for reading this far. Talk to you again in two weeks.

    What is your favorite platform to be on? Perhaps we can connect there.

    Facebook Page: https://www.facebook.com/getcloudskills/ 

    LinkedIn: https://www.linkedin.com/in/scottjduffy/

    Instagram: https://www.instagram.com/getcloudskills.ca/

    Twitter: https://twitter.com/scottjduffy

    Udemy: https://www.udemy.com/user/scottduffy2/

    LinkedIn Learning: https://www.lynda.com/Scott-Duffy/1993589682-1.html

  • Azure World Newsletter – Issue 3.20

    Azure World Newsletter – Issue 3.20

    November 2, 2022

    Welcome to the twentieth edition of the Azure World Newsletter in 2022.

    This is traditionally the time of year when I go through my courses and make updates. In some cases, Microsoft has subtly changed the exam requirements in a couple of places and the updates are small. And in other cases, I just decide to re-record an entire section or more because the underlying technology has changed so much since the time the course was originally recorded.

    So if you’re a student in one of my courses such as AZ-900, AZ-104, DP-900, or SC-900, then you should see some updated videos in those courses in the past couple of weeks. And I’ll keep going with these updates in other courses for the next month or so.

    Thanks so much for being a subscriber! The unsubscribe link is at the bottom if you want to stop receiving these emails.


    ONE.

    As you may know, Azure has a “Reserved Instance” system that allows users to commit to a long-term contract for rather large savings on virtual machines. You can save around 50% of the cost of a virtual machine if you commit for one or three years.

    To use reservations, you have to choose a specific instance (for example, a D8ms instance), and then you can reserve one for you to use at a discounted rate.

    Microsoft continues to innovate here and now offers Azure Savings Plan for Compute. This allows you to commit to a minimum spend per hour on all your compute services and achieve savings on the portion of spending at or below your minimum hourly spend.

    If you spend more than the minimum, you pay the normal rates. If you spend less than the minimum, you’ll be charged the minimum.

    For example, let’s say you commit to spending $5 per hour (at 720 hours per month, that’s $3,600). In return, you save money on those compute services for that $5.

    If your compute usage comes to $6 in that hour, you’ll save on the first $5 and pay the normal rate on the last $1.

    If your compute usage only comes to $4, you’ll be charged for that $5.

    It’s a new way to get savings on your compute spending by making a commitment, without having to commit to a specific instance type.

    For more: https://techcommunity.microsoft.com/t5/azure-compute-blog/optimize-and-maximize-cloud-investment-with-azure-savings-plan/ba-p/3636447


    TWO.

    If disk speed is your thing, Microsoft has just rolled out a new high-speed disk option for storage – Azure Premium SSD v2.

    According to the official blog post, Microsoft has made significant improvements in the technology behind the service.

    They offer from 1 GB to 64 TB of general-purpose block storage in 1 GB increments. The previous SSD was limited to 32 TB. If a 64-terabyte VM disk is not exciting enough for you, they claim sub-millisecond disk latency.

    That is up to 80,000 IOPS and 1,200 MBPS throughput on a single disk.

    And you can dynamically scale up and down the performance as needed without downtime based on your application needs. So if you need a high throughput performance for a limited period, you can pay for that. And then downgrade to more affordable performance for the rest of the time.

    Scaleable performance is a real innovation. Previously, you were assigned limits based on disk size.

    For more:
    https://techcommunity.microsoft.com/t5/azure-storage-blog/azure-premium-ssd-v2-disk-storage-general-availability/ba-p/3649038


    AZURE PLATFORM UPDATES.

    The following announcements were made in the last two weeks:

    • Azure savings plan for compute, in GA
    • Auto Extension upgrade for Arc enabled services, in GA
    • Stream analytics no-code editor in Event Hubs, in GA
    • Azure Premium SSD v2 Disk Storage, in GA
    • SFTP support for Azure Blob Storage, in GA
    • AKS will start using Ubuntu 22 instead of Ubuntu 18
    • Azure Storage — Attribute-based access control for standard storage accounts, in GA
    • Vertical Pod Autoscaler, in preview
    • Premium SSD v2 support is now generally available on AKS
    • AKS image cleaner, in preview
    • IPVS load balancer support in AKS, in preview
    • Dapr extension for AKS and Arc-enabled Kubernetes now support Dapr v1.9.0
    • V2 programming model for Azure Functions using Python, in preview
    • Azure Container Apps TCP support, in preview
    • Azure Communication Services short code functionality for SMS, in GA
    • Azure Databricks SQL Pro, in GA
    • Microsoft Azure Payment HSM Service, in GA
    • Encrypt storage account with cross-tenant customer-managed keys, in GA

    Important retirement or migration announcements:

    • Cloud Services (classic) deployment model is retiring on 31 August 2024
    • Continuous delivery setting of Azure VMSS will be retired on 31 March 2023
    • Community support for PHP 8.0 is ending on 26 November 2023
    • App Service Environment version 1 and version 2 will be retired on 31 August 2024
    • Community support for Node 16 LTS is ending on 11 September 2023

    Check out the Azure Updates page if any of these affect you.

    https://azure.microsoft.com/en-us/updates/


    COMING UP FOR ME.

    I’ll speak live at the Azure Portugual User Group in Lisbon on November 16. It’s an in-person event, but I hear they will try to stream it live too.

    https://www.meetup.com/azure-user-group-portugal/events/288229074/


    WHERE TO FIND ME.

    And that’s it for issue 3.20. Thanks for reading this far. Talk to you again in two weeks.

    What is your favorite platform to be on? Perhaps we can connect there.

    Facebook Page: https://www.facebook.com/getcloudskills/ 

    LinkedIn: https://www.linkedin.com/in/scottjduffy/

    Instagram: https://www.instagram.com/getcloudskills.ca/

    Twitter: https://twitter.com/scottjduffy

    Udemy: https://www.udemy.com/user/scottduffy2/

    LinkedIn Learning: https://www.lynda.com/Scott-Duffy/1993589682-1.html

  • Azure World Newsletter – Issue 3.19

    Azure World Newsletter – Issue 3.19

    October 19, 2022

    Welcome to the nineteenth edition of the Azure World Newsletter in 2022.

    First, I’m sorry I didn’t send a newsletter two weeks ago. I was traveling during that time, and I decided to wait until after Ignite when there would be much more relevant news to talk about.

    Speaking of Microsoft Ignite, it was last week. I’ll be covering a couple of interesting announcements in this newsletter. I believe the session videos are still available for viewing, so head to the Ignite website and watch some of the videos that interest you after the fact.

    Microsoft publishes a Book of News that encapsulates all of the announcements in one (long) document.

    https://news.microsoft.com/ignite-2022-book-of-news/

    Also, this is a reminder that I’ll be on a panel to discuss the event on October 20 (very soon!). I’ll include a link to that here:

    https://www.meetup.com/comecloudwithus/events/288402133/

    Thanks so much for being a subscriber! The unsubscribe link is at the bottom if you want to stop receiving these emails.


    ONE.

    One of the first things I saw in the Book of News (because it’s the first thing listed) is the Microsoft OpenAI Service which is in a limited preview on Azure.

    OpenAI is a research and development company working on Artificial General intelligence. General AI is the field of research that eventually led to SkyNet in the Terminator movies. Oh wait, we’re not supposed to say that. I mean, General AI is the field of research where a computer can understand or learn any intellectual task that a human being can. It’s very difficult to achieve and is seen by some as the holy grail of AI.

    The first big demo from the OpenAI team was called GPT-3. GPT-3 is already being used to write company blog posts, given a small amount of prompting. You give it a topic, guide it along, and it can write a pretty good (not perfect) blog post for you based on research it does on the Web.

    This newsletter is not yet written by GPT-3, but maybe in a few years, half of what we read on the Internet will be written mainly by AI. I will not be surprised.

    GPT-3 also powers the GitHub Copilot feature, which significantly cuts down the amount of time it takes to write programming code by doing some of that work for you. Somebody at Microsoft said that 20% of code is written with the help of AI today, and within a couple of years, they expect 70% of code written will be assisted by AI!

    The second big demo from the OpenAI team is called DALL-E 2.

    You may have seen these demos on Twitter over the last few months, where somebody asks a computer to generate a picture of “a monkey riding a unicorn while eating an ice cream cone”, and DALL-E 2 can come up with a pretty good original picture of that.

    I don’t know how it works, but I want to play with DALL-E 2. If I wished, I could sign up for the private preview and play with the OpenAI Service.

    DALL-E 2 is also built into the new Microsoft Designer. So my monkey-riding unicorn picture could be generated with Microsoft’s new “Canva” killer. Hopefully, I’ll get into the beta for that and generate wacky images in no time.

    Learn about Microsoft OpenAI Service here:
    https://learn.microsoft.com/en-us/azure/cognitive-services/openai/overview

    There is more I would love to cover in the AI space in terms of announcements. That will have to wait for a future newsletter.


    TWO.

    Now I will skip forward to the data space. One exciting announcement in this space is that Azure Cosmos DB now has distributed PostgreSQL support.

    Someone can correct me if I’m wrong, but I think that PostgreSQL is the first major compatibility API added to Cosmos DB since it was first introduced five years ago. And brings a “relational database” model on top of Cosmos DB. Which includes relational DB elements such as tables, primary keys, foreign keys, and database integrity checking.

    Your apps can now work with both relational and non-relational (NoSQL) data using the same familiar Cosmos DB SDK.

    Cosmos DB currently supports API compatability with MongoDB, Gremlin, Cassandra, Azure Table Storage and etcd. And now PostgreSQL as well.

    Azure Cosmos DB for PostgreSQL is a managed service for PostgreSQL extended with the Hyperscale (Citus) open-source concept of distributed tables.

    You can start building your apps on a single node cluster, as you would with PostgreSQL, and then scale your app up to work with multiple nodes by transparently distributing your tables.

    You can read more about Azure Cosmos DB for PostgreSQL here:
    https://learn.microsoft.com/en-us/azure/cosmos-db/postgresql/introduction

    There are many more announcements I could cover, but I’ll do that in the next couple of newsletters.


    AZURE PLATFORM UPDATES.

    Since I missed the last newsletter, we have to look back four weeks with these updates. Of course, with Microsoft Ignite, there are a lot of announcements. As well, a large number of services are being retired and I grouped them together.

    • The following announcements were made in the last four weeks:
    • Immutable storage for Azure Data Lake, in GA
    • Improved append capability for immutable storage for Blob Storage, in GA
    • Improvements to Azure Web Application Firewall (WAF) custom rules, in GA
    • Encryption scopes on hierarchical namespace enabled storage accounts, in preview
    • Customer initiated storage account conversion from non-zonal redundancy to zonal redundancy via Azure Portal, in preview
    • Billing has started for Azure Monitor Logs data archive on September 1, 2022
    • Automatic backup and restore is in preview for App Service Environment V2 and V3
    • Backup and restore updates for App Service, in GA
    • Policy analytics for Azure Firewall, in preview
    • Smart tiering to vault-archive tier for Azure Backup, in GA
    • Azure Firewall Basic, in preview
    • Dapr secrets API support, in GA
    • Azure Container Apps Azure Monitor integration, in preview
    • Azure Elastic SAN, in preview
    • Azure Automanage for Azure Virtual Machines and Arc-enabled servers, in GA
    • Azure Hybrid Benefit for AKS and Azure Stack HCI, in GA
    • IP Protection SKU for Azure DDoS Protection, in preview
    • Event Grid integration with AKS, in GA
    • 5,000 node scale in AKS, in GA
    • Windows server 2022 host support in AKS, in GA
    • ARM64 support in AKS, in GA
    • AMD-based confidential VMs for Azure Kubernetes Service, in GA
    • Confidential VM option for Azure Virtual Desktop, in preview
    • Confidential VM option for SQL Server on Azure Virtual Machines, in GA
    • New Azure Virtual Machine Scale Set and Spot Virtual Machines capabilities, in preview
    • ExpressRoute Traffic Collector, in preview
    • Azure Resource Topology, in preview
    • Azure Cosmos DB for PostgreSQL, in GA
    • Azure Advisor score across all Azure regions, in GA
    • 16MB limit per document in Azure Cosmos DB for MongoDB, in GA
    • Control the minimum TLS version used with Azure Service Bus, in GA
    • Service Bus Explorer for the Azure portal, in GA
    • Microsoft Azure Deployment Environments, in preview
    • Static IP configurations of private endpoints, in GA
    • Windows Admin Center for Azure Virtual Machines, in GA
    • Immutable vaults for Azure Backup, in preview
    • Multi-user authorization for Backup vaults, in preview
    • Enhanced soft delete for Azure Backup, in preview
    • Exactly once delivery for Azure Data Lake Storage Gen2, in preview
    • Zone-redundant storage support by Azure Backup, in GA
    • Important retirement or migration announcements:
    • AKS Deployment Center setting to be retired 31 March 2023, use automated deployments instead
    • VM Continuous Delivery setting to be retired 31 March 2023, use automated deployments instead
    • Support for PostgreSQL version 11 ends 9 November 2024
    • Azure unmanaged disks for VM disks will be retired on 30 September 2025
    • Migrate to conversational language understanding before Language Understanding (LUIS) is retired on 1 October 2025
    • Upgrade your Azure Cache for Redis instances to use Redis version 6 by 30 June 2023
    • App Service support for Ruby is ending 12 April 2023 
    • Azure Basic Load Balancer will be retired on 30 September 2025—upgrade to Standard Load Balancer
    • Azure Batch TLS 1.0/1.1 will be retired on 31 March 2023
    • Support for Azure API Management self-hosted gateway version 0 and version 1 ends 1 October 2023
    • Azure Static Web Apps support for Node 12 ends on 3 December 2022
    • Azure Batch Low Priority VMs will be retired on 30 September 2025
    • Azure Percept DK and support from associated Azure services will be retired on March 30th, 2023
    • Upgrade to Standard SKU public IP addresses in Azure by 30 September 2025—Basic SKU will be retired
    • Azure classic resource providers will be retired on 31 August 2024
    • Desired state configuration VM Extension for Linux, and Azure Automation DSC support for Linux, will be retired on 30 September 2023
    • Azure Static Web Apps extended support for .NET Core 3.1 ends on 3 December 2022
    • Azure Batch Certificates will be retired on 29 February 2024
    • Integration Services Environment will be retired on 31 August 2024 – transition to Logic Apps Standard
    • Azure Functions support for Node 12 is ending on 13 December 2022

    Check out the Azure Updates page if any of these affect you.

    https://azure.microsoft.com/en-us/updates/


    COMING UP FOR ME.

    I mentioned the Microsoft Ignite Recap panel I am on at the beginning of the newsletter with some other folks. So tune in if that interests you.

    I’m recording. I’m writing. I’m making plans for the rest of the year and 2023. Lots going on. Nothing to announce just yet.


    WHERE TO FIND ME.

    And that’s it for issue 3.19. Thanks for reading this far. Talk to you again in two weeks.

    What is your favorite platform to be on? Perhaps we can connect there.

    Facebook Page: https://www.facebook.com/getcloudskills/ 

    LinkedIn: https://www.linkedin.com/in/scottjduffy/

    Instagram: https://www.instagram.com/getcloudskills.ca/

    Twitter: https://twitter.com/scottjduffy

    Udemy: https://www.udemy.com/user/scottduffy2/

    LinkedIn Learning: https://www.lynda.com/Scott-Duffy/1993589682-1.html

  • Azure World Newsletter – Issue 3.18

    Azure World Newsletter – Issue 3.18

    September 21, 2022

    Welcome to the eighteenth edition of the Azure World Newsletter in 2022.

    Registration is now open for Microsoft Ignite, which takes place in Seattle from October 12-14. As with the past couple of years, you can watch the sessions online, although there is an in-person element this year. You can sign up here.

    https://ignite.microsoft.com/en-US/

    I’ve been invited to be part of a panel after Ignite to discuss the event, which is taking place on October 20. I’ll include a link to that here:

    https://www.meetup.com/comecloudwithus/events/288402133/

    Thanks so much for being a subscriber! The unsubscribe link is at the bottom if you want to stop receiving these emails.


    ONE.

    If you’re familiar with Azure administration or have taken the AZ-104 exam, you’ve likely heard the term “infrastructure-as-code (IAC).”

    This is the concept of having your infrastructure (VMs, apps, containers, networks, storage, etc.) documented in ARM templates (or Bicep or Teraform) so that you can re-create the infrastructure at any time. In fact, if you follow this approach, you’re likely using the ARM templates to control your infrastructure and not making any changes to the infrastructure directly ever.

    I recently heard the term “enterprise policy as code (EPAC).” Policy is Azure’s governance tool and has been growing more useful and powerful over time. Just recently, I saw an Azure Policy AKS extension that allows you to extend the reach of Policy into AKS pods. So you can enforce company governance policies on the contents of containers now.

    The idea is to have a set of policies that must be universally deployed and enforced across your enterprise. You might have a dozen subscriptions and nested management groups, but you want to ensure the Policies are properly deployed and configured in each. Instead of manually checking each subscription for the right set of policies with the right settings (which could number in the dozens or hundreds), Policy as Code has you deploying policies to all subscriptions from a central Azure DevOps pipeline.

    Adding a centralized management layer to your policy assignment reduces human error and configuration drift.

    You might think Blueprint was supposed to be the tool to deploy policies to new subscriptions, and you’d be right. But this Policy as code approach is ongoing, whereas Blueprints is a one-time assignment.

    Microsoft has a blog post talking about it:
    https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/azure-enterprise-policy-as-code-a-new-approach/ba-p/3607843

    As well as a GitHub repository containing an example DevOps pipeline and other resources to get started:
    https://github.com/Azure/enterprise-azure-policy-as-code


    TWO.

    So I posted a question to the Azure User Group on Facebook (https://www.facebook.com/groups/azureusergroupunofficial) if anyone had anything cool in Azure that I should write about.

    CataLin Magher suggested “Azure Automanage Machine Configuration.” This is interesting because I wrote about “Policy as code” in the first section of this newsletter above. Azure Automanage Machine Configuration uses Policy to manage machine configuration for Azure VMs and virtual machines outside of Azure using Arc.

    Azure Automanage is an umbrella service that can manage many virtual machine-related features such as boot diagnostics, backup, monitoring, update management, change tracking, inventory, log analytics, and security center.

    But machine configuration keeps track of the installation settings of a VM. This is called “Desired State Configuration” in other contexts.

    In my AZ-104 course, we talked about DSC in the context of using ARM templates (with Azure Automation) to keep infrastructure in the desired state. Azure Automanage seems to be a more advanced form of this, allowing you to onboard an existing virtual machine, and track its configuration to ensure nothing changes.

    Microsoft describes it like this:

    “Azure Automanage also automatically monitors for drift and corrects for it when detected. What this means is if your virtual machine or Arc-enabled server is onboarded to Azure Automanage, we’ll monitor your machine to ensure that it continues to comply with its configuration profile across its entire lifecycle. If your virtual machine does drift or deviate from the profile (for example, if a service is off-boarded), we will correct it and pull your machine back into the desired state.”

    You can check out Azure Automanage Machine Configuration here:
    https://learn.microsoft.com/en-us/azure/governance/machine-configuration/overview


    AZURE PLATFORM UPDATES.

    The following announcements were made in the last two weeks:

    • Azure Dedicated Host support for Ultra Disk Storage, in GA
    • Encrypt managed disks with cross-tenant customer-managed keys, in preview
    • Built-in Azure Monitor alerts for Azure Backup, in GA
    • gRPC support is enabled for Linux workloads across App Service, in preview
    • Monitoring for Ampere Altra Arm–based VMs and AKS clusters, in preview
    • Soft delete in Azure Container Registry, in preview
    • AKS operation abort, in preview
    • Multi-instance GPU support in AKS, in GA
    • Reserved capacity for Azure Backup Storage, in GA
    • Resizing of peered virtual networks, in GA
    • Azure Ultra Disk Storage in Qatar Central, in GA

    Check out the Azure Updates page if any of these affect you.

    https://azure.microsoft.com/en-us/updates/


    COMING UP FOR ME.

    I just recently published a couple of new videos to my YouTube channel:

    Virtual Network Manager – Hub and Spoke Network Topology Step-by-Step

    It’s getting some good feedback, so if this interests you, I encourage you to look.


    WHERE TO FIND ME.

    And that’s it for issue 3.18. Thanks for reading this far. Talk to you again in two weeks.

    What is your favorite platform to be on? Perhaps we can connect there.

    Facebook Page: https://www.facebook.com/getcloudskills/ 

    LinkedIn: https://www.linkedin.com/in/scottjduffy/

    Instagram: https://www.instagram.com/getcloudskills.ca/

    Twitter: https://twitter.com/scottjduffy

    Udemy: https://www.udemy.com/user/scottduffy2/

    LinkedIn Learning: https://www.lynda.com/Scott-Duffy/1993589682-1.html

  • Azure World Newsletter – Issue 3.17

    Azure World Newsletter – Issue 3.17

    September 8, 2022

    Welcome to the seventeenth edition of the Azure World Newsletter in 2022.

    As I write this week’s newsletter, I can hear the kids in the school down the street playing in the schoolyard. Monday was the first day back to school here in Portugal.

    Microsoft Ignite will be from October 12 to 14 this fall. There is a limited in-person element, so it’s nice to see conferences returning to being in-person. And, of course, it will be available entirely online as well. But as of now, there is no registration link and no ability to buy tickets for the in-person conference. I will keep you posted on that.

    Thanks so much for being a subscriber! The unsubscribe link is at the bottom if you want to stop receiving these emails.


    ONE.

    The EU competition regulators are always watching. In the past ten years, Microsoft has paid over 1.6 billion Euros in fines to EU anti-trust regulators. Perhaps they are getting tired of paying these fees because Microsoft announced some Azure licensing changes that affect their competitors.

    The changes affect licensing worldwide, not just in Europe.

    The changes have to do with how expensive it is to run Windows, Office, or SQL Server with competing cloud vendors compared to how cheap it is to run those products with Azure. Microsoft is generally trying to give customers more options beyond the traditional large cloud platforms by including smaller cloud and hosting providers in the licensing benefits.

    One of the responses to this complaint was that Microsoft is now allowing “per virtual core” licensing instead of forcing you to pay for licenses for all the physical cores on a server. This makes it cheaper to run Windows Server in a virtualized environment. Cheaper to run Windows sounds like a win.

    Another proposed change is in licensing virtualized Windows 10 or Windows 11 environments. You no longer need a Windows license for the virtual environment if you have a Microsoft 365 F3/E3/E5 license. Also sounds like a win.

    And lastly, Microsoft is making bringing your existing EA software licenses to smaller cloud platforms and third-party hosts easier. It appears to work similarly to Azure’s “Hybrid Benefit” option. So if you have those Windows or SQL Server licenses, you can use them with other hosting providers. This option excludes AWS, Alibaba, Google Cloud, and other big providers since you acquire your Windows licenses directly from those vendors.

    There’s quite clearly a delicate game being played here between EU Anti-Competitive Regulators and their actual large competitors. They appear to be making it easier for all other hosting environments to compete (with Windows and Microsoft licensed solutions) with any other cloud environment. I don’t think the competitors were too happy with that. I guess they wanted it to be easier for them to compete with Azure and not more accessible for others to compete with them…

    I have always found licensing stuff complicated (because it is), so instead of relying on my summary of the changes, check out the official Microsoft sources below.

    For more:
    https://www.microsoft.com/en-us/licensing/news/options-for-hosted-cloud
    https://blogs.partner.microsoft.com/mpn/new-licensing-benefits-make-bringing-workloads-and-licenses-to-partners-clouds-easier/
    https://www.thurrott.com/cloud/271491/microsoft-finalizes-plans-to-fix-unfair-licensing-in-eu


    TWO.

    Many companies are moving to a more virtualized environment. With Azure Virtual Desktop, the traditional “workstation” can now live in the cloud, and employees can access their office anywhere. Not only from home but also on their mobile device on the go.

    This also helps with the old problem of employees accidentally leaving their laptops in a taxi or train, as no essential company data would be on those hard drives. If everything lives in the cloud and security is configured correctly, all the finder gets is a laptop that contains personal information, not company information. Far less valuable.

    Microsoft recently released a new article in the Architecture Center on “Virtual Desktop Architecture Design.”

    This article introduces the topic, a path to production, and a list of security and other best practices for using Azure Virtual Desktop.

    It also touches on using FSLogix to manage the roaming profiles in remote computing environments.

    I think it’s a good idea to check the Architecture Center from time to time because Microsoft summarizes its Azure design tips and best practices there.

    For more:
    https://docs.microsoft.com/en-us/azure/architecture/guide/virtual-desktop/start-here


    AZURE PLATFORM UPDATES.

    The following announcements were made in the last two weeks:

    • Azure Data Explorer supports native ingestion from Amazon S3
    • ExpressRoute IPv6 Support for Global Reach
    • Prevent a lifecycle management policy from archiving recently rehydrated blobs
    • Live resize for Premium SSD and Standard SSD Disk Storage
    • Enterprise-grade edge for Azure Static Web Apps
    • Azure Functions extension for Event Grid blob trigger
    • App Configuration references for App Service and Azure Functions
    • Azure Cosmos DB integrated cache
    • Encrypt storage account with cross-tenant customer-managed keys, in preview
    • Up to 45% performance gains in Stream Analytics stream processing
    • Resource instance rules for access to Azure Storage

    Check out the Azure Updates page if any of these affect you.

    https://azure.microsoft.com/en-us/updates/


    COMING UP FOR ME.

    I watched some of my courses this past week to ensure they’re completely up-to-date.

    I first checked the SC-900 Azure Security Fundamentals course. The exam requirements had recently changed, so I removed some topics from the course that is no longer required by the exam. As well, I added videos to cover the new topics. And updated almost every video to ensure it’s relevant to the latest exam requirements. Feel free to check out the new SC-900 Azure Security Fundamentals course if this interests you. http://sjd.ca/sc900

    And then, I checked the AI-900 Azure AI Fundamentals course. A few things have recently changed regarding Azure Cognitive Services, such as some restrictions on computer vision and voice services for privacy and safety concerns. Also, throughout 2022, Azure has renamed a few of the services and folded them into other services. This course didn’t need as many updates as SC-900 did, but I can say it’s completely up-to-date too. http://sjd.ca/ai900

    Students in my TOGAF courses also might notice some changes. TOGAF is an enterprise architect standard that doesn’t change too frequently, but The Open Group recently came out with TOGAF Standard, 10th Edition. There is no certification yet, but I updated the TOGAF 9.2 Part 1 and Part 2 courses to mention this new standard and discuss the lack of a certification path. I also made some other changes to freshen up the courses for 2022. You can see those courses here if you’re interested. https://sjd.ca/togaf92pt1 and https://sjd.ca/togaf92pt2


    WHERE TO FIND ME.

    And that’s it for issue 3.17. Thanks for reading this far. Talk to you again in two weeks.

    What is your favorite platform to be on? Perhaps we can connect there.

    Facebook Page: https://www.facebook.com/getcloudskills/ 

    LinkedIn: https://www.linkedin.com/in/scottjduffy/

    Instagram: https://www.instagram.com/getcloudskills.ca/

    Twitter: https://twitter.com/scottjduffy

    Udemy: https://www.udemy.com/user/scottduffy2/

    LinkedIn Learning: https://www.lynda.com/Scott-Duffy/1993589682-1.html

  • Azure Cognitive Services Updates for AI-102 Exam

    Azure Cognitive Services Updates for AI-102 Exam

    Here’s some brand new content from the SoftwareArchitect.ca YouTube channel that you might find interesting.

    Recently, Microsoft announced additional policy changes to restrict the availability of Azure face and voice recognition services in various Cognitive Services. This includes custom voice services.

    In this video, I discuss the changes.

    Azure Cognitive Services Updates for AI-102 Exam

    Or you can see the video directly on YouTube.

  • Azure World Newsletter – Issue 3.16

    Azure World Newsletter – Issue 3.16

    August 24, 2022

    Welcome to the sixteenth edition of the Azure World Newsletter in 2022.

    As we’re coming to the end of August, there does not seem to be much Azure news. I pulled out a couple of stories that caught my attention. Hope you are having a lovely summer.

    Thanks so much for being a subscriber! The unsubscribe link is at the bottom if you want to stop receiving these emails.


    ONE.

    I spent most of my career (before becoming a trainer) as a consultant, working for various clients. I can vividly recall arriving at a new client site in 2015 with a fresh new computer in front of me. They sent me a list of instructions on how to get the development system set up. It took two days to download the code from source control, compile everything, and get the inter-application communication connections (WCF!) working between the various components. Two whole days before I could contribute even a single line of new code to the project. 

    And every time this company purchased new workstations for their developers, the development team had to pause work for two days to set the new machines up. Or when something on a developer workstation stopped working for an unknown reason, that person had to wipe everything clean and start over. 

    In 2022, this should no longer be an issue.

    Recently, Microsoft announced a new service called Dev Box. I am excited to see this rolled out because it’s needed in many places.

    A company can now create a developer VM image, already provisioned with everything a developer needs to do their work. The development manager can ensure all of the security settings are properly assigned for that developer to work, and the operations manager can ensure the device is up-to-date with all the latest patches and authorized to be on the network.

    These VMs can be customized per project. So front-end developers can get one setup, and data engineers can get another. 

    New developers are ready to work on a project earlier than in the past. Senior developers can more easily “context switch” between different projects. If you work from home on a personal device, it means not needing to install all the IDEs, code, and extras on your computer just to do some work. Especially if that machine doesn’t exactly match the standard developer workstation. 

    Of course, you can have both auto-shutdown and auto-start controls on these VMs to save money. Developers actively working in a VM will be prompted and can delay the auto-shutdown if they are still working in that environment.

    This idea of a development workstation being in the cloud is not new. But having an integrated environment where developers, development managers, and IT ops can manage these cloud VMs means that everyone knows what is happening. It also ensures that the appropriate security controls are in place, so these developer VMs remain compliant with company policy as existing workstations. 

    Dev Box is in public preview and is available to test in the Portal.
    Read more: https://azure.microsoft.com/en-us/blog/announcing-microsoft-dev-box-preview/


    TWO.

    I saw this a couple of weeks ago and thought it needed more attention.

    Microsoft is dropping official support for PHP starting with version 8.0.

    And PHP 7.4 on Azure reaches the end of extended support on November 28, 2022.

    Therefore, if you have any PHP applications (WordPress?) running in an Azure App Service for Windows, you might consider migrating those applications to Linux soon. And upgrading to PHP 8.

    Don’t worry. PHP apps won’t stop working after November 28. They’ll just not be getting any further updates. And you can’t create new applications (using the Portal wizard) for that old language version.
    Read more: https://github.com/Azure/app-service-linux-docs/blob/master/Runtime_Support/php_support.md#end-of-life-for-php-74


    AZURE PLATFORM UPDATES.

    The following announcements were made in the last two weeks:

    • Azure Dedicated Host support for Ultra SSD, in preview
    • .NET 7 support in Linux Consumption Plan, in preview
    • AKS node pool user start/stop feature
    • Azure Dedicated Host restart, in preview
    • Serverless SQL for Azure Databricks, in preview
    • Update management center in Azure, in preview
    • Microsoft Azure available from new cloud region in Qatar
    • Microsoft Dev Box, in preview
    • Automated deployments in AKS, in preview
    • Key management system integration with AKS
    • App Configuration geo-replication support, in preview
    • Reserved instance pricing for Azure Cache for Redis Enterprise
    • Hierarchical forecasting for Azure Machine Learning
    • User-defined routes support for private endpoints
    • Network security groups support for private endpoints
    • UAE North Availability Zones

    Check out the Azure Updates page if any of these affect you.

    https://azure.microsoft.com/en-us/updates/


    COMING UP FOR ME.

    I’m very happy with the launch of the AZ-500 course as of a couple of weeks ago. Thanks to everyone who has enrolled in that on Udemy.

    I have already started on the next course. I’m very excited about it. It’ll still be in the security certification area. Stay tuned for that!


    WHERE TO FIND ME.

    And that’s it for issue 3.16. Thanks for reading this far. Talk to you again in two weeks.

    What is your favorite platform to be on? Perhaps we can connect there.

    Facebook Page: https://www.facebook.com/getcloudskills/ 

    LinkedIn: https://www.linkedin.com/in/scottjduffy/

    Instagram: https://www.instagram.com/getcloudskills.ca/

    Twitter: https://twitter.com/scottjduffy

    Udemy: https://www.udemy.com/user/scottduffy2/

    LinkedIn Learning: https://www.lynda.com/Scott-Duffy/1993589682-1.html

  • Azure World Newsletter – Issue 3.15

    Azure World Newsletter – Issue 3.15

    August 10, 2022

    Welcome to the fifteenth edition of the Azure World Newsletter in 2022. 

    Finally! My new AZ-500 Microsoft Azure Security Technologies course is live on Udemy. Jordi has added a study guide, some labs, and is almost ready to publish a practice test in that course. We’re very excited to see you inside. Check the end of the newsletter for the launch pricing coupon link.

    I’m doing well, and I hope you are too. I am immensely grateful for you as a newsletter subscriber, a student, or just someone I’m connected to on one of the social media platforms. 

    Thanks so much for being a subscriber! The unsubscribe link is at the bottom if you want to stop receiving these emails.


    ONE.

    I missed this announcement when it first came out, but I just saw it mentioned again.

    Oracle and Microsoft have announced a partnership named Oracle Database Service for Microsoft Azure.

    At first, I thought this might be a managed Oracle database in Azure, but it’s more interesting (and complicated) than that. 

    This is connectivity between the Azure Cloud and the Oracle Cloud. You can provision, manage and monitor Oracle Cloud databases in Azure. Which is cool by itself. Similar to how Azure Arc allows you to manage and monitor VMs running in AWS and other locations within Azure.

    But it’s even more than that! You can have your Oracle databases running in Oracle Cloud and have access to them from your Azure applications. And suitable for production use!

    The implication here is very interesting. You can run your database in Oracle Cloud and your applications in Azure Cloud!

    For more information, see: https://news.microsoft.com/2022/07/20/oracle-and-microsoft-announce-availability-of-oracle-database-service-for-microsoft-azure/


    TWO.

    On the development side, Microsoft has introduced a new framework for real-time collaborative experiences called Fluid Framework. This open-source project enables developers to use familiar shared data structures to power a front-end web application with real-time data synchronization to all clients. This was introduced at Build 2022.

    Imagine a team whose members are all working from home. One member updates some data element in their custom app, and every other team member sees that updated on their screen instantly. The Fluid Framework helps build these real-time collaborative apps.

    To build apps that operate like this, there are a set of client libraries that you can include in your applications. And for them to communicate in real-time with each other, they will use a new Azure service called Azure Fluid Relay.

    As of August 1, Azure Fluid Relay is in general availability, which means it can be used in production settings and has an SLA.

    The Fluid Framework client libraries are available at: https://fluidframework.com/
    More information on the Azure Fluid Relay Service is at: https://devblogs.microsoft.com/microsoft365dev/announcing-general-availability-of-azure-fluid-relay-service/


    AZURE PLATFORM UPDATES.

    I don’t recall when there were only four major announcements of new features in two weeks. But that’s OK! I expect they’re preparing some really interesting stuff for the fall. The following announcements were made in the last two weeks: 

    • Azure Public IPv6 offerings are free as of July 31, 2022
    • Azure StorSimple 8000/1200 series will no longer be supported starting 31st December 2022
    • The cost of resources in the US West 3 region has been reduced as of August 1, 2022
    • New Azure Roles called “Reservation Administrator” and “Reservation Reader” in the Azure Portal

    Check out the Azure Updates page if any of these affect you.

    https://azure.microsoft.com/en-us/updates/


    COMING UP FOR ME.

    My brand new AZ-500 course is officially live on Udemy!

    I haven’t actually launched it yet, so you’re the first to know. Right now, you have the chance to watch this course before anyone, and I can’t wait to hear what you think. 

    You can grab the course for the launch price of USD $9.99 for the next 4 days only. The coupon expires 08/14/2022 at 2:39 PM PDT.

    https://www.udemy.com/course/az500-azure/?couponCode=LAUNCH10


    WHERE TO FIND ME.

    And that’s it for issue 3.15. Thanks for reading this far. Talk to you again in two weeks.

    What is your favorite platform to be on? Perhaps we can connect there.

    Facebook Page: https://www.facebook.com/getcloudskills/ 

    LinkedIn: https://www.linkedin.com/in/scottjduffy/

    Instagram: https://www.instagram.com/getcloudskills.ca/

    Twitter: https://twitter.com/scottjduffy

    Udemy: https://www.udemy.com/user/scottduffy2/

    LinkedIn Learning: https://www.lynda.com/Scott-Duffy/1993589682-1.html

  • Azure World Newsletter – Issue 3.14

    Azure World Newsletter – Issue 3.14

    July 27, 2022

    Welcome to the fourteenth edition of the Azure World Newsletter in 2022. 

    I mentioned in the last newsletter about traveling for a quick birthday holiday. My wife and I went to Scotland for a few days, which was lovely. It has never been in my top 10 dream destinations, but I was utterly charmed by Edinburgh and Glasgow. I posted a couple of pictures on my Twitter feed. I would go there again. Thank you, Scotland!

    If you’re looking to save some money on my Udemy courses, the latest coupon code is at the end of the newsletter.

    Thanks so much for being a subscriber! The unsubscribe link is at the bottom if you want to stop receiving these emails.


    ONE.

    Microsoft released its quarterly earnings last night.

    Although earnings were slightly up over a year ago, the numbers were below what stock analysts expected. Revenue was up 12%, while net income was up 2%.

    Azure and other cloud services grew by 40%, which is still great. But that number continues to fall. Analysts were predicting 44% growth in Azure.

    The strong US dollar is continuing to impact Microsoft’s business as people who do not live in the United States do not pay in US dollars. So Microsoft sees declining foreign revenue when converting everything to US dollars.

    As I write this, I think some people are still digesting what it all means. The stock was initially down, but now it’s up. Google also released its earnings around the same time, so the market is really just trying to figure out if we’ll be going into a big recession or not.

    Source: https://news.microsoft.com/2022/07/26/microsoft-cloud-strength-drives-fourth-quarter-results-4/


    TWO.

    For those command-line aficionados, there is a new tool called Azure Developer CLI (azd).

    The Azure Developer CLI (azd) provides a set of developer-friendly commands that map to key stages in your workflow – code, build, deploy, monitor, repeat.

    We should be clear here. The Azure Developer CLI (azd) and Azure CLI are different things.

    The Azure CLI allows you to access the Azure Resource Manager control plane, which allows you to create, modify and destroy Azure resources of all types.

    The azd focuses on developer workflow. You can create Azure resources, but you can also interact with code and deploy projects. For instance, there is an “up” command that does a bunch of tasks in a single step.

    i.e. azd up –template todo-nodejs-mongo

    This will download the template code, initialize a project, and create and configure all the necessary Azure resources. In the end, you’ll have a local clone of the repo, a bunch of resources provisioned in your Azure subscription, and the app has been built and deployed to Azure.

    Of course, this command line tool is reminiscent of the “docker” command line. But instead of only interacting with containers, the azd command line works with App Services, Container Apps, Static Web Apps, and Functions too. One command line to rule them all.

    Source: https://docs.microsoft.com/en-us/azure/developer/azure-developer-cli/overview?tabs=nodejs


    AZURE PLATFORM UPDATES.

    Now that July is here, the pace of announcements has slowed. We still saw a few interesting things. The following announcements were made in the last two weeks:

    • Azure Gateway Load Balancer, in GA
    • Most Face API features to be retired June 30, 2023
    • Migration of Face API out of North Central US Region by June 30, 2023
    • Premium SSD v2 Disk Storage, in preview
    • TLS 1.3 support on Application Gateway, in preview
    • Virtual machine restore points, in GA
    • Customer managed keys for Azure Database for MySQL, in preview
    • Premium-series hardware for Azure SQL Managed Instance, in GA
    • Azure Confidential Ledger, in GA
    • Microsoft Azure Web PubSub Premium Tier, in preview
    • Bring your own Container Network Interface plugin with AKS, in GA
    • Azure Functions support for PowerShell 7.2, in GA
    • Calico for Windows on AKS, in GA
    • Tag filtering in Azure Advisor, in GA
    • Azure Monitor for SAP solutions, in preview
    • Azure confidential VMs (DCasv5/ECasv5-series VMs), in GA
    • Microsoft Cost Details API for EA and MCA customers, in GA
    • Share images across subscriptions and tenants with new Compute Gallery feature, in preview
    • VM Applications – Manage and deploy applications to VMs and VMSS, in GA

    Check out the Azure Updates page if any of these affect you.

    https://azure.microsoft.com/en-us/updates/


    COMING UP FOR ME.

    Several courses need some small updates, and I might look at those as we go into August. No big announcements from me yet. Soon I hope, but not yet.

    Coupon alert!

    I just created a coupon for my Udemy courses today called BDAYCOUPON. Use that code at checkout to ensure the biggest discount I can get. The coupon expires in 5 days. Prices start at US$9.99.

    My Azure and TOGAF Udemy courses are available on the following link: https://www.udemy.com/user/scottduffy2/


    WHERE TO FIND ME.

    And that’s it for issue 3.14. Thanks for reading this far. Talk to you again in two weeks.

    What is your favorite platform to be on? Perhaps we can connect there.

    Facebook Page: https://www.facebook.com/getcloudskills/ 

    LinkedIn: https://www.linkedin.com/in/scottjduffy/

    Instagram: https://www.instagram.com/getcloudskills.ca/

    Twitter: https://twitter.com/scottjduffy

    Udemy: https://www.udemy.com/user/scottduffy2/

    LinkedIn Learning: https://www.lynda.com/Scott-Duffy/1993589682-1.html