Difference between revisions of "GC Enterprise Architecture/Framework"

From wiki
Jump to navigation Jump to search
Line 80: Line 80:
 
<span style="font-size: 1.5em;">[[GC_Application_Enterprise_Architecture | 3. Application Architecture]]</span> <br><br>
 
<span style="font-size: 1.5em;">[[GC_Application_Enterprise_Architecture | 3. Application Architecture]]</span> <br><br>
  
<b>Use Open Standards and Solutions by Default</b>
+
<b><I><u>Use Open Source Solutions hosted in the Cloud</b>
* Where possible, use open source standards, and open source software first
+
* Select existing solutions that can be reused over custom built
* <I><u>When using Open Source remain at the latest and greatest version to ensure any security vulnerabilities are patched</u></I>
+
* Contribute all improvements back to the communities
* <I><u>Ensure any extension or change to the Open Source item is contributed back to the community</u></I>
+
* Register Open Source software to the Open Resource Exchange
* If an Open Source option is not available or does not meet user needs, favour platform-agnostic COTS over proprietary COTS, avoiding technology dependency, allowing for substitutability and interoperability
 
* If a custom-built application is the appropriate option, by default any source code written by the government must be released in an open format via Government of Canada website and services designated by the Treasury Board of Canada Secretariat
 
* All Open Source code must be released under an appropriate open source software license
 
* <I><u>Ensure valid license and legal requirements are met for use of Open Source items</u></I>
 
* Expose public data to implement Open Data and Open Information initiatives
 
  
 +
<b>Use SaaS hosted in the Cloud</b>
 +
* Choose SaaS that are extendable
 +
* Align with SaaS capabilities; extend as Open Source modules
 +
* Configuration over customization
  
