Skip to content

IBM-Cloud/architecture-icons

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Latest-release

IBM Cloud Stencils

NOTE: If you are an IBM employee, please go to the internal repo

Create IBM Cloud diagrams using Draw.io tool with IBM Cloud Architecture Stencils.

This repo is intended to provide IBM Cloud Architecture icons for external customers and business partners. IBM Cloud's approved design tool is Draw.io, however we have also provided Powerpoint (.ppt) and SVG (.svg) files for your convenience.

This repository is an interim source to obtain the icons.

Quick Start

To get IBM Cloud architecture stencils and start sketching diagrams with draw.io tool, follow the steps in this section:

1. Download desktop draw.io application in the jgraph drawio official repo.

Important

Make sure to get release v25.0.2 or higher.

2. To get IBM Cloud stencils do the following:

See inventory for an index of which stencils are in what category/file/location.

  1. Enable stencils published in drawio
    1. Open draw.io desktop application.
    2. In the bottom left-hand menu, hit + More Shapes and navigate to the Networkingsection and check IBM Cloud, click the Apply button.
  1. Import stencils not published/released in drawio

    Select one of the following options to import shapes not published/available in drawio (step 1 above):

    Saving file in computer - Github not required
    1. Go to the not_released_in_drawio.xml online file by clicking here

    2. Hit the Raw button

    3. Save file by right-clicking and selecting Save Page As

    4. Select a directory to save file.

    5. Open draw.io desktop application. 4 . In the upper left-hand menu, go to File > Open Library and navigate to the folder where you previously saved the not_released_in_drawio.xml file in your computer, hit Open.

    6. Go to Step 3

    Using Github Repo Clone

    Clone this repo and use one of the following options:

    a. If starting a diagram from scratch:
    Click here
    1. Open draw.io desktop application.
    2. In the upper left-hand menu, go to File > Open Library and navigate to the drawio/stencils/2.0 folder in your clone.
    3. Select the IBM Not Released In Drawio library (not_released_in_drawio.xml).
    4. Go to Step 3
    b. If already have stencils and want to use an existing diagram template:
    Click here
    1. Open the stencils repo clone folder.
    2. Go to drawio/templates/2.0 folder and open/double-click any of the template files.
Click to see successful import example

Click to see library breakdown
Library Type Complimentary (Not released/published in Draw.io but available in this repo.) Standalone (Released in Desktop Drawio v25.0.2+)
Library (draw.io) display name vX.Y.Z IBM Not Released In Drawio IBM / [category/name]
Library (draw.io) display name examples v3.0.0+ IBM Not Released In Drawio IBM / Compute, IBM / Data, IBM / Network
Library file name not_released_in_drawio.xml NA
Sorting (top to bottom) - Groups > A to Z
- Actors > A to Z -
- Nodes > A to Z per category/color (e.g., compute, network, data)
- Connectors > Arbitrary
- Others > Arbitrary
A to Z

3. Sketch diagram using the stencil libraries in the left-hand size of the drawio desktop app UI.

Click here for more details not_released_in_drawio.xml and drawio enabled/embedded libraries include the following shape types, please see the below table for guidance
Stencil Type Availability Usage Preference/Priority
- Nodes (AI, compute, data, devops, network, observability, security and storage)
- Actors
- Groups (for all of the above types)
- Drawio v25.0.2+
- Internal Stencils Repo. v3.0.0+ (in not_released_in_drawio.xml file)
1. Drawio
2. Internal Stencils Repo. (only if needed)
- Connectors
- UML
- Legend helpers
- sequence numbers
- Drawio v25.0.2+ (partially available)
- Internal Stencils Repo. v3.0.0+ (in not_released_in_drawio.xml file)
1. Internal Stencils Repo.
2. Drawio v25.0.2+ (make sure to read and follow connector conventions)

4. f you are creating any custom color shapes or patterns, please follow guidance in Colors section.

5. Add legend and annotations (if applicable) to diagram. There is a legends helper library available with that name and also one included in the IBM Not Released file/library (not_released_in_drawio.xml).

6. Once diagram is ready, add metadata to it, save the changes and export using SVG (recommended format).

Click here for additional guidance
  • Go to File > Export as > SVG...
    • Select Page under Size.
    • Select Embed images, Embed fonts, and Open in a New Window.
    • Make sure that Transparent background is not selected. (And that you set the background color)
    • Set Appearance to Light.
    • To make the SVG editable in drawio application, make sure that Include a copy of my diagram is selected.
    • Keep the other default settings.

Drawio (xml & drawio)

click here to expand

2.0

A new generation of stencils is currently being developed and getting ready for its native release in draw.io application. This is currently the recommended generation for sketching diagrams. In the meantime, (Static) Stencil libraries created, stored and maintained in this repo can be imported and used for sketching diagrams.

Getting drawio desktop application

