Skip to content

Commit

Permalink
docs: proofread and finalize blips for v8
Browse files Browse the repository at this point in the history
  • Loading branch information
srotsch committed Jun 27, 2024
1 parent 1920982 commit 3a6d7d7
Show file tree
Hide file tree
Showing 40 changed files with 76 additions and 114 deletions.
3 changes: 0 additions & 3 deletions radar/2017-03-01/puppet.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@ ring: assess
quadrant: platforms-and-aoe-services
---

Puppet
------

Puppet is an Open Source configuration management tool. It is used by a wide range of different companies world-wide, e.g. the Wikimedia Foundation, Mozilla, Reddit, CERN, Dell, Rackspace, Twitter, the New York Stock Exchange, PayPal, Disney, Citrix Systems, Spotify, Oracle, the University of California Los Angeles, the University of North Texas, QVC, Intel, Google and others.

Puppet has been the basic tool to address Continuous Configuration Automation (CCA) in AOE's [Infrastructure as Code](/platforms-and-aoe-services/infrastructure-as-code/) strategy (IaC) for more than 4 years.
6 changes: 0 additions & 6 deletions radar/2019-11-01/puppet.md

This file was deleted.

12 changes: 6 additions & 6 deletions radar/2019-11-01/stride-threat-modeling.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ STRIDE is a model of threat groups that helps to identify security threats to an

The acronym stands for:

* Spoofing
* Tampering
* Repudiation
* Information disclosure
* Denial of service
* Elevation of privilege
* **S**poofing
* **T**ampering
* **R**epudiation
* **I**nformation disclosure
* **D**enial of service
* **E**levation of privilege

AOE is applying the threat model in collaborative sessions using the [Elevation of Privilege Card Game](https://social.technet.microsoft.com/wiki/contents/articles/285.elevation-of-privilege-the-game.aspx) which helps to spark imagination and makes threats more tangible.
2 changes: 1 addition & 1 deletion radar/2021-07-01/oci-container.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: "OCI Container"
ring: adopt
quadrant: platforms-and-aoe-services
tags: [devops]
tags: [devops]
---

OCI-compatible containers are currently the most-used solution for creating and managing container-based infrastructures and deployments.
Expand Down
2 changes: 1 addition & 1 deletion radar/2023-02-23/harbor.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Harbor"
ring: trial
ring: assess
quadrant: platforms-and-aoe-services
tags: [devops]
---
Expand Down
32 changes: 16 additions & 16 deletions radar/2024-06-01/12-factor-apps.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,27 +9,27 @@ The [12-factor app](https://12factor.net/de/) methodology, originally developed

### Core Principles of 12-Factor Apps

1) **Codebase**: Maintain a single codebase tracked in version control, with multiple deployments.
2) **Dependencies**: Explicitly declare and isolate dependencies.
3) **Config**: Store configuration in the environment.
4) **Backing Services**: Treat backing services as attached resources.
5) **Build, Release, Run**: Strictly separate build and run stages.
6) **Processes**: Execute the app as one or more stateless processes.
7) **Port Binding**: Export services via port binding.
8) **Concurrency**: Scale out via the process model.
9) **Disposability**: Maximize robustness with fast startup and graceful shutdown.
10) **Dev/Prod Parity**: Keep development, staging, and production as similar as possible.
11) **Logs**: Treat logs as event streams.
12) **Admin Processes**: Run admin/management tasks as one-off processes.
1. **Codebase**: Maintain a single codebase tracked in version control, with multiple deployments.
2. **Dependencies**: Explicitly declare and isolate dependencies.
3. **Config**: Store configuration in the environment.
4. **Backing Services**: Treat backing services as attached resources.
5. **Build, Release, Run**: Strictly separate build and run stages.
6. **Processes**: Execute the app as one or more stateless processes.
7. **Port Binding**: Export services via port binding.
8. **Concurrency**: Scale out via the process model.
9. **Disposability**: Maximize robustness with fast startup and graceful shutdown.
10. **Dev/Prod Parity**: Keep development, staging, and production as similar as possible.
11. **Logs**: Treat logs as event streams.
12. **Admin Processes**: Run admin/management tasks as one-off processes.

### Extending to 15 Factors

The 15-factor model builds upon the original principles by adding:

13) **API First**: Design APIs first to ensure interoperability and future-proofing.
14) **Telemetry**: Implement robust telemetry for monitoring and diagnostics.
15) **Authentication and Authorization**: Incorporate strong, centralized authentication and authorization mechanisms.
13. **API First**: Design APIs first to ensure interoperability and future-proofing.
14. **Telemetry**: Implement robust telemetry for monitoring and diagnostics.
15. **Authentication and Authorization**: Incorporate strong, centralized authentication and authorization mechanisms.

### Relevance