<b>Design for Users First and Deliver with Multidisciplinary Teams</b>
+
<b>Design for [https://www.gcpedia.gc.ca/wiki/En/GCinterop Interoperability]</b>
* Focus on the needs of users, using agile, iterative, and user-centred methods
+
* Design systems to be highly modular, loosely coupled and aligned to Business Capability Model 2.0
* Conform to both accessibility and official languages requirements
+
* Use micro services scoped to a single purpose and API-led connectivity
* Include all skillsets required for delivery, including for requirements, design, development, and operations
+
* Expose functionality as services, make services available through APIs and make the APIs discoverable
* Work across the entire application lifecycle, from development and testing to deployment and operations
 
* Ensure quality <u><i>and security</i></u> is <u><i>underpinning</i></u> the Software Development Lifecycle
 
* <I><u>Total Cost of Ownership (TCO) should include the cost for design, construction, operation, and maintenance of a system. For example Training, Support, Disaster Recovery, and Retirement Cost</I></u>
 
  
 
+
<b>Use DevOps / Continuous Integration to ensure maintainability and AB Testing</b>
<b><u>Design Systems to be Measurable and Accountable</b></u>
+
* Work with multidisciplinary teams
* Publish performance expectations for each business service and supporting application and technology service(s)
+
* Ensure testing and QA is completed
* Make an audit trail available for all transactions to ensure accountability and non-repudiation
+
* Work in the open; Release source code developed via GC website and GC services
* Establish business and IT metrics to enable business outcomes
+
</u></I>  
* Apply oversight and lifecycle management to digital investments through governance
 
* <u><I>Complete an Algorithmic Impact Assessment (AIA) for systems automating decisions as per the [https://tbs-sct.gc.ca/pol/doc-eng.aspx?id=32592 Directive on Automated Decision-Making].</u></I>
 
 
 
 
 
<b>Maximize Reuse</b>
 
* <I><u> Reduce integration Complexity - design systems to be highly modular and loosely coupled to be able to reuse components. </I></u>
 
* Leverage and reuse existing solutions, components, and processes
 
* Select enterprise and cluster solutions over department-specific solutions
 
* Achieve simplification by minimizing duplication of components and adhering to relevant standards
 
* Inform the GC EARB about departmental investments and innovations
 
* Share code publicly when appropriate, and when not, share within the Government of Canada
 
* <u>Use micro services scoped to a single purpose <I>and made available for cross-business use</u></I>
 
 
 
 
 
<b>Enable [https://www.gcpedia.gc.ca/wiki/En/GCinterop Interoperability]</b>
 
* Expose all functionality as services
 
* <u><I>Make all </i></u> services <I><u>available </u></i> through a well-defined interface, such as a HTTPS-based [https://www.canada.ca/en/government/publicservice/modernizing/government-canada-standards-apis.html application programming interface (API)]
 
* <u><I> Design APIs according to the Mandatory Procedures for Application Programming Interfaces (Government of Canada API Standards)
 
* All APIs with potential for cross-departmental, inter-jurisdictional, or public consumption must be published to [https://api.canada.ca/en/homepage | the GC API Store]
 
* Use the [gccollab:groups/profile/1238235/engovernment-of-canada-digital-exchangefru00c9change-numu00e9rique-du-gouvernement-du-Canada | Canadian Digital Exchange Platform (CDXP)] for data exchange where suitable (e.g. GC Event Broker for asynchronous messaging)
 
 
 
 
 
<b>Develop with Security in mind</b>
 
* Applications that store, process, handle, or have network access to sensitive information should be developed with security in mind from the start, and should be audited and assessed before use
 
* Ensure sensitive data is protected appropriately when stored and transmitted (Duplicate D3)
 
* Minimise the opportunity for accidental data leakage across application boundaries
 
* Ensure only authorised parties can access sensitive information
 
* Log access to facilitate audits and isolate unauthorized behaviour
 
* Restrict access to sensitive data to those applications designed to handle such material in a secure manner</u></I>  
 
 
|}
 
|}
  

Revision as of 09:44, 23 December 2019

This is a DRAFT COPY of the proposed updates to the GC EA standards

Changes from the previous version are marked as underlined and new additions are marked as italic and underlined


The GC Enterprise Architecture standard is part of the Directive on Management of Information Technology. It is listed as Appendix C - Mandatory Procedures for Enterprise Architecture Assessment in the Directive.

To view more detailed info on each point listed below, you can click on the top title for each of the Architecture layer, OR any of the blue link below.

1. Business Architecture

Fulfill the Government of Canada stakeholder's needs

  • Clearly identify internal and external stakeholders and their needs for each business service including user centric design
  • Include policy requirement applying to specific stakeholder groups, such as accessibilities, gender based+ analysis, and official languages in the creation of the service
  • Model end-to-end business service delivery to provide quality, maximize effectiveness and optimize efficiencies across all channels (e.g lean process)


Architect to be Outcome Driven and Strategically Aligned to the Department and to the Government of Canada

  • Identify which departmental/GC business services, outcomes and strategies will be addressed
  • Establish metrics for identified business outcomes throughout the lifecycle of an investment
  • Translate business outcomes and strategy into business capability implications in the GC Business Capability Model to establish a common vocabulary between business, development, and operation

Promote Horizontal Enablement of the Enterprise

  • Identify opportunities to horizontally enabled business services and provide cohesive experience to stakeholders
  • Reuse common business capabilities and processes from across government and private sector
  • Publish in the open reusable common business capabilities and processes (in the Open Government portal) for others to develop cohesive horizontal enterprise services

2. Information Architecture

Data Collection

  • Ensure data is collected responsibly and in a manner that maximizes use, reuse and availability of data
  • Align to existing enterprise and international standards, or where none exist, develop standards in the open with key subject matter experts and consultation with Enterprise Data Community of Practice
  • When collecting personal data or information, ensure that your practices are responsible and align with enterprise data ethics standards as well as relevant policy and legislation. The Policy Direction to Modernize the Government of Canada’s Sex and Gender Information Practices is an example of relevant policy that can inform considerations of gender diversity and inclusion.
  • Ensure data is collected only if it cannot be obtained through data-sharing
  • Ensure that data collection methodology yields high quality data in alignment with enterprise data standards
  • Engage with key stakeholders within the federal government, as well as provincial, territorial and other levels of government, including indigenous people
  • Adopt a needs-based approach to data collection and review existing data assets prior to collecting or acquiring new data
  • Ensure access and quality provisions are in place for data collected or acquired through third-party contracting services

Ensure that Data is Managed Responsibly and in a manner that Maximize Use, Reuse and Availability of Data

  • Align with enterprise and departmental policies and standards on data architecture and governance
  • Enable discoverability, accessibility, resiliency and availability of the departmental data assets
  • Asses, control and monitor data quality in alignment with enterprise data standards
  • Define and establish clear roles, responsibilities and accountabilities for data management
  • Where possible, use automation to support the management of data
  • Identify and document the lineage of the departmental data assets
  • Regularly assess the value of the departmental data assets and undertake retention and disposition as per existing schedules
  • Only handle data which is essential to your service. Do not store all data that you capture unless absolutely necessary
  • Ensure data is stored in a secure manner in accordance with CSE approved cryptographic algorithms and protocols and legislation such as the Privacy Act
  • Manage departmental data in a way that enables interoperability, not only within the department, but also at the enterprise level
  • Ensure that data is used in an Ethical and Secure manner
  • Ensure that combined data does not risk identification or re-identification of sensitive or personal information
  • Ensure the data is fit for the use it is employed for in accordance with data quality guidelines
  • Inform decisions by the appropriate data and information

Data Sharing

  • Data should be shared openly by default as per the Directive on Open Government
  • If data cannot be shared, explicitly state the laws and/or regulations preventing its sharing
  • Ensure that any data you share adheres to existing enterprise and international standards, including on quality or fitness for purpose
  • Encourage data sharing and collaboration
  • Ensure that data received from external parties is profiled and validated prior to its use.
  • Enable internal and external sharing of data and information as appropriate

3. Application Architecture

Use Open Source Solutions hosted in the Cloud

  • Select existing solutions that can be reused over custom built
  • Contribute all improvements back to the communities
  • Register Open Source software to the Open Resource Exchange

Use SaaS hosted in the Cloud

  • Choose SaaS that are extendable
  • Align with SaaS capabilities; extend as Open Source modules
  • Configuration over customization

Design for Interoperability

  • Design systems to be highly modular, loosely coupled and aligned to Business Capability Model 2.0
  • Use micro services scoped to a single purpose and API-led connectivity
  • Expose functionality as services, make services available through APIs and make the APIs discoverable

Use DevOps / Continuous Integration to ensure maintainability and AB Testing

  • Work with multidisciplinary teams
  • Ensure testing and QA is completed
  • Work in the open; Release source code developed via GC website and GC services

4. Technology Architecture

Use Cloud first

  • Adopt the Use of the GC Accelerators to ensure proper Security and Access Controls - Azure, AWS
  • Enforce this order of preference: Software as a Service (SaaS) first, then Platform as a Service (PaaS), and lastly Infrastructure as a Service (IaaS)
  • Enforce this order of preference: Public cloud first, then Hybrid cloud, then Private cloud, and lastly non-cloud (on-premises) solutions
  • Design for cloud mobility and develop an exit strategy to avoid vendor lock-in

Design for Performance, Availability, and Scalability

  • Design for resiliency
  • Ensure response times meet user needs, and critical services are highly available
  • Support zero-downtime deployments for planned and unplanned maintenance
  • Use distributed architectures, assume failure will happen, handle errors gracefully, and monitor performance and behaviour actively
  • Run applications in containers to enable rapid deployment and scaling
  • Establish architectures that supports new technology insertion with minimal disruption to existing programs and services
  • Control Technical Diversity - design systems based on modern technologies and platforms already in use.

5. Security Architecture and Privacy

Build Security into the Full System Life Cycle, Across All Architectural Layers

  • Identify and classify risks associated to the service’s business objectives, goals, and strategy
  • Design security measures according to business and user needs, risks identified, and security categorization of the information and assets; integrate security across all architectural layers (BIAT).
    • Maintain focus on users’ ease of use through selection of context-appropriate controls
    • Apply an information-centric approach to reduce resources’ exposure to threats, and minimize the opportunity for compromise.
    • Protect data while in transit, in use and at rest using appropriate encryption and protocols. Ensure effective disposition of data per retention schedules, following service sunset.
  • Design systems that: are not susceptible to common security vulnerabilities; are resilient and can be rebuilt quickly in the event of compromise; and fail secure if the system encounters an error or crashes.
  • Reduce human intervention and maximize automation of security tasks and processes.
    • Integrate and automate security testing to validate code and address vulnerabilities prior to deployments

Ensure Secure Access to Systems and Services

  • Identify and authenticate users and devices to an appropriate level of assurance before granting access to information and services.
  • Separate and compartmentalize user responsibilities and privileges; assign the least set of privileges necessary to complete the job.
  • Constrain service interfaces to authorized entities (users and devices), with clearly defined roles, and only expose the interfaces necessary to operate the service
  • Make use of modern credential guidance, and use GC-approved multi-factor authentication where required to stop unauthorized access.

Maintain Secure Operations

  • Integrate SA&A activities into security architecture lifecycle processes, to ensure reference artefacts remain relevant and valid.
  • Continuously monitor system events and performance in order to detect, prevent, and respond to attacks.
  • Design processes to operate services securely, and establish processes and mechanisms to respond effectively to security events.
  • Collect transaction logs at infrastructure and application levels to support automated root-cause analysis and performance tuning.
  • Include an audit function in information systems. Use a trusted time source and protect audit logs from manipulation.
  • Establish processes to monitor security advisories, and apply security-related patches and updates. Apply appropriate risk-based mitigations when patches can’t be applied.


Privacy by Design

  • Perform a privacy impact assessment (PIA) to support risk mitigation activities when personal information is involved
  • Implement security measures to assure the protection of personal information
  • Take into consideration the 7 Foundational Privacy Design Principles when designing services.

Need help? Contact us.


Envelope icon blue.png
Gccollab icon blue.png
Gcconnex icon blue.png