Skip to content

J8. Server Performance

This was the 8th and final week of this course; it was really an interesting course and I learned a lot of things about PHP and PHP popular frameworks, along with server management and some E-commerce (including encryption and security).

The course started with an introduction to web 2.0 technologies, then we talked about servers, then PHP and E-commerce, then Joomla and finally we touched upon server performance.

This week I learned that monitoring and optimizing server performance is teamwork, where programmers, DBAs, network engineers, and system administrators work together to achieve the best performance possible.

Every aspect of the development cycle affects the overall performance of the server in areas such as latency, availability, and security. The performance of the server is affected by the code, the database, the network, and the hardware.

We learned that Application code greatly affects the performance and the security of the server. The code should be optimized to use the least amount of resources possible. The code should also be secure, and should not contain any vulnerabilities that can be exploited by hackers. The values that are expansive to compute should be cached, and the code should be written in a way that it can be easily cached.

The database is another important aspect of the server’s performance. By database, I mean the actual database servers or the part of the code that interacts with the database. This includes putting the DB servers close to the actual code server and maybe having regional replicas of the DB if a CDN is used.

The network is another important aspect of the server’s performance; Where the programmer should aim for the lowest size of data transfer, either by compressing data, editing the client to only request the data when needed, or by using a CDN.

The hardware is the last important aspect of the server’s performance; where the right servers must be installed to handle the load, using a CDN to reduce the load on the main servers, and using a load balancer to distribute the load between the servers.

Monitoring server performance is also an important part to detect issues and troubleshoot them, then introducing the right fix.

We also learned about DNS (Domain Name System) and how it works, and how it can be used to improve server performance. We also learned about the different types of DNS records. The Oracle docs mentioned in the course were very helpful and rich in useful information.

References