While building systems, especially ones where there is no “prebaked” solutions, it is important to design it to be as simple and maintainable as possible.
This can be challenging when the system has many different requirements and is rather “technically” sophisticated.
Even after breaking down the big picture in smaller components, some components can be complex.
Managing complexity is important. As complexity increases, innate knowledge of how the system works becomes more important and management becomes less portable. In addition, debugging problems can become more difficult. Lastly, ongoing maintenance can be costly.
I often find myself at the intersection of delivering a solution and ensuring it is proper. Delivery timelines, achieving desired results and proper engineering can work against each other.
However, I have been able to reliablely deliver all of the above when dealing with difficult problems and large systems. The problem is that while I don’t physically exert myself, the mental energy required is draining.
Drafting plans, evaluating outcomes, selecting the best strategy, executing and debugging can take a toll. I don’t ever expect this to change, but hopefully become more manageable.
A concrete example of this is a classic case. It even has a best practice approach. However, the implementation can be challenging.
This case is when there are two immutable interfaces which are incompatible. This a slam dunk “adapter pattern” problem.
The difficulty comes in when you are required to understand how the interfaces operate “under the hood.” Often times this information is obscured. It is worse when both aren’t transparent.
Therefore, even after dealing with the above, there is still the problem of creating a simple, reliable and secure adapter.
I always thought the better I got at this stuff the happier I’d become. Turns out the challenges never get easier; they remain the same relative difficulty and at times more so.
It’s like Biggie said “Mo’ money, mo’ problems.” Except sed ‘s/money/skills/g’
I saw some tips here already about people wanting to get into sysops and sysadmin, but I’m researching into this area (kinda thinking about switching my learning from pure development to devops or even sysadmin) and I’d like to set a little personal roadmap and would love if you guys could help…
basically what I think I’ll need the most:
•Shell Scripting (both bash and ps :: but is there any difference between bash and zsh? Is it the same? Do I need to learn both?)
•Python (for my own automation/self-accomplishment)
•a lil bit of Java and .NET (with a tiny bit of PHP) since they’re dominant on my country and I’ll need to understand the works of it to deploy code to production (if I want to do it right)
•Windows AD
•Samba(?)
And this is where I get lost, I don’t know where to go from there… could you guys give me a hint?
zsh has a lot more useability features, but is almost completely backwards compatible with bash out of the box (so scripts should work across both for the most part).
Learn shell, sed and awk first.
I think my CentOS guide is also a good resource to show how to do some initial server configuration.
4:30 Hrs till I have to migrate a 14GB database and a 12GB confluence install from a win2k8R2 server into a CentOS.
The predicted results will be cutting the total resource usages from the ESX down by 20GBs of RAM and clearing up at least 160GBs of hard disk space.
There are two servers I get to nuke, the primary old wiki server and the old old wiki server that has only been alive to act as a redirect server for the past 8 years.
i use Ubiquiti, it’s expensive, not as flexible, and you can’t alwayse find the stuff you need ( damn i want a 12 port Poe with 10GB uplink ! ). It’s quiet but it run hot, and if you don’t have a dedicated backuped 12/24v powersource, you don’t have power backup
That aside it’s easy enough to setup
i don’t know about cisco switch, we use juniper at work. but those aren’t the best either.
We have a few Meraki switches at work, they are simple enough to configure. Nothing really special about them that I can think of other than you can edit the config when they’re offline and they’ll pull the new version when they come back online.