デプロイの基本Deployment basics

ここでは、架空の企業である Contoso Corporation の 3 つのアプライアンス モデルを例として使用します。We will use three appliance models from the fictitious Contoso Corporation as an example throughout this discussion.

Contoso の食器洗い機とコーヒー メーカー

デバイス IDDevice IDs

すべての Azure Sphere チップには、固有で不変の Azure Sphere デバイス ID があります。Every Azure Sphere chip has a unique and immutable Azure Sphere device ID. Azure Sphere デバイス ID は、個々のチップを一意に識別します。The Azure Sphere device ID uniquely identifies the individual chip. デバイス ID はデバイス自体に格納されています。The device ID is stored on the device itself. 配置の他のすべての要素は Azure Sphere Security Service に格納されています。All the other elements of a deployment are stored with the Azure Sphere Security Service.

SKU と SKU セットSKUs and SKU sets

Stock Keeping Unit (SKU) は、物理デバイスのモデルを識別する GUID です。A stock keeping unit (SKU) is a GUID that identifies a model of physical device. 製品 SKU は、Azure Sphere MCU が組み込まれた接続されたデバイス製品を識別します。A product SKU identifies a connected device product that incorporates an Azure Sphere MCU. 製造元の場合、食器洗い機やコーヒーメーカーなど、接続されているデバイスのモデルごとに製品 SKU を作成します。As the manufacturer, you create a product SKU for each model of connected device, such as a dishwasher or coffeemaker. たとえば、Contoso は DW100 食器洗い機用の製品 SKU を作成し、製造時にこの製品 SKU を各 DW100 食器洗い機に割り当てます。For example, Contoso creates a product SKU for its DW100 dishwashers and assigns this product SKU to each DW100 dishwasher during manufacturing.

接続されているすべてのデバイスには 1 つの製品 SKU がありますが、1 つの製品 SKU を多数のデバイスに関連付けることができます。Every connected device has a single product SKU, but a single product SKU can be associated with many devices. 各製品 SKU には、名前と説明があります。これで人間が判読し、SKU 間を区別できます。Each product SKU has a name and a description, which provide a human-readable way to distinguish one product SKU from another.

さらに、すべての Azure Sphere チップには、特定の種類の Azure Sphere 互換 MCU を識別するチップ SKU があります。In addition, every Azure Sphere chip has a chip SKU that identifies a particular type of Azure Sphere-compatible MCU. チップ SKU は Microsoft によって割り当てられ、変更することはできません。The chip SKU is assigned by Microsoft and cannot be changed. Microsoft はこの SKU を使用して、各 Azure Sphere デバイスに正しいシステム ソフトウェア更新プログラムを提供します。Microsoft uses this SKU to deliver the correct system software updates to each Azure Sphere device.

SKU セット は、接続されているデバイスに組み込まれているすべてのハードウェアを識別し、そのデバイスと互換性のあるすべてのソフトウェアを識別します。A SKU set identifies all the hardware that is incorporated into a connected device, and thus identifies all the software that is compatible with the device. 接続されているデバイスの SKU セットには、製造元が割り当てた製品 SKU と Microsoft が割り当てたチップ SKU の両方が含まれています。The SKU set for a connected device includes both its manufacturer-assigned product SKU and the Microsoft-assigned chip SKU.

例:For example:

SKU セット

Contoso アプライアンスの SKU セットSKU sets for Contoso appliances

この図は、3 つの Contoso アプライアンスを示しています。これらのアプライアンスにはいずれも Azure Sphere MT3620 MCU が内蔵されています。The figure shows three Contoso appliances, all of which include an Azure Sphere MT3620 MCU:

  • DW100 食器洗い機には DW100 製品 SKU があります。The DW100 dishwasher has the DW100 Product SKU. その SKU セットは、デバイスが DW100 食器洗い機をターゲットとする Contoso アプリケーション ソフトウェアと互換性があることを示します。Its SKU set indicates that the device is compatible with Contoso application software that targets the DW100 dishwasher.

  • DW200 食器洗い機には DW100 では使用できない追加機能があるため、DW200 製品 SKU という異なる製品 SKU を持っています。The DW200 dishwasher has additional features that are not available in the DW100 and thus has a different product SKU: the DW200 product SKU. その SKU セットは、デバイスが DW200 食器洗い機をターゲットとする Contoso アプリケーション ソフトウェアと互換性があることを示します。Its SKU set indicates that the device is compatible with Contoso application software that targets the DW200 dishwasher. 現在、DW200 は DW100 と同じアプリケーション ソフトウェアを実行していますが、Contoso は間もなく DW200 固有のソフトウェアをリリースする予定です。Currently, the DW200 runs the same application software as the DW100, but Contoso intends to release DW200-specific software soon.

  • CM300 コーヒーメーカーには、CM300 製品 SKU があります。The CM300 coffeemaker has the CM300 product SKU.

