Best Practices from Oracle Development's A‑Team

Introduction to OKIT the OCI Designer Toolkit

Before building your OCI Infrastructure you will need to spend time designing and visualising your architecture. This can be done using a variety of tools, Microsoft Visio and Draw.io to name a few, but these are only diagrams useful for discussing the architecture missing key information that would allow you to translate the design into a working solution. To address these huge shortcomings of traditional design tools we decided to build OKIT.

The OCI Designer Toolkit (OKIT) is a, standalone / offline, OpenSource browser-based Drag-n-Drop design tool for OCI providing rapid design and prototyping of OCI based infrastructure. Once the design is complete Terraform / Ansible scripts can be generated that can then be executed to build what has been designed.


OKIT provides a simple, context-aware, minimalistic interface with 3 distinct areas.


On the left of the screen is a slide-out palette displaying all the currently implemented OCI artefacts. These are logically grouped into functionality. Moving the cursor over the icon will cause a short description / tooltip to be displayed. Clicking the icon will allow you to drag it onto the canvas.


Central to the screen is the canvas where the infrastructure diagrams will be built. When initially open or New canvas selected it will display just a top level compartment.


On the right of the screen we have a slide-out panel that will allow editing of the properties associated with the selected artefact.

OCI Infrastructures can quickly be built by dragging and dropping the artefacts from the palette onto the appropriate canvas element (OKIT will only allow drop on relevant container artefacts) automatically laying out the diagram in an ordered manner. This allows Infrastructures to be designed and modified on the fly without the need to connect to an OCI environment.

Once the graphical design is complete we can move on to providing key property information that will be used during the generation of Terraform / Ansible scripts.


Each artefact on the canvas has a set of properties, that are required to build them within OCI. Clicking on an artefact will allow the user to edit those through the slide-out properties panel. Once open we can see that the user has access to the, required, properties that are available when creating the artefact within the OCI Console or through the Terraform / Ansible APIs.

Having edited the properties for all artefacts Terraform / Ansible script can be generated by simply selecting the appropriate menu item which will return a zip file containing the code script.

Extracting the zip will provide the user with a number of script files that can be execute using normal Terraform / Ansible commands to build the designed infrastructure in you specified OCI Region / Compartment.

Future Posts

Look out for our future posts that will discuss some of the advanced and interesting features in OKIT, such as

GitHub Project

OKIT is provided as an OpenSource project residing in the Oracle GitHub project oci-designer-toolkit.


Full installation guides can be found Installation Guide.


The OKIT User Guid and Examples can be bound at User Guide.


Join the discussion

Comments ( 8 )
  • Eric Yen Saturday, May 16, 2020
    ‪Just a wild thought/question. Any plans OKIT be integrated into to the OCI Console ?‬
  • Andre Friday, May 22, 2020
    This is a great tool, really excellent work! Even if it doesn't support all artefacts yet, OKIT creates a good starting point for creating OCI designs and for working with Terraform and Ansible scripts. And I especially like the Query feature, although getting that to work was a bit of a puzzle. What's missing in the Installation Guide is doing the OCI config prerequisite as mentioned in the Usage Guide. And then there is one more step that is not mentioned anywhere yet: after starting the container, open a cli to it and create the .ssh directory and the oci_api_key.pem file in it (cat > oci_api_key.pem, paste in your key, followed by Control-D to close the file). After that the Search feature will connect to your tenancy and display your own Compartments and the OCI regions.
  • Bilal Abdullah Tuesday, May 26, 2020
    Hi Andrew;

    this is amazing!
    can you share with us the URL of this tool in case we have shared one? I meant to say instead of installing OKIT as a docker image for every team , we can share a powerful shared installation.


  • ROBERTO MAGALHAES Sunday, May 31, 2020
    Hello, I've export my environment OCI by Terraform and I'd like to Import in this tool,,, For instance, it does not work,,, however, very usefull...

  • Andrew Monday, June 1, 2020
    Roberto OKIT does not import terraform. If you want to introspect your OCI and generate a diagram then you should use the Query option.
  • Hasso Schaap Thursday, July 2, 2020
    Generally, visualizing Infrastructure is a very useful thing in communication. What I would love in these kind of tools is some kind of check method/wizard to see if a solution would adhere to (customizable/ templated) security and compliance rules. This can then be part of a customers' IT governance tools for cloud/datacenter/solution/stack.
    Although design is a creative profession, in this case design has to adhere to rules, guidance and optionally best practices. If these are part of the goal of OKIT (or a broader concept), this is huge!
    Needless to say, it already is very valuable, I'm certainly going to look into this.
  • Robert Murray Friday, February 5, 2021
    I’m a US Government OCI customer and would like to see OKIT support the government offering. My coding skills are limited but I’d like to help out. This is an amazing product.
  • Andrew Friday, February 5, 2021
    Robert what specific features for government regions were you thing of. If you want any enhancement add it to the issues section of the GitHub and flag it as an enhancement. As for code if you fork the repo you can do your mods and create a pull request which we can review.
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.Captcha