Infrastructure
InfrastructureBuilding
I enjoy building necessary things. Things that are neccessary generally have utility or the loop is broken; I enjoy fixing loops as well. Properly operating loops are what allow for efficiency in infrastructure. I've worked at various different levels in technology infrastructure but admire much thought out infrastructure
General Infrastructure
My first full-time job before going into the technology field was on a maintenance team, building/maintaining infrastructure for manufacturing production lines, labs, and corporate facilities. Each morning, I would walk around with a clipboard and write down 60-70 readings from various monitoring instruments to estimate temperatures in cryogenic equipment, cooling/heating systems, electrical systems to pressure in boilers, compressors, stored co2/nitrogen, water to parts per million of particulate in various parts of these systems, to operating voltage/amperage, among many other things. My manager would input this data and we would have plotted information about our given infrastructure, which would dictate what parts of the system needed hands-on attention; replacing a filter, shutting down and spinning up different size compressors to reach the operating pressure we needed, when a production line was running hot and needed to offload/divert to a different PUC (Point of Utility Connection), when we needed to build a new production line for a task that had high utility demands such as a 30-meter long reflow oven needing 480V/160A service (76.8kWh)! Every day was different but puts into perspective, just all that is needed to run infrastructure.
Datacenter Infrastructure
In hindsight, general infrastructure doesn't differ too much from what we do in technology infrastructure, which is also just an abstraction layer above actual datacenter infrastructure. Electrical current is supplied, flows through a transformer to circuit boards, which generates the pulses that animate the CPU and allow for instructions to pass, for i/o, for the breathing of the application. How many CPU cycles are needed dictates how many servers are needed, which dictates how much power is needed. Servers come in various form factors, generally in datacenters, they fit into a datacenter rack, where power needs to be divided to fit these form factors. And fault tolerance must be taken into consideration, multiple power sources per rack, where if one fails, the other(s) can continue on without loss of power. However, the more CPU, the more heat, since power doesn't convert cleanly 1:1 to CPU cycles; there will always been energy lost and converted into heat. Heatsinks are used to control where/how heat dissipates, by using a good heat conductor for better heat transfer, allowing for optimal surface area for airflow to further transfer heat out of the server as intended. And since the server heats the air it pulls in, no hot air can linger or it will continue to increase when it's pulled back in again and again; this can be solved by separating the air exchange, where the intake is in a separate room or "aisle" than the exhaust. However, technology moves fast, years-in-seconds for example when calculating parallel cpu seconds in space-time for even a small datacenter, where general infrastructure in which the datacenter is built, are manual efforts, where a datacenter design issue can bring things down very quickly without time to pivot. This is solved by capacity planning and more folks today aren't solving for this by offloading this problem to public cloud providers at a cost.
Datacenter and edge networking follow the same principles as it relies on hardware to route / switch packets and over great distances compared to intra-server (not technically considered networking but cpu cache hit or cpu to i/o is typically in low nanoseconds) and intra-datacenter (between racks is also in nanoseconds but this is without taking i/o blocking into account, network speed only); figuring the best-case is the speed of light over fiber optic, it takes around 5 milliseconds (5 million nanoseconds) to travel between timezones, not accounting roundtrip. These are useful things to think about when planning how your services operate globally or even regionally (some "availability zones" in public cloud computing are 50-60 miles apart, thats almost 500,000 nanoseconds or 500 microseconds, where certain services such as high-frequency trading operate in the 100-400 microseconds range, so it depends on what services you are providing before thinking 5 milliseconds is fast, because it may be over 10x too slow). For applications we interface with at human-recognition speed, our sensories for hearing i.e. voice experience jitter when we start operating over 150 milliseconds in latency, where video is noticed slightly lower (due to frame skipping / fragmenting) around 100ms; obviously when we are interacting with others, jitter becomes more apparent, as we rely on certain social cues such as pausing for effective communication but in both cases 5 - 10 milliseconds is very fast. We have even more room for latency for things like web browsing, etc. where generally a few hundred milliseconds is okay and won't frustrate the user but seconds will; the scale of how many users can greatly impact latency, where if you are querying a database on each view, things like caching are very much needed (not to mention caching has great variety as well from on-cpu cache hits to in memory cache hits, to network bound cache hits... or misses, where a db lookup is needed anyhow).
Fault-tolerance is what makes modern datacenters differ from most similar infrastructure, like residential internet for comparison, where a service outage is deemed less critical if down for minutes (there may be occurences where nobody even notices), where datacenter uptime is rated by proximity to five nines (99.999% uptime; accounting for 86 milliseconds per day or 26 seconds per month, where falling below this risks the reputation of the service you provide)
Some of the most fascinating infrastructure I've seen has been in datacenters: In the Chicago area I've visited a datacenter with a large (room-sized) centrifugal ring that spins, powered by diesel generators and can continue spinning for tens-of-minutes before stopping, when power is cut; handling brownouts & short blackouts with ease. In Seattle, I've visited a datacenter with a heli-pad to bring in generator fuel during a natural disaster to keep services running (which is also where a news station is present)
Cloud Infrastructure
Cloud is just jargon for a type of abstraction; if you run your datacenter like I discussed above, we consider this on-prem infrastructure or private cloud if we house service offerings from it. Public cloud is someone elses on-prem infrastructure, shared for profit, usually among many customers. You can scale your capacity without building, within seconds/minutes; for a seasonal customer, this can yield huge savings, as you can leave capacity near-zero during offseason.
Other physical infrastructure
I have always admired bridges and go out of my way to visit or view them when traveling; I find them fascinating, whether bridges for walking, hiking or private, public transportation or primitive, sophisticated, artistic.
Sustainable Infrastructure
I also have interests in sustainable infrastructure, mostly as it relates to Permaculture and self-sufficiency; certain things such as rain water collection, different types of composting, harvesting nitrates in aquaculture and other hackable symbioses in nature (Hack the Planet!!)