Troubleshooting is the art of taking a problem, gathering information about it, analyzing it, and finally solving it.
While some problems are inherently βharderβ than others, the same basic approach can be taken for every problem.
Not just fixing!
While fixing a problem is one of the major parts of troubleshooting, there are other parts that cannot be neglected: documenting the problem (and fix), and performing a root cause analysis (RCA).
Documenting the problem (and the fix) can help in the future when another (or possibly the same) administrator is faced with the same, or a similar, problem.
Performing a root cause analysis can help in preventing similar problems in the future.
Using the scientific method -
A good schema to follow wen troubleshooting is d scientific method:
1.Clearly define d issue-
Take a step & view d larger picture, den clearly define d actual problem. Most of d problems reported r symptoms of another problem, not d actual problem.
For eg, a user might call about a problem signing into a machine. While this is a problem for d user, the actual problem can be a forgotten passwd, an incorrectly configured machine, a nw issue, or something else entirely.
Further investigation is needed to determine d cause.
2. Collect information -
The next step is collecting as much (relevant) as possible. This information can come from a wide variety of sources: reading log files, information displayed on screen or in a GUI, follow-up questions for the original reporter, etc.
3. Form a hypothesis -
After looking at all gathered info, & d symptoms observed/reported, it is time to form a hypothesis abt the cause of d problem.
Sometimes this can be easy; for example, when a user has forgotten his password. Other times, it can be harder; for example, when a single service in a high-availability cluster fails to start on Mondays during months with an "e" in their name.
The key to remember during this step is that the hypothesis is just that, a hypothesis: a best guess as to what can be the cause of the issue. During the following steps, this hypothesis will be tested. If it turns out the hypothesis was wrong, a new one can be formed.
4. Test the hypothesis -
With an initial hypothesis formed, it can be tested for validity. How this testing happens depends on d problem & d hypothesis.
For example, when d hypothesis for a login problem states, βThe nw connection between d workstation & d KDC is being interrupted by a firewall,β the testing will be different from a hypothesis for a spontaneously rebooting server including a faulty UPS.
5. Fixing the problem -
If a hypothesis was not found to be invalid, an attempt can be made to fix the problem. During this stage, it is vital to only change one variable at a time, documenting all changes made, and testing every change individually.
Keeping backups of any changed configuration files, and reverting to those backups if a change was found to be ineffective, is also crucial. Modifying multiple configurations at once typically only leads to further issues, not fixes.
6. Rinse & repeat -
If the proposed fixes did not actually resolve the issue, the process will need to be restarted from the top. This time, any new information discovered during this cycle can be added to the mix to form a new hypothesis.
Hope you like this thread. If yes Retweet it!
More to come.
Follow me for more such content.
β’ β’ β’
Missing some Tweet in this thread? You can try to
force a refresh
1/ Whatβs the difference? π€
All these roles focus on improving software delivery and reliability but have different goals. Hereβs a quick breakdown:
2/ Platform Engineer π·
π Goal: Make life easier for developers.
β’ Build tools & platforms (e.g. CI/CD pipelines, Kubernetes)
β’ Standardize workflows for efficiency
β’ Create self-service systems so developers can work faster
π οΈ They focus on improving developer productivity.
A List of critical #AWS services and their limitations π
1. EC2 β Instance limits by region, instance type restrictions. 2. RDS β Max database storage limits, instance size restrictions. 3. S3 β Max object size is 5TB, bucket policies can limit access. 4. EBS β Volume size max of 64TB, 20,000 IOPS for io1/io2 volumes.
5. IAM β Max 5,000 roles per account, policy size limits. 6. Lambda β Max execution timeout of 15 minutes, memory max 10GB. 7. DynamoDB β Partition throughput limits, item size max of 400KB. 8. CloudFormation β 200 resources limit per stack.
𧡠Mastering Docker Troubleshooting: 15 Key Tips for Developers and DevOps Engineers!
A Thread ππ
1/ π³ Check Container Status
Use docker ps -a to view all containers and their statuses. A container may have exited unexpectedly.
Look at STATUS and RESTART policies to identify potential issues.
2/ π Inspect Logs
Run docker logs <container_name> to see the container logs.
This helps troubleshoot crashes, errors, or other issues within the app or service.
π Control traffic flow between pods using Network Policies. Limit communication to what's needed, reducing the attack surface.
Example: A policy that only allows inbound traffic from specific pods: