{ "scene": "supply", "source": "assets/raw/course-VII-supply-chain.jpeg", "parts": [ { "name": "image", "title": "The image", "blurb": "C-I's layers, shipped as one unit - the thing whose name we must say precisely.", "z": 0, "points": [ [ 8.03, 70.47 ], [ 8.03, 51.54 ], [ 8.47, 50.6 ], [ 8.68, 50.26 ], [ 13.09, 45.51 ], [ 17.11, 42.12 ], [ 17.36, 41.99 ], [ 17.61, 42.12 ], [ 17.77, 42.25 ], [ 23.01, 46.68 ], [ 25.91, 49.65 ], [ 26.27, 50.2 ], [ 26.85, 51.52 ], [ 26.85, 70.67 ], [ 26.42, 71.67 ], [ 26.2, 72.03 ], [ 25.69, 72.78 ], [ 18.76, 78.71 ], [ 17.85, 79.49 ], [ 17.36, 79.88 ], [ 16.54, 79.23 ], [ 14.7, 77.67 ], [ 8.61, 71.75 ] ], "dx": 26.55, "dy": -0.01 }, { "name": "registry", "title": "Upstream registry", "blurb": "The managed registry CI pushes to - Azure Container Registry in the worked example.", "z": 0, "points": [ [ 31.21, 82.1 ], [ 31.11, 38.48 ], [ 31.63, 37.69 ], [ 31.88, 37.43 ], [ 34.11, 35.48 ], [ 37.16, 32.75 ], [ 37.8, 32.23 ], [ 38.43, 32.23 ], [ 39.3, 33.01 ], [ 43.66, 36.91 ], [ 44.24, 37.43 ], [ 44.49, 37.69 ], [ 45.0, 38.48 ], [ 45.48, 45.25 ], [ 45.6, 63.08 ], [ 44.92, 81.97 ], [ 44.25, 83.01 ], [ 43.12, 84.05 ], [ 41.67, 85.35 ], [ 38.51, 88.22 ], [ 38.35, 88.35 ], [ 37.8, 88.48 ], [ 33.1, 84.18 ], [ 32.54, 83.66 ], [ 31.72, 82.88 ] ], "dx": 14.12, "dy": 0.34 }, { "name": "mirror", "title": "The mirror", "blurb": "zot, a pull-through cache: the fleet asks it, it asks upstream once, everything after is local.", "z": 0, "points": [ [ 48.51, 64.72 ], [ 48.87, 52.91 ], [ 51.05, 49.54 ], [ 60.12, 40.69 ], [ 61.98, 39.78 ], [ 64.72, 42.12 ], [ 73.22, 50.34 ], [ 74.38, 52.54 ], [ 74.75, 56.78 ], [ 74.46, 68.54 ], [ 73.87, 69.89 ], [ 73.29, 70.67 ], [ 71.48, 73.01 ], [ 65.04, 79.23 ], [ 62.2, 81.58 ], [ 61.46, 81.71 ], [ 59.38, 80.67 ], [ 51.27, 72.31 ], [ 49.53, 69.74 ], [ 48.8, 67.85 ] ], "dx": 0.0, "dy": 0.0 }, { "name": "core", "title": "The node", "blurb": "Pulls local. Boot, reschedule and recovery all lean on the mirror being there.", "z": 0, "points": [ [ 75.83, 58.68 ], [ 75.91, 50.73 ], [ 76.63, 49.02 ], [ 76.93, 48.46 ], [ 78.33, 47.07 ], [ 80.6, 45.25 ], [ 82.93, 43.29 ], [ 84.1, 42.38 ], [ 84.43, 42.38 ], [ 85.43, 43.16 ], [ 87.93, 45.25 ], [ 89.38, 46.42 ], [ 91.75, 48.97 ], [ 92.55, 50.81 ], [ 92.62, 52.04 ], [ 92.62, 68.68 ], [ 92.48, 69.61 ], [ 92.26, 70.26 ], [ 91.46, 72.16 ], [ 90.05, 73.5 ], [ 84.75, 77.93 ], [ 84.51, 78.06 ], [ 84.1, 78.06 ], [ 83.68, 77.8 ], [ 79.31, 74.16 ], [ 76.93, 72.13 ], [ 76.05, 70.03 ], [ 75.98, 69.7 ], [ 75.83, 68.6 ] ], "dx": -13.37, "dy": 0.57 }, { "name": "tag", "title": "The tag", "blurb": "A promise - a mutable pointer anyone with push rights can move, and nothing records that it moved.", "z": 0, "points": [ [ 26.2, 20.46 ], [ 26.63, 19.59 ], [ 27.29, 18.86 ], [ 32.81, 12.02 ], [ 37.75, 7.75 ], [ 37.93, 7.62 ], [ 38.02, 7.62 ], [ 39.43, 8.66 ], [ 40.81, 9.7 ], [ 43.64, 11.66 ], [ 44.59, 13.25 ], [ 49.17, 18.99 ], [ 49.67, 19.58 ], [ 50.11, 20.46 ], [ 50.11, 22.5 ], [ 49.67, 23.39 ], [ 49.46, 23.69 ], [ 47.06, 26.57 ], [ 38.47, 34.96 ], [ 38.3, 35.09 ], [ 38.04, 35.22 ], [ 37.36, 34.7 ], [ 27.0, 23.79 ], [ 26.63, 23.35 ], [ 26.2, 22.47 ] ], "dx": 8.22, "dy": 13.81 }, { "name": "digest", "title": "The digest", "blurb": "A fact - sha256 of the content. Same bytes, same digest, forever. The digest does the pulling.", "z": 0, "points": [ [ 49.82, 20.3 ], [ 50.25, 19.42 ], [ 51.05, 18.51 ], [ 53.74, 15.22 ], [ 56.92, 11.39 ], [ 61.05, 8.27 ], [ 61.91, 7.62 ], [ 65.17, 10.09 ], [ 67.62, 12.55 ], [ 72.35, 18.41 ], [ 73.15, 19.3 ], [ 73.66, 20.32 ], [ 73.66, 22.33 ], [ 73.15, 23.35 ], [ 69.95, 27.03 ], [ 63.07, 34.31 ], [ 62.01, 35.09 ], [ 61.83, 35.09 ], [ 60.62, 34.18 ], [ 58.43, 32.49 ], [ 53.6, 27.21 ], [ 50.4, 23.38 ], [ 49.89, 22.34 ], [ 49.82, 20.59 ] ], "dx": -0.06, "dy": 13.82 } ] }