Git Product home page Git Product logo

hooks's Introduction

ncm

OPBI - Open Business Institute

opinionated business agnostic open source solutions


Missions

Sharing Best Practices

With the power brought by the open-source community and Sass tools, it is much easier to curate an idea into a business than 2008. OPBI is founded with a mission to share the common technology decisions validated as best practices so that entrepreneurs can better focus on explore business logics. It is initialised with solution patterns found in various companies in different scales, and it is always more forward-looking to fix problems perceived in those organisations. It would stay open-source, so that it can be kept updated to set the technology structure models.

Reusable and Integrated Solutions

It often comes down to choose tools and services, integrate them with automations and process to achieve efficiency and technology-organisation fit. Common decisions on infrastructure, development process, pipeline, release pattern, data tracking and analytics can firstly be shared, discussed, updated. Secondly, architect and certain services can be made reusable as well, e.g. an image upload service, payment-accounting integration, etc. OPBI will be sharing here a list of technology choices and automations to integrate them into one system with a fitting organisation structure.

Principles

"Those who want to do their job well must first sharpen their tools." -- Ban Lu

Open-Source and Business Agnostic

Zero-Configuration By Default

While Always Configurable

Consistency over Variety

Repeatable and Automatable

Practices

Technology Choices

OPBI will be sharing automation tooling based on common technology choices to create a well-integrated solution. We aim to use best-of-kind services while also would like to provide more flexibilities to support different options. As change of the fundamental technology options would largely impact the toolchain, we would like to keep the solutions more future proof by clear separation of layers and lock some of the choices initially.

Here we assume a list of choices as below [in different layers]:

  • Cloud Infrastructure: Google Cloud Platform, Google Kubernetes Engine, Terraform
  • Container Orchestration: Kubernetes, Helm
  • Continuous Integration: GitLab, GitHub, CircleCI, Coveralls, Snyk, Hashicorp/Vault, etc.
  • Build Toolchain: Language specific best-practice build toolchain managed in centralised repos
    • JavaScript: @opbi/ncm - package an updated best-practices build toolchain for multiple repos
  • Services & Programming Languages
    • JavaScript(Applications): React, React-Native, Node, Fastify
    • Python(Data Services)
    • Golang(DevOps Services)
  • Operation:
    • @opbi/toolbox: Packaged Log, Metrics, Tracing Decorator
    • Prometheus, Grafana, ELK, etc.
  • Behaviour Analytics: Segment
  • Marketing Automation
  • Business Intelligence

Organisation Structure

ncm

Technology Architecture

ncm

Component Lifecycle Standard

component

Service Lifecycle Standard

service

Application Lifecycle Standard

app

Glossary

We choose to use a set of distinctive and friendly terms to describe high-level elements in organisation structure and technology architecture. These terms are chosen to avoid confusion with any lower-level elements in technology and organisation while ideally integrate them, e.g. package is used in Node.js to describe codebase unit. Those terms will essentially be used to form the schema of the technology resource management system.

[Product] <- [User Journeys, Business Capabilities] <- [Team(Squad)]

[System] <- [Component] -> [Team(Tribe)]

[Organisation] <- [Team] <- [People]

  • System: the operating architecture constructed with components, which serves a set of user journeys or business capabilities managed by different business slice teams [Squads]
  • Component: a codebase unit that can be developed, ran or deployed or published or used to config infrastructure. It be in one of the types [infra, data store, app, service, job, package], and for each type there should be a template to define its quality and workflow standard, to model how it would be planned, developed, tested, deployed, shared, used, monitored, and administrated.
  • Team: can be a skill based community [Tribe] or a business capability slice group [Squad]. Each Tribe should have a common standard of distinctive responsibilities and technology choices, e.g. commonly can be product, data engineering, devops Tribes. Each Squad should have a set of key metrics to define their missions, a product Squad should take the first touch point of a particular set of user journeys to its very end, and how they would be formed would be aligned to the Product User Experience Architect.
  • User Journey: user-product interaction path to complete certain tasks in order to fulfil users' requirement from time to time as well as the organisation's mission. A selected set of journeys are arranged to form the product according to Product User Experience Architect based on priorities. There should be one single source of truth of those journeys to thread user research, design, user stories planning, development, test, product release and performance monitor, aligning to business missions.

hooks's People

Contributors

renovate[bot] avatar zhenyulin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

fossabot

hooks's Issues

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Rate-Limited

These updates are currently rate-limited. Click on a checkbox below to force their creation now.

  • chore(deps): update dependency husky to v8
  • chore(deps): update dependency prettier to v3
  • chore(deps): update dependency semantic-release to v21
  • chore(deps): update dependency typescript to v5
  • chore(deps): update jest monorepo to v29 (major) (babel-jest, jest)
  • ๐Ÿ” Create all rate-limited PRs at once ๐Ÿ”

Edited/Blocked

These updates have been manually edited so Renovate will no longer make changes. To discard all commits and start over, click on a checkbox.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

npm
package.json
  • compose-function ^3.0.3
  • moment ^2.29.1
  • @babel/cli ^7.15.7
  • @babel/core ^7.15.5
  • @babel/plugin-proposal-object-rest-spread ^7.15.6
  • @babel/preset-env ^7.15.6
  • @babel/preset-typescript ^7.15.0
  • @commitlint/cli ^13.1.0
  • @commitlint/config-conventional ^13.1.0
  • @commitlint/prompt-cli ^13.1.0
  • babel-core ^7.0.0-bridge.0
  • babel-eslint ^10.1.0
  • babel-jest ^27.2.1
  • babel-plugin-module-resolver ^4.1.0
  • coveralls ^3.1.1
  • documentation ^13.2.5
  • eslint ^7.32.0
  • eslint-config-airbnb-base ^14.2.1
  • eslint-config-prettier ^8.3.0
  • eslint-config-standard-jsdoc ^9.3.0
  • eslint-import-resolver-node ^0.3.6
  • eslint-plugin-import ^2.24.2
  • eslint-plugin-jest ^24.4.2
  • eslint-plugin-jsdoc ^36.1.0
  • eslint-plugin-prettier ^4.0.0
  • eslint_d ^11.0.0
  • gh-pages ^3.2.3
  • husky ^7.0.0
  • jest ^27.2.1
  • prettier ^2.4.1
  • semantic-release ^18.0.0
  • typescript ^4.4.3
  • node >=14

  • Check this box to trigger a request for Renovate to run again on this repository

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Location: renovate.json
Error type: The renovate configuration file contains some invalid settings
Message: Invalid configuration option: node

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.