First Post - Overview of blog
About Me
Ive been a programmer/analyst/engineer/consultant/company owner/tech lead/team lead/architect for the last 30 years since 1987. Ive worked on many systems, in many languages, with many different stacks and different teams. Ive worked on small systems and very large complex systems.
The Question
What does it take to put together a system in 2023. What architecture to use? What tools does a programmer need to know? How does one even start on the design?
The System
Lets do a banking system. Lets make it production ready.
The Architecture
We want this to be as realistic as possible to show all the components that make up a modern production system and we want to take as modern an approach as possible, so here is our basic architecture
- Data storage - a combination of RDBMS and NoSql tools
- Application - web front end, micro-service back-end
- Micro-service - each service is a stand alone API driven application
- Core Library - a library as small possible used in each service for standardized communication
- Communications - REST calls and Message Queues
- Orchestration - using Kubernetes to manage services
- Logging - using a log aggregator to archive logs
- Source control - using GIT for source repositories
- Build system - using Jenkins for build pipelines
- Artifacts - storing artifacts using an artifact management tool
Keep it simple, Stupid
The KISS principle has largely been lost in modern software development (which is why we have all these multi-million dollar multi-year overages). We will stick to the KISS principle as much as possible in this implementation, explaining decisions we make and why we make those decisions.
Overwhelmed yet
There is no doubt modern software applications have complex stacks which are overwhelming, leading many technical leads and engineers at all levels to feel they have the imposter syndrome, because they really dont understand every aspect of the stack. It is not helped by some know-it-alls or self-claimed experts who insist their way is the right way, or someone elses way is outdated or "old way of doing things". We will explore these claims in this implementation but be prepared to be overwhelmed and try not to panic. When broken down to its simplest form, the application is quite simple.
Lets Go
Hold your horses, we need to do some prep-work. Remember measure twice, cut once. That is very true for software implementations. Each blog will build on some concepts leading up to the final implementation details.
Comments
Post a Comment