For us this rather old pattern is still very relevant and many methods, patterns and practices on our radar are related and enable these pattern in their core. To name a few [Kubernetes](/platforms-and-aoe-services/kubernetes/), [Prometheus](/platforms-and-aoe-services/prometheus/), [Self-Service Infrastructure](/platforms-and-aoe-services/self-service-infrastructure/) or the [API-First Design Approach](/methods-and-patterns/api-first-design-approach/) are very related, others like [Shared Responsibility Models](/methods-and-patterns/shared-responsibility/) are easier to implement based on this pattern.
For us, this rather old pattern is still very relevant, and many methods, patterns, and practices on our radar are related and enable these patterns at their core. To name a few, [Kubernetes](/platforms-and-aoe-services/kubernetes/), [Prometheus](/platforms-and-aoe-services/prometheus/), [Self-Service Infrastructure](/platforms-and-aoe-services/self-service-infrastructure/), or the [API-First Design Approach](/methods-and-patterns/api-first-design-approach/) are very related. Others, like [Shared Responsibility Models](/methods-and-patterns/shared-responsibility/), are easier to implement based on this pattern.
14 changes: 6 additions & 8 deletions radar/2024-06-01/apisix.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,11 @@ quadrant: tools
tags: [devops]
---

[Apache APISIX](https://apisix.apache.org/) is an open-source, high-performance API gateway, designed for
microservices, cloud-native and container-based architecture. It provides a wide range of features to manage
and secure API services:
[Apache APISIX](https://apisix.apache.org/) is an open-source, high-performance API gateway designed for microservices, cloud-native, and container-based architecture. It provides a wide range of features to manage and secure API services:

- Scalability: Load balancing and routing, dynamic scaling
- Performance: Fast and reliable, supports caching and rate limiting
- Multi-Protocol Support: Supports HTTP, HTTPS, WebSockets and gRPC
- Customization: Plugins for authentication, authorization and traffic management
- **Scalability**: Load balancing and routing, dynamic scaling
- **Performance**: Fast and reliable, supports caching and rate limiting
- **Multi-Protocol Support**: Supports HTTP, HTTPS, WebSockets, and gRPC
- **Customization**: Plugins for authentication, authorization, and traffic management

APISIX is currently in trial at AOE and is being used in multiple projects.
APISIX is currently in trial at AOE and is being used in multiple projects.
2 changes: 2 additions & 0 deletions radar/2024-06-01/argocd.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,5 @@ ring: adopt
quadrant: tools
tags: [ci/cd]
---

Argo CD has proven its effectiveness in various projects by successfully simplifying and automating Kubernetes application deployments.
3 changes: 0 additions & 3 deletions radar/2024-06-01/assisted-ai.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,6 @@ The use of [GitHub Copilot](/tools/github-copilot/) is currently project-based a
### Potential Risks and Mitigation Strategies

- **Code Quality and Reliability**: Validate and review generated code before integration into the project. Manual code reviews and testing should remain fundamental to the development process.

- **Security Vulnerabilities**: Conduct thorough security assessments and penetration testing to identify and rectify potential weaknesses. Stay updated with security best practices and ensure AI-generated code aligns with secure coding guidelines.

- **Intellectual Property Concerns**: Scrutinize licensing and usage terms of AI tools. Exercise caution when incorporating code snippets from external sources and ensure compliance with relevant licenses.

- **Data Privacy**: Review data access and privacy policies of AI tools meticulously. Prevent inadvertent exposure or sharing of sensitive or confidential information with third parties.
3 changes: 0 additions & 3 deletions radar/2024-06-01/cypress.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,6 @@ tags: [academy training, frontend, quality assurance]
### Key Updates and Enhancements of the Past Years

- **Broader Browser Support**: Cypress now supports a wider range of browsers, including Edge and WebKit, in addition to Chrome, Firefox, and Electron. This expansion ensures comprehensive testing across more environments.

- **Improved Performance**: The latest versions of Cypress have focused on enhancing test execution speed. Optimizations in the core engine and better resource management have resulted in faster and more reliable test runs, even for large and complex test suites.

- **Enhanced Debugging Capabilities**: Debugging has become even more user-friendly with improved tooling. Features like time travel, where developers can step through each test command, and better error messages help in quickly identifying and resolving issues.

- **CI/CD Integration**: Cypress has strengthened its integration with popular CI/CD tools. Improved plugins and configurations for platforms like GitHub Actions, GitLab CI, CircleCI, and Jenkins make it easier to incorporate Cypress tests into continuous integration and continuous deployment pipelines.
2 changes: 0 additions & 2 deletions radar/2024-06-01/decoupling-via-messaging.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,5 @@ featured: false
In recent years, messaging systems have become more robust, scalable, and easier to integrate with existing applications. This has increased the importance of messaging in modern software architectures, making it an essential strategy for decoupling components and ensuring the resilience and stability of distributed systems:

- **Event Streaming**: Platforms such as [Apache Kafka](/tools/kafka/) have evolved significantly to handle massive data streams with enhanced reliability and integration capabilities.

- **Serverless Messaging**: The rise of [serverless computing](/methods-and-patterns/serverless/) has simplified the creation of scalable, event-driven architectures, allowing developers to build complex workflows and event-processing pipelines without the overhead of managing infrastructure.

- **Advanced Observability**: Improved tools for monitoring and managing messaging systems now offer detailed insights into message flows and system performance, enabling faster diagnosis and resolution of issues.
14 changes: 6 additions & 8 deletions radar/2024-06-01/devspace.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,10 @@ ring: assess
tags: [coding, devops]
---

[DevSpace](https://www.devspace.sh/) is an open-source developer tool for Kubernetes that lets you develop and
deploy cloud-native software faster. As a "client-only" development tool, it is very simple to develop kubernetes
native applications in local or any remote cluster.
[DevSpace](https://www.devspace.sh/) is an open-source developer tool for Kubernetes that lets you develop and deploy cloud-native software faster. As a "client-only" development tool, it is very simple to develop Kubernetes-native applications in local or any remote cluster.

- **Build**, test and debug applications directly inside Kubernetes
- **Develop** with hot reloading: updates your running containers without rebuilding images or restarting containers
- **Unify** deployment workflows within your team and across dev, staging and production
- **Automate** repetitive tasks for image building and deployment
- **Hot-Reloading** allows to recompile and restart Pods in local or remote clusters
- **Build**, test, and debug applications directly inside Kubernetes.
- **Develop** with hot reloading: updates your running containers without rebuilding images or restarting containers.
- **Unify** deployment workflows within your team and across dev, staging, and production.
- **Automate** repetitive tasks for image building and deployment.
- **Hot-Reloading** allows to recompile and restart Pods in local or remote clusters.
2 changes: 1 addition & 1 deletion radar/2024-06-01/elk-stack.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ tags: [devops]
featured: false
---

While we continue to recommend the ELK Stack for specific use cases, we now prefer [Loki](/platforms-and-aoe-services/loki/) for most [Kubernetes](/platforms-and-aoe-services/kubernetes/)-based setups due to its seamless integration, cost efficiency and user-friendly query language.
While we continue to recommend the ELK Stack for specific use cases, we now prefer [Loki](/platforms-and-aoe-services/loki/) for most [Kubernetes](/platforms-and-aoe-services/kubernetes/)-based setups due to its seamless integration, cost efficiency, and user-friendly query language.
2 changes: 1 addition & 1 deletion radar/2024-06-01/github-copilot.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "GitHub Copilot"
ring: adopt
quadrant: "tools"
quadrant: tools
tags: [ai, architecture, coding]
---

Expand Down
2 changes: 1 addition & 1 deletion radar/2024-06-01/k3d.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ quadrant: tools
tags: [devops]
---

[k3d](https://k3d.io/) is a lightweight wrapper to run [k3s](https://k3s.io) (Rancher Lab’s minimal Kubernetes distribution) in docker. It is a very useful tool to create kubernetes native development environments or use it as sandbox to test out things locally.
[k3d](https://k3d.io/) is a lightweight wrapper to run [k3s](https://k3s.io) (Rancher Lab’s minimal Kubernetes distribution) in Docker. It is a very useful tool to create Kubernetes-native development environments or use it as a sandbox to test out things locally.
5 changes: 0 additions & 5 deletions radar/2024-06-01/langchain.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,10 @@ tags: [ai]
## Key Features

- **Integration with Multiple NLP Models**: LangChain supports the integration of various NLP models, allowing developers to choose the best-suited models for their specific use cases.

- **Support for Vector Databases**: The framework can seamlessly connect with different vector databases, which are crucial for implementing RAG patterns and enhancing the retrieval process in NLP applications.

- **Preconfigured Chains**: LangChain provides pre-built chains for typical NLP tasks, such as question-answering and chatbots, reducing the time and effort required to build these functionalities from scratch.

- **Compatibility with Open-Source Libraries**: LangChain is designed to work well with established open-source libraries, making it easier for developers to incorporate it into their existing workflows and leverage a wide range of tools and resources.

- **Ease of Deployment**: The framework simplifies the deployment process of NLP applications, ensuring that they can be quickly and efficiently moved from development to production.

- **Versatile Use Cases**: LangChain is suitable for a variety of NLP applications, making it a versatile tool for developers working in different domains.

LangChain stands out as a powerful framework for developers, utilizing and integrating well-known open-source libraries.
2 changes: 1 addition & 1 deletion radar/2024-06-01/microsilos.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ tags: [agile, architecture]

A core concept of Domain-Driven Design (DDD) is the distillation of the problem domain into distinct, bounded contexts, with dedicated teams assigned to and responsible for those contexts. Microservices are often used to implement these bounded contexts in software applications. The communication patterns between teams will shape how these microservices are designed and interact, as per Conway's Law.

Team autonomy is crucial for achieving a truly independent microservice architecture, driving innovation and agility. However, full autonomy can lead to the formation of microsilos: isolated teams working independently, often resulting in inconsistent implementations, communication gaps, and hidden dependencies and redundancies.
Team autonomy is crucial for achieving a truly independent microservice architecture, driving innovation and agility. However, full autonomy can lead to the formation of microsilos: isolated teams working independently, often resulting in inconsistent implementations, communication gaps, hidden dependencies, and redundancies.

### Mitigation Strategies
- **Strategic Domain-Driven Design**: Ensure that bounded contexts and their interrelationships are well-defined, both organizationally (team structure) and technically (interfaces).
Expand Down
3 changes: 0 additions & 3 deletions radar/2024-06-01/monolith-first.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,8 @@ The concept of the strategic monolith stems from the idea that starting with a m
### Benefits

- **Future-Proof Architecture**: Modular design within a monolith allows for parts of the system to be easily extracted into individual microservices as requirements evolve or the business grows. This approach ensures that the architecture can adapt to changing needs without extensive refactoring.

- **Operational Simplicity**: Starting with a monolithic architecture simplifies deployment and management by keeping all modules within a single deployable unit. This reduces the complexity and overhead associated with distributed systems, such as handling inter-service communication, distributed data management, and comprehensive monitoring.

- **Performance and Latency Benefits**: Intra-process communication within a monolith results in lower latency and higher performance compared to inter-service communication in microservices. This ensures that the system remains responsive and efficient as it scales.

- **Reduced Complexity**: A "monolith first" approach avoids the initial challenges of distributed systems, allowing teams to focus on building robust features and gaining a deep understanding of the domain before considering a transition to microservices.

At AOE, we strive to follow this approach when starting greenfield projects. We aim to balance between creating systems that are "as small as possible" yet "as big as necessary," ensuring robust and maintainable architectures that can scale and evolve with business needs. This provides a balanced path that aligns immediate development needs with long-term architectural goals.
2 changes: 0 additions & 2 deletions radar/2024-06-01/oci-container.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,3 @@ quadrant: platforms-and-aoe-services
tags: [devops]
featured: false
---

OCI Containers are a well-established industry standard now.
6 changes: 3 additions & 3 deletions radar/2024-06-01/ollama.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ quadrant: tools
tags: [ai, coding]
---

Running large language models local?
Running large language models locally?

Downloading [Ollama](https://ollama.com/download) and typing `ollama run llama3` is all you need.

Ollama is great to run various open source (open weight) models local and interact with them. You can do this either via the command line or via the [Ollama API](https://github.com/ollama/ollama/blob/main/docs/api.md).
Ollama is great for running various open source (open weight) models locally and interacting with them. You can do this either via the command line or via the [Ollama API](https://github.com/ollama/ollama/blob/main/docs/api.md).

Ollama takes care of downloading and running models and it supports the specification of own model packages in a "Modelfile".
Ollama takes care of downloading and running models, and it supports the specification of your own model packages in a "Modelfile".

At AOE, we use it for local development and testing.
9 changes: 4 additions & 5 deletions radar/2024-06-01/open-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,15 @@ quadrant: tools
tags: [architecture]
---

The [OpenAPI Specification](https://www.openapis.org/) (OAS) is a broadly adopted industry standard for describing modern REST APIs.
Other initiatives like RAML have [joined](https://blogs.mulesoft.com/dev/api-dev/open-api-raml-better-together/) the OpenAPI Initiative.
The [OpenAPI Specification](https://www.openapis.org/) (OAS) is a broadly adopted industry standard for describing modern REST APIs. Other initiatives like RAML have [joined](https://blogs.mulesoft.com/dev/api-dev/open-api-raml-better-together/) the OpenAPI Initiative.

**OpenAPI v3**

The current version OpenAPI v3 added more features to the specification - for example the ability to describe APIs supporting request/callback pattern.
The current version, OpenAPI v3, added more features to the specification, for example, the ability to describe APIs supporting request/callback patterns.

There is a very good api designer https://www.apicur.io/ and a good mock generator http://microcks.github.io/
There is a very good API designer: [Apicurio](https://www.apicur.io/) and a good mock generator: [Microcks](http://microcks.github.io/).

The general tool support is excellent. See https://openapi.tools/
The general tool support is excellent. See [OpenAPI Tools](https://openapi.tools/).

**TM Forum Open API**

Expand Down
Loading

0 comments on commit 3a6d7d7

Please sign in to comment.