Difference between revisions of "GC Enterprise Architecture/Standards/Technology Architecture"

From wiki
Jump to navigation Jump to search
(Sketch in some subbullets)
Line 20: Line 20:
  
 
<!-- NAV end -->
 
<!-- NAV end -->
 
+
<i>{{Translation to follow}}
<i>{{Translation to follow}}</i>
 
 
<br>
 
<br>
 
<!-- Columns -->
 
<!-- Columns -->
Line 29: Line 28:
 
| width="50%" style="color: blue;" |
 
| width="50%" style="color: blue;" |
  
<!-- COLUMN 1 STARTS: -->  
+
<!-- COLUMN 1 STARTS: --><span style="font-size: 1.5em;">[https://wiki.gccollab.ca/GC_Application_Enterprise_Architecture <b><<Application Architecture</b>]</span>
<span style="font-size: 1.5em;">[https://wiki.gccollab.ca/GC_Application_Enterprise_Architecture <b><<Application Architecture</b>]</span>
 
 
<!-- COLUMN 1 ENDS: -->  
 
<!-- COLUMN 1 ENDS: -->  
  
 
| width="50%" style="color: blue;" |
 
| width="50%" style="color: blue;" |
  
<!-- COLUMN 2 STARTS: -->  
+
<!-- COLUMN 2 STARTS: --><span style="font-size: 1.5em;">[https://wiki.gccollab.ca/GC_Security_and_Privacy_Enterprise_Architecture <b>Security Architecture>></b>]</span>
<span style="font-size: 1.5em;">[https://wiki.gccollab.ca/GC_Security_and_Privacy_Enterprise_Architecture <b>Security Architecture>></b>]</span>
 
 
<!-- COLUMN 2 ENDS: -->  
 
<!-- COLUMN 2 ENDS: -->  
  
Line 46: Line 43:
  
 
==Use Cloud first==
 
==Use Cloud first==
 +
* ''Adopt the Use of the GC Accelerators to ensure proper Security and Access Controls - Azure, AWS''
 +
** These accelerators provide templates for deploying systems that have been review by ???
 +
** For the Azure Accelerators, both the ARM (Azure Resource Manager) and Terraform formats are provided
 
* 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: Software as a Service (SaaS) first, then Platform as a Service (PaaS), and lastly Infrastructure as a Service (IaaS)
 +
** SaaS offers a managed service  ...
 +
** PaaS offers  ...
 +
** IaaS offers quick scalability compared to running your own servers, but leaves it up to you to patch an configure your infrastructure.
 
* Enforce this order of preference: Public cloud first, then Hybrid cloud, then Private cloud, and lastly non-cloud (on-premises) solutions
 
* Enforce this order of preference: Public cloud first, then Hybrid cloud, then Private cloud, and lastly non-cloud (on-premises) solutions
 +
** Public cloud provides ...
 +
** Hybrid cloud provides ...
 +
** Private cloud provides ...
 +
** On-Premises provides ...
 
* Design for cloud mobility and develop an exit strategy to avoid vendor lock-in
 
* Design for cloud mobility and develop an exit strategy to avoid vendor lock-in
 +
** SaaS and PaaS remove the overhead of maintaining your own infrastructure, but can
  
 
==Design for Performance, Availability, and Scalability==
 
==Design for Performance, Availability, and Scalability==
 
* Design for resiliency
 
* Design for resiliency
 +
** [https://principlesofchaos.org/?lang=ENcontent Chaos Engineering]
 
* Ensure response times meet user needs, and critical services are highly available
 
* Ensure response times meet user needs, and critical services are highly available
 
* Support zero-downtime deployments for planned and unplanned maintenance
 
* Support zero-downtime deployments for planned and unplanned maintenance
 +
** As your applications attract additional consumers, being able to introduce changes and patching without negotiating outages becomes more important
 +
** [https://martinfowler.com/bliki/BlueGreenDeployment.html Green Blue deployment]
 
* Use distributed architectures, assume failure will happen, handle errors gracefully, and monitor actively
 
* Use distributed architectures, assume failure will happen, handle errors gracefully, and monitor actively
 +
** Today much of the distributed architectures rely on the [https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/ Kubernetes (k8s)] architectures
 +
** <nowiki>https://opentracing.io/</nowiki>
 +
* ''Establish architectures that supports new technology insertion with minimal disruption to existing programs and services''
 +
* ''Control Technical Diversity - design systems based on technologies and platforms already in use.''

Revision as of 16:48, 23 August 2019

Home EA standards EARB Endorsements EA Artifacts Working Groups GC EARB Other References


<<Application Architecture

Security Architecture>>

4. Technology Architecture


This is a definition for GC Technology Enterprise Architecture

Use Cloud first

  • Adopt the Use of the GC Accelerators to ensure proper Security and Access Controls - Azure, AWS
    • These accelerators provide templates for deploying systems that have been review by ???
    • For the Azure Accelerators, both the ARM (Azure Resource Manager) and Terraform formats are provided
  • Enforce this order of preference: Software as a Service (SaaS) first, then Platform as a Service (PaaS), and lastly Infrastructure as a Service (IaaS)
    • SaaS offers a managed service ...
    • PaaS offers ...
    • IaaS offers quick scalability compared to running your own servers, but leaves it up to you to patch an configure your infrastructure.
  • Enforce this order of preference: Public cloud first, then Hybrid cloud, then Private cloud, and lastly non-cloud (on-premises) solutions
    • Public cloud provides ...
    • Hybrid cloud provides ...
    • Private cloud provides ...
    • On-Premises provides ...
  • Design for cloud mobility and develop an exit strategy to avoid vendor lock-in
    • SaaS and PaaS remove the overhead of maintaining your own infrastructure, but can

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
    • As your applications attract additional consumers, being able to introduce changes and patching without negotiating outages becomes more important
    • Green Blue deployment
  • Use distributed architectures, assume failure will happen, handle errors gracefully, and monitor actively
    • Today much of the distributed architectures rely on the Kubernetes (k8s) architectures
    • https://opentracing.io/
  • Establish architectures that supports new technology insertion with minimal disruption to existing programs and services
  • Control Technical Diversity - design systems based on technologies and platforms already in use.