The Keep It Simple Stack Software (wish list)
See presentsaton here: https://www.slideshare.net/ethanram/kissts-the-keep-it-simple-software-stack
Technology Requirements
- Few technologies and languages to master >> enables small full-stack teams
- Few infrastructure components fully integrated into a DevOps platform
- Easy componentization of code, modules, services and apps.
- Mature enough to be used in corporate software
- Simple to start working with and use
- Scalable and performant
- Open standards
- Open-source (free) infra with an active community
- Package manager
- Deploy on Cloud and on-Prem.
One Coding Language
- Scripted and typed
- Backend and frontend
- Dev, Test and Devops
- Unit test, Integration Test
- Excellent dev tools
- Opinionated
KISS.TS - The Keep It Simple Software Stack
- TypeScript - Simple but strong, scripted and typed, frontend and backend, excellent toolset and linter [Microsoft]
- ReactJS - componentized modern frontend development [Facebook]
- NodeJS - performant JavaScript-based runtime environment with excellent componentization and package manager [Node Foundation]
- Koa Server - a server framework based on pluggable middleware using async-await model.
- PostgreSQL - The only open-source DB that is both RDBMS and Not-only-SQL: ACID, web-scale, No-SQL feature set [PostgreSQL Global Development Group]
- Docker Containers - a SW packager and a virtualization layer that simplifies delivery and lower the cost of running a product [Docker]
Ok, we will need some extra tools and libraries around the core to go for a large-scale developement and deployment operations:
Additional Libraries and Tools
- Jest - easy library for JavaScript Unit-testing with test-first approach and code-coverage built-in. [Facebook]
- Cucumber - a structured language to write automated integrated test in business requirements terms.
- Artillery - An easy-to-use load testing toolkit. Make sure your app scalabls, performant & resilient under high load.
- Selenium WDIO -
- Docker Swarm - easy-to-use orchestrators and cluster management, on any cloud infra [Docker]
- PM2 / PMX - cluster mamanger for Node, includes watchdog, auto scale-up/down, log mgmt, perfromance counters and JMX-like console.
- VS Code - IDE [Microsoft]
- Jenkins - The defacto DevOPs standard tool in building Continuous Integration and Continuous Delivery pipelines.
- Ngnix - Let IT unit handle the clustering, load-balancing, application routing, SSL offload DDOS etc.
- Core OS
- Git / Bitbucket - excellent source control and build pipelines management [Atlassian]
- JIRA - The ultimate tool to manage software delivery flows: from agile development, to product management and support. [Atlassian]
- XRay - a test suite integrated into JIRA for manual and automated test planning, management and executions.
- Artifactory - this is where you store components: dockers, NPM packages, snapshot builds, release builds etc.
- Zabbix - production environment monitoring and alerting tool that IT and support love: simple, strong and creates great visualizations.
- Google Could - because the second largest always tries harder!
- Kafka Q
- ELK stack: Logstash, ElasticSearch & Kibana - central log server that also enables creating real-time IT-monitoring and business-analytics dashboards.
- Ansible: