<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>post Sharing Cloud Cost governance at time of provisioning in ITOM blog</title>
    <link>https://www.servicenow.com/community/itom-blog/sharing-cloud-cost-governance-at-time-of-provisioning/ba-p/3027127</link>
    <description>&lt;P lang="en-AU"&gt;Operating and managing a set of cloud applications, come with some great challenges:&lt;/P&gt;
&lt;UL type="disc"&gt;
&lt;LI lang="en-AU"&gt;&lt;SPAN&gt;Managing Cost of maintaining 2 sets of infrastructure through the migration (i.e. On premise and Cloud)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI lang="en-AU"&gt;&lt;SPAN&gt;Managing cost of operating the Cloud&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI lang="en-AU"&gt;&lt;SPAN&gt;Manage standard 'patterns' for provisioning &amp;amp; change&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P lang="en-AU"&gt;These all form part of the shared responsibility model within the organisation.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Some of the personas that are interested in these challenges:&lt;/P&gt;
&lt;UL type="disc"&gt;
&lt;LI lang="en-AU"&gt;&lt;SPAN&gt;FinOps - require 'recent' visibility of what is being spent and recommendations on how they can reduce spend.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI lang="en-AU"&gt;&lt;SPAN&gt;Cost Centre manager - require visibility of what is being consumed and proposed to be consumed, so they can make purchasing decisions.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI lang="en-AU"&gt;&lt;SPAN&gt;Cloud Centre of Excellence (CCoE) - support standardisation &amp;amp; guardrails for the cloud.&amp;nbsp; They broker standard templates of 'as-a-service' solution/s so they can direct teams towards 'gold' standards and&amp;nbsp; support the organisation, in the ever changing world of cloud offerings.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI lang="en-AU"&gt;&lt;SPAN&gt;Cloud consumers (including Technical service &amp;amp; Application Owners) - require quick &amp;amp; timely self-service access to stand up &amp;amp; manage their infrastructure &amp;amp; applications, without having to know everything.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI lang="en-AU"&gt;&lt;SPAN&gt;Service Management - require the service transition to be managed &amp;amp; visibility of the service in the CMDB&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P lang="en-AU"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;These personas can be brought together in ServiceNow, with the following use cases (via&amp;nbsp;&lt;SPAN&gt;Cloud Cost Management &amp;amp; Cloud Services Catalog)&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;SPAN&gt;Displaying the price sheet of the intended offering when purchasing a new Service.&amp;nbsp;&amp;nbsp; For example, displaying the Price, when requesting a 't2.small' in 'ap-southeast-2' running 'Windows' that will operate 10x5x5, and have attached storage 2 x gp3 disks of 1000GiB - this will cost AUD$11.16 monthly, and with attached storage, gp3 &amp;amp; 1000GB - this will cost ~AUD$154 per month.&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Understanding the budget ceiling &amp;amp; current consumption for that specific Account, so that a Cost Center manager can make an approval once the request has been made.&amp;nbsp;&amp;nbsp; For example, how will that $154 per month, impact a budget of $1000 a month, where current consumption is $800 a month during the middle of the month, and the forecast will be $1600 + $75 for the new EC2 instance with storage.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;How do we integrate the proposed provisioning into a Change management model, once the 'cost' has been approved?&amp;nbsp; i.e. is this a Production Service that has a specific maintenance period where we can perform the provisioning request within.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P lang="en-AU"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;This article will go into more detail on &lt;SPAN&gt;point 1&lt;/SPAN&gt; above, and in further articles we will outline solutions for &lt;A href="https://www.servicenow.com/community/itom-blog/cloud-policies-at-time-of-provisioning-considering-cost-with/ba-p/3136141#M1128" target="_self"&gt;2 &amp;amp; 3&lt;/A&gt;&lt;/P&gt;
&lt;P lang="en-AU"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;Some quick screenshots on what the users see.&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="glennguzzo_5-1724638643955.png" style="width: 400px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/381520iF33F71E31E69844C/image-size/medium?v=v2&amp;amp;px=400" role="button" title="glennguzzo_5-1724638643955.png" alt="glennguzzo_5-1724638643955.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="glennguzzo_6-1724638643955.png" style="width: 400px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/381518iFB139E061C099CC0/image-size/medium?v=v2&amp;amp;px=400" role="button" title="glennguzzo_6-1724638643955.png" alt="glennguzzo_6-1724638643955.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="glennguzzo_7-1724638643955.png" style="width: 400px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/381519i36435C25FD3A565D/image-size/medium?v=v2&amp;amp;px=400" role="button" title="glennguzzo_7-1724638643955.png" alt="glennguzzo_7-1724638643955.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P lang="en-AU"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;&lt;U&gt;&lt;STRONG&gt;Use Case # 1 - Price visibility at time of Provisioning a Day 1&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P lang="en-AU"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;Cloud Cost Management gathers the 4 pieces of data from Cloud Providers&lt;/P&gt;
&lt;P lang="en-AU"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="glennguzzo_0-1724638431145.png" style="width: 400px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/381513iC1A2DEF2E68E94A5/image-size/medium?v=v2&amp;amp;px=400" role="button" title="glennguzzo_0-1724638431145.png" alt="glennguzzo_0-1724638431145.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;The price sheet from the Cloud provider, can be embedded into the Catalog item price engine &amp;amp; display, as part of the native Service Catalog options.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="glennguzzo_1-1724638431145.png" style="width: 400px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/381514iE8728DD60E73C380/image-size/medium?v=v2&amp;amp;px=400" role="button" title="glennguzzo_1-1724638431145.png" alt="glennguzzo_1-1724638431145.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;The example that will be worked through below, come from the&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;CSC content pack (sn_itom_csc_cp) as part of the Cloud Services Catalog (sn_itom_csc).&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;The use case will be for AWS, however, a similar data structure exists for Azure &amp;amp; GCP.&lt;/P&gt;
&lt;P lang="en-AU"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;&lt;U&gt;&lt;STRONG&gt;Use case 1A : Instance Price details&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P lang="en-AU"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;Using example item, CSC AWS EC2 Linux VM&lt;/P&gt;
&lt;P lang="en-AU"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;&lt;U&gt;Step 1 - turn on Recurring price on the Catalog Item&lt;/U&gt;&lt;/P&gt;
&lt;P lang="en-AU"&gt;Firstly, set the recurring price frequency to Monthly on the Catalog item.&lt;/P&gt;
&lt;P lang="en-AU"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;&lt;U&gt;Step 2 - populate Recurring price&lt;/U&gt;&lt;/P&gt;
&lt;P lang="en-AU"&gt;Create a String field of length 100, on sn_cld_intg_aws_instance_price_detail, called 'u_recurring_price'.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Once the SKU is placed onto the Catalog item as a variable, directed by Client Script On Change, it will alter the price display of the Catalog.&lt;/P&gt;
&lt;P lang="en-AU"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;To populate this field, this will occur once the Price sheet download job status changes to 'completed' or run Daily if catering for currency conversions (see below).&lt;/P&gt;
&lt;P lang="en-AU"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;Then I created an Action that sets this field, taking the hourly rate, and multiplying by 730.5 (the average number of hours per month).&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;In addition, I converted into AUD from USD.&lt;/P&gt;
&lt;P lang="en-AU"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;&lt;U&gt;Step 3 - Add SKU to Catalog&lt;/U&gt;&lt;/P&gt;
&lt;P lang="en-AU"&gt;Add the following Reference variable into the 'General Info' Variable set, called 'Instance Price Details' and make it read-only.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Set 'pricing_implications' to true.&lt;/P&gt;
&lt;P lang="en-AU"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;In the same variable set, 'ScheduledProfile' set 'pricing_implications' to true.&lt;/P&gt;
&lt;P lang="en-AU"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;&lt;U&gt;Step 4 - Client script on Instance or OS&lt;/U&gt;&lt;/P&gt;
&lt;P lang="en-AU"&gt;On Change of Instance type&lt;/P&gt;
&lt;P lang="en-AU"&gt;On change of OS&lt;/P&gt;
&lt;P lang="en-AU"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;Calls an Ajax Script Include 'GatherCloudPriceListAjax' and function 'gatherInstancePriceList' that retrieves the data based on the following diagram&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="glennguzzo_2-1724638431146.png" style="width: 400px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/381515i3E4E5C9411AE10E5/image-size/medium?v=v2&amp;amp;px=400" role="button" title="glennguzzo_2-1724638431146.png" alt="glennguzzo_2-1724638431146.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;&lt;U&gt;Step 5 - Schedule change&lt;/U&gt;&lt;/P&gt;
&lt;P lang="en-AU"&gt;Client script - Trigger change on instance price details&lt;/P&gt;
&lt;P lang="en-AU"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;&lt;U&gt;Step 6 - Updating recurring price&lt;/U&gt;&lt;/P&gt;
&lt;P lang="en-AU"&gt;Change the system property to true, glide.sc.use_custom_pricegenerator&lt;/P&gt;
&lt;P lang="en-AU"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;The OOTB Script include 'CatalogRecurringPriceCalculator' is extended to gather the Multiplier from the Schedule Profile (sn_cmp_schedule_profile), to alter the price.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;For example, a 10x5x5 (8x5 weekdays) has a multiplier of 0.26785714.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;NB&lt;/SPAN&gt;: the multiplier is set automatically on the record as part of CSC.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="glennguzzo_3-1724638431146.png" style="width: 400px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/381516iDA8FD8BE7B43CEC5/image-size/medium?v=v2&amp;amp;px=400" role="button" title="glennguzzo_3-1724638431146.png" alt="glennguzzo_3-1724638431146.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;&lt;U&gt;&lt;STRONG&gt;Use Case 1B: Storage price details&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P lang="en-AU"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;Using example item, CSC AWS EC2 Windows with multiple disks&lt;/P&gt;
&lt;P lang="en-AU"&gt;This will have all the instance details in Case 1A, and will be extended for Storage additional costs.&lt;/P&gt;
&lt;P lang="en-AU"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;&lt;U&gt;Step 1 - Storage Additional Cost&lt;/U&gt;&lt;/P&gt;
&lt;P lang="en-AU"&gt;Create an additional variable called 'storage_additional_cost' that will be populated within the 'Provision' variable set, with 'pricing_implications' = true.&lt;/P&gt;
&lt;P lang="en-AU"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;This will be populated by Client scripts described in&lt;/P&gt;
&lt;P lang="en-AU"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;&lt;U&gt;Step 2 - On change volume size &amp;amp; type&lt;/U&gt;&lt;/P&gt;
&lt;P lang="en-AU"&gt;Calls an Ajax Script Include 'GatherCloudPriceListAjax' and function 'gatherStoragePriceList' that retrieves the data based on the following diagram, this appends to the 'storage_additional_cost' as there maybe disks that have been added - see Step 3.&lt;/P&gt;
&lt;P lang="en-AU"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="glennguzzo_4-1724638431146.png" style="width: 400px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/381517i465D687B28F13D01/image-size/medium?v=v2&amp;amp;px=400" role="button" title="glennguzzo_4-1724638431146.png" alt="glennguzzo_4-1724638431146.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P lang="en-AU"&gt;&lt;U&gt;Step 3&amp;nbsp; - Gather additional disks&lt;/U&gt;&lt;/P&gt;
&lt;P lang="en-AU"&gt;Add an OnLoad script that takes the parent form, that allows a multi-row variable set to trigger on change events.&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;this&lt;/SPAN&gt;&lt;SPAN&gt;.cat_g_form = g_form;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P lang="en-AU"&gt;Variable Set - Configure Storage - internal_name 'configure_storage_volume'&lt;/P&gt;
&lt;P lang="en-AU"&gt;New variable 'storage_additional_cost_multiple'&lt;/P&gt;
&lt;P lang="en-AU"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;Create on change script of volume and size that sets the variable, and triggers a change in Instance Price details, which triggers a recalculation, using the JSON in the multi-row variable set.&lt;/P&gt;
&lt;P lang="en-AU"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P lang="en-AU"&gt;So with this in mind, we have addressed:&lt;/P&gt;
&lt;UL type="disc"&gt;
&lt;LI lang="en-AU"&gt;&lt;SPAN&gt;Visibility to the Cloud Consumer&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI lang="en-AU"&gt;&lt;SPAN&gt;This same visibility can translate into a budget assessment from the Cost Centre manager.&amp;nbsp; More in Use Case # 2 (link will be added here once the blog article is written)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN&gt;#cloud cost management #cloud services catalog #&lt;/SPAN&gt;better together&lt;/P&gt;</description>
    <pubDate>Thu, 26 Dec 2024 22:23:36 GMT</pubDate>
    <dc:creator>glennguzzo</dc:creator>
    <dc:date>2024-12-26T22:23:36Z</dc:date>
    <item>
      <title>Sharing Cloud Cost governance at time of provisioning</title>
      <link>https://www.servicenow.com/community/itom-blog/sharing-cloud-cost-governance-at-time-of-provisioning/ba-p/3027127</link>
      <description>&lt;P lang="en-AU"&gt;Operating and managing a set of cloud applications, come with some great challenges.&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P lang="en-AU"&gt;Price visibility at time of consumption, with the right governance &amp;amp; shared responsibility mnodel, ensures not only the consumer, but the Cloud Center of Excellence, cost managers, and finops to manage cloud spend before it becomes a problem.&lt;/P&gt;</description>
      <pubDate>Thu, 26 Dec 2024 22:23:36 GMT</pubDate>
      <guid>https://www.servicenow.com/community/itom-blog/sharing-cloud-cost-governance-at-time-of-provisioning/ba-p/3027127</guid>
      <dc:creator>glennguzzo</dc:creator>
      <dc:date>2024-12-26T22:23:36Z</dc:date>
    </item>
    <item>
      <title>Re: Sharing Cloud Cost governance at time of provisioning</title>
      <link>https://www.servicenow.com/community/itom-blog/sharing-cloud-cost-governance-at-time-of-provisioning/bc-p/3212503#M1168</link>
      <description>&lt;P&gt;Thanks for this post.&amp;nbsp; It was very helpful.&amp;nbsp; I do have a question about the a&lt;SPAN&gt;jax script Include 'GatherCloudPriceListAjax'.&amp;nbsp; Are you able to provide this code?&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 20 Mar 2025 04:26:55 GMT</pubDate>
      <guid>https://www.servicenow.com/community/itom-blog/sharing-cloud-cost-governance-at-time-of-provisioning/bc-p/3212503#M1168</guid>
      <dc:creator>plbpeter2</dc:creator>
      <dc:date>2025-03-20T04:26:55Z</dc:date>
    </item>
  </channel>
</rss>

