[zh-cn]sync case-studies/bose

Signed-off-by: xin.li <xin.li@daocloud.io>
pull/50139/head
xin.li 2025-03-19 08:05:27 +08:00
parent 2d366ba555
commit 096f0df4c8
3 changed files with 329 additions and 77 deletions

View File

@ -0,0 +1,97 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="230" height="140" viewBox="0 0 230 140" xml:space="preserve">
<desc>Created with Fabric.js 5.2.4</desc>
<defs>
</defs>
<rect x="0" y="0" width="100%" height="100%" fill="transparent"></rect>
<g transform="matrix(0 0 0 0 0 0)" id="f3a6417a-751a-40f2-a00b-b7b557077019" >
</g>
<g transform="matrix(1 0 0 1 115 70)" id="c12a0f38-fb6c-4452-b417-3377983d0379" >
<rect style="stroke: none; stroke-width: 1; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(255,255,255); fill-rule: nonzero; opacity: 1;" vector-effect="non-scaling-stroke" x="-115" y="-70" rx="0" ry="0" width="230" height="140" />
</g>
<g transform="matrix(0.79 0 0 0.66 120.12 74.09)" >
<g style="" vector-effect="non-scaling-stroke" >
<g transform="matrix(1 0 0 1 0 0)" clip-path="url(#CLIPPATH_25)" >
<clipPath id="CLIPPATH_25" >
<rect transform="matrix(1 0 0 1 0 0)" id="SVGID_4_" clip-path="url(#undefined)" x="-101.9" y="-101.9" rx="0" ry="0" width="203.8" height="203.8" />
</clipPath>
<rect style="stroke: none; stroke-width: 1; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(244,244,244); fill-rule: nonzero; opacity: 1;" vector-effect="non-scaling-stroke" x="-101.9" y="-101.9" rx="0" ry="0" width="203.8" height="203.8" />
</g>
<g transform="matrix(1 0 0 1 0 0)" clip-path="url(#CLIPPATH_26)" >
<clipPath id="CLIPPATH_26" >
<rect transform="matrix(1 0 0 1 0 0)" id="SVGID_4_" clip-path="url(#undefined)" x="-101.9" y="-101.9" rx="0" ry="0" width="203.8" height="203.8" />
</clipPath>
<rect style="stroke: none; stroke-width: 1; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(0,0,0); fill-rule: nonzero; opacity: 1;" vector-effect="non-scaling-stroke" x="-101.9" y="-101.9" rx="0" ry="0" width="203.8" height="203.8" />
</g>
<g transform="matrix(1 0 0 1 19.47 -0.1)" clip-path="url(#CLIPPATH_27)" >
<clipPath id="CLIPPATH_27" >
<rect transform="matrix(1 0 0 1 -19.47 0.1)" id="SVGID_10_" clip-path="url(#undefined)" x="-101.9" y="-101.9" rx="0" ry="0" width="203.8" height="203.8" />
</clipPath>
<path style="stroke: none; stroke-width: 1; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(244,244,244); fill-rule: nonzero; opacity: 1;" vector-effect="non-scaling-stroke" transform=" translate(-121.37, -101.8)" d="M 115.9 92 C 114.2 92 112.60000000000001 93 111.9 94.3 C 111.10000000000001 95.6 109 99.39999999999999 108.2 100.7 C 107.4 102 108.4 103.5 109.8 103.5 L 122.6 103.5 C 122.6 103.5 120.69999999999999 106.8 120.3 107.5 C 119.89999999999999 108.1 119.3 108.5 118.7 108.5 L 116.7 108.5 C 116 108.5 115.8 107.8 116 107.3 C 116.2 106.89999999999999 116.8 106 116.8 106 L 105.2 106 C 105.2 106 104.3 107.6 103.5 108.9 C 102.7 110.30000000000001 103.8 111.7 105.1 111.7 L 126.8 111.7 C 128.5 111.7 130.1 110.8 130.9 109.3 C 131.70000000000002 107.89999999999999 133.70000000000002 104.5 134.5 103 C 135.3 101.6 134.3 100.1 132.9 100.1 L 120.10000000000001 100.1 C 120.10000000000001 100.1 122.2 96.5 122.50000000000001 96 C 122.80000000000001 95.5 123.40000000000002 95.1 124.10000000000001 95.1 L 126.10000000000001 95.1 C 126.80000000000001 95.1 127.00000000000001 95.8 126.80000000000001 96.19999999999999 C 126.60000000000001 96.6 126.00000000000001 97.6 126.00000000000001 97.6 L 137.60000000000002 97.6 C 137.60000000000002 97.6 138.70000000000002 95.69999999999999 139.3 94.6 C 139.9 93.5 139.10000000000002 91.89999999999999 137.70000000000002 91.89999999999999 L 115.9 91.89999999999999" stroke-linecap="round" />
</g>
<g transform="matrix(1 0 0 1 -11.52 0)" clip-path="url(#CLIPPATH_28)" >
<clipPath id="CLIPPATH_28" >
<rect transform="matrix(1 0 0 1 11.52 0)" id="SVGID_10_" clip-path="url(#undefined)" x="-101.9" y="-101.9" rx="0" ry="0" width="203.8" height="203.8" />
</clipPath>
<path style="stroke: none; stroke-width: 1; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(244,244,244); fill-rule: nonzero; opacity: 1;" vector-effect="non-scaling-stroke" transform=" translate(-90.38, -101.9)" d="M 106.7 92 L 85 92 C 83.4 92 81.8 92.8 80.9 94.3 C 80.10000000000001 95.8 73.2 107.7 72.4 109 C 71.7 110.3 72.7 111.8 74 111.8 L 95.7 111.8 C 97.5 111.8 99 110.8 99.8 109.5 C 100.6 108.2 107.5 96.1 108.3 94.8 C 109.1 93.6 108.2 92 106.7 92 M 95.8 96.5 C 95.5 97 89.7 107 89.39999999999999 107.6 C 89.1 108.19999999999999 88.49999999999999 108.5 87.8 108.5 L 85.8 108.5 C 85.2 108.5 84.89999999999999 107.8 85.1 107.4 C 85.3 107 91.19999999999999 96.9 91.5 96.2 C 91.9 95.60000000000001 92.5 95.3 93.1 95.3 L 95.1 95.3 C 95.7 95.3 96.1 95.9 95.8 96.5" stroke-linecap="round" />
</g>
<g transform="matrix(1 0 0 1 -53.13 0)" clip-path="url(#CLIPPATH_29)" >
<clipPath id="CLIPPATH_29" >
<rect transform="matrix(1 0 0 1 53.13 0)" id="SVGID_10_" clip-path="url(#undefined)" x="-101.9" y="-101.9" rx="0" ry="0" width="203.8" height="203.8" />
</clipPath>
<path style="stroke: none; stroke-width: 1; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(244,244,244); fill-rule: nonzero; opacity: 1;" vector-effect="non-scaling-stroke" transform=" translate(-48.77, -101.9)" d="M 75.8 92 L 51.3 92 L 41.8 108.5 L 19.799999999999997 108.5 L 19.799999999999997 111.8 C 19.799999999999997 111.8 63.3 111.8 65 111.8 C 66.6 111.8 68.2 110.89999999999999 69.1 109.5 C 70 108 71.3 105.6 71.89999999999999 104.6 C 72.49999999999999 103.6 71.89999999999999 102.3 70.8 101.89999999999999 C 72.39999999999999 101.89999999999999 74 100.99999999999999 74.8 99.6 C 75.6 98.19999999999999 76.8 96.1 77.6 94.8 C 78.1 93.6 77.3 92 75.8 92 M 62.8 104.7 C 62.5 105.2 61.5 106.9 61.099999999999994 107.60000000000001 C 60.699999999999996 108.30000000000001 60.099999999999994 108.50000000000001 59.49999999999999 108.50000000000001 C 58.89999999999999 108.50000000000001 53.29999999999999 108.50000000000001 53.29999999999999 108.50000000000001 L 56.19999999999999 103.50000000000001 L 62.09999999999999 103.50000000000001 C 62.7 103.6 63.1 104.2 62.8 104.7 M 67.6 96.5 C 67.3 97 66.3 98.7 65.89999999999999 99.4 C 65.49999999999999 100.10000000000001 64.89999999999999 100.30000000000001 64.3 100.30000000000001 L 58.099999999999994 100.30000000000001 L 60.99999999999999 95.30000000000001 L 66.89999999999999 95.30000000000001 C 67.5 95.3 67.8 96 67.6 96.5" stroke-linecap="round" />
</g>
<g transform="matrix(1 0 0 1 56.5 0)" clip-path="url(#CLIPPATH_30)" >
<clipPath id="CLIPPATH_30" >
<rect transform="matrix(1 0 0 1 -56.5 0)" id="SVGID_10_" clip-path="url(#undefined)" x="-101.9" y="-101.9" rx="0" ry="0" width="203.8" height="203.8" />
</clipPath>
<polygon style="stroke: none; stroke-width: 1; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(244,244,244); fill-rule: nonzero; opacity: 1;" vector-effect="non-scaling-stroke" points="-14.2,-9.9 -25.6,9.9 2,9.9 3.9,6.6 -12.1,6.6 -9.3,1.7 6.8,1.7 8.7,-1.6 -7.4,-1.6 -4.5,-6.6 25.6,-6.6 25.6,-9.9 " />
</g>
</g>
</g>
<g transform="matrix(0 0 0 0 0 0)" >
<g style="" >
</g>
</g>
<g transform="matrix(1.22 0 0 1 115 70)" >
<g style="" vector-effect="non-scaling-stroke" >
<g transform="matrix(1 0 0 1 0 0)" clip-path="url(#CLIPPATH_31)" >
<clipPath id="CLIPPATH_31" >
<rect transform="matrix(1 0 0 1 0 0)" id="SVGID_4_" clip-path="url(#undefined)" x="-101.9" y="-101.9" rx="0" ry="0" width="203.8" height="203.8" />
</clipPath>
<rect style="stroke: none; stroke-width: 1; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(244,244,244); fill-rule: nonzero; opacity: 1;" vector-effect="non-scaling-stroke" x="-101.9" y="-101.9" rx="0" ry="0" width="203.8" height="203.8" />
</g>
<g transform="matrix(1 0 0 1 0 0)" clip-path="url(#CLIPPATH_32)" >
<clipPath id="CLIPPATH_32" >
<rect transform="matrix(1 0 0 1 0 0)" id="SVGID_4_" clip-path="url(#undefined)" x="-101.9" y="-101.9" rx="0" ry="0" width="203.8" height="203.8" />
</clipPath>
<rect style="stroke: none; stroke-width: 1; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(0,0,0); fill-rule: nonzero; opacity: 1;" vector-effect="non-scaling-stroke" x="-101.9" y="-101.9" rx="0" ry="0" width="203.8" height="203.8" />
</g>
<g transform="matrix(1 0 0 1 19.47 -0.1)" clip-path="url(#CLIPPATH_33)" >
<clipPath id="CLIPPATH_33" >
<rect transform="matrix(1 0 0 1 -19.47 0.1)" id="SVGID_10_" clip-path="url(#undefined)" x="-101.9" y="-101.9" rx="0" ry="0" width="203.8" height="203.8" />
</clipPath>
<path style="stroke: none; stroke-width: 1; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(244,244,244); fill-rule: nonzero; opacity: 1;" vector-effect="non-scaling-stroke" transform=" translate(-121.37, -101.8)" d="M 115.9 92 C 114.2 92 112.60000000000001 93 111.9 94.3 C 111.10000000000001 95.6 109 99.39999999999999 108.2 100.7 C 107.4 102 108.4 103.5 109.8 103.5 L 122.6 103.5 C 122.6 103.5 120.69999999999999 106.8 120.3 107.5 C 119.89999999999999 108.1 119.3 108.5 118.7 108.5 L 116.7 108.5 C 116 108.5 115.8 107.8 116 107.3 C 116.2 106.89999999999999 116.8 106 116.8 106 L 105.2 106 C 105.2 106 104.3 107.6 103.5 108.9 C 102.7 110.30000000000001 103.8 111.7 105.1 111.7 L 126.8 111.7 C 128.5 111.7 130.1 110.8 130.9 109.3 C 131.70000000000002 107.89999999999999 133.70000000000002 104.5 134.5 103 C 135.3 101.6 134.3 100.1 132.9 100.1 L 120.10000000000001 100.1 C 120.10000000000001 100.1 122.2 96.5 122.50000000000001 96 C 122.80000000000001 95.5 123.40000000000002 95.1 124.10000000000001 95.1 L 126.10000000000001 95.1 C 126.80000000000001 95.1 127.00000000000001 95.8 126.80000000000001 96.19999999999999 C 126.60000000000001 96.6 126.00000000000001 97.6 126.00000000000001 97.6 L 137.60000000000002 97.6 C 137.60000000000002 97.6 138.70000000000002 95.69999999999999 139.3 94.6 C 139.9 93.5 139.10000000000002 91.89999999999999 137.70000000000002 91.89999999999999 L 115.9 91.89999999999999" stroke-linecap="round" />
</g>
<g transform="matrix(1 0 0 1 -11.52 0)" clip-path="url(#CLIPPATH_34)" >
<clipPath id="CLIPPATH_34" >
<rect transform="matrix(1 0 0 1 11.52 0)" id="SVGID_10_" clip-path="url(#undefined)" x="-101.9" y="-101.9" rx="0" ry="0" width="203.8" height="203.8" />
</clipPath>
<path style="stroke: none; stroke-width: 1; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(244,244,244); fill-rule: nonzero; opacity: 1;" vector-effect="non-scaling-stroke" transform=" translate(-90.38, -101.9)" d="M 106.7 92 L 85 92 C 83.4 92 81.8 92.8 80.9 94.3 C 80.10000000000001 95.8 73.2 107.7 72.4 109 C 71.7 110.3 72.7 111.8 74 111.8 L 95.7 111.8 C 97.5 111.8 99 110.8 99.8 109.5 C 100.6 108.2 107.5 96.1 108.3 94.8 C 109.1 93.6 108.2 92 106.7 92 M 95.8 96.5 C 95.5 97 89.7 107 89.39999999999999 107.6 C 89.1 108.19999999999999 88.49999999999999 108.5 87.8 108.5 L 85.8 108.5 C 85.2 108.5 84.89999999999999 107.8 85.1 107.4 C 85.3 107 91.19999999999999 96.9 91.5 96.2 C 91.9 95.60000000000001 92.5 95.3 93.1 95.3 L 95.1 95.3 C 95.7 95.3 96.1 95.9 95.8 96.5" stroke-linecap="round" />
</g>
<g transform="matrix(1 0 0 1 -53.13 0)" clip-path="url(#CLIPPATH_35)" >
<clipPath id="CLIPPATH_35" >
<rect transform="matrix(1 0 0 1 53.13 0)" id="SVGID_10_" clip-path="url(#undefined)" x="-101.9" y="-101.9" rx="0" ry="0" width="203.8" height="203.8" />
</clipPath>
<path style="stroke: none; stroke-width: 1; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(244,244,244); fill-rule: nonzero; opacity: 1;" vector-effect="non-scaling-stroke" transform=" translate(-48.77, -101.9)" d="M 75.8 92 L 51.3 92 L 41.8 108.5 L 19.799999999999997 108.5 L 19.799999999999997 111.8 C 19.799999999999997 111.8 63.3 111.8 65 111.8 C 66.6 111.8 68.2 110.89999999999999 69.1 109.5 C 70 108 71.3 105.6 71.89999999999999 104.6 C 72.49999999999999 103.6 71.89999999999999 102.3 70.8 101.89999999999999 C 72.39999999999999 101.89999999999999 74 100.99999999999999 74.8 99.6 C 75.6 98.19999999999999 76.8 96.1 77.6 94.8 C 78.1 93.6 77.3 92 75.8 92 M 62.8 104.7 C 62.5 105.2 61.5 106.9 61.099999999999994 107.60000000000001 C 60.699999999999996 108.30000000000001 60.099999999999994 108.50000000000001 59.49999999999999 108.50000000000001 C 58.89999999999999 108.50000000000001 53.29999999999999 108.50000000000001 53.29999999999999 108.50000000000001 L 56.19999999999999 103.50000000000001 L 62.09999999999999 103.50000000000001 C 62.7 103.6 63.1 104.2 62.8 104.7 M 67.6 96.5 C 67.3 97 66.3 98.7 65.89999999999999 99.4 C 65.49999999999999 100.10000000000001 64.89999999999999 100.30000000000001 64.3 100.30000000000001 L 58.099999999999994 100.30000000000001 L 60.99999999999999 95.30000000000001 L 66.89999999999999 95.30000000000001 C 67.5 95.3 67.8 96 67.6 96.5" stroke-linecap="round" />
</g>
<g transform="matrix(1 0 0 1 56.5 0)" clip-path="url(#CLIPPATH_36)" >
<clipPath id="CLIPPATH_36" >
<rect transform="matrix(1 0 0 1 -56.5 0)" id="SVGID_10_" clip-path="url(#undefined)" x="-101.9" y="-101.9" rx="0" ry="0" width="203.8" height="203.8" />
</clipPath>
<polygon style="stroke: none; stroke-width: 1; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(244,244,244); fill-rule: nonzero; opacity: 1;" vector-effect="non-scaling-stroke" points="-14.2,-9.9 -25.6,9.9 2,9.9 3.9,6.6 -12.1,6.6 -9.3,1.7 6.8,1.7 8.7,-1.6 -7.4,-1.6 -4.5,-6.6 25.6,-6.6 25.6,-9.9 " />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -0,0 +1 @@
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 215 127"><defs><style>.cls-1{fill:transparent;}</style></defs><title>kubernetes.io-logos</title><rect class="cls-1" x="-3.55202" y="-3.16104" width="223.25536" height="134.51136"/><path id="path5" d="M141.73824,63.05113H127.82345l2.25647-3.85486c.93932-1.59742,1.78587-2.16178,3.19675-2.16178,1.40994,0,1.88056,1.12776,1.12871,2.5377h14.197l1.4109-2.5377c1.034-1.88055,1.034-3.94955-1.50463-3.94955h-25.0097c-2.25648,0-4.04329.28218-5.35949,2.44492l-4.41922,7.52127c-1.2215,2.16274-1.12776,3.94956,1.88056,3.94956h14.3854L127.636,71.13676a3.487,3.487,0,0,1-3.47894,1.88056c-1.69307,0-1.59837-1.12776-.84654-2.25552H109.20724l-1.69307,2.82084c-1.034,1.78681-.18748,3.38519,2.25648,3.38519h24.82127a6.07295,6.07295,0,0,0,5.35949-2.91457l4.23078-7.05162C145.12343,65.21387,144.65281,63.05113,141.73824,63.05113Z"/><path id="path7" d="M202.14279,57.7299a2.01608,2.01608,0,1,0,2.06708,2.00395A2.04547,2.04547,0,0,0,202.14279,57.7299Zm0,3.63676a1.62259,1.62259,0,1,1,1.673-1.63377A1.64448,1.64448,0,0,1,202.14279,61.36666Z"/><path id="path9" d="M109.67787,53.08494H88.42834c-2.91458,0-6.67569,0-8.93217,3.94955l-9.4028,15.98283c-1.31619,2.16274-.18748,3.94956,2.25648,3.94956H97.07833c2.53865,0,4.137-.7528,6.11133-3.94956l9.40279-15.98283C113.814,54.96645,111.9334,53.08494,109.67787,53.08494ZM97.73642,59.19627l-7.05065,11.9405c-.94028,1.69307-1.78682,1.88055-3.94955,1.88055s-2.7271-.75184-2.068-1.88055l7.14535-11.94049a3.9896,3.9896,0,0,1,4.0433-2.16179C97.64364,57.03449,98.6767,57.59885,97.73642,59.19627Z"/><path id="path11" d="M72.44455,53.08494H45.17837L33.42631,73.01732h-25.95l.01294,3.94956H59.846c3.47893,0,4.60669-1.69308,5.35949-3.00928l2.81988-4.88887c.7528-1.3162.7528-2.82084-.75184-3.66642a5.94452,5.94452,0,0,0,4.79513-3.19676l2.82085-4.79514C76.30036,55.06019,74.60728,53.08494,72.44455,53.08494ZM58.436,69.16342,57.02512,71.419a2.662,2.662,0,0,1-2.6324,1.59837H47.43485l3.57554-6.01663H57.777C58.99942,67.00069,58.99942,68.12845,58.436,69.16342Zm5.9229-9.96715L62.948,61.45275a2.662,2.662,0,0,1-2.6324,1.59838H53.35774l3.57268-6.01664h6.76943C64.92327,57.03449,64.92327,58.16225,64.35891,59.19627Z"/><path id="path13" d="M203.20455,59.20871a.55269.55269,0,0,0-.25635-.485,1.13731,1.13731,0,0,0-.56532-.10809h-1.01107v2.25457h.34244V59.83046h.40462l.66193,1.0388h.3941l-.7021-1.0388C202.88507,59.81994,203.20455,59.6535,203.20455,59.20871Zm-1.11341.34244h-.37687V58.872h.5988c.29173,0,.54809.03922.54809.331C202.86211,59.60854,202.41636,59.55115,202.09114,59.55115Z"/><path id="polygon1317" d="M168.49306,57.03164h35.25806l-.011-3.94955H156.741L142.73151,76.964h32.71941l2.35022-3.94955H159.09122l3.57267-6.01664h18.70993l2.25649-3.94955H165.01508Z"/></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -3,101 +3,255 @@ title: Bose Case Study
linkTitle: Bose
case_study_styles: true
cid: caseStudies
css: /css/style_case_studies.css
logo: bose_featured_logo.png
featured: false
weight: 2
quote: >
The CNCF Landscape quickly explains whats going on in all the different areas from storage to cloud providers to automation and so forth. This is our shopping cart to build a cloud infrastructure. We can go choose from the different aisles.
CNCF 全景图简明地解释了从存储到云提供商再到自动化等各个不同领域正在发生的事情,
这是我们构建云基础设施的购物车,我们可以从不同的道路中进行选择。
new_case_study_styles: true
heading_background: /images/case-studies/bose/banner1.jpg
heading_title_logo: /images/bose_logo.png
subheading: >
Bose使用 Kubernetes 支持数百万 IoT 产品的快速开发
case_study_details:
- Company: Bose Corporation
- Location: Framingham, Massachusetts
- Industry: Consumer Electronics
---
<!--
title: Bose Case Study
linkTitle: Bose
case_study_styles: true
cid: caseStudies
logo: bose_featured_logo.png
featured: false
weight: 2
quote: >
The CNCF Landscape quickly explains what's going on in all the different areas from storage to cloud providers to automation and so forth. This is our shopping cart to build a cloud infrastructure. We can go choose from the different aisles.
<div class="banner1" style="background-image: url('/images/case-studies/bose/banner1.jpg')">
<h1> CASE STUDY:<img src="/images/bose_logo.png" class="header_logo" style="width:20%;margin-bottom:-1.2%"><br> <div class="subhead" style="margin-top:1%">Bose: Supporting Rapid Development for Millions of IoT Products With Kubernetes
new_case_study_styles: true
heading_background: /images/case-studies/bose/banner1.jpg
heading_title_logo: /images/bose_logo.png
subheading: >
Bose: Supporting Rapid Development for Millions of IoT Products With Kubernetes
case_study_details:
- Company: Bose Corporation
- Location: Framingham, Massachusetts
- Industry: Consumer Electronics
-->
</div></h1>
<h2><!--Challenge-->挑战</h2>
</div>
<p>
<!--
A household name in high-quality audio equipment, <a href="https://www.bose.com/en_us/index.html">Bose</a> has offered connected products for more than five years, and as that demand grew, the infrastructure had to change to support it. "We needed to provide a mechanism for developers to rapidly prototype and deploy services all the way to production pretty fast," says Lead Cloud Engineer Josh West. In 2016, the company decided to start building a platform from scratch. The primary goal: "To be one to two steps ahead of the different product groups so that we are never scrambling to catch up with their scale," says Cloud Architecture Manager Dylan O'Mahony.
-->
作为一家以高品质音频设备闻名的公司,[Bose](https://www.bose.com/en_us/index.html)
已经提供了超过五年的联网产品,随着这一需求的增长,基础设施不得不改变以支持它。
“我们需要为开发者提供一种机制,能够快速原型化并部署服务一直到生产环境”,首席云工程师 Josh West 说道。
2016年公司决定开始从头构建一个平台。其主要目标是“要领先于各个产品组一到两步这样我们就永远不会匆忙追赶他们的规模”
云架构经理 Dylan O'Mahony 说道。
</p>
<div class="details">
Company &nbsp;<b>Bose Corporation</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Location &nbsp;<b>Framingham, Massachusetts
</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Industry &nbsp;<b>Consumer Electronics</b>
</div>
<h2><!--Solution-->解决方案</h2>
<hr>
<section class="section1">
<div class="cols">
<div class="col1" style="width:100%"">
<h2>Challenge</h2>
A household name in high-quality audio equipment, <a href="https://www.bose.com/en_us/index.html">Bose</a> has offered connected products for more than five years, and as that demand grew, the infrastructure had to change to support it. "We needed to provide a mechanism for developers to rapidly prototype and deploy services all the way to production pretty fast,” says Lead Cloud Engineer Josh West. In 2016, the company decided to start building a platform from scratch. The primary goal: "To be one to two steps ahead of the different product groups so that we are never scrambling to catch up with their scale,” says Cloud Architecture Manager Dylan OMahony.
<br><br>
<h2>Solution</h2>
From the beginning, the team knew it wanted a microservices architecture. After evaluating and prototyping a couple of orchestration solutions, the team decided to adopt <a href="https://kubernetes.io/">Kubernetes</a> for its scaled IoT Platform-as-a-Service running on AWS. The platform, which also incorporated Prometheus monitoring, launched in production in 2017, serving over 3 million connected products from the get-go. Bose has since adopted a number of other CNCF technologies, including <a href="https://www.fluentd.org/">Fluentd</a>, <a href="https://coredns.io/">CoreDNS</a>, <a href="https://www.jaegertracing.io/">Jaeger</a>, and <a href="https://opentracing.io/">OpenTracing</a>.
<br><br>
<h2>Impact</h2>
With about 100 engineers onboarded, the platform is now enabling 30,000 non-production deployments across dozens of microservices per year. In 2018, there were 1250+ production deployments. Just one production cluster holds 1,800 namespaces and 340 worker nodes. "We had a brand new service taken from concept through coding and deployment all the way to production, including hardening, security testing and so forth, in less than two and a half weeks,” says OMahony.
</div>
<p>
<!--
From the beginning, the team knew it wanted a microservices architecture. After evaluating and prototyping a couple of orchestration solutions, the team decided to adopt <a href="https://kubernetes.io/">Kubernetes</a> for its scaled IoT Platform-as-a-Service running on AWS. The platform, which also incorporated Prometheus monitoring, launched in production in 2017, serving over 3 million connected products from the get-go. Bose has since adopted a number of other CNCF technologies, including <a href="https://www.fluentd.org/">Fluentd</a>, <a href="https://coredns.io/">CoreDNS</a>, <a href="https://www.jaegertracing.io/">Jaeger</a>, and <a href="https://opentracing.io/">OpenTracing</a>.
-->
从一开始,团队就知道他们想要一个微服务架构。在评估并原型化了几种编排解决方案后,
团队决定为其在 AWS 上运行的规模化 IoT 平台即服务Platform-as-a-Service采用
[Kubernetes](https://kubernetes.io/)。该平台还集成了 Prometheus 监控并于2017年投入生产
一开始就服务于超过300万的联网产品。自那时以来Bose 已经采用了多项其他 CNCF 技术,包括
[Fluentd](https://www.fluentd.org/)、[CoreDNS](https://coredns.io/)、[Jaeger](https://www.jaegertracing.io/)
和 [OpenTracing](https://opentracing.io/)。
</p>
</div>
</section>
<div class="banner2">
<div class="banner2text">
"At Bose were building an IoT platform that has enabled our physical products. If it werent for Kubernetes and the rest of the CNCF projects being free open source software with such a strong community, we would never have achieved scale, or even gotten to launch&nbsp;on&nbsp;schedule."
<br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- Josh West, Lead Cloud Engineer, Bose</span>
</div>
</div>
<section class="section2">
<div class="fullcol">
<h2>A household name in high-quality audio equipment, <a href="https://www.bose.com/en_us/index.html">Bose</a> has offered connected products for more than five years, and as that demand grew, the infrastructure had to change to support it. </h2>
"We needed to provide a mechanism for developers to rapidly prototype and deploy services all the way to production pretty fast,” says Lead Cloud Engineer Josh West. "There were a lot of cloud capabilities we wanted to provide to support our audio equipment and experiences.”<br><br>
In 2016, the company decided to start building an IoT platform from scratch. The primary goal: "To be one to two steps ahead of the different product groups so that we are never scrambling to catch up with their scale,” says Cloud Architecture Manager Dylan OMahony. "If they release a new connected product, we want to be already well ahead of being able to handle whatever scale that theyre going to throw at us.”<br><br>
From the beginning, the team knew it wanted a microservices architecture and platform as a service. After evaluating and prototyping orchestration solutions, including Mesos and Docker Swarm, the team decided to adopt <a href="https://kubernetes.io/">Kubernetes</a> for its platform running on AWS. Kubernetes was still in 1.5, but already the technology could do much of what the team wanted and needed for the present and the future. For West, that meant having storage and network handled. OMahony points to Kubernetes portability in case Bose decides to go multi-cloud.<br><br>
"Bose is a company that looks out for the long term,” says West. "Going with a quick commercial off-the-shelf solution mightve worked for that point in time, but it would not have carried us forward, which is what we needed from Kubernetes and the CNCF.”
<h2><!--Impact-->影响</h2>
<p>
<!--
With about 100 engineers onboarded, the platform is now enabling 30,000 non-production deployments across dozens of microservices per year. In 2018, there were 1250+ production deployments. Just one production cluster holds 1,800 namespaces and 340 worker nodes. "We had a brand new service taken from concept through coding and deployment all the way to production, including hardening, security testing and so forth, in less than two and a half weeks," says O'Mahony.
-->
随着大约 100 名工程师的加入,该平台现在每年支持跨数十个微服务的 30,000 次非生产部署。
2018 年,有超过 1250 次生产部署。仅一个生产集群就包含 1,800 个命名空间和 340 个工作节点。
“我们有一个全新的服务从概念、编码、部署一直到生产包括强化、安全测试等整个过程不到两个半星期”O'Mahony 说道。
</p>
{{< case-studies/quote author="Josh West, Lead Cloud Engineer, Bose" >}}
<!--
"At Bose we're building an IoT platform that has enabled our physical products. If it weren't for Kubernetes and the rest of the CNCF projects being free open source software with such a strong community, we would never have achieved scale, or even gotten to launch on schedule."
-->
“在 Bose我们正在构建一个支持我们实体产品的 IoT 平台。如果不是因为 Kubernetes
和其他 CNCF 项目的免费开源软件及其强大的社区支持,我们永远不会达到这样的规模,甚至无法按计划推出。”
{{< /case-studies/quote >}}
{{< case-studies/lead >}}
<!--
A household name in high-quality audio equipment, <a href="https://www.bose.com/en_us/index.html">Bose</a> has offered connected products for more than five years, and as that demand grew, the infrastructure had to change to support it.
-->
一家以高品质音频设备闻名的公司,[Bose](https://www.bose.com/en_us/index.html)
已经提供了超过五年的联网产品,随着这一需求的增长,基础设施不得不改变以支持它。
{{< /case-studies/lead >}}
<p>
<!--
"We needed to provide a mechanism for developers to rapidly prototype and deploy services all the way to production pretty fast," says Lead Cloud Engineer Josh West. "There were a lot of cloud capabilities we wanted to provide to support our audio equipment and experiences."
-->
“我们需要为开发者提供一种机制,能够快速原型化并部署服务一直到生产环境”,首席云工程师 Josh West 说道,
“我们希望提供许多云能力来支持我们的音频设备和体验。”
</p>
<p>
<!--
In 2016, the company decided to start building an IoT platform from scratch. The primary goal: "To be one to two steps ahead of the different product groups so that we are never scrambling to catch up with their scale," says Cloud Architecture Manager Dylan O'Mahony. "If they release a new connected product, we want to be already well ahead of being able to handle whatever scale that they're going to throw at us."
-->
2016年公司决定开始从头构建一个物联网平台。其主要目标是“要领先于各个产品组一到两步
这样我们就永远不会匆忙追赶他们的规模”,云架构经理 Dylan O'Mahony 说道,
“如果他们发布了一款新的联网产品,我们希望已经远远领先于能够处理他们可能带来的任何规模。”
</p>
<p>
<!--
From the beginning, the team knew it wanted a microservices architecture and platform as a service. After evaluating and prototyping orchestration solutions, including Mesos and Docker Swarm, the team decided to adopt <a href="https://kubernetes.io/">Kubernetes</a> for its platform running on AWS. Kubernetes was still in 1.5, but already the technology could do much of what the team wanted and needed for the present and the future. For West, that meant having storage and network handled. O'Mahony points to Kubernetes' portability in case Bose decides to go multi-cloud.
-->
从一开始,团队就知道他们想要一个微服务架构和平台即服务。在评估并原型化了包括 Mesos 和 Docker Swarm
在内的编排解决方案后,团队决定为其运行在 AWS 上的平台采用 [Kubernetes](https://kubernetes.io/)。
当时 Kubernetes 仍处于1.5版本,但该技术已经能够满足团队当前和未来大部分的需求。对于 West 来说,
这意味着存储和网络得到了处理。O'Mahony 强调了 Kubernetes 的可移植性,以防 Bose 决定采用多云策略。
</p>
<p>
<!--
"Bose is a company that looks out for the long term," says West. "Going with a quick commercial off-the-shelf solution might've worked for that point in time, but it would not have carried us forward, which is what we needed from Kubernetes and the CNCF."
-->
“Bose 是一家着眼于长远的公司”West 说道,
“采用一个快速的现成商业解决方案可能在当时适用,但它无法支持我们向前发展,
而这是我们从 Kubernetes 和 CNCF 得到的。”
</p>
{{< case-studies/quote
image="/images/case-studies/bose/banner3.jpg"
author="Dylan O'Mahony, Cloud Architecture Manager, Bose"
>}}
<!--
"Everybody on the team thinks in terms of automation, leaning out the processes, getting things done as quickly as possible. When you step back and look at what it means for a 50-plus-year-old speaker company to have that sort of culture, it really is quite incredible, and I think the tools that we use and the foundation that we've built with them is a huge piece of that."
-->
“团队中的每个人都思考如何实现自动化,优化流程,尽可能快速地完成任务。当你退后一步,
思考这对于一家拥有50多年历史的音箱公司来说意味着什么时这真的非常不可思议
我认为我们使用的工具和与之建立的基础是其中非常重要的一部分。”
{{< /case-studies/quote >}}
<p>
<!--
The team spent time working on choosing tooling to make the experience easier for developers. "Our developers interact with tools provided by our Ops team, and the Ops team run all of their tooling on top of Kubernetes," says O'Mahony. "We try not to make direct Kubernetes access the only way. In fact, ideally, our developers wouldn't even need to know that they're running on Kubernetes."
-->
团队花费时间选择工具,以使开发者的体验更加轻松。“我们的开发者与由我们的运维团队提供的工具进行交互,
而运维团队在 Kubernetes 上运行他们所有的工具”O'Mahony 说道,“我们尽量避免将直接的 Kubernetes
访问作为唯一途径。实际上,理想情况下,我们的开发者甚至不需要知道他们在 Kubernetes 上运行。”
</p>
<p>
<!--
The platform, which also incorporated <a href="https://prometheus.io/">Prometheus</a> monitoring from the beginning, backdoored its way into production in 2017, serving over 3 million connected products from the get-go. "Even though the speakers and the products that we were designing this platform for were still quite a ways away from being launched, we did have some connected speakers on the market," says O'Mahony. "We basically started to point certain features of those speakers and the apps that go with those speakers to this platform."
-->
该平台从一开始就集成了 [Prometheus](https://prometheus.io/) 监控并于2017年通过后门方式进入生产环境
一开始就服务于超过300万的联网产品。“即使我们为设计这个平台的音箱和产品离正式发布还有一段时间
但我们确实已经在市场上有一些联网音箱”O'Mahony 说道,“我们基本上开始将这些音箱的某些功能及其配套应用指向这个平台。”
</p>
<p>
<!--
Today, just one of Bose's production clusters holds 1,800 namespaces/discrete services and 340 nodes. With about 100 engineers now onboarded, the platform infrastructure is now enabling 30,000 non-production deployments across dozens of microservices per year. In 2018, there were 1250+ production deployments.. It's a staggering improvement over some of Bose's previous deployment processes, which supported far fewer deployments and services.
-->
如今,仅 Bose 的一个生产集群就包含 1800 个命名空间/独立服务和 340 个节点。
随着现在约有 100 名工程师加入,该平台基础设施现在每年支持跨数十个微服务的 30,000
次非生产部署。2018 年,进行了超过 1250 次生产部署。与 Bose 之前支持远少次数的部署和服务的部署流程相比,
这是一个惊人的改进。
</p>
</div>
</section>
<div class="banner3" style="background-image: url('/images/case-studies/bose/banner3.jpg')">
<div class="banner3text">
"Everybody on the team thinks in terms of automation, leaning out the processes, getting things done as quickly as possible. When you step back and look at what it means for a 50-plus-year-old speaker company to have that sort of culture, it really is quite incredible, and I think the tools that we use and the foundation that weve built with them is a huge piece of that."<br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- Dylan OMahony, Cloud Architecture Manager, Bose</span>
{{< case-studies/quote
image="/images/case-studies/bose/banner4.jpg"
author="Josh West, Lead Cloud Engineer, Bose"
>}}
<!--
"The CNCF Landscape quickly explains what's going on in all the different areas from storage to cloud providers to automation and so forth. This is our shopping cart to build a cloud infrastructure. We can go choose from the different aisles."
-->
“CNCF 景观图简明地解释了从存储到云提供商再到自动化等各个不同领域正在发生的事情。
这是我们构建云基础设施的购物车。我们可以从不同的过道中进行选择。”
{{< /case-studies/quote >}}
</div>
</div>
<section class="section3">
<div class="fullcol">
The team spent time working on choosing tooling to make the experience easier for developers. "Our developers interact with tools provided by our Ops team, and the Ops team run all of their tooling on top of Kubernetes,” says OMahony. "We try not to make direct Kubernetes access the only way. In fact, ideally, our developers wouldnt even need to know that theyre running on Kubernetes.”<br><br>
The platform, which also incorporated <a href="https://prometheus.io/">Prometheus</a> monitoring from the beginning, backdoored its way into production in 2017, serving over 3 million connected products from the get-go. "Even though the speakers and the products that we were designing this platform for were still quite a ways away from being launched, we did have some connected speakers on the market,” says OMahony. "We basically started to point certain features of those speakers and the apps that go with those speakers to this platform.”<br><br>
Today, just one of Boses production clusters holds 1,800 namespaces/discrete services and 340 nodes. With about 100 engineers now onboarded, the platform infrastructure is now enabling 30,000 non-production deployments across dozens of microservices per year. In 2018, there were 1250+ production deployments.. Its a staggering improvement over some of Boses previous deployment processes, which supported far fewer deployments and services.
<p>
<!--
"We had a brand new service deployed from concept through coding and deployment all the way to production, including hardening, security testing and so forth, in less than two and a half weeks," says O'Mahony. "Everybody thinks in terms of automation, leaning out the processes, getting things done as quickly as possible. When you step back and look at what it means for a 50-plus-year-old speaker company to have that sort of culture, it really is quite incredible, and I think the tools that we use and the foundation that we've built is a huge piece of that."</p>
-->
“我们有一个全新的服务,从概念、编码、部署一直到生产,包括强化、安全测试等,在不到两个半周的时间内完成部署”,
O'Mahony 说道。“每个人都思考如何实现自动化,优化流程,尽可能快速地完成任务。当你退后一步,
思考这对于一家拥有50多年历史的音箱公司来说意味着什么时这真的非常不可思议
我认为我们使用的工具和建立的基础是其中非常重要的一部分。”
<p>
<!--
Many of those technologies—such as <a href="https://www.fluentd.org/">Fluentd</a>, <a href="https://coredns.io/">CoreDNS</a>, <a href="https://www.jaegertracing.io/">Jaeger</a>, and <a href="https://opentracing.io/">OpenTracing</a>—come from the <a href="https://landscape.cncf.io/">CNCF Landscape</a>, which West and O'Mahony have relied upon throughout Bose's cloud native journey. "The CNCF Landscape quickly explains what's going on in all the different areas from storage to cloud providers to automation and so forth," says West. "This is our shopping cart to build a cloud infrastructure. We can go choose from the different aisles."
-->
许多这样的技术,如 [Fluentd](https://www.fluentd.org/)、[CoreDNS](https://coredns.io/)、
[Jaeger](https://www.jaegertracing.io/) 和 [OpenTracing](https://opentracing.io/)
均来自 [CNCF 全景图](https://landscape.cncf.io/)West 和 O'Mahony 在 Bose 的云原生旅程中一直依赖于此。
“CNCF 全景图简明地解释了从存储到云提供商再到自动化等各个不同领域正在发生的事情”West 说道,
“这是我们构建云基础设施的购物车。我们可以从不同的过道中进行选择。”
</p>
</div>
</section>
<div class="banner4" style="background-image: url('/images/case-studies/bose/banner4.jpg');width:100%">
<div class="banner4text">
"The CNCF Landscape quickly explains whats going on in all the different areas from storage to cloud providers to automation and so forth. This is our shopping cart to build a cloud infrastructure. We can go choose from the different aisles." <br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- Josh West, Lead Cloud Engineer, Bose</span>
</div>
</div>
<p>
<!--
And, he adds, "If it weren't for Kubernetes and the rest of the CNCF projects being free open source software with such a strong community, we would never have achieved scale, or even gotten to launch on schedule."
-->
他补充道,“如果不是因为 Kubernetes 和其他 CNCF 项目的免费开源软件及其强大的社区支持,
我们永远不会达到这样的规模,甚至无法按计划推出。”
</p>
<section class="section5" style="padding:0px !important">
<div class="fullcol">
"We had a brand new service deployed from concept through coding and deployment all the way to production, including hardening, security testing and so forth, in less than two and a half weeks,” says OMahony. "Everybody thinks in terms of automation, leaning out the processes, getting things done as quickly as possible. When you step back and look at what it means for a 50-plus-year-old speaker company to have that sort of culture, it really is quite incredible, and I think the tools that we use and the foundation that weve built is a huge piece of that.”<br><br>
Many of those technologies—such as <a href="https://www.fluentd.org/">Fluentd</a>, <a href="https://coredns.io/">CoreDNS</a>, <a href="https://www.jaegertracing.io/">Jaeger</a>, and <a href="https://opentracing.io/">OpenTracing</a>—come from the <a href="https://landscape.cncf.io/">CNCF Landscape</a>, which West and OMahony have relied upon throughout Boses cloud native journey. "The CNCF Landscape quickly explains whats going on in all the different areas from storage to cloud providers to automation and so forth,” says West. "This is our shopping cart to build a cloud infrastructure. We can go choose from the different aisles.” <br><br>
And, he adds, "If it werent for Kubernetes and the rest of the CNCF projects being free open source software with such a strong community, we would never have achieved scale, or even gotten to launch on schedule.”<br><br>
Another benefit of going cloud native: "We are even attracting much more talent into Bose because were so involved with the <a href="http://careers.bose.com">CNCF Landscape</a>,” says West. (Yes, theyre hiring.) "Its just enabled so many people to do so many great things and really brought Bose into the future of cloud.”
<p>
<!--
Another benefit of going cloud native: "We are even attracting much more talent into Bose because we're so involved with the <a href="http://careers.bose.com">CNCF Landscape</a>," says West. (Yes, they're hiring.) "It's just enabled so many people to do so many great things and really brought Bose into the future of cloud."
-->
转向云原生的另一个好处是:“我们甚至吸引了更多的人才加入 Bose因为我们深入参与到
[CNCF 全景图](http://careers.bose.com)中”West 说道(是的,他们在招聘),
“这使得许多人能够做许多伟大的事情,真正将 Bose 带入了云的未来。”
</p>
</div>
{{< case-studies/quote author="Dylan O'Mahony, Cloud Architecture Manager, Bose" >}}
<!--
"We have a lot going on to support many more of our business units at Bose in addition to the consumer electronics division, which we currently do. It's only because of the cloud native landscape and the tools and the features that are available that we can provide such a fantastic cloud platform for all the developers and divisions that are trying to enable some pretty amazing experiences."
-->
“我们正在进行很多工作,以支持 Bose 更多的业务部门,而不仅仅是目前的消费电子部门。正是由于云原生领域的工具和功能,我们才能够为所有试图创造一些非常棒的体验的开发者和部门提供如此出色的云平台。”
{{< /case-studies/quote >}}
<div class="banner5" >
<div class="banner5text">
"We have a lot going on to support many more of our business units at Bose in addition to the consumer electronics division, which we currently do. Its only because of the cloud native landscape and the tools and the features that are available that we can provide such a fantastic cloud platform for all the developers and divisions that are trying to enable some pretty amazing experiences."<br style="height:25px"><span style="font-size:14px;letter-spacing:2px;text-transform:uppercase;margin-top:5% !important;"><br>- Dylan OMahony, Cloud Architecture Manager, Bose</span></div>
</div>
<p>
<!--
In the coming year, the team wants to work on service mesh and serverless, as well as expansion around the world. "Getting our latency down by going multi-region is going to be a big focus for us," says O'Mahony. "In order to make sure that our customers in Japan, Australia, and everywhere else are having a good experience, we want to have points of presence closer to them. It's never been done at Bose before."
-->
在即将到来的一年里,团队希望在服务网格和无服务器方面进行工作,并在全球范围内扩展。
“通过多区域部署来降低延迟将是我们的一个重点”O'Mahony 说道,“为了确保我们在日本、
澳大利亚及其他地区的客户有良好的体验,我们希望在更接近他们的地点拥有存在点。
这在 Bose 是前所未有的。”
</p>
<div class="fullcol">
In the coming year, the team wants to work on service mesh and serverless, as well as expansion around the world. "Getting our latency down by going multi-region is going to be a big focus for us,” says OMahony. "In order to make sure that our customers in Japan, Australia, and everywhere else are having a good experience, we want to have points of presence closer to them. Its never been done at Bose before.”<br><br>
That wont stop them, because the team is all about lofty goals. "We want to get to billions of connected products!” says West. "We have a lot going on to support many more of our business units at Bose in addition to the consumer electronics division, which we currently do. Its only because of the cloud native landscape and the tools and the features that are available that we can provide such a fantastic cloud platform for all the developers and divisions that are trying to enable some pretty amazing experiences.”<br><br>
In fact, given the scale the platform is already supporting, says OMahony, "doing anything other than Kubernetes, I think, would be folly at this point.”
<p>
<!--
That won't stop them, because the team is all about lofty goals. "We want to get to billions of connected products!" says West. "We have a lot going on to support many more of our business units at Bose in addition to the consumer electronics division, which we currently do. It's only because of the cloud native landscape and the tools and the features that are available that we can provide such a fantastic cloud platform for all the developers and divisions that are trying to enable some pretty amazing experiences."
-->
这不会阻止他们,因为团队总是追求宏伟的目标。“我们希望达到数十亿的联网产品” West 说道,
“我们正在进行很多工作,以支持 Bose 更多的业务部门,而不仅仅是目前的消费电子部门。
正是由于云原生领域的工具和功能,我们才能够为所有试图创造一些非常棒的体验的开发者和部门提供如此出色的云平台。”
</p>
</div>
</section>
</body>
</html>
<p>
<!--
In fact, given the scale the platform is already supporting, says O'Mahony, "doing anything other than Kubernetes, I think, would be folly at this point."
-->
事实上鉴于平台已经支持的规模O'Mahony 认为,“在这种情况下,不做 Kubernetes
而选择其他任何东西,我认为都是愚蠢的。”
</p>