Go to the jgraph drawio repo site to download the latest desktop draw.io application.

Stencil Index/Inventory

For convenience, an IBM Not Released xml (not_released_in_drawio.xml) file containing all shapes not available in drawio is provided and kept up to date under drawio/stencils/2.0. See table in point 3 of quick start guide.

Click here to open

Getting stencil libraries compatible with draw.io application

To import the library (.xml), follow the instructions in the import guide.

Please keep in mind that when the libraries get updated (new, changed and deleted stencils) or new libraries get added/deleted, a release will be published in the repo.

2.0 Examples

Click here for expand

WARNING Examples in this section are in the process to get updated to latest release/conventions.

IBM Kubernetes Service in a Classic Single-Region Multi-Zone environment using 2.0 stencils and latest connector standards

IBM Kubernetes Service in a VPC Single-Region Multi-Zone environment using 2.0 stencils and latest connector standards

IBM Red Hat OpenShift Service in a Classic Single-Region Multi-Zone environment using 2.0 stencils and latest connector standards

IBM Red Hat OpenShift Service in a VPC Single-Region Multi-Zone environment using 2.0 stencils and latest connector standards

2.0 Templates

Find latest templates in drawio/templates/2.0.

PowerPoint (ppt)

click here to expand

WARNING Stencils in this format are in the process to get updated to latest release/conventions.

Getting ppt instructions file and icons

Please find the IBM_IT Architecture diagrams kit_External file under ppt folder. For video tutorial with demo see video tutorial below.

Creating icons in ppt

PowerPoint.Demo.Video.mp4

Scalable Vector Graphics (svg)

click here to expand

WARNING Stencils in this format are in the process to get updated to latest release/conventions.

Getting svg icons/files

Please find the SVG sfiles under svg folder.

Tutorials

Draw.io - Importing Stencil Libraries into Draw.io desktop tool step-by-step

Click here to expand

This section provides instructions on how to import stencils published in this repository (available in this path drawio/stencils/2.0) into draw.io desktop application. Stencils/icons are added and grouped using libraries, the libraries can contain one or several stencils, these are saved and generated in XML format (.xml). To use these these custom libraries, they first must be imported in order to make them available in the draw.io utility/tool. Remember that only desktop drawio application (as opposed to the online counterpart)is authorized for IBM internal diagrams.

  • All-in-one (ibm_all_in_one.xml) importable file containing all stencils/shapes is now provided for 2.0 in this directory drawio/stencils/2.0.

Import Guides

Import using Github Clone (Recommended)

Prerequistes

Option 1 - GitHub Desktop Instructions

Click here to expand
  • Sign into github.com.

  • In the main page, click the Clone or download button, select on Open in Desktop, wait for the prompt and select/confirm launching the link using GitHub Desktop application. Confirm directory where repository will be cloned:

    Click on Clone and wait for process to complete.

  • Open the desktop Draw.io application in your computer.

  • Select Create New Diagram, then click Create.

    If importing one library (.xml) at time

    • Click on File > Open Library, browse your drawio folder in your cloned/local directory and select the XML file, then click on Open. Repeat for every additional XML file you wish to import.

    • Confirm library or libraries are visible in the left panel:

    If importing all libraries (.xmls) at the same time

    • Go to Extras, then click Configuration
    • Hit Preferences
    • Edit the customLibraries block section to include the path to all the XML files, see default OS configurations below
    • click Apply and restart to refresh the changes.
    • Confirm library or libraries are visible in the left panel

Option 2 - GitHub CLI Instructions

Click here to expand
  • Sign into github.com.

  • While in the main page, click the Clone or download button, select on Use SSH if not already selected (Use HTTPS will be displayed) and then copy the link using the copy symbol:

  • CD to directory where you wish to clone this repository.

  • Clone the repository using git clone syntax using the previously copied ssh link:

    $ git clone [email protected]:ibmcloud/ibm-cloud-stencils.git
    Cloning into 'ibm-cloud-stencils'...
    Enter passphrase for key '/Users/youruserid/.ssh/id_rsa': 
    
  • Enter the passphrase of your SSH key.

  • Confirm repository was successfully cloned, the CLI should display something like this:

    remote: Enumerating objects: 58893, done.
    remote: Total 58893 (delta 0), reused 0 (delta 0), pack-reused 58893
    Receiving objects: 100% (58893/58893), 185.09 MiB | 5.01 MiB/s, done.
    Resolving deltas: 100% (18944/18944), done.
    $ 
    
    If importing one library (.xml) at time

    • Click on File > Open Library, browse your drawio folder in your cloned/local directory and select the XML file, then click on Open. Repeat for every additional XML file you wish to import.

    • Confirm library or libraries are visible in the left panel:

    If importing all libraries (.xmls) at the same time

    • Go to Extras, then click Configuration
    • Hit Preferences
    • Edit the customLibraries block section to include the path to all the XML files, see default OS configurations below
    • click Apply and restart to refresh the changes.
    • Confirm library or libraries are visible in the left panel

Default configurations:

Important: stencils must be in reverse order in JSON to load in alphabetical order in drawio desktop.

  • 1. Default drawio desktop preferences file for macOS:

    Click here to see code snippet
    {
      "language": "",
      "configVersion": null,
      "customFonts": [],
      "libraries": "general;uml;er;bpmn;flowchart;basic;arrows2",
      "customLibraries": [
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_uml_relationships.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_sequence_numbers.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_core_storage.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_core_security_devices.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_core_security.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_core_network_devices.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_core_network.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_core_management.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_core_groups_security.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_core_groups_network.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_core_groups_locations.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_core_groups_containers.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_core_groups_compute.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_core_groups_actors.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_core_groups.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_core_devops.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_core_data.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_core_compute_devices.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_core_compute_containers.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_core_compute.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_core_applications.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_core_actors_users.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_core_actors_locations.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_core_actors_devices.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_cloud_storage_devices.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_cloud_storage.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_cloud_security.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_cloud_paks.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_cloud_network_devices.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_cloud_network.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_cloud_management.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_cloud_groups_security.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_cloud_groups_network.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_cloud_groups_locations.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_cloud_groups.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_cloud_data_databases.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_cloud_compute_devices.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_cloud_compute.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_cloud_applications.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/ibm_all_in_one.xml",
        "S/REPLACE_WITH_YOUR_PATH/ibm-cloud-stencils/drawio/stencils/2.0/3rd Party Products.xml"
      ],
      "plugins": [],
      "recentColors": [],
      "formatWidth": "240",
      "createTarget": false,
      "pageFormat": {
        "x": 0,
        "y": 0,
        "width": 827,
        "height": 1169
      },
      "search": true,
      "showStartScreen": true,
      "gridColor": "#d0d0d0",
      "darkGridColor": "#424242",
      "autosave": false,
      "resizeImages": null,
      "openCounter": 1,
      "version": 18,
      "unit": 1,
      "isRulerOn": false,
      "ui": ""
    }

Import using Download Zip

  • To download all contents of the repository, navigate to the main page, click the Clone or download button and then select Download ZIP. Alternatively, if downloading a specific version/release, go the releases page, select the one needed and hit the source code (zip) button.

  • Go to your downloads directory and extract the ZIP file contents and access the folder called drawio, it should be located in the following path:

    YourDownloadsDirectory/ibm-cloud-stencils-master/drawio

  • Confirm XML file(s) you wish to import are visible inside the the drawio folder in your downloads directory:

  • Open the desktop Draw.io application in your computer.

  • Select Create New Diagram, then click Create.

  • Click on File > Open Library, browse your drawio folder in your downloads directory and select the XML file, then click on Open. Repeat for every additional XML file you wish to import.

  • Confirm library or libraries are visible in the left panel:

    If you run into issues, please use Github Clone approach (below)

Tools & Conventions

Format & Layout

IBM stencils / shapes can be of any of the following formats:

  • Groups (container group with solid border and single sidebar + icon in upper left corner): represent a deployedOn relationship for locations (logical, virtual, physical) of platforms, infrastructure, network, etc, on which services and applications are deployed. For example, a virtual server instance is deployedOn a subnet (refer to example below).

  • Zones (non-container group with dashed border and icon in upper left corner): represent a deployedTo relationship in which one application, service or component is deployed to another. For example, a virtual server instance is deployedTo a security group (refer to example below).

  • Nodes (square shape with icon): are meant to represent standalone components or devices.

  • Actors (round shape with icon): represent roles, functions or attributes played by human users, devices and other entities that interact with any of the above.

    This example shows the App VSI deployedOn App Subnet and App VSI deployedTo both the Maint SG and App SG.

    Click to expand

    Using a non-container group for security group prevents ambiguities as to whether the App VSI is physically in the subnet or a security group if the security group were a container group, however since the security group is a non-container group the App VSI is only physically in the subnet on the diagram.

    If needed, use alt-click or option-click to click inside of a non-container group.

Colors

Codes for the above colors correspond to the following primary color codes.

Fill colors are either white or the light color from the same color family as the corresponding primary color. For example, Cyan 50 is the primary color for Network and the corresponding fill color for a network group is either white or Cyan 10 for accessibility.

Nested container groups should alternate between white and light fill for accessibility.

If additional colors (not used in connectors or the above screenshot) are needed for customizing connector lines, adding non-standard background to boxes/groups and/or adding color to shapes outside the libraries, make sure to use the pre-approved colors listed here

Connectors

Please see the Connectors file with draw.io format version of the picture above or import the IBM Connectors xml library.

Help & Support

For additional help and support on how to use stencils and drawio, please open an issue.

About

Stencils and guidance for creating IBM Cloud diagrams.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •