Core Principles
Design For Operational Simplicity
Keep each solution as simple as possible.
What value does this principle offer?
- The easier a solution is to understand and use, the more likely it is to be adopted and to be engaged with.
- Simplicity lowers costs through economies of scale and reduces management overhead.
What are the implications of applying this principle?
- Keep the number of components and relations as small as possible.
- Divide complex architecture into different views of architecture.
- Where complexity is required, it will be encapsulated and hidden behind an interface that is as simple as possible.
Strive For Hybrid Solutions
Solutions must embrace a Hybrid Cloud model.
What value does this principle offer?
- Almost all organizations mix and match private cloud, public cloud and on-premises infrastructure to solve their unique needs.
- Designing for hybrid from the outset will increase the effectiveness of the architecture.
What are the implications of applying this principle?
- Ensure that sufficient resources are available for a hybrid deployment. Without sufficient responsiveness and bandwidth, content and applications become unavailable or unusable. This may lead to user frustration and business reputational damage.
- The design should consider networking/connectivity, security, capacity, geographic location of the data centers, DNS.
- Consider the solution context and the implications for integrating on-premises resources, devices, data, and identity systems.
Take a SaaS First Approach
Deliver the solution through a SaaS application wherever possible
What value does this principle offer?
- Taking this approach will reduce operational costs and complexity and shift the burden of ownership to a vendor.
What are the implications of applying this principle?
- Aim for the highest level of technology abstraction possible.
- Ideally, this will be a SaaS application. If not suitable/available, aim for platform services that abstract the underlying technology.
- Use low-level technology components; when no suitable higher-level service is suitable or to bridge any functional gaps in higher-level services.
Ensure Use-Cases Drive Solution Design
Solutions should address specific requirements and use cases as closely as possible.
What value does this principle offer?
- By mapping solutions to actual use cases, we can ensure high levels of re-use, architectural simplicity and operational success.
What are the implications of applying this principle?
- Do not overdesign or position overly complex solutions with features that will not be used.
- Consider developing cloud-native extensions to bridge small functionality gaps.
- Solutions have to fit the business needs and requirements. They should not be over or undersized.
Design for Business Continuity
Consider high availability and disaster recovery requirements for business continuity.
What value does this principle offer?
- By implementing an optimal level of High Availability and Business Continuity, we ensure that we can continue to deliver essential business functions in the event of a disaster.
What are the implications of applying this principle?
- Establish Recovery Point Objectives (RPO) and Recovery Time Objectives (RTO) for each application/service.
- Design architectures that meet the RPO and RTO for each application
- Consider geographically separated data centers to deliver availability requirements.
Focus On Legal and Security Compliance
Meet or Exceed Legal, Compliance & Security Requirements.
What value does this principle offer?
- Achieving regulatory compliance describes the goal of ensuring that the organization is aware of, and take steps to comply with, relevant laws, policies, and regulations.
What are the implications of applying this principle?
- Keep in mind all applicable legal and security regulations. These could include data residency requirements, security certifications for datacenters, and other topics.
- Ensure compliance with laws, regulations, and external policies regarding data collection, retention, and management of data.
- Changes in the law, and changes in regulations, may drive changes in processes and applications. Protect systems, data, and technologies from unauthorized access and manipulation.
Automate
Design Solutions & Services that can benefit from automation.
What value does this principle offer?
- Automation delivers more efficient, reliable, and predictable deployments. Automation results in the faster provision of services, end-user satisfaction and lower overall costs.
What are the implications of applying this principle?
- To achieve the highest levels of operational efficiency, automation must be implemented wherever possible.
- Create cloud instances and environments with Infrastructure as Code, Templates and Code Repositories.
- Use automation for all environment types.
Maintain Separation of Environments
Keep different environments, such as production, dev, test, user acceptance testing, and training separate from each other.
What value does this principle offer?
- The separation of environments is a critical way to reduce the risk of accidental modification, or unauthorized access, to operational software and business data.
What are the implications of applying this principle?
- Design & provision different environments using separate instances or infrastructure resources.
- Automate deployment of releases between environment types on the same platform.