Giter VIP home page Giter VIP logo

ibm-cloud-stencils's Introduction

IBM Cloud Stencils

Create IBM Cloud diagrams with enterprise tools using IBM Cloud Stencils.
Refer to the IBM Architecture Center for complete details.

Importing Stencil Libraries into Draw.io

This easy guide provides instructions to import stencils published in this repository (drawio folder) into draw.io. 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.

Import Guides

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.

  • 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 or open draw.io in your browser.

  • 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:

Import using Github Clone

Prerequistes

Instructions

  • Sign into github.
  • 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]:ibm-cloud-architecture/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.
$ 
  • Optionally use GitHub Desktop to Clone. 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 or open draw.io in your browser.

  • Select Create New Diagram, then click Create.

  • 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:

Using IBM Cloud Stencils

Overview

IBM Cloud Diagrams are organized by boxes (rectangular borders) with deployedOn and deployedTo relationships -

DeployedOn Boxes

Represent a deployedOn relationship for locations (logical, virtual, physical) of platforms, infrastructure, network, etc, on which services and applications are deployed.

DeployedOn boxes have the following attributes:

  • A solid border.
  • Cannot cross multiple box boundaries.
  • Implemented as diagram containers (container=1).
  • Icons remain in box when box is moved or replicated.
  • Placement is done before deployedTo boxes have been placed.

DeployedOn boxes include IBM Cloud, Region, Zone, VPC, Subnet, etc.

DeployedTo Boxes

Represent a deployedTo relationship for grouping services and applications.

DeployesTo boxes have the following attributes:

  • A dashed border.
  • Can cross multiple box boundaries.
  • Not implemented as diagram containers (container=0).
  • Icons do not remain in box when box is moved or replicated.
  • Placement is done after deployedOn boxes have been placed.

DeployedTo boxes include Account Group, Instance Group, Namespace Group, Resource Group, Security Group, etc.

Box Boundaries

Box border widths vary by relative importance of a boundary and shading:

  • 3pt width is used for IBM Cloud, Public Network, and Enterprise Network.
  • 2pt width is used for most boxes within IBM Cloud.
  • 1pt width is used for Cloud Services and shaded boxes within IBM Cloud.

The 1pt width for shaded boxes is used since the shading already provides a border and the smaller width allows connectors to stand out.

Box Example

A virtual server instance is deployed on a subnet and deployed to a security group.

Icons

IBM Cloud Icons consist of:

Examples

IBM VPC Diagram

Notes

General

  1. Floating IP icon is an arrow with a closed circle that represents a NIC pointing outwards from an instance.

  2. IBM VPC has a single subnet type Subnet where Subnet:ACL denotes a Subnet with an associated ACL which can be customized such as SubnetName:ACLName, SubnetCIDR:ACLName, split to 2 lines, etc.

  3. Diagram containers if available in a tool (draw.io and Visio) are used as mentioned in the Overview.

  4. To migrate existing boxes and groups to latest if desired, apply styles from new boxes and groups to existing diagram. For draw.io, updating styles in existing boxes that are not yet containers won't make existing contents of a box part of the container.

draw.io

NOTE: For IBM internal designs/diagrams, you must use the desktop application (2.) to create or edit a diagram. The draw.io/diagrams.net web application (1.) is only approved for public designs that contain no forward-looking material

  1. To use the IBM Stencils on draw.io in your browser: https://draw.io/?libs=ibm

  2. To use the IBM Stencils on the draw.io desktop application do the following:

    1. Open application and click on "+ More Shapes" in the bottom left panel.
    2. Scroll down to the "Networking" section and check "IBM".
    3. Click "Apply" to finish.

    IBM Stencils should now be available in the embedded categories in the left panel.

  3. Folders for draw.io on this github are used for changes not on draw.io and are subject to change.

  4. When adding icons to diagrams the default background color for text should be transparent but instead may be white. See open issue #1 below for a workaround.

  5. When exporting diagrams to svg ensure that icons are included (check Embed Image) if using svg offline and ensure white space is minimal (select entire diagram then check Selection Only and Crop) if embedding in a document.