コンポーネントとアプリケーションComponents and applications

コンポーネントは、更新可能なソフトウェア パッケージを表します。A component represents a software package that can be updated. 前述の Contoso の例には、次の 2 つのコンポーネントがあります。The preceding Contoso example involves two components:

  • DW100 モデルと DW200 モデル上で動作する DW100SW 食器洗い機アプリケーション ソフトウェアDW100SW dishwasher application software, which runs on the DW100 and DW200 models
  • CM300SW コーヒーメーカー アプリケーション ソフトウェアCM300SW coffeemaker application software

アプリケーションは、接続されている特定のデバイスに固有のタスクを実行するコンポーネントです。An application is a component that performs tasks specific to certain connected devices. 各アプリケーションは、接続されているデバイスに関連付けられている 1 つ以上の製品 SKU をターゲットとしています。Each application targets one or more product SKUs that are associated with those connected devices. 製品の製造元はアプリケーションの開発と管理を行います。一方、Microsoft はシステム ソフトウェア コンポーネントの開発と管理を行います。As a product manufacturer, you develop and manage applications, whereas Microsoft develops and manages system software components. システム ソフトウェア コンポーネントは、チップ SKU をターゲットとしています。System software components target chip SKUs.

イメージとイメージ セットImages and image sets

イメージは、コンポーネントの 1 つのバージョンを表します。An image represents a single version of a component. イメージは変更できません。イメージがアップロードされた後でイメージを変更することはできません。Images are immutable: you cannot modify an image after it has been uploaded. アプリケーションの場合、イメージにはアプリケーションのバイナリとそのイメージ メタデータが含まれます。For an application, the image includes the binaries for the application along with its image metadata. 各イメージに一意のイメージ ID があり、これはイメージ メタデータに含まれています。Each image has a unique image ID, which is part of the image metadata. SDK では Azure Sphere のイメージ パッケージをビルドまたはリビルドするたびに、新しい一意のイメージ ID を使用します。Every time the SDK builds or rebuilds an Azure Sphere image package, it uses a new unique image ID.

イメージ セットは、相互依存するコンポーネントを表すイメージのグループであるため、ユニットとして配置および更新する必要があります。An image set is a group of images that represent interdependent components and therefore must be deployed and updated as a unit. 単一のイメージと同様に、イメージ セットは変更できません。Like a single image, an image set is immutable.

フィードFeeds

フィードは、ソフトウェアを 1 つまたは複数のデバイスに配信します。A feed delivers software to one or more devices. Microsoft はフィードを作成して Azure Sphere OS を配信し、アプリケーション ソフトウェアを配信するフィードを作成します。Microsoft creates feeds to deliver the Azure Sphere OS, and you create feeds to deliver your application software. フィードは階層的です。すべてのアプリケーション フィードは、Azure Sphere OS フィードに依存しています。Feeds are hierarchical: every application feed depends on an Azure Sphere OS feed.

アプリケーション フィードを作成するときに、依存しているシステム ソフトウェア フィード、ターゲットとする製品 SKU とチップ SKU、および配信するコンポーネントを指定します。When you create an application feed, you specify the system software feed that it depends on, the product and chip SKUs that it targets, and the component that it delivers. 現在、各アプリケーション フィードは単一のコンポーネントに関連付けられています。Currently, each application feed is associated with a single component.

アプリケーションを配置する準備ができたら、配置するアプリケーションのバージョンを表すイメージを作成します。When you are ready to deploy an application, you create an image that represents the version of the application you want to deploy. 次に、イメージをイメージ セットに追加し、関連するコンポーネントのフィードにイメージ セットを追加します。Then you add the image to an image set, and add the image set to a feed for the associated component. 最後に追加されたイメージ セットが現在のイメージ セットになります。The most recently added image set becomes the current image set. Azure Sphere Security Service は、ターゲットのデバイスに現在のイメージ セットを配信します。The Azure Sphere Security Service delivers the current image set to the targeted devices. フィードには現在のイメージ セットが 1 つしかありませんが、各フィードには、これまで追加されたすべてのイメージ セットの監査リストが保持されます。Although a feed has only one current image set, each feed maintains an audit list of all image sets that were ever added to it.

