This article focuses on the sysadmin skills that any web developer should add to their armory to build better applications. Having these skills is important because the arena for web development changes at a rapid pace, and new technology hits the road what seems like every day, meaning that what is relevant today might not be relevant in a year or two. Then, there is the constant upgrading and security patching.
As a web or desktop application developer, the code you write will run on a machine, whether that is your local system, a device, or (eventually) a server. Understanding how the machine works and the environment in which the machine operates will improve how the application is built. When it comes to understanding how your machine operates, there is no one better to look to than the system administrator who battles with the machine, day in and out.
A system administrator is primarily responsible for monitoring, alerting, user administration, and:
- Maintaining the hardware and software upon which the code is executed.
- Handling the system’s environment, including the network, power backups, etc.
- Ensuring the system is safe and accessible at all times, even during a disaster.
- Creating documentation for continuity.
Let’s take a deep look at how each of these skills are useful to a developer.
Hardware and software
Apache2 and Ngnix are two popular and widely used tools to serve web applications. Apache2 is a threaded server while Nginx is a forked server. This means that while Apache2 is good at serving dynamic content, Nginx is better at serving static assets. A web developer writing a web application and limiting themselves to that specific task without the grasp of threads and forks will be indifferent to the choice. A developer who has a good grasp on the hardware or software enabling their application reaps the rewards of building the best one out there.
Two good articles to help get you started are Turning on the LAMP: Linux, Apache, MySQL, and PHP and Admin 101: Apache survival basics.
The target environment
When building any software, the network tops the list of things a developer might overlook. For example, when an application loads, it makes 100 HTTP calls. Each call has a latency of 1ms, which is 100ms. When 100 users access your application from the same network, each user faces 100ms of latency for the application to load. Regardless of how optimized your application is, the users facing these delays will have a bad experience.
Had this factor be considered at the time of design, the developer could have made calls judiciously regarding latency and other factors (like bandwidth) taken into consideration. Then, they could have fine-tuned the application so it delivered the results it was built for.
Read more about getting started with networking here.
System security and accessibility
A sysadmin is tasked with ensuring the safety, accessibility, and reliability of a system. Every application has its environment defined by a configuration management tool. If the application written by the developer has this issue in mind, then in the case of one or more key resources not being available, the application can switch to fallback resources and continue to operate smoothly.
Make sure your system is secure. Two articles to get you started are 5 tips for getting started with Linux server security and Security advice for sysadmins: Own IT, Secure IT, Protect IT.
User administration
In *nix based systems, code requires privileges to run on the host system. This privilege is derived from the user who runs the code on the system. Restricting user privileges to minimal and as-required reduces arbitrary code execution with escalated privileges.
Learn more about managing users in Linux sysadmin basics: User account management.
Monitoring and alerting
Every time there is an event of importance where new features are announced and traffic surges, system administrators are at the forefront to keep the show running. How do they do it? They keep an eye on key metrics like CPU usage, memory, and network activity to identify surges. At times, there can be a denial-of-service (DoS) attack on public endpoints. When proper logging is enabled on the application, the sysadmin can plug these logs into their monitoring tools and apply rate limits to that specific endpoint to save the application from going out of service.
Some good guides for monitoring and alerting are Introduction to Linux monitoring and alerting and The open source guide to DevOps monitoring tools.
Documentation
Great events in history are remembered today because somebody chose to write about that event. Similarly, knowing the nuances of how system internals work isn’t something gained on day one. This knowledge has to be gained by working with the system on a day-to-day basis. Sysadmins make a good habit of documenting the what, why, and how of a specific decision, like which subnet a resource should belong to. This documentation can help other sysadmins get up and running in a short period.
Developers, with the aid of documentation, can share the decision-making process that resulted in their specific code. This practice can reduce the cognitive effort need for a new developer to adapt their skills.
Here are a few more reasons why documentation is important: Syadmins: Poor documentation is not a job insurance strategy.
Conclusion
That’s a lot of tasks for a sysadmin, and all of them are no less important. For a web developer, it starts with understanding the basics of hardware and software, plus user and code permissions. Then familiarize yourself with monitoring, logging, and networking. Last, but not least, write good documentation.
I hope this article helps web developers identify key skills to create applications that they are proud of.
About the author
I’m Suresh Prasanna, an RoR developer, and privacy enthusiast. I have an Integrated Masters Degree in Computer Science.
I started as a programmer interested in web app development. Right out of college tried my hand in creating a digital product for the healthcare ecosystem and now back to job crafting products that solve real-world problems.
I live in Chennai, India and can talk about business models, privacy, English football, and RoR.
Browse by channel
Automation
The latest on IT automation for tech, teams, and environments
Artificial intelligence
Updates on the platforms that free customers to run AI workloads anywhere
Open hybrid cloud
Explore how we build a more flexible future with hybrid cloud
Security
The latest on how we reduce risks across environments and technologies
Edge computing
Updates on the platforms that simplify operations at the edge
Infrastructure
The latest on the world’s leading enterprise Linux platform
Applications
Inside our solutions to the toughest application challenges
Original shows
Entertaining stories from the makers and leaders in enterprise tech
Products
- Red Hat Enterprise Linux
- Red Hat OpenShift
- Red Hat Ansible Automation Platform
- Cloud services
- See all products
Tools
- Training and certification
- My account
- Customer support
- Developer resources
- Find a partner
- Red Hat Ecosystem Catalog
- Red Hat value calculator
- Documentation
Try, buy, & sell
Communicate
About Red Hat
We’re the world’s leading provider of enterprise open source solutions—including Linux, cloud, container, and Kubernetes. We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.
Select a language
Red Hat legal and privacy links
- About Red Hat
- Jobs
- Events
- Locations
- Contact Red Hat
- Red Hat Blog
- Diversity, equity, and inclusion
- Cool Stuff Store
- Red Hat Summit