Skip to content
This repository has been archived by the owner on Feb 24, 2023. It is now read-only.
Matthew Hall edited this page Nov 13, 2019 · 46 revisions

NR Get Token Wiki

Purpose

We are creating and maintaining this wiki to share what the Common Service Showcase Team has learned while working to support Developer Relations in the Information, Innovation and Technology Division.

What is GETOK?

GETOK is fundamentally a tool to automate the process for developers to receive access to APIs that require permission to use.

What are Common Services?

A common service can be many different things. The characteristic they all share is that they were built once to provide benefit many times.

Definition

In a software context, common services consist of one or more existing business capabilities that can be enabled and cost-effectively used by multiple business units.

Common Service Qualities

  • Self Service - It requires no assistance, from the owners of the common service, to implement it
  • Showcased Capabilities - The common service is advertised, with sufficient examples for potential users to see how the capabilities could be used
  • Implement Example Code - A neatly packaged example of how to implement the common service is available and resides in a location free of any other irrelevant code or documentation

Common Service Delivery Channels

  • ​Hosted Service - The capabilities of a hosted common service are accessed via an API call from an application that has been provided access (if required). The users of hosted services are not required to run a copy of the service. The costs of doing that are paid for by the team that is hosting the service
  • Reusable Component - These are complete services that when deployed will provide access to one or more capabilities within a product. The product team runs an instance of this common service on their own servers
  • Shared Code - These are portions of code (code libraries or modules) used by or included in an application when the application component is built and deployed
  • Tested Instructions - These can manual or automated instructions that, when followed, produces a piece of working software that can be used​

Common Service Examples

Common Hosted Services

These are running and supported in one location where many applications or people go to us it.

EXAMPLE: apps.smtp.gov.bc.ca is an SMTP Server that runs and accepts requests from other applications to send out emails from within the SPANBC Network.

Reusable Components

An individual software component is a software package, a web service, a web resource, or a module that encapsulates a set of related functions (or data). Definition from Wikipedia: Component-based software engineering Software components can be installed, called, referenced or run just for one application, but the source code is not customized for each application that uses it.

EXAMPLE: Many Software teams are running Jenkins and Sonarqube as services used by their products to help with orchestration of software testing and deployment.

Shared Library

Applications will commonly used many of these to aid developers in fetching data on a webpage, formatting and styling the webpages, creating geospatial maps, displaying and working with tabular data, managing the state of the application, routing you to the right location as you click on links, or interacting with APIs.

EXAMPLE 1: ReactJS which is a JavaScript library used for building user interfaces.
EXAMPLE 2: LeafletJS used for creating maps.

Shared Best Practices

Many Tools, Disciplines, Processes, Practices, Methodologies and Frameworks each with their own core activities have been developed to help establish best practices for accomplishing certain types of work. There are plenty of generic examples in Software Development for doing things like collecting requirements, or how to setup a pull request-based CI/CD pipeline. When a Developer Relations team puts together documentation to assist developer with these processes, these can lead to consistently applied approaches that will improve the ability to support the various implementations of technology components when team members change on a team.

EXAMPLE 1: NR Showcase DevOps Tools Which is instructions for the setup of the DevOps pipeline tools which will be installed, configured and self-hosted by that application team to provide continuous integration and continuous delivery functionality for each pull request done on the code of their application.
EXAMPLE 2: Javascript & Node.js Testing Best Practices - From what I've seen developers are writing unit tests. But a shared best practice like this can bring a lot of value to the organization.

Clone this wiki locally