アプリケーション フィードは、特定の種類の素材のみを運ぶパイプに似ています。つまり、アプリケーション フィードは、特定のコンポーネントを表すイメージ セットのみを配信できます。An application feed is analogous to a pipe that carries only a certain kind of material; that is, an application feed can only deliver image sets that represent a particular component. そのため、Contoso は DW100SW アプリケーション ソフトウェア用のフィードと CM300SW アプリケーション ソフトウェア用のフィードを定義しています。これは、2 つのデバイスが異なるアプリケーションを使用するためです。Therefore, Contoso would define one feed for the DW100SW application software and another for the CM300SW application software because the two devices use different applications.

1 つのフィードで 1 つ以上の製品 SKU にソフトウェアを提供できます。A single feed can supply its software to one or more product SKUs. フィードを定義したら、イメージ セットを追加できますが、フィードのコンポーネント、チップ SKU、または製品 SKU を追加または削除することはできません。After you define a feed, you can add an image set, but you cannot add or remove a component, a chip SKU, or a product SKU from the feed. つまり、フィードの定義 (配信するコンポーネントとターゲットとする SKU) は変更できません。That is, the definition of the feed—the components it delivers and the SKUs it targets—is immutable.

Contoso の例では、DW100 と DW200 の食器洗い機の SKU はそれぞれ異なりますが、現在は両方とも DW100SW アプリケーション ソフトウェアを使用しています。In the Contoso example, the DW100 and DW200 dishwashers have different product SKUs but both currently use the DW100SW application software. Contoso には 2 つの選択肢があります。Contoso has two options:

  • DW100SW アプリケーション ソフトウェアを DW100 と DW200 の両方の製品 SKU に配信する単一フィードを定義するDefine a single feed that delivers the DW100SW application software to both the DW100 and DW200 product SKUs
  • DW100SW アプリケーション ソフトウェアを DW100 製品 SKU に配信するフィードと、DW100SW アプリケーション ソフトウェアを DW200 製品 SKU に配信するフィードを定義するDefine one feed that delivers the DW100SW application software to the DW100 product SKU and another feed that delivers the DW100SW application software to the DW200 product SKU

Contoso は、DW200 用の別のアプリケーションを間もなくリリースする予定です。Contoso plans to release a separate application for the DW200 soon. 現在のアプリケーションを両方の製品 SKU に配信する単一のフィードが定義されている場合、新しいソフトウェアが用意できたら 2 つの新しいフィードを作成する必要があります (SKU ごとに 1 つ)。If it defines a single feed that delivers the current application to both product SKUs, it must create two new feeds when the new software is ready: one for each SKU. 代わりに、2 つのフィードが作成されます。Instead, it creates two feeds now. DW100 フィードは DW100SW アプリケーションを DW100 食器洗い機に、一時的な DW200 フィードは DW100SW アプリケーションを DW200 食器洗い機に配信します。The DW100 feed delivers the DW100SW application to DW100 dishwashers, and a temporary DW200 feed delivers the DW100SW application to the DW200 dishwashers. 次の図は、これらのサンプル フィードを示しています。The following figure shows these sample feeds:

Contoso DW100 のサンプル フィード

DW100 アプリケーションの Contoso フィードContoso feeds for DW100 application

Contoso は、新しい DW200 固有のアプリケーションをテストする準備ができると、DW200SW アプリケーションのテスト バージョンを表す新しいコンポーネントとイメージ セットを作成します。When Contoso is ready to test its new DW200-specific application, it creates a new component and image set to represent the test version of the DW200SW application. Contoso は、DW200SW コンポーネントを製品 SKU が DW200 のデバイスに配信する新しいフィードを設定し、この新しいフィードに DW200 テスト アプリケーション イメージ セットを割り当てます。Contoso then sets up a new feed that delivers the DW200SW component to devices that have the DW200 product SKU, and it assigns the DW200 test application image set to this new feed. 既存の DW100 フィードは引き続き DW100SW アプリケーションを DW100 食器洗い機に配信します。The existing DW100 feed continues to deliver the DW100SW application to DW100 dishwashers.

Contoso DW200 のサンプル フィード

新しい DW200 アプリケーションの Contoso フィードContoso feed for new DW200 application

この例が示すように、通常、製品の製造元は複数のフィードを定義します。As this example implies, a product manufacturer would typically define multiple feeds. たとえば、Contoso はアプリケーションごとに 2 つのフィード、つまり Test フィードと Retail フィードを定義しています。For example, Contoso might define two feeds for each of its applications: a Test feed and a Retail feed. Test フィードはまだ開発中のアプリケーション ソフトウェアを配信し、Retail フィードはフィールド配置の準備が整ったアプリケーション ソフトウェアを配信します。The Test feed delivers application software that is still in development, and the Retail feed delivers application software that is ready for field deployment. いずれのフィードも同じ SKU セットをターゲットとしていますが、異なるバージョンのアプリケーションを配信します。Both feeds target the same SKU set, but deliver different versions of the application. つまり、別のイメージ セットに関連付けられています。That is, they are associated with different image sets.

Contoso DW100 の Retail フィードと Test フィード

Contoso の Retail フィードと Test フィードContoso retail and test feeds

この図の Test フィードと Retail フィードは、イメージ セット以外は同じです。The Test and Retail feeds in the figure are identical except for their image sets. Retail フィードは DW100SW v1.0 イメージ セットに関連付けられ、Test フィードは DW100SW v1.5 イメージ セットに関連付けられています。The Retail feed is associated with the DW100SW v1.0 image set, and the Test feed is associated with the DW100SW v1.5 image set. DW100SW アプリケーションの新しいバージョンをテストするために、Contoso はテスト ソフトウェアのコンポーネント ID を使用して、更新されたソフトウェアを含む新しいイメージ セットを作成し、そのイメージ セットを Test フィードに割り当てます。To test a new version of its DW100SW application, Contoso simply creates a new image set that contains the updated software, using the component ID for its test software, and assigns that image set to the Test feed. 同様に、Contoso がテスト中にエラーを検出した場合、以前のイメージ セットを Test フィードに割り当てることによって配置を以前のバージョンにロールバックすることができます。Similarly, if Contoso discovers errors during testing, it can roll back the deployment to an earlier version by assigning an earlier image set to the Test feed.

フィードとイメージ セットによって、接続されているデバイスに無線で配置されるコンポーネント (およびそれらのコンポーネントのバージョン) が決まります。Feeds and image sets determine which components—and which versions of those components—are deployed over the air to connected devices. フィードは製品 SKU を使用してコンポーネントとイメージ セットをリンクし、デバイス グループはフィードを個々の接続されているデバイスにリンクします。Feeds link components and image sets with product SKUs, and device groups link feeds with individual connected devices.

デバイス グループDevice groups

デバイス グループを使用すると、多数のデバイスへのアプリケーションの配置をスケールすることができます。Device groups provide a way to scale application deployment to many devices. デバイス グループは、何らかの共通点があるデバイスと、ソフトウェアをそれらのデバイスに配信するフィードの一覧を含む名前付きコレクションです。A device group is a named collection of devices that have something in common, together with a list of feeds that deliver software to those devices. 各デバイスは、1 つのデバイス グループにのみ属します。Each device belongs to exactly one device group. たとえば、Contoso はテスト ラボ内のデバイス用に 1 つのデバイス グループを作成し、小売チャネルのデバイス用に別のデバイス グループを作成することができます。For example, Contoso might create one device group for the devices in its test lab and another for devices in the retail channel. テスト ラボ グループ内のデバイスはテスト アプリケーション フィードを受信し、小売グループ内のデバイスは運用アプリケーション フィードを受信します。Devices in the test lab group receive the test application feed, and the devices in the retail group receive the production application feed. また、Contoso はデバイスを保証状態別または地理別にグループ化することができます。Alternatively, Contoso might group devices by warranty status or geography. グループ化の条件は完全に製造元の裁量に委ねられています。The grouping criteria are left completely to the discretion of the manufacturer.

デバイス グループには、SKU が異なる製品を含めることができます。A device group can contain products with different SKUs. たとえば、1 つのデバイス グループに複数の DW100 食器洗い機、DW200 食器洗い機、CM300 コーヒーメーカーが含まれている可能性があります。For example, a single device group could contain several DW100 dishwashers, DW200 dishwashers, and CM300 coffeemakers. 唯一の制限は、グループ内のすべてのデバイスが同じ Azure Sphere テナントに属している必要があるということです。The only restriction is that every device in the group must belong to the same Azure Sphere tenant.

各デバイス グループは、メンバー デバイスのフィードの一覧に関連付けられています。Each device group is associated with a list of the feeds for its member devices. そのため、Contoso Test Lab 用のデバイス グループには、次の情報が含まれている可能性があります。Thus, a device group for the Contoso Test Lab might contain the following information:

デバイス:Devices:
DW100 デバイス 123DW100 device 123
DW200 デバイス 456DW200 device 456
CM300 デバイス 789CM300 device 789
CM300 デバイス 0abCM300 device 0ab

フィード:Feeds:
DW100 製品 SKU をターゲットとする DW100 Test フィードDW100 Test feed, which targets the DW100 product SKU
DW100SW ソフトウェアがインストールされ、DW200 製品 SKU をターゲットとする DW200 Temp フィードDW200 Temp feed, which targets the DW200 product SKU with DW100SW software
CM300 製品 SKU をターゲットとする CM300 Test フィードCM300 Test feed, which targets the CM300 product SKU

このデバイス グループは、前述の DW200 Temp フィードを介して DW100 食器洗い機には DW100SW Test ソフトウェア、DW200 食器洗い機には DW100SW Test ソフトウェアを提供し、両方の CM300 コーヒーメーカーには CM300SW Test ソフトウェアを提供します。This device group provides the DW100SW Test software to the DW100 dishwasher, DW100SW Test software to the DW200 dishwasher through the DW200 Temp feed previously described, and the CM300SW Test software to both the CM300 coffeemakers.

デバイス グループに割り当てられた各フィードは、固有の SKU セットを提供する必要があります。Each feed assigned to a device group must supply a unique SKU set. この例では、両方の CM300 のコーヒーメーカーに CM300 製品 SKU が含まれるため、両方のデバイスで CM300 Test フィードで提供される CM300SW のバージョンを使用する必要があります。In this example, both CM300 coffeemakers have the CM300 product SKU, so both devices must use the version of the CM300SW that the CM300 Test feed supplies.

テスト ラボ内のデバイスに更新されたソフトウェアを配置するために、Contoso は新しいイメージ セットを作成し、適切なフィードに追加しますTo deploy updated software to the devices in the test lab, Contoso creates a new image set and adds it to the appropriate feed. (イメージ セットは変更できない点に注意してください)。たとえば、Contoso が新しいバージョンの DW100SW アプリケーションをテストする準備ができたら、新しいバージョンを表すイメージ セットを作成し、それを DW100 Test フィードに割り当てます。(Remember, image sets are immutable.) For example, when Contoso is ready to test a new version of the DW100SW application, it creates an image set that represents the new version and assigns it to the DW100 Test feed. 新しい DW200SW アプリケーションをテストするために、DW200 Test フィードを作成し、それを Contoso Test Lab デバイス グループにリンクします。To test its new DW200SW application, it creates a DW200 Test feed and links it to the Contoso Test Lab device group. これで、デバイス グループには次の情報が含まれます。The device group then contains the following information:

デバイス:Devices:
DW100 デバイス 123DW100 device 123
DW200 デバイス 456DW200 device 456
CM300 デバイス 789CM300 device 789
CM300 デバイス 0abCM300 device 0ab

フィード:Feeds:
DW100 製品 SKU をターゲットとする DW100 Test フィードDW100 Test feed, which targets DW100 product SKU
DW200 製品 SKU をターゲットとする DW200 Test フィードDW200 Test feed, which targets DW200 product SKU
CM300 製品 SKU をターゲットとする CM300 Test フィードCM300 Test feed, which targets CM300 product SKU

Contoso Test Lab 内のデバイス 456 が次に更新プログラムを要求すると、DW200SW Test ソフトウェアを DW200 Test フィードを介して受信します。The next time device 456 in the Contoso Test Lab requests an update, it receives the DW200SW test software via the DW200 Test feed.

次の図は、フィード、イメージ セット、およびデバイス グループによって、各デバイスに配置されるソフトウェアがどのように決定されるかを示しています。The following diagram shows how feeds, image sets, and device groups together determine the software that is deployed to each device:

Contoso Test Lab デバイス グループ

Contoso Test Lab デバイス グループとフィードContoso Test Lab device group and feeds

デバイス グループによって配置されるコンポーネントは決まらない点に注意してください。Keep in mind that the device group does not establish which components are deployed. SKU セットによって、デバイス上で実行できるコンポーネントが決まり、フィードによって、現在のイメージ セットが決まり、イメージ セットはコンポーネントの現在のバージョンを表します。The SKU set establishes which components can run on the device, the feed determines the current image set, and the image set represents the current version of the component. これらの要素を合わせて配置が決まります。These elements taken together determine the deployment.