Open Issues:

  1. Issue #620 where setting the icon text background to transparent doesn't work.
    Status: Open. This issue happens if labelBackgroundColor=none is before the image; statement in icon style, so place the labelBackgroundColor=none to anywhere after the image; statement.
    Status: Open.

Fixed Issues:

  1. Issue #724 where icons dropped onto container in FF would not stay in container when container is moved.

  2. Issue #723 where overlaying a box across other boxes may cause underlying boxes to expand and have to be resized such as when placing a security group box across multiple subnet boxes. This scenario is working as designed so draw.io added a new property "expand" to swimlanes for our boxes. The current behavior is the default with expand=1 and our boxes are set to expand=0.

  3. Issue #748 to set container=0 for deployedTo boxes as mentioned in Overview.

Visio

  1. Boxes are implemented as containers.

  2. Box tags are currently separate and can optionally be placed on upper left corner of boxes.

Powerpoint

  1. Refer to all-ibm-cloud-architecture-icons-October2019-WithVPCUpdatesFebruary2020.pptx on this github.

Standards

Colors
Style Hex Color RGB Color
Text (Helvetica 12 pt) #000000 0,0,0
Connectors (1 pt and 2 pt) #000000 0,0,0
Blue Borders #4376BB 67,120,187
Light Blue Fill #CDEBF9 80,92,98
Green Borders #00882B 0,136,43
Light Green Fill #E6F0E2 230,240,226
Grey Borders #919191 145,145,145
Light Grey Fill #E0E0E0 224,224,224
Purple Borders #B99ACD 185,154,205
Light Purple Fill #F0E8FF 245,232,255
Red Borders #FF0000 255,0,0
Gold Borders #C4982E 196,152,46
DeployedOn Boxes
Name Icon Icon Name Style Width Type
IBM Cloud CloudTag Solid Blue Border 3 pt Container
VPC VPCTag Solid Blue Border 2 pt Container
Region RegionTag Solid Grey Border 2 pt Container
Zone ZoneTag Solid Grey Border
Light Grey Fill
1 pt Container
Subnet SubnetTag Solid Green Border
Light Green Fill
1 pt Container
Bare Metal Server BareServerTag Solid Green Border 2 pt Container
Virtual Server VirtualServerTag Solid Green Border 2 pt Container
Classic Infrastructure ClassicTag Solid Blue Border 2 pt Container
Public Network PublicTag Solid Blue Border 3 pt Container
Enterprise Network EnterpriseTag Solid Blue Border 3 pt Container
Cloud Services CloudServiceTag Solid Blue Border 1 pt Container
Cloud Foundry FoundryTag Solid Blue Border 2 pt Container
IBM Kubernetes Cluster KubeTag Solid Blue Border 2 pt Container
General Kubernetes Cluster GeneralKubeTag Solid Blue Border 2 pt Container
OpenShift Cluster OpenShiftTag Solid Blue Border 2 pt Container
Kubernetes Service KubeServiceTag Solid Blue Border 2 pt Container
Kubernetes Replica Set KubeReplicaTag Solid Blue Border
Light Blue Fill
2 pt Container
Kubernetes Pod KubePodTag Solid Purple Border
Light Purple Fill
2 pt Container
DeployedTo Boxes
Name Icon Icon Name Style Width Type
Kubernetes Namespace Group KubeGroupTag Dashed Blue Border 2 pt Non-container
Access Group AccessGroupTag Dashed Gold Border 2 pt Non-container
Account Group AccountGroupTag Dashed Gold Border 2 pt Non-container
Instance Group InstanceGroupTag Dashed Green Border 2 pt Non-container
Resource Group ResourceGroupTag Dashed Grey Border 2 pt Non-container
Security Group SecurityGroupTag Dashed Red Border 2 pt Non-container

ibm-cloud-stencils's People

Contributors

jaywarfield avatar jpmonge86 avatar osowski avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.