Difference between revisions of "GC Enterprise Architecture/Playbook"
Line 3: | Line 3: | ||
<i><h3> This is a <b><u>DRAFT COPY</u></b> of the proposed GC EA Playbook. It is a work IN PROGRESS, and has not undergone any review. </h3></i> | <i><h3> This is a <b><u>DRAFT COPY</u></b> of the proposed GC EA Playbook. It is a work IN PROGRESS, and has not undergone any review. </h3></i> | ||
− | <h2> INTRODUCTION - How to use the Playbook</h2> | + | <h2> INTRODUCTION - How to use the Playbook</h2><br> |
This EA Playbook is intended to help Enterprise Architects build their departmental Enterprise Architecture. | This EA Playbook is intended to help Enterprise Architects build their departmental Enterprise Architecture. | ||
Line 17: | Line 17: | ||
− | <h2> The Plays </h2 | + | <h2> The Plays </h2> <br> |
<span style="font-size: 1.5em;">[[GC_Business_Enterprise_Architecture | 1. Business Architecture]]</span> <br><br> | <span style="font-size: 1.5em;">[[GC_Business_Enterprise_Architecture | 1. Business Architecture]]</span> <br><br> | ||
+ | A Business Architecture is where an organization identifies the various services that it suppose to provide externally, as well as the various functions it owns or needs to own internally to support the external service. In terms of GC Enterprise Business Architecture, this is where the Government of Canada identifies the various departments, the services they provide to Canadians and the functions they owns. | ||
+ | <b>Fulfill the Government of Canada stakeholder's needs</b> | ||
+ | * 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) | ||
− | <span style="font-size: 1.5em;">[[GC_Information_Enterprise_Architecture | 2. Information Architecture]]</span> <br> | + | |
+ | <b>Architect to be Outcome Driven and Strategically Aligned to the Department and to the Government of Canada</b> | ||
+ | * 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 | ||
+ | |||
+ | |||
+ | <b> Promote Horizontal Enablement of the Enterprise</b> | ||
+ | * 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 | ||
+ | |||
+ | |||
+ | <span style="font-size: 1.5em;">[[GC_Information_Enterprise_Architecture | 2. Information Architecture]]</span> <br><br> | ||
<b>Collect data to address the needs of the stakeholders </b> | <b>Collect data to address the needs of the stakeholders </b> | ||
Line 62: | Line 80: | ||
* Ensure that combined data does not risk identification or re-identification of sensitive or personal information | * Ensure that combined data does not risk identification or re-identification of sensitive or personal information | ||
** Do you have a risk assessment process or mechanism in place to ensure that combining two or more datasets does not risk compromising the privacy and security of individuals by exposing sensitive or personal information? | ** Do you have a risk assessment process or mechanism in place to ensure that combining two or more datasets does not risk compromising the privacy and security of individuals by exposing sensitive or personal information? | ||
+ | |||
<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 Source Solutions hosted in Public Cloud</b> | ||
+ | * 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 | ||
+ | <br> | ||
+ | |||
+ | <b>Use Software as a Service (SaaS) hosted in Public Cloud</b> | ||
+ | * Choose SaaS that best fit for purpose based on alignment with SaaS capabilities | ||
+ | * Choose a SaaS solution that is extendable | ||
+ | * Configure SaaS and if customization is necessary extend as Open Source modules | ||
+ | <br> | ||
+ | |||
+ | <b>Design for [https://www.gcpedia.gc.ca/wiki/En/GCinterop Interoperability]</b> | ||
+ | * Design systems as highly modular and loosely coupled services | ||
+ | * Expose services through APIs | ||
+ | * Make the APIs discoverable to the appropriate stakeholders | ||
+ | <br> | ||
+ | |||
+ | <b>Follow DevSecOps Principles</b> | ||
+ | * Use continuous integration and continuous deployments (CI/CD) | ||
+ | * Ensure automated testing occurs for security and functionality | ||
+ | * Include your stakeholders as part of DevSecOps process | ||
+ | |||
<span style="font-size: 1.5em;">[[GC_Technology_Enterprise_Architecture | 4. Technology Architecture]]</span> <br><br> | <span style="font-size: 1.5em;">[[GC_Technology_Enterprise_Architecture | 4. Technology Architecture]]</span> <br><br> | ||
− | <span style="font-size: 1.5em;">[[GC_Security_Enterprise_Architecture | 5. Security Architecture]]</span> <br><br> | + | <b>Use Cloud first</b> |
+ | * Adopt the Use of the GC Accelerators to ensure proper Security and Access Controls | ||
+ | * Enforce this order of preference: Software as a Service (SaaS) first, then Platform as a Service (PaaS), and lastly Infrastructure as a Service (IaaS) | ||
+ | * Fulfill Cloud Services through SSC Cloud Brokering Services | ||
+ | * 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 | ||
+ | <br> | ||
+ | |||
+ | <b>Design for Performance, Availability, and Scalability</b> | ||
+ | * 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 <u><I>performance and behaviour </I></u> actively | ||
+ | * 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 | ||
+ | |||
+ | |||
+ | <span style="font-size: 1.5em;">[[GC_Security_Enterprise_Architecture | 5. Security and Privacy Architecture]]</span> <br><br> | ||
+ | |||
+ | <b>Build Security into the Full System Life Cycle, Across All Architectural Layers</b> | ||
+ | * 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) | ||
+ | * Design systems to not be susceptible to common security vulnerabilities; resilient and can be rebuilt quickly in the event of compromise; and fail secure if the system encounters an error or crashes | ||
+ | * Ensure that data received from external parties is profiled and validated prior to its use | ||
+ | <br> | ||
+ | |||
+ | <b>Ensure Secure Access to Systems and Services</b> | ||
+ | * Identify and authenticate individuals, processes and/or devices to an appropriate level of assurance before granting access to information and services | ||
+ | * Constrain service interfaces to authorized entities (users and devices), with clearly defined roles | ||
+ | * Make use of modern password guidance, and prioritizing length over complexity, eliminating expiry, and blacklisting common passwords | ||
+ | <br> | ||
+ | |||
+ | <b>Maintain Secure Operations</b> | ||
+ | * Integrate aggregate outputs from security assessment and authorization activities into security architecture lifecycle processes, to ensure reference artefacts remain relevant and valid | ||
+ | * Design processes to operate and manage services securely, and continuously monitor system events and performance in order to detect, prevent, and respond to attacks | ||
+ | * Establish processes to monitor security advisories, and apply security-related patches and updates to reduce exposure to vulnerabilities. Apply appropriate risk-based mitigations when patches can’t be applied | ||
+ | <br> | ||
+ | |||
+ | <b> Privacy by Design </b> | ||
+ | * 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 <b>[https://www.ryerson.ca/pbdce/certification/seven-foundational-principles-of-privacy-by-design/ 7 Foundational Privacy Design Principles] </b> when designing services |
Revision as of 16:37, 8 January 2020
This is a DRAFT COPY of the proposed GC EA Playbook. It is a work IN PROGRESS, and has not undergone any review.
INTRODUCTION - How to use the Playbook
This EA Playbook is intended to help Enterprise Architects build their departmental Enterprise Architecture. The book is organized into chapters as per the B-I-A-T-S+P architecture layers called Plays. We recommend that users:
1. Read the Playbook all the way through first; and
2. Take an iterative approach to implementing the "Plays"
This Playbook is a living document, intended to evolve over time as the GC Enterprise Architecture teams grow and develop and as new solutions are introduced to the GC Enterprise Architecture landscape. Thus, your feedback would be greatly appreciated.
Please send any comments or suggestion for future updates to | GC EA CoP Collab Site
The Plays
A Business Architecture is where an organization identifies the various services that it suppose to provide externally, as well as the various functions it owns or needs to own internally to support the external service. In terms of GC Enterprise Business Architecture, this is where the Government of Canada identifies the various departments, the services they provide to Canadians and the functions they owns.
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
Collect data to address the needs of the stakeholders
- Adopt a needs-based approach to data collection
- Do your data collection processes include an assessment of existing data assets (e.g. as documented in a data inventory and/or catalogue) to minimize redundancy and duplication?
- Collect only the minimum set of data needed to support a policy, program, service, or other function fulfill the business service
- Do you have a mechanism or process in place to ensure that all data collected can be tied to a specific business need (e.g. a policy, program, service, or other operational need) so that you are able to identify excess data?
- Reuse existing data assets and only acquire new data if required
- Do your data collection processes include an assessment of existing data assets (e.g. as documented in a data inventory and/or catalogue) to facilitate data reuse?
- Do you have a process or mechanism in place to assess and control the quality of existing data assets being considered for reuse?
- Do you have a process or mechanism in place to ensure that any reuse of existing data assets complies with privacy and other applicable laws and policies?
- Ensure your data collection methodology, including third party sources, yields high quality data
- Do you have a process or mechanism in place to assess and control the quality of data collected?
Manage data strategically and responsibly
- Define and establish clear roles, responsibilities, and accountabilities for data management
- Do you have a framework or policy that sets out your organization’s data governance structure? At a minimum, the structure would list key data roles in the organization (e.g. steward, custodian, analyst, scientist) and define the responsibilities and decision-making authorities associated with each of them.
- Identify and document the lineage of your data assets.
- Does your data inventory document any information about the lineage of existing data assets? If so, through what process is lineage determined and tracked over time? If not, is this information tracked anywhere else?
- Define retention and disposition schedules and perform regular disposition activities (I’m not sure about the last bit: are disposition activities necessarily regular and, if so, according to whose timetable? What is LAC’s GC policy on this?)
- Do you have a mechanism or process in place to ensure that retention and disposition schedules are determined (at least provisionally) for data collected? This is particularly relevant in the case of personal data, where timelines are set by the Privacy Act.
- Ensure information and data are managed to enable interoperability, reuse and sharing to the greatest extent possible within and with other across departments across the in government to avoid duplication and maximize utility, while respecting security and privacy requirements
- For what data domains and attributes have you developed reference and master data standards?
- To what extent does your organization adhere to existing enterprise-level standards for data?
- What is the percentage of data shared through information sharing agreements?
- To what extent is the data you share with other GC organizations interoperable?
- Do you have a process in place to evaluate whether a certain data need can be addressed by requesting data from a GC organization as opposed to collecting it?
- Contribute to and/or aligned to Enterprise Data taxonomy and classification structures to manage, store, search and retrieve information and data in all formats (I am uncertain about the reasoning here: is it to ‘manage, store, search, and retrieve’? It seems too broad to be relevant to architecture in particular.)
- For what data domains and/or attributes have you developed reference and master data standards?
- For what data domains and/or attributes have you supported the development of enterprise-wide data standards?
Use and share data openly in an ethical and secure manner
- Ensure data formatting aligns to existing enterprise and international standards. Where none exist, develop standards in the open with key subject matter experts, in consultation with the Enterprise Data Community of Practice.
- Data should be shared openly by default as per the Directive on Open Government and Digital Standards, while adhering to existing enterprise and international standards, including on quality or fitness for purpose.
- Do you have a process or mechanism in place to release data assessed for its public value?
- What is the percentage of collected and generated data assets that is released or made available to the public?
- Ensure that combined data does not risk identification or re-identification of sensitive or personal information
- Do you have a risk assessment process or mechanism in place to ensure that combining two or more datasets does not risk compromising the privacy and security of individuals by exposing sensitive or personal information?
Use Open Source Solutions hosted in Public 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 Software as a Service (SaaS) hosted in Public Cloud
- Choose SaaS that best fit for purpose based on alignment with SaaS capabilities
- Choose a SaaS solution that is extendable
- Configure SaaS and if customization is necessary extend as Open Source modules
Design for Interoperability
- Design systems as highly modular and loosely coupled services
- Expose services through APIs
- Make the APIs discoverable to the appropriate stakeholders
Follow DevSecOps Principles
- Use continuous integration and continuous deployments (CI/CD)
- Ensure automated testing occurs for security and functionality
- Include your stakeholders as part of DevSecOps process
Use Cloud first
- Adopt the Use of the GC Accelerators to ensure proper Security and Access Controls
- Enforce this order of preference: Software as a Service (SaaS) first, then Platform as a Service (PaaS), and lastly Infrastructure as a Service (IaaS)
- Fulfill Cloud Services through SSC Cloud Brokering Services
- 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
- 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
- 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 and Privacy Architecture
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)
- Design systems to not be susceptible to common security vulnerabilities; resilient and can be rebuilt quickly in the event of compromise; and fail secure if the system encounters an error or crashes
- Ensure that data received from external parties is profiled and validated prior to its use
Ensure Secure Access to Systems and Services
- Identify and authenticate individuals, processes and/or devices to an appropriate level of assurance before granting access to information and services
- Constrain service interfaces to authorized entities (users and devices), with clearly defined roles
- Make use of modern password guidance, and prioritizing length over complexity, eliminating expiry, and blacklisting common passwords
Maintain Secure Operations
- Integrate aggregate outputs from security assessment and authorization activities into security architecture lifecycle processes, to ensure reference artefacts remain relevant and valid
- Design processes to operate and manage services securely, and continuously monitor system events and performance in order to detect, prevent, and respond to attacks
- Establish processes to monitor security advisories, and apply security-related patches and updates to reduce exposure to vulnerabilities. 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