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

From wiki
Jump to navigation Jump to search
(Sketch in some subbullets)
m (Spike in more placeholders)
Line 27: Line 27:
  
 
| width="50%" style="color: blue;" |
 
| width="50%" style="color: blue;" |
 
 
<!-- COLUMN 1 STARTS: --><span style="font-size: 1.5em;">[https://wiki.gccollab.ca/GC_Application_Enterprise_Architecture <b><<Application Architecture</b>]</span>
 
<!-- COLUMN 1 STARTS: --><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: --><span style="font-size: 1.5em;">[https://wiki.gccollab.ca/GC_Security_and_Privacy_Enterprise_Architecture <b>Security Architecture>></b>]</span>
 
<!-- COLUMN 2 STARTS: --><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 59: Line 57:
  
 
==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]
 
** [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
 +
** <nowiki>https://royal.pingdom.com/page-load-time-really-affect-bounce-rate/</nowiki>
 
* 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
 
** As your applications attract additional consumers, being able to introduce changes and patching without negotiating outages becomes more important
Line 69: Line 69:
 
** <nowiki>https://opentracing.io/</nowiki>
 
** <nowiki>https://opentracing.io/</nowiki>
 
* ''Establish architectures that supports new technology insertion with minimal disruption to existing programs and services''
 
* ''Establish architectures that supports new technology insertion with minimal disruption to existing programs and services''
 +
** API Gateways???
 +
** General SOA???
 
* ''Control Technical Diversity - design systems based on technologies and platforms already in use.''
 
* ''Control Technical Diversity - design systems based on technologies and platforms already in use.''
 +
** Technical Debt
 +
** Best in breed vs. suite?

Revision as of 10:19, 27 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
    • https://royal.pingdom.com/page-load-time-really-affect-bounce-rate/
  • 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
    • API Gateways???
    • General SOA???
  • Control Technical Diversity - design systems based on technologies and platforms already in use.
    • Technical Debt
    • Best in breed vs. suite?