initial commit
This commit is contained in:
3
radar/2019-11-01/akeneo.md
Normal file
3
radar/2019-11-01/akeneo.md
Normal file
@@ -0,0 +1,3 @@
|
||||
---
|
||||
featured: false
|
||||
---
|
||||
9
radar/2019-11-01/akka-streams.md
Normal file
9
radar/2019-11-01/akka-streams.md
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
title: "Akka Streams"
|
||||
ring: adopt
|
||||
quadrant: languages-and-frameworks
|
||||
featured: false
|
||||
|
||||
---
|
||||
|
||||
Updated to "adopt"
|
||||
8
radar/2019-11-01/alpakka.md
Normal file
8
radar/2019-11-01/alpakka.md
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Alpakka"
|
||||
ring: adopt
|
||||
quadrant: languages-and-frameworks
|
||||
|
||||
---
|
||||
|
||||
Updated to "adopt"
|
||||
3
radar/2019-11-01/ant.md
Normal file
3
radar/2019-11-01/ant.md
Normal file
@@ -0,0 +1,3 @@
|
||||
---
|
||||
featured: false
|
||||
---
|
||||
5
radar/2019-11-01/anypoint-platform.md
Normal file
5
radar/2019-11-01/anypoint-platform.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
featured: false
|
||||
---
|
||||
|
||||
Recently our teams migrated some project from anypoint to ["Apache Camel"](/tools/apache-camel.html) or use ["Alpakka"](/tools/alpakka.html) for integration work.
|
||||
9
radar/2019-11-01/aoe-sso.md
Normal file
9
radar/2019-11-01/aoe-sso.md
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
title: "AOE SSO"
|
||||
ring: adopt
|
||||
quadrant: platforms-and-aoe-services
|
||||
|
||||
---
|
||||
To improve security and user experience we decided to install an organisation wide SSO and use OpenID Connect integrate with existing tools.
|
||||
We use [Keycloak](/tools/keycloak.html) as the SSO server, which is backed by our LDAP.
|
||||
This also helps to implement new infrastructure security based on ["BeyondCorp"](/methods-and-patterns/beyondcorp.html).
|
||||
10
radar/2019-11-01/apache-camel.md
Normal file
10
radar/2019-11-01/apache-camel.md
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
title: "Apache Camel"
|
||||
ring: trial
|
||||
quadrant: languages-and-frameworks
|
||||
featured: false
|
||||
---
|
||||
|
||||
["Camel"](https://camel.apache.org/) is an open source integration framework that empowers you to quickly and easily integrate various systems consuming or producing data.
|
||||
|
||||
Our teams are using Apache Camel as API Gateway that offers APIs and takes care of Federation to various Backends as well as Authorisation tasks.
|
||||
9
radar/2019-11-01/apollo-client.md
Normal file
9
radar/2019-11-01/apollo-client.md
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
title: "Apollo Client"
|
||||
ring: trial
|
||||
quadrant: tools
|
||||
|
||||
---
|
||||
|
||||
The [Apollo Client](https://github.com/apollographql/apollo-client) is a tool to efficiently work together with an GraphQL server.
|
||||
It makes it easy to run your queries and mutations, cache results, brings tooling to download schemas and generate types to name a few of the useful features.
|
||||
3
radar/2019-11-01/asciidoc.md
Normal file
3
radar/2019-11-01/asciidoc.md
Normal file
@@ -0,0 +1,3 @@
|
||||
---
|
||||
featured: false
|
||||
---
|
||||
3
radar/2019-11-01/aws-lambda.md
Normal file
3
radar/2019-11-01/aws-lambda.md
Normal file
@@ -0,0 +1,3 @@
|
||||
---
|
||||
featured: false
|
||||
---
|
||||
12
radar/2019-11-01/beyondcorp.md
Normal file
12
radar/2019-11-01/beyondcorp.md
Normal file
@@ -0,0 +1,12 @@
|
||||
---
|
||||
title: "BeyondCorp"
|
||||
ring: trial
|
||||
quadrant: methods-and-patterns
|
||||
|
||||
---
|
||||
|
||||
BeyondCorp is a Zero Trust framework that evolved at Google.
|
||||
With the surge of cloud technologies and micro services the network perimeter is ever disappearing.
|
||||
This provides challenges for authentication of subjects that used to heavily rely on network segments.
|
||||
With Zero Trust no assumption is made about how far something can be trusted, everything is untrusted by default and authentication and authorisation happens all the time, not just once.
|
||||
While network segments and VPN connections may still have relevance in specific areas AOE is increasingly implementing BeyondCorp in all its components and services with implementing OAuth and OpenID Connect.
|
||||
3
radar/2019-11-01/blameless-post-mortems.md
Normal file
3
radar/2019-11-01/blameless-post-mortems.md
Normal file
@@ -0,0 +1,3 @@
|
||||
---
|
||||
featured: false
|
||||
---
|
||||
3
radar/2019-11-01/bower.md
Normal file
3
radar/2019-11-01/bower.md
Normal file
@@ -0,0 +1,3 @@
|
||||
---
|
||||
featured: false
|
||||
---
|
||||
7
radar/2019-11-01/cockpit.md
Normal file
7
radar/2019-11-01/cockpit.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
title: "Cockpit"
|
||||
ring: assess
|
||||
quadrant: tools
|
||||
|
||||
---
|
||||
[Cockpit](https://getcockpit.com/) is a self-hosted headless and api-driven content management system.
|
||||
10
radar/2019-11-01/concourse-ci.md
Normal file
10
radar/2019-11-01/concourse-ci.md
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
title: "Concourse"
|
||||
ring: trial
|
||||
quadrant: tools
|
||||
|
||||
---
|
||||
|
||||
[Concourse](https://concourse-ci.org/) is an open-source continuous "thing-doer". It represents a general approach for automation which can be used for Continuous Integration and Continuous Delivery. Concourse CI follows a strict concept that is based on idempotency, immutability, declarative config, stateless workers, and reproducible builds. Pipelines are built on the mechanics of resources, tasks and jobs, which are all configured in one or multiple YAML files.
|
||||
Concourse claims to be "simple" but has a steep learning curve in the beginning till it gets simple to use.
|
||||
Concourse is used in the Congstar Team to automate infrastructure deployments.
|
||||
8
radar/2019-11-01/container-based-builds.md
Normal file
8
radar/2019-11-01/container-based-builds.md
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Container-based builds"
|
||||
ring: adopt
|
||||
quadrant: methods-and-patterns
|
||||
|
||||
---
|
||||
|
||||
Updated to "adopt". Container based builds has getting to the defacto standard for our pipelines in [Gitlab](/tools/gitlab.html) or other CI Tools.
|
||||
39
radar/2019-11-01/cypress.md
Normal file
39
radar/2019-11-01/cypress.md
Normal file
@@ -0,0 +1,39 @@
|
||||
---
|
||||
title: "Cypress"
|
||||
ring: assess
|
||||
quadrant: tools
|
||||
|
||||
---
|
||||
[Cypress](https://www.cypress.io/) is a new front-end testing tool (end2end). It comes as a simple node package and is therefore easy to use and maintain for front-end developers and testers. Cypress has a different approach than selenium, it runs in the browser and in the same loop as the device under test.
|
||||
|
||||
Good:
|
||||
|
||||
* [Open source](https://github.com/cypress-io/cypress)
|
||||
* [Locally installed](https://docs.cypress.io/guides/getting-started/installing-cypress.html#System-requirements)
|
||||
* Straightforward (installed via npm and all tests are written in Javascript)
|
||||
* Good [documentation](https://docs.cypress.io/guides/overview/why-cypress.html#In-a-nutshell) and learning material
|
||||
* Can be run in a [headless mode](https://docs.cypress.io/guides/guides/command-line.html#cypress-run)
|
||||
|
||||
Not so good:
|
||||
|
||||
* No cross-browser testing (only chrome and electron)
|
||||
* Scenarios with multiple browser tabs can not be tested
|
||||
* Relatively new test tool, though it is becoming more popular
|
||||
|
||||
Example of a test :
|
||||
|
||||
```js
|
||||
describe('My First Test', function() {
|
||||
it('Visits the Kitchen Sink', function() {
|
||||
cy.visit('https://example.cypress.io')
|
||||
|
||||
cy.contains('type').click()
|
||||
|
||||
cy.url().should('include', '/commands/actions')
|
||||
|
||||
cy.get('.action-email')
|
||||
.type('fake@email.com')
|
||||
.should('have.value', 'fake@email.com')
|
||||
})
|
||||
})
|
||||
```
|
||||
3
radar/2019-11-01/dagger.md
Normal file
3
radar/2019-11-01/dagger.md
Normal file
@@ -0,0 +1,3 @@
|
||||
---
|
||||
featured: false
|
||||
---
|
||||
3
radar/2019-11-01/datadog.md
Normal file
3
radar/2019-11-01/datadog.md
Normal file
@@ -0,0 +1,3 @@
|
||||
---
|
||||
featured: false
|
||||
---
|
||||
@@ -0,0 +1,3 @@
|
||||
---
|
||||
featured: false
|
||||
---
|
||||
19
radar/2019-11-01/dependency-update-scan.md
Normal file
19
radar/2019-11-01/dependency-update-scan.md
Normal file
@@ -0,0 +1,19 @@
|
||||
---
|
||||
title: "Dependency Update Scan"
|
||||
ring: assess
|
||||
quadrant: methods-and-patterns
|
||||
|
||||
---
|
||||
|
||||
Automated dependency scans are useful to remove the manual task of regularly checking for version updates.
|
||||
Our teams are utilizing the Open Source bots [Renovate](https://github.com/renovatebot/renovate) and [Scala Steward](https://github.com/fthomas/scala-steward), both of which are running as a scheduled GitLab job in our internal infrastructure.
|
||||
The bots are regularly creating merge requests with dependency version updates against our projects.
|
||||
|
||||
Having this automated comes with a few advantages:
|
||||
|
||||
- Important dependency updates are available very shortly after they have been published (e.g. for security issues)
|
||||
- Changelogs are referenced in the merge requests, making it easy to review if the update is relevant
|
||||
- An automatically triggered pipeline is running our test suites, giving us a high confidence that the version update is non-breaking if the pipeline was successful
|
||||
- Regular small updates are easier to maintain than bulk updates of many libraries at once, reducing the risk of introducing compatibility breaking changes
|
||||
|
||||
Automated merge requests allow us to focus on reviewing, testing and prioritization of dependency version updates with considerably less effort.
|
||||
11
radar/2019-11-01/distributed-tracing.md
Normal file
11
radar/2019-11-01/distributed-tracing.md
Normal file
@@ -0,0 +1,11 @@
|
||||
---
|
||||
title: "Distributed Tracing"
|
||||
ring: trial
|
||||
quadrant: platforms-and-aoe-services
|
||||
|
||||
---
|
||||
|
||||
Distributed Tracing creates visibility over processes spanning multiple applications.
|
||||
In a microservice world where a request or operation involves multiple applications it is helpful to have an overview of what system is involved, at what point.
|
||||
Also visibility of communicated data and errors helps to quickly identify issues in a microservice environment.
|
||||
Our tool of choice is [Jaeger](/platforms-and-aoe-services/jaeger.html) with [B3 Propagation](https://github.com/openzipkin/b3-propagation).
|
||||
17
radar/2019-11-01/eks.md
Normal file
17
radar/2019-11-01/eks.md
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
title: "Amazon EKS"
|
||||
ring: trial
|
||||
quadrant: platforms-and-aoe-services
|
||||
|
||||
---
|
||||
|
||||
[Amazon Elastic Kubernetes Service](https://aws.amazon.com/de/eks/) (Amazon EKS) is a managed service that makes it easy for you to run Kubernetes on AWS without needing to stand up or maintain your own Kubernetes control plane.
|
||||
Amazon EKS runs Kubernetes control plane instances across multiple Availability Zones to ensure high availability.
|
||||
It also provides automated version upgrades and patching for them.
|
||||
|
||||
Amazon EKS is used as part of the infrastructure in the Congstar project.
|
||||
Different Amazon EKS Clusters are in use on a variety of environments like development, integration, testing and production.
|
||||
We experienced that Kubernetes version updates are done without major efforts or impact to the running cluster.
|
||||
|
||||
Amazon EKS is fully supported by Terraform which brings the advantage that its configuration is written in code,
|
||||
which fulfils the infrastructure as code philosophy.
|
||||
26
radar/2019-11-01/event-storming.md
Normal file
26
radar/2019-11-01/event-storming.md
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
title: "Event Storming"
|
||||
ring: assess
|
||||
quadrant: methods-and-patterns
|
||||
|
||||
---
|
||||
|
||||
Event Storming is a method of modeling business processes using domain events.
|
||||
|
||||
With complex business processes, people usually know their part of the process very well.
|
||||
Having people from different departments in one room, allows (and requires!) a conversation.
|
||||
Knowledge silos get opened up. All learnings can be directly visualized.
|
||||
|
||||
We tried this method a couple of times with different sized scopes. We believe it can be of value and has potential.
|
||||
|
||||
## Method Overview
|
||||
It's like brainstorming - with the goal to visualize a business line or process.
|
||||
|
||||
Event Storming is done in a workshop format.
|
||||
|
||||
To get a business process modeled quickly and complete, it's important to get domain experts, developers, UX and
|
||||
everybody else who is involved to some extend in the related business line into one room.
|
||||
With virtually unlimited space for modeling using big paper rolls put onto the walls, equipped with colored stickies
|
||||
and markers, the modeling workshop can start.
|
||||
|
||||
During the workshop, the goal is to model the big picture, without limiting or focusing just on parts of a process.
|
||||
3
radar/2019-11-01/explicit-test-strategy.md
Normal file
3
radar/2019-11-01/explicit-test-strategy.md
Normal file
@@ -0,0 +1,3 @@
|
||||
---
|
||||
featured: false
|
||||
---
|
||||
11
radar/2019-11-01/falco.md
Normal file
11
radar/2019-11-01/falco.md
Normal file
@@ -0,0 +1,11 @@
|
||||
---
|
||||
title: "Falco"
|
||||
ring: assess
|
||||
quadrant: tools
|
||||
|
||||
---
|
||||
|
||||
Falco is an open source project for intrusion and abnormality detection for Cloud Native platforms such as Kubernetes.
|
||||
It detects abnormal application behavior and sends alerts via Slack, Fluentd, NATS, and more.
|
||||
|
||||
We are assessing Falco to add another angle to host based intrusion detection and alerting.
|
||||
39
radar/2019-11-01/flamingo.md
Normal file
39
radar/2019-11-01/flamingo.md
Normal file
@@ -0,0 +1,39 @@
|
||||
---
|
||||
title: "Flamingo"
|
||||
ring: adopt
|
||||
quadrant: languages-and-frameworks
|
||||
|
||||
---
|
||||
|
||||
Flamingo is a high productivity go based framework for rapidly building fast and pluggable web projects.
|
||||
It is used to build scalable and maintainable (web)applications.
|
||||
|
||||
Flamingo is:
|
||||
|
||||
* open source
|
||||
* written in go
|
||||
* easy to learn
|
||||
* fast and flexible
|
||||
|
||||
Go as simple, powerful and typesafe language is great to implement and scale serverside logic.
|
||||
Flamingo has a clean architecture with clear dependencies in mind and offers a typical features and support for nowadays web applications:
|
||||
|
||||
* Powerful Templating Engines. E.g. support for Pug templates with reusable mixins and lightweight scripting.
|
||||
* Configuration concepts using yml and support for multiple areas and contexts
|
||||
* Powerful Dependency Injection
|
||||
* A Module concept for building modular and pluggable applications
|
||||
* Authentication concepts and security middleware
|
||||
* Flexible routing with support for prefix routes and reverse routing
|
||||
* Web Controller Support with: Request / Response / Form Handling etc
|
||||
* Operational Readyness: Logging, (distributed) Tracing, Metrics and Healthchecks with seperate endpoint
|
||||
* Localisation
|
||||
* Commands
|
||||
* Sessionhandling and Management
|
||||
* GraphQL support and therefore support to build nice SPA and PWAs on top of it
|
||||
* Resilience and Caching for external APIs calls.
|
||||
|
||||
Flamingo itself does not contain ORM Mapper or libraries - instead it emphasizes ["ports and adapters"](/methods-and-patterns/ports-and-adapters.html) architecture - so that you have a technology free (domain) model and any possible (and replaceable) persitence behind it.
|
||||
That makes Flamingo useful to build microservices and applications - especially to build "frontends" or portals that require interaction with other (micro) services in a distributed architecture.
|
||||
When sticking to the architectural recommendation you can build modular applications with replaceable adapters that gives you independed testability.
|
||||
|
||||
With **"Flamingo Commerce"** there is an additional active projects that offer rich and flexible features to build modern e-commerce applications.
|
||||
8
radar/2019-11-01/flowtype.md
Normal file
8
radar/2019-11-01/flowtype.md
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Flow"
|
||||
ring: assess
|
||||
quadrant: tools
|
||||
|
||||
---
|
||||
[Flow](https://flow.org/) is a static type checker for JavaScript code. It's goal is to make code faster, smarter,
|
||||
more confidently, and to a bigger scale.
|
||||
9
radar/2019-11-01/flux.md
Normal file
9
radar/2019-11-01/flux.md
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
title: "Flux"
|
||||
ring: assess
|
||||
quadrant: methods-and-patterns
|
||||
|
||||
---
|
||||
[Flux](https://facebook.github.io/flux/) is an application architecture for building client-side web applications,
|
||||
which is based on React's composable view components.
|
||||
|
||||
3
radar/2019-11-01/galen.md
Normal file
3
radar/2019-11-01/galen.md
Normal file
@@ -0,0 +1,3 @@
|
||||
---
|
||||
featured: false
|
||||
---
|
||||
17
radar/2019-11-01/gitflow.md
Normal file
17
radar/2019-11-01/gitflow.md
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
title: "GitFlow"
|
||||
ring: hold
|
||||
quadrant: methods-and-patterns
|
||||
|
||||
---
|
||||
Ever since there are recurring discussions about the version control strategy that a team should use.
|
||||
|
||||
We have also made the experience when new teams start off with using blocking or long lived feature branches (merge late once all review comments are done) it has a negative impact on team performance.
|
||||
|
||||
We recommend to use trunk based development with short lived (<1day) feature branches, because this has shown to support continuous integration and team collaboration the best. However we do accept teams choices to use GitFlow, we just do not try to encourage them in the first place.
|
||||
|
||||
See also:
|
||||
* trunk based development https://trunkbaseddevelopment.com/
|
||||
* https://medium.com/@fagnerbrack/one-commit-one-change-3d10b10cebbf
|
||||
* https://martinfowler.com/bliki/FeatureBranch.html
|
||||
* https://www.continuousdeliveryconsulting.com/blog/organisation-antipattern-build-feature-branching/
|
||||
7
radar/2019-11-01/gitlab-ci.md
Normal file
7
radar/2019-11-01/gitlab-ci.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
title: "Gitlab CI"
|
||||
ring: adopt
|
||||
quadrant: tools
|
||||
---
|
||||
|
||||
Moved to "adopt".
|
||||
10
radar/2019-11-01/gitlab.md
Normal file
10
radar/2019-11-01/gitlab.md
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
title: "Gitlab"
|
||||
ring: adopt
|
||||
quadrant: tools
|
||||
---
|
||||
|
||||
Moved to "adopt": Gitlab has proven to be a very useful tool for code and the collaboration around it.
|
||||
With [Gitlab CI](/tools/gitlab-ci.html) there is also a powerful tool to automate continuous integration and delivery.
|
||||
|
||||
|
||||
8
radar/2019-11-01/go-lang.md
Normal file
8
radar/2019-11-01/go-lang.md
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Go / Golang"
|
||||
ring: adopt
|
||||
quadrant: languages-and-frameworks
|
||||
|
||||
---
|
||||
|
||||
We have moved Go to "adopt".
|
||||
7
radar/2019-11-01/grafana.md
Normal file
7
radar/2019-11-01/grafana.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
title: "Grafana"
|
||||
ring: adopt
|
||||
quadrant: platforms-and-aoe-services
|
||||
---
|
||||
|
||||
Updated to "adopt"
|
||||
22
radar/2019-11-01/graphql.md
Normal file
22
radar/2019-11-01/graphql.md
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
title: "GraphQL"
|
||||
ring: adopt
|
||||
quadrant: methods-and-patterns
|
||||
|
||||
---
|
||||
|
||||
GraphQL is a query language for your API, and a server-side runtime for executing queries by using a type system you define for your data. GraphQL isn't tied to any specific database or storage engine and is instead backed by your existing code and data.
|
||||
|
||||
GraphQL was developed by Facebook around 2010 and releases 2015.
|
||||
The main challenge it solves is to improve communication between browser and server on high dynamic web apps.
|
||||
|
||||
The advantages are:
|
||||
* schema and schema validation together with a useful type system
|
||||
* the client (browser) controls what data should be send (data reduction)
|
||||
* whith one request you can fetch "all" required data
|
||||
|
||||
We are using it together with [Apollo Client](/tools/apollo-client.html) in our [React.js](/languages-and-frameworks/react.html) based frontend.
|
||||
This way the React components have their relevant GraphQL snippet, defining what data they request or mutate from the "backend for frontend", directly coupled.
|
||||
That makes it transparent what data is available. Apollo takes care of sending an aggregated GraphQL query to the backend.
|
||||
|
||||
The framework [Flamingo offers support for GraphQL](https://docs.flamingo.me/3.%20Flamingo%20Modules/graphql.html) and also Flamingo Commerce offers a full featured GraphQL API for e-commerce features. ([Example GraphQL Console for Commerce](https://demoshop.flamingo.me/en/graphql-console))
|
||||
8
radar/2019-11-01/groovy.md
Normal file
8
radar/2019-11-01/groovy.md
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Groovy"
|
||||
ring: hold
|
||||
quadrant: languages-and-frameworks
|
||||
|
||||
---
|
||||
|
||||
Since the rise of Kotlin, we seen no need why to still use Groovy as an alternative to Java running on the JVM.
|
||||
8
radar/2019-11-01/grpc.md
Normal file
8
radar/2019-11-01/grpc.md
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "GRPC"
|
||||
ring: adopt
|
||||
quadrant: languages-and-frameworks
|
||||
|
||||
---
|
||||
|
||||
We adopted GRPC, because its used on multiple places within our microservice oriented architectures for internal communication.
|
||||
3
radar/2019-11-01/grunt.md
Normal file
3
radar/2019-11-01/grunt.md
Normal file
@@ -0,0 +1,3 @@
|
||||
---
|
||||
featured: false
|
||||
---
|
||||
5
radar/2019-11-01/hal-hateoas.md
Normal file
5
radar/2019-11-01/hal-hateoas.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
featured: false
|
||||
---
|
||||
|
||||
We use HAL in cases where we need to link ressources in payloads. HATEOAS has not proven to be very useful in our projects.
|
||||
9
radar/2019-11-01/helm.md
Normal file
9
radar/2019-11-01/helm.md
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
title: "Helm"
|
||||
ring: trial
|
||||
quadrant: platforms-and-aoe-services
|
||||
|
||||
---
|
||||
[Helm](https://helm.sh/) is a package manager for [Kubernetes](https://kubernetes.io/), which simplifies the deployment
|
||||
of applications into a Kubernetes cluster and provides additional features like e.g. versioning and rollbacks.
|
||||
|
||||
5
radar/2019-11-01/hystrix.md
Normal file
5
radar/2019-11-01/hystrix.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
featured: false
|
||||
---
|
||||
|
||||
Hystrix is not actively mainatined anymore and some of its goals can now be handled with service meshs.
|
||||
8
radar/2019-11-01/infrastructure-as-code.md
Normal file
8
radar/2019-11-01/infrastructure-as-code.md
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Infrastructure as Code"
|
||||
ring: adopt
|
||||
quadrant: platforms-and-aoe-services
|
||||
|
||||
---
|
||||
|
||||
Updated to "adopt"
|
||||
11
radar/2019-11-01/jaeger.md
Normal file
11
radar/2019-11-01/jaeger.md
Normal file
@@ -0,0 +1,11 @@
|
||||
---
|
||||
title: "Jaeger"
|
||||
ring: trial
|
||||
quadrant: platforms-and-aoe-services
|
||||
|
||||
---
|
||||
|
||||
[Jaeger](https://www.jaegertracing.io/) is a tool for [Distributed Tracing](/platforms-and-aoe-services/distributed-tracing.html). Developed at Uber and inspired by Dapper and OpenZipkin it grew into an [Cloud Native Computing Foundation](https://www.cncf.io/) project.
|
||||
|
||||
Jaeger is a great tool for troubleshooting distributed systems, such as microservice architectures. Developers and Operation can quickly see communicaiton between services, and what data is communicated where.
|
||||
Errors in services can be traced to the originating system. Global trace identifiers are communicated using B3 headers. Jaeger supports Zipkin, which allows easy migration von OpenZipkin & co.
|
||||
3
radar/2019-11-01/job-dsl.md
Normal file
3
radar/2019-11-01/job-dsl.md
Normal file
@@ -0,0 +1,3 @@
|
||||
---
|
||||
featured: false
|
||||
---
|
||||
16
radar/2019-11-01/kotlin.md
Normal file
16
radar/2019-11-01/kotlin.md
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
title: "Kotlin"
|
||||
ring: adopt
|
||||
quadrant: languages-and-frameworks
|
||||
|
||||
---
|
||||
|
||||
Kotlin is used successfully in production by multiple teams.
|
||||
|
||||
Kotlin is 100% interoperable with Java. It means the code can live side-by-side in one code base and interact.
|
||||
From the beginning it was designed with practical thought in mind. So the IDE Support in IntelliJ is really great.
|
||||
|
||||
The Spring Framework Developer put a lot of effort that Springs play well together with Kotlin.
|
||||
|
||||
With it's concise syntax, null safety,
|
||||
Due to its explicit type system, this language is also great replacement for Groovy usage with Gradle.
|
||||
11
radar/2019-11-01/micro-frontends.md
Normal file
11
radar/2019-11-01/micro-frontends.md
Normal file
@@ -0,0 +1,11 @@
|
||||
---
|
||||
title: "Micro Frontends"
|
||||
ring: trial
|
||||
quadrant: methods-and-patterns
|
||||
---
|
||||
|
||||
When deciding on a system architecture we are always striving for technology neutralism. This is to allow us to stay
|
||||
flexible with future decisions. Micro Frontends can be a tool to support us with this goal.
|
||||
We favor protocols and methods, such as plain HTML and HTTP, over specific technologies when designing Micro Frontends.
|
||||
|
||||
Since Micro Frontends have proven to allow use move fast and agile, we moved this pattern to "trial".
|
||||
8
radar/2019-11-01/next-js.md
Normal file
8
radar/2019-11-01/next-js.md
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Next.js"
|
||||
ring: trial
|
||||
quadrant: languages-and-frameworks
|
||||
|
||||
---
|
||||
|
||||
[Next.js](https://nextjs.org/) is a JavaScript and React based framework which makes use of server side rendering.
|
||||
9
radar/2019-11-01/nosql.md
Normal file
9
radar/2019-11-01/nosql.md
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
title: "NoSQL"
|
||||
ring: trial
|
||||
quadrant: methods-and-patterns
|
||||
featured: false
|
||||
---
|
||||
|
||||
NoSQL technologies are established solutions that allows for scaling and handling big datasets.
|
||||
We use Technologies like Redis, Elasticsearch and Neo4J but there are many others that are powering the NoSQL space.
|
||||
3
radar/2019-11-01/npm.md
Normal file
3
radar/2019-11-01/npm.md
Normal file
@@ -0,0 +1,3 @@
|
||||
---
|
||||
featured: false
|
||||
---
|
||||
20
radar/2019-11-01/open-api.md
Normal file
20
radar/2019-11-01/open-api.md
Normal file
@@ -0,0 +1,20 @@
|
||||
---
|
||||
title: "Open API"
|
||||
ring: adopt
|
||||
quadrant: tools
|
||||
|
||||
---
|
||||
|
||||
The OpenAPI Specification is becoming 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 v2 version is basically the former Swagger - and Swagger provides useful tools for OpenAPI like the online editor and viewer http://editor.swagger.io/
|
||||
We have also found that this version currently have a good tool support accross languages, so you will find API client and server generation tools for a lot of languages, which makes it quite easy to connect to an API that is described in OpenAPI standard.
|
||||
|
||||
|
||||
**OpenAPI v3**
|
||||
|
||||
OpenAPI v3 adds more features to the specification - for example the ability to describe APIs supporting request/callback pattern.
|
||||
|
||||
There is a very good api designer https://www.apicur.io/ and a good mock generator http://microcks.github.io/index.html
|
||||
|
||||
The general tool support is excellent. See https://openapi.tools/
|
||||
17
radar/2019-11-01/packer.md
Normal file
17
radar/2019-11-01/packer.md
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
title: "Packer"
|
||||
ring: adopt
|
||||
quadrant: platforms-and-aoe-services
|
||||
|
||||
---
|
||||
|
||||
[Hashicorp Packer](https://www.packer.io/intro/getting-started/build-image.html) is a lightweight tool which automates the creation of any type of machine images (Machine Image As A Code) for multiple platforms.
|
||||
Packer is not a replacement of configuration management tools like Ansible. Packer works with tools like ansible to install software while creating images.
|
||||
Packer uses a configuration file to create a machine image. It uses the concepts of builders to spin up an instance, run provisioners to configure applications or services.
|
||||
Once setup is done, it shuts the instance down and save new baked machine instance with any needed post-processing.
|
||||
Packer only builds images. But once you have them you can deploy your infrastructure quickly and even scale by spawning any number of instances without doing extra configuration.
|
||||
Another benefit is, that machine images can be tested to verify if they are working correctly.
|
||||
Packer supports multiple cloud providers like AWS, GCP, Digital Ocean etc.
|
||||
|
||||
Machine images are important for modern deployment pipelines and fast ramp of of new infrastructure.
|
||||
We are using Packer to build so called "Golden images" that are used in our [Infrastructure as Code](/methods-and-patterns/infrastructure-as-code.html) based provisionings.
|
||||
12
radar/2019-11-01/plant-uml.md
Normal file
12
radar/2019-11-01/plant-uml.md
Normal file
@@ -0,0 +1,12 @@
|
||||
---
|
||||
title: "Plant UML"
|
||||
ring: trial
|
||||
quadrant: tools
|
||||
|
||||
---
|
||||
|
||||
[PlantUML](https://plantuml.com/) is an open source project that allows to create UML diagrams in a text-based and declarative way.
|
||||
|
||||
Since it is integrated in tools like Confluence, IntelliJ and Gitlab we use it a lot to quickly document results of software design sessions.
|
||||
|
||||
Another similar tools that use just plain javascript to render the diagrams is [mermaid](https://mermaid-js.github.io/mermaid/#/)
|
||||
3
radar/2019-11-01/play-framework.md
Normal file
3
radar/2019-11-01/play-framework.md
Normal file
@@ -0,0 +1,3 @@
|
||||
---
|
||||
featured: false
|
||||
---
|
||||
8
radar/2019-11-01/ports-and-adapters.md
Normal file
8
radar/2019-11-01/ports-and-adapters.md
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Ports and Adapters"
|
||||
ring: adopt
|
||||
quadrant: methods-and-patterns
|
||||
|
||||
---
|
||||
|
||||
Updated to "adopt"
|
||||
9
radar/2019-11-01/postgres.md
Normal file
9
radar/2019-11-01/postgres.md
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
title: "PostgreSQL"
|
||||
ring: adopt
|
||||
quadrant: tools
|
||||
featured: false
|
||||
---
|
||||
|
||||
[PostgreSQL](https://www.postgresql.org/) is a powerful, open source object-relational database system with over 30 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance.
|
||||
|
||||
10
radar/2019-11-01/postman.md
Normal file
10
radar/2019-11-01/postman.md
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
title: "Postman"
|
||||
ring: trial
|
||||
quadrant: tools
|
||||
featured: false
|
||||
---
|
||||
[Postman](https://www.getpostman.com/) is an API testing and documentation tool. Requests can be bundled into folders
|
||||
and easily be configured to be executed against multiple environments. Responses can be evaluated using the "test" feature.
|
||||
|
||||
Even automated testing is possible using [Newman](https://www.npmjs.com/package/newman) as an addition to Postman.
|
||||
3
radar/2019-11-01/protobuf.md
Normal file
3
radar/2019-11-01/protobuf.md
Normal file
@@ -0,0 +1,3 @@
|
||||
---
|
||||
featured: false
|
||||
---
|
||||
3
radar/2019-11-01/puppet-environments.md
Normal file
3
radar/2019-11-01/puppet-environments.md
Normal file
@@ -0,0 +1,3 @@
|
||||
---
|
||||
featured: false
|
||||
---
|
||||
7
radar/2019-11-01/rabbitmq.md
Normal file
7
radar/2019-11-01/rabbitmq.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
title: "RabbitMQ"
|
||||
ring: adopt
|
||||
quadrant: tools
|
||||
|
||||
---
|
||||
RabbitMQ has proven to work very well for messaging in our projects, thats why we updated it to "adopt".
|
||||
10
radar/2019-11-01/raml.md
Normal file
10
radar/2019-11-01/raml.md
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
title: "RAML"
|
||||
ring: hold
|
||||
quadrant: languages-and-frameworks
|
||||
|
||||
---
|
||||
|
||||
Since the RAML project has decided to [join](https://blogs.mulesoft.com/dev/api-dev/open-api-raml-better-together/) the OpenAPI initiative and the RAML ecosystem lacks further development and additional tools, we decided to use and recommend using ["OpenAPI specififcation (OAS)"](/tools/open-api.html) as description standard instead.
|
||||
|
||||
RAML still provides advantages in modeling an API through it's more expressive modeling language and can produce OAS
|
||||
15
radar/2019-11-01/reactive-programming.md
Normal file
15
radar/2019-11-01/reactive-programming.md
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: "Reactive Programming"
|
||||
ring: adopt
|
||||
quadrant: methods-and-patterns
|
||||
|
||||
---
|
||||
|
||||
The reactive style of programming promotes event-based thinking and modeling --
|
||||
and by that assists in creating more decoupled solutions.
|
||||
|
||||
Synergies arise, when people understand the concepts of this pattern: by using marble diagrams,
|
||||
which are a de-facto standard in visualizing algorithms in a reactive style, a common ground for communication
|
||||
is available regardless of the programming language used.
|
||||
|
||||
When appropriate, we choose more explicitly the Reactive Programming pattern and therefore moved this to "adopt".
|
||||
8
radar/2019-11-01/self-service-infrastructure.md
Normal file
8
radar/2019-11-01/self-service-infrastructure.md
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Self-service infrastructure"
|
||||
ring: trial
|
||||
quadrant: platforms-and-aoe-services
|
||||
|
||||
---
|
||||
|
||||
Moved to "trial".
|
||||
9
radar/2019-11-01/sonarqube.md
Normal file
9
radar/2019-11-01/sonarqube.md
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
title: "SonarQube"
|
||||
ring: trial
|
||||
quadrant: tools
|
||||
|
||||
---
|
||||
|
||||
At AOE, we are using SonarQube to get a historical overview of the code quality in our Projects. With SonarQube, you can get a quick insight into the condition of your code. It analyzes many languages and provides numerous static analysis rules.
|
||||
SonarQube is also being used for Static Application Security Testing (SAST) which scans our code for potential security vulnerabilities and is an essential element of our Secure Software Development Lifecycle.
|
||||
10
radar/2019-11-01/spring-boot.md
Normal file
10
radar/2019-11-01/spring-boot.md
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
title: "Spring Boot"
|
||||
ring: adopt
|
||||
quadrant: languages-and-frameworks
|
||||
|
||||
---
|
||||
|
||||
We now have several years of experiences with Spring Boot,
|
||||
and a big projects Microservice Environment runs completely on Spring Boot,
|
||||
so it's time to update it to "adopt".
|
||||
8
radar/2019-11-01/storybook.md
Normal file
8
radar/2019-11-01/storybook.md
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Storybook"
|
||||
ring: assess
|
||||
quadrant: tools
|
||||
|
||||
---
|
||||
[Storybook](https://storybook.js.org/) is a user interface development environment and playground for UI components. The tool enables developers to create components independently and showcase components interactively in an isolated development environment.
|
||||
Storybook runs outside of the main app so users can develop UI components in isolation without worrying about app specific dependencies and requirements.
|
||||
19
radar/2019-11-01/stride-threat-modeling.md
Normal file
19
radar/2019-11-01/stride-threat-modeling.md
Normal file
@@ -0,0 +1,19 @@
|
||||
---
|
||||
title: "STRIDE Threat Modeling"
|
||||
ring: trial
|
||||
quadrant: methods-and-patterns
|
||||
|
||||
---
|
||||
|
||||
STRIDE is a model of threat groups that helps to identify security threats to any application, component or infrastructure.
|
||||
|
||||
The acronym stands for:
|
||||
|
||||
* Spoofing
|
||||
* Tampering
|
||||
* Repudiation
|
||||
* Information disclosure
|
||||
* Denial of service
|
||||
* Elevation 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.
|
||||
3
radar/2019-11-01/styleguide-driven-development.md
Normal file
3
radar/2019-11-01/styleguide-driven-development.md
Normal file
@@ -0,0 +1,3 @@
|
||||
---
|
||||
featured: false
|
||||
---
|
||||
3
radar/2019-11-01/symfony-components.md
Normal file
3
radar/2019-11-01/symfony-components.md
Normal file
@@ -0,0 +1,3 @@
|
||||
---
|
||||
featured: false
|
||||
---
|
||||
21
radar/2019-11-01/temporal-modeling.md
Normal file
21
radar/2019-11-01/temporal-modeling.md
Normal file
@@ -0,0 +1,21 @@
|
||||
---
|
||||
title: "Temporal Modeling"
|
||||
ring: assess
|
||||
quadrant: methods-and-patterns
|
||||
|
||||
---
|
||||
|
||||
Temporal Modeling is way of modeling software systems and components by putting events first.
|
||||
|
||||
The usual way of modeling software is to find structures, things and relations.
|
||||
We try to find the relevant aspects of a domain and put all properties into an object-oriented model.
|
||||
Trying to create a second model for a related business process, having the structural model already in place,
|
||||
might result in a process representation that is tightly coupled with the assumptions built up from the structural
|
||||
model and too far away from reality.
|
||||
|
||||
By focusing on the domain processes first, one can visualize all aspects of a process over time.
|
||||
Having the process visualized, allows to see potential pitfalls or forgotten aspects.
|
||||
With a temporal model at hand, it is easy to create a object-oriented or structural model that perfectly
|
||||
represents all required information.
|
||||
|
||||
We tried this method when tackling big or complex domains.
|
||||
16
radar/2019-11-01/terraform.md
Normal file
16
radar/2019-11-01/terraform.md
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
title: "Terraform"
|
||||
ring: adopt
|
||||
quadrant: platforms-and-aoe-services
|
||||
|
||||
---
|
||||
[Terraform](https://www.terraform.io/) is a tool for building, changing and versioning infrastructure using the infrastructure as code pattern.
|
||||
Terraform supports popular service providers like AWS, Google Cloud Platform, Azure and many more.
|
||||
|
||||
Infrastructure is described in configuration files trough the HCL (HashiCorp Configuration Language), which brings a set of string interpolations and built-in functions,
|
||||
including conditionals and loops. Terraform validates configuration files before trying to run updates. It checks not only that all files use the correct syntax,
|
||||
but also that all parameters are accessible and the configuration as a whole is valid. In Terraform, you can (and should) run a ‘plan’ step before applying any changes.
|
||||
This step tells you precisely what is going to change and why.
|
||||
Another feature of Terraform is that it makes it easy to reuse code by using modules. That gives a lot of leeway in structuring projects in the way it makes most sense.
|
||||
|
||||
Here at AOE we use terraform in multiple teams to provision infrastructure and manage their lifecycle on cloud platforms such as AWS and for platforms such as Kubernetes.
|
||||
7
radar/2019-11-01/typescript.md
Normal file
7
radar/2019-11-01/typescript.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
title: "Typescript"
|
||||
ring: adopt
|
||||
quadrant: languages-and-frameworks
|
||||
---
|
||||
|
||||
As writing frontend applications becomes more complex, [TypeScript](https://www.typescriptlang.org/) allows us to scale client side code easily, even with large code bases. We use typescript successfully at production for many projects and we are only going to use it even more in the future. We highly recommend using typescript over javascript, therefore we have decided to move it to adopt.
|
||||
10
radar/2019-11-01/vault.md
Normal file
10
radar/2019-11-01/vault.md
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
title: "Vault"
|
||||
ring: trial
|
||||
quadrant: tools
|
||||
|
||||
---
|
||||
|
||||
[Hashicorp Vault](https://www.vaultproject.io/) is a Go application with a Rest/Cli interface that you can use to securely access secrets.
|
||||
A secret can be any sensitive data, such as credentials, certificates, access tokens, encryption keys etc.
|
||||
Vaults key features are a secure secret storage, dynamic secretes (create on-demand secrets), data encryption, secret leasing, renewal and revocation.
|
||||
7
radar/2019-11-01/vuex.md
Normal file
7
radar/2019-11-01/vuex.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
title: "Vuex"
|
||||
ring: assess
|
||||
quadrant: languages-and-frameworks
|
||||
|
||||
---
|
||||
[Vuex](https://vuex.vuejs.org/) is a state management pattern + library for Vue.js applications.
|
||||
3
radar/2019-11-01/xmlunit.md
Normal file
3
radar/2019-11-01/xmlunit.md
Normal file
@@ -0,0 +1,3 @@
|
||||
---
|
||||
featured: false
|
||||
---
|
||||
3
radar/2019-11-01/yarn.md
Normal file
3
radar/2019-11-01/yarn.md
Normal file
@@ -0,0 +1,3 @@
|
||||
---
|
||||
featured: false
|
||||
---
|
||||
Reference in New Issue
Block a user