Name: tech-radar
Owner: AutoScout24
Owner: AutoScout24
Description: AutoScout24 Technology Radar
Created: 2017-02-10 10:38:17.0
Updated: 2017-12-13 08:16:44.0
Pushed: 2018-01-10 13:59:54.0
Homepage:
null
Size: 13
Language: null
GitHub Committers
User | Most Recent Commit | # Commits |
Other Committers
User | Email | Most Recent Commit | # Commits |
README
AutoScout24 Technology Radar
Defaults
Blips that are adopted at AutoScout24 by default and are not mentioned in every radar. Most of them are motivated by our
Scout24 IT principals.
Techniques
- Blue/Green Deployment
- Continuous Delivery
Continuous delivery is our software engineering approach to support teams in producing software in short cycles and
ensuring that the software can be reliably released at any time.
- Infrastructure as Code
We manage, provision and automate all computer data centers and cloud infrastructure through machine-readable definition
files: reproducible, traceable, auditable and tested.
- Avoid Lockstep Releases
- Two-Factor auth. for everyone where possible
- Shadow Traffic
Platforms
- Node Js as build tools
- Amazon Web Services - AWS
AWS is our preferred, reliable, scalable, and inexpensive cloud computing service powered by Amazon. We choose AWS
platform service over managed service, over self-hosted OSS and over self built solutions.
- Serverless Architectures
We build applications with custom code that is run in ephemeral containers operated by a service provider. These
systems significantly reduce operational cost and complexity. Amazon Lambda and Amazon ECS are two examples for
serverless services.
- Q.A. in Production
With the rise of Continuous Delivery, the QA role is shifting to include analyzing software product quality in production. This involves monitoring of the production systems, coming up with alert conditions to detect urgent errors, determining ongoing quality issues and figuring out what measurements you can use in the production environment to make this work. This does not mean that pre-production QA is not needed anymore.
- HTTP/2
is the next revision of HTTP. Improves user perceived latency.
- Auth0
For us it's important to authenticate users of internal systems against our active directory. Also, 2FA authentication becomes mandatory. Auth0 makes it easy to integrate with, supports all needed protocols and provides custom rules to enrich the authentication flow.
Tools
- Nexus
- Elastic Search
- Kibana
- Ops Genie
- Git
- SBT
- Dashing.IO
- Datadog
We use Datadog as our monitoring service for cloud-scale applications. We bring together data from servers,
databases, tools, and services to present a unified view of our entire stack and to raise alarms.
- Security Monkey
We are using Security Monkey for auditing our security relevant resources in AWS. It has proven to be a reliable and helpful tool and led to improved overall security.
- Kafka
We chose Kafka for our internal data enrichment pipelines. The lack of the log compaction feature in AWS Kinesis led us to roll our own solution.
- Chaos Monkey
Testing our systems for resiliency is important to us. Chaos Monkey randomly kills machines in our live environment and helps us finding and preventing shortcomings in our service setup. http://principlesofchaos.org
- git-secrets
To prevent secrets leaking on GitHub we are scanning our repositories with git-secrets. Compared to gitrob this tool also scans the file contents and can work preemptively as a pre-commit hook.
- Travis CI for OSS
TravisCI is one of these tools which supports configuration as code. It's widely adopted, especially in OSS. It can be used as SaaS or On-Prem. We use it for Open Source projects only.
- WebPageTest.org
WebPageTest is used by our teams to evaluate the page performance in our pipelines.
- CloudHealth
is a service to optimize the cloud usage in many aspects including costs.
Languages & Frameworks
- Scala
- Javascript
- REST API (Public)
- SCSS
- ShowCar
- Play Framework
- EcmaScript 6
- Codahale Metrics
Dropwizard Metrics (aka Codahale Metrics) allows to easily create custom application-level metrics and export them with JMX to DataDog
- ScalaTest
We choose ScalaTest as our primary Scala testing tool. It's easy to pick up and supports test styles that are familiar to most developers coming from other languages.
- Swift
We choose ScalaTest as our primary Scala testing tool. It's easy to pick up and supports test styles that are familiar to most developers coming from other languages.
- espresso test
Andriod UI tests
- XcuiTest
iOS UI Tests
- Redux
Ported from the elm language, Redux is the standard for state-managment in the JS world. It allows for very clear top-down one-way data flow, state tracking, and isolated side-effects, together with amazing developer tools (i.e remote devtools, Time travel, Bug reporting). Use is highly encouraged in any JS SPA, specially in combination with React.
Removed
Blips removed from the radar without being adopted.
- Background Sync (Service Worker) (ASSESS) - Duplicate: Progressive WebApps
- Visual Monitoring (ASSESS) - Unstable solutions make pain be high
- Elastic Beanstalk (TRIAL)
- Node.js for the backend (ASSESS)
- Unikernel (ASSESS)
- EMR for Spark (HOLD)
- Caddy Server (ASSESS)
- Gitrob (HOLD) - replaced by git-secret
- Codecept.js (HOLD)
- Spinnaker (ASSESS) - Spinnaker is centered around EC2 but our deployments are based on ASG and soon ECS Services
- ElasticSearch Watcher (ASSESS) - We also have put “Log everything” on hold. Use metrics for metrics and not logging for metrics.
- Cassandra (ASSESS) - Currently no use case
- X-Pack Graph (ASSESS) - To expensive
- Protobuf (ASSESS) - Avro in trial
- Thrift (ASSESS) - Avro in trial
- Ratpack (ASSESS) - Nobody investigated
- Decouple Build and Deploy Tool (ASSESS) - Currently not needed
- CMS Boxes misuse (HOLD) - No new misuses
- Gulp.js (ADOPT) - Still in use, but deprecated in favour of Webpack
- Crucible (TRIAL)
- Bluepill (ASSESS)
- GoCD (HOLD) - Still in use; Ongoing discussions
- Elastic.io (HOLD) - The ElasticSearch PaaS offering did not work out for our requirements
- Go for microservices (ASSESS)- Currently no further investigations
- Objective C (HOLD) - All new work is done in Swift
- Pact CDC (HOLD) - During our trial we learned that Pact CDC is cumbersome without also introducing Pact Broker. We stopped our attempts there.