Onyku™

Calvet IT is a Norwegian company dedicated to promoting Open Knowledge in IT consulting.

Onyku™ is an open-source project aimed at creating an IT design standard, guideline standards, and developing an IT design software that adheres to them. This software facilitates the creation and sharing of knowledge in these standards, leveraging Git repositories to enhance collaboration among IT professionals.

IT industry challenges:

  • The absence of a standardized IT design format leads to unnecessary translation work for IT professionals on every project (e.g., adapting to customer design formats or combining designs from different vendors).
  • An IT design written in Word, PDF, or Wiki drastically reduces its potential value (e.g., making it complex to extract specific information or combine designs).
  • Unstandardized knowledge sharing reduces collaboration opportunities (e.g. Each blog article has a unique structure or pictures not editable)

Solutions:

  • Create an IT design open-source standard. IT professionals, like solution vendors, share IT design components or reference designs in this standard under an open-source license to ensure collaboration among all actors.
  • Develop IT guideline standards to enhance collaboration, for example, by prioritizing diagrams generated from text over pictures. IT professionals share IT knowledge in these standards under an open-source license.
  • Develop an open-source IT design application that adheres to these standards and facilitates the creation and sharing of knowledge in this form. This application extracts value by providing customized views for example for security personnel.

User story, deploy Kubernetes platform on a new virtualization platform for a customer:

Background:
The customer is already using the new IT standard design and has created designs for the physical datacenter, network, and servers.
A consultant is assisting the customer in implementing a new virtualization platform and a Kubernetes platform on top of it, integrating solutions from two different vendors.
The consultant will perform, among other tasks, the following actions:

  • Load current customer designs from customer private Git repositories using the IT design software.
    This method speeds up learning about existing customer designs by following a familiar standard.
  • Download the reference design and guidelines published by the virtualization platfom vendor from a public Git repository.
    Use the reference design directly without any conversion.
    Follow guidelines more easily when they adhere to known standards.
  • Perform the same operation but with the Kubernetes platform vendor.
    Same benefits as above
  • Create a new design without content initially and export it to a customer private Git repository,
  • Work closely with the customer during the whole design process collecting requirements, constraints, assumptions and risks.
  • Customize the two vendor reference designs as needed and integrate them with the existing physical design (e.g., physical network) to build the new design using the IT design software.
  • Download design guidelines shared by other IT professionals for the Kubernetes platform.
  • Leverage the experience of IT professionals who have faced similar design challenges.
  • Push each design update to the private Git repository throughout the project.
  • Contribute back to the community by creating a new Git repository to share knowledge or suggest improvements to an existing one.

Current Status: Start of a journey

The software is in its early stages, with a basic proof of concept for the knowledge-sharing module (i.e. Guidelines).
It demonstrates how an IT professional can create a Library, Subject, and Design question guideline following a pre-defined format and then export this library to a Git repository.
It also shows how another IT professional can import this library.
Proof of concept walkthrough documentation.
It is not production-ready.

Currently, the software is maintained by the founder, who has an infrastructure background rather than a software engineering background.
We aim to hire a senior software engineer as soon as financially feasible, who will be responsible for redesigning it and building the core product.

Community feedback is essential for shaping this project. If you’d like to join the discussion, please request an invitation to our initial Slack community using the contact form.
First topics to be discussed:

  • Open-source license: Which one to use for Onyku™ and the repositories of shared knowledge?
  • Community platform: Discord, Discourse, GitHub Discussions others?

Technical vision and goals so far:

  • Kubernetes application: Develop a Kubernetes application that customers can self-host, either on-premises or in the cloud.
  • Core of the application: Enable users to create, import, combine, and share IT designs seamlessly.
  • Supporting modules: The first is the knowledge sharing module facilitating easy access to best practices and guidelines
  • IT design standard: Achieve industry consensus on a versatile IT design standard that can support any kind of IT design, regardless of the technologies involved.
  • IT guideline standards: Achieve industry consensus on IT guideline standards (e.g., IT Design Question Guideline, Deep Dive) to gain the same benefits as the design pattern standard in the software industry.
  • Public Git repositories: IT actors, like application vendors, share information on how to design their products on public Git repositories, promoting transparency and collaboration.
  • Private Git repositories: Store customer IT designs and private guidelines on private Git repositories to ensure security and confidentiality.
  • View is separated from the content: Views are separated from the content, such as a security view to show all design decisions related to security across multiple designs, and a network view to display all network layers from physical to Kubernetes networks.
  • Modular and API-first approach: Adopt a modular and API-first approach, allowing customers and partners to seamlessly integrate their own solutions or enhance the platform to meet their specific needs.