| Not to mention that the more physical nature of architecture makes it less flexible than code itself so "architectural" patterns are, as a result, significantly less abstract and complex than coding patterns/algorithms. This is the reason that software engineers need adult supervision. The fact that you think that modern infrastructure is physical and static displays a lack of experience. There is nothing static about modern cloud infrastructure. I just had to deploy an API to ECS/Fargate (Docker). We had to determine the best combination of memory/cpu of the Fargate runtime environment and what hardware we wanted to give the ElasticSearch environment. I basically wrote a CloudFormation template (infrastructure as code) that defined the environment and then wrote a Node script that ran the CF template and passed in parameters to vary the hardware environment (cpu/memory). After the environment was created, the script then ran a series of Artillery load tests, recorded the results of the load tests, gathered metrics from CloudWatch and estimated the monthly cost compared to the performance. We reported that to management to let them decide how much they were willing to spend for the throughout they needed. I’ve created entire environments with databases, Redis Caches, ECS clusters (think AWS version of EKS), etc as a proof of concept by using CloudFormation deploying code to it, showing management as a demo, and then tearing it all down just by clicking delete until we can come back to it after the contract is signed and then spin it back up with one command. |
Note how I said "more physical nature," meaning that it's closer to physical but not completely physical. Either way, all abstractions suffer from leakage from the physical world. Data and processes, while seemingly abstract all occupy physical and temporal space and this fact leaks to all layers of the stack. Thus, technically, everything in the universe including computation is physical and nothing is ever purely a virtual entity.
Honestly, you think I don't know about docker? You think I don't know about the cloud? "Infrastructure as code" oooh buzzwords, you're just using a shittier domain specific language to write something that you can also do with Regular code (such as python, no buzzwords needed).
Give me a break, what web developer doesn't know about the above stuff? None.
>I just had to deploy an API to ECS/Fargate (Docker). We had to determine the best combination of memory/cpu of the Fargate runtime environment and what hardware we wanted to give the ElasticSearch environment. I basically wrote a CloudFormation template (infrastructure as code) that defined the environment and then wrote a Node script that ran the CF template and passed in parameters...................
OK, the stuff you did isn't even usually what a "architect" does. It's devops. An architect just diagrams the boxes and lines and gives it to the devops guy to spit out working infrastructure or a POC. But that's besides the point...
Can you write your own programming language? Can you write your own database? Can you write your own Operating System? These are actual specialties (none of which involve "architecture"), not some garbage made up specialty like "architect." At the very least, if you want to be part of an actual specialty in the IT world you need to build shit and that shit needs to be HARD to build, you can't just do some easy diagraming of a bunch of stuff while acting like you have some superior understanding of the latest architecture pattern you can look up on wikipedia.