Changes

Jump to navigation Jump to search
no edit summary
Line 273: Line 273:     
<h4><b><u>Design for [https://www.gcpedia.gc.ca/wiki/En/GCinterop Interoperability]</b></u></h4>
 
<h4><b><u>Design for [https://www.gcpedia.gc.ca/wiki/En/GCinterop Interoperability]</b></u></h4>
 +
 +
As the GC is transitioning to new technology and as more departments start to work together, interoperability becomes a key important factor in ensuring stability and continuity of a program. Self-discipline must be instilled to always publish and maintain API so that other systems or other departments can make use and leverage the work that is already done without duplication of work and re-inventing the wheel. It can also maintain precious data flow that has previously obtained from legacy system.
    
The most important use of interoperability is it provides the ability to communicate between one system to another without the need of manual intervention. It doesn't matter if one system is built with one platform, eg. UNIX/LINUX, and the other system is built with another platform, eg. Windows, "OR" if one system is legacy, eg. Mainframe, and the other is an innovative product, eg. machine learning. With interoperability, these different systems can communicate with one another, thereby enabling efficiency and/or effectiveness of a solution. Interoperability can also enable easier communication between one department to another, thereby creating better collaboration and automation exchange of data.<br><br>
 
The most important use of interoperability is it provides the ability to communicate between one system to another without the need of manual intervention. It doesn't matter if one system is built with one platform, eg. UNIX/LINUX, and the other system is built with another platform, eg. Windows, "OR" if one system is legacy, eg. Mainframe, and the other is an innovative product, eg. machine learning. With interoperability, these different systems can communicate with one another, thereby enabling efficiency and/or effectiveness of a solution. Interoperability can also enable easier communication between one department to another, thereby creating better collaboration and automation exchange of data.<br><br>
Line 278: Line 280:  
* <b><I>Design systems as highly modular and loosely coupled services</b></I><br>
 
* <b><I>Design systems as highly modular and loosely coupled services</b></I><br>
   −
Focus on smallest unit of purpose, and developing a single function. Ensure containers contain a single application, and build the smallest image possible.
+
A good system design starts from building a small simple independent function. Focus on smallest unit of purpose, and develop a single function. The small single function can then become a building block for a larger more complicated function, and be combined with other simple functions to finally create a service. Having a simple independent function also means that it be reused to create another complicated function. Thus, it is very important to build a function that is small and simple enough to make it highly modular.
Ensure containers are properly versioned and tagged.
+
 
 +
When creating a container, ensure each container contain a single application and build the smallest image possible. It is also important to ensure containers are properly versioned and tagged to be able to easily manage them.
 +
 
 +
When one is at the point of starting to create multiple services, it is important to make sure the services are loosely coupled. This way, even the services can also be re-used, either by other projects, programs or even other departments.
 
<br><br>
 
<br><br>
  
514

edits

Navigation menu

GCwiki