<?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>topic Re: Existing Services Discovery - avoiding re-deploy reconcile issues in NSO Developer Hub Discussions</title>
    <link>https://community.cisco.com/t5/nso-developer-hub-discussions/existing-services-discovery-avoiding-re-deploy-reconcile-issues/m-p/3489760#M925</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have heard of some work being done with respect to backpointers for leaf-list elements to make them full fledged nodes. Would that help? I can find out more details. Best to raise this with Engineering and see if something can be worked out.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: arial; font-size: 12px;"&gt;&lt;EM&gt;Please explain 'it is not advised to hang services off /services/&amp;lt;my-service&amp;gt;'?&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;One instance where augmenting a service under /services becomes problematic is when using Layered Services Architecture (LSA). That is, when a higher-level-service needs to map to a lower-level-service on a different NSO node. There might be other reasons. As a result the instrumentation (ncs-make-package) has been updated to not augment service-skeleton under /services. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 25 May 2017 06:30:29 GMT</pubDate>
    <dc:creator>alam.bilal</dc:creator>
    <dc:date>2017-05-25T06:30:29Z</dc:date>
    <item>
      <title>Existing Services Discovery - avoiding re-deploy reconcile issues</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/existing-services-discovery-avoiding-re-deploy-reconcile-issues/m-p/3489757#M922</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;This is a proposal for managing initial Services Discovery in an unorthodox manner.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;Comments are welcome and invited.&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;SPAN style="font-size: 14pt;"&gt;&lt;STRONG&gt;Problem&lt;/STRONG&gt;&lt;/SPAN&gt; - Existing services that don't reconcile correctly&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;Services created from scratch in the system have correct refcounters and can be life-cycle managed without problems.&amp;nbsp; (Move, Add, Change, Delete)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;But existing services present a management problem when the reconciliation process does not set the refcounters correctly.&amp;nbsp; A change to a service deployed this way produces unexpected results when NSO thinks part of the service is shared with another service or the original configuration. i.e. The Service does not OWN that piece of the configuration.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;Service Discovery has 4 steps:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;1. Parse existing configuration(s) for service parts&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;2. Write those parts to the /root/services/&amp;lt;service&amp;gt; tree&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;3. Commit&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;4. Re-deploy reconcile&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;In addition all of this must be done with absolutely NO impact on the routers or the network.&amp;nbsp; This is a trivial requirement when there are a few services (say less than 50) - but when there are several 1,000 services it is not trivial at all.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 14pt;"&gt;&lt;STRONG&gt;Proposal (applies to initial Service Discovery, not ongoing out-of-band additions):&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;1. Create a simulated network with devices names equal to the live network.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;2. Load the simulated network with the real network configurations.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;3. Parse the services into an external data structure&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;4. Reset the simulated routers - and load basic configurations (some parts of the services may not be allowed to create parts of the configuration, so these parts need to be created in the configuration before commit)&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;4. Write and commit the services (no need to re-deploy reconcile, these are new services)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;5. Delete the simulated devices, connect to the real devices (same names) and sync-from&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;If you read this far - you probably have an opinion - or can see why this is not possible or ill-advised.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;Please comment.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;Thank you.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;Ken McNamara&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;Applied Computer Solutions&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Mar 2019 11:50:19 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/existing-services-discovery-avoiding-re-deploy-reconcile-issues/m-p/3489757#M922</guid>
      <dc:creator>ken.mcnamara1</dc:creator>
      <dc:date>2019-03-01T11:50:19Z</dc:date>
    </item>
    <item>
      <title>Re: Existing Services Discovery - avoiding re-deploy reconcile issues</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/existing-services-discovery-avoiding-re-deploy-reconcile-issues/m-p/3489758#M923</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Is the main concern the scaling of the reconciliation process when doing it all in NSO?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: arial; font-size: 16px;"&gt;&lt;EM&gt;In addition all of this must be done with absolutely NO impact on the routers or the network&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Wouldn't FASTMAP should ensure this. As part of service reconciliation, NSO should not be sending anything to the network given the configs are already there on the devices and NSO computes minimum delta diffs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: arial; font-size: 16px;"&gt;&lt;EM&gt;This is a trivial requirement when there are a few services (say less than 50) - but when there are several 1,000 services it is not trivial at all.&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-size: 13.3333px; font-family: arial;"&gt;If this becomes an issue (CPU/Compute intensive???), perhaps can be done in an incremental manner. Either via some NB System or an Action can be put in for the service that can reconcile a subset (indicated via the input to the Action).&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-size: 13.3333px; font-family: arial;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-size: 13.3333px; font-family: arial;"&gt;The proposed alternative may be cumbersome to setup. Creating a simulated network and ensuring appropriate "base" configs are present.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-size: 13.3333px; font-family: arial;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-size: 13.3333px; font-family: arial;"&gt;A couple more comments:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-size: 13.3333px; font-family: arial;"&gt;a. Sometimes the service instance data can be retrieved from an external system. As customers keep that in some shape or form (e.g. Excel sheets, CSV etc). Need to be extra cautious to infer that from device configs. Ok for simple services but for service instances that span multiple devices can get tricky.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-size: 13.3333px; font-family: arial;"&gt;b. It is advised not to hang services off /services/&amp;lt;my-service&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 22 May 2017 06:13:37 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/existing-services-discovery-avoiding-re-deploy-reconcile-issues/m-p/3489758#M923</guid>
      <dc:creator>alam.bilal</dc:creator>
      <dc:date>2017-05-22T06:13:37Z</dc:date>
    </item>
    <item>
      <title>Re: Existing Services Discovery - avoiding re-deploy reconcile issues</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/existing-services-discovery-avoiding-re-deploy-reconcile-issues/m-p/3489759#M924</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Bilal -&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your reply and comments.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In this instance the main concern is not the scaling of reconciliation but the failure of reconcile to work correctly.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There is a part of the configuration which has a leaf-list, in this case the refcounter is left at '2' when it should be '1'. So a 'service delete' deletes a part of that section, then reinstates it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A fresh service commit does not have this problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It is trivial to review 50 'dry-run's to insure there is not impact, but not 1,000.&amp;nbsp; In this case 'no-networking' would probably be used if the commit were being done on a live network (probably being overly cautious here, but...).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Creating a simulated network with 'base' configurations has already been done during development. The main issue here is that the templates prevent the 'creation' of some specific sections of the configuration.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Yes, parsing out the services from device configurations across multiple devices has not been easy.&amp;nbsp; But there is no reliable external data (what data exists is collected and reported by an external script that parses the raw 'show running-config's).&amp;nbsp; Parsing the CDB is much more reliable.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please explain 'it is not advised to hang services off /services/&amp;lt;my-service&amp;gt;'? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To be more formal -- /root/services/&amp;lt;my-service&amp;gt;&amp;nbsp; (&amp;lt;my-service&amp;gt; looks like servicename__servicename[uniqueID})&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you again.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;KenMc&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 22 May 2017 10:45:44 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/existing-services-discovery-avoiding-re-deploy-reconcile-issues/m-p/3489759#M924</guid>
      <dc:creator>ken.mcnamara1</dc:creator>
      <dc:date>2017-05-22T10:45:44Z</dc:date>
    </item>
    <item>
      <title>Re: Existing Services Discovery - avoiding re-deploy reconcile issues</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/existing-services-discovery-avoiding-re-deploy-reconcile-issues/m-p/3489760#M925</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have heard of some work being done with respect to backpointers for leaf-list elements to make them full fledged nodes. Would that help? I can find out more details. Best to raise this with Engineering and see if something can be worked out.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: arial; font-size: 12px;"&gt;&lt;EM&gt;Please explain 'it is not advised to hang services off /services/&amp;lt;my-service&amp;gt;'?&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;One instance where augmenting a service under /services becomes problematic is when using Layered Services Architecture (LSA). That is, when a higher-level-service needs to map to a lower-level-service on a different NSO node. There might be other reasons. As a result the instrumentation (ncs-make-package) has been updated to not augment service-skeleton under /services. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 May 2017 06:30:29 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/existing-services-discovery-avoiding-re-deploy-reconcile-issues/m-p/3489760#M925</guid>
      <dc:creator>alam.bilal</dc:creator>
      <dc:date>2017-05-25T06:30:29Z</dc:date>
    </item>
    <item>
      <title>Re: Existing Services Discovery - avoiding re-deploy reconcile issues</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-discussions/existing-services-discovery-avoiding-re-deploy-reconcile-issues/m-p/4143111#M5619</link>
      <description>&lt;P&gt;I had a similar Discussion but showed how to resolve it without using netsims as an intermediary.&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.cisco.com/t5/nso-developer-hub-discussions/why-is-commit-no-deploy-redeploy-reconcile-commit-no-networking/m-p/4142715#M5615" target="_blank"&gt;https://community.cisco.com/t5/nso-developer-hub-discussions/why-is-commit-no-deploy-redeploy-reconcile-commit-no-networking/m-p/4142715#M5615&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 28 Aug 2020 15:21:57 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-discussions/existing-services-discovery-avoiding-re-deploy-reconcile-issues/m-p/4143111#M5619</guid>
      <dc:creator>JimBoucher</dc:creator>
      <dc:date>2020-08-28T15:21:57Z</dc:date>
    </item>
  </channel>
</rss>

