Browse » Home » All posts
Benefit of Website Maintenance
Are you planning to get a fresh website developed or do you accept an absolute one? Then accepting a able website aliment plan is of absolute accent to accumulate your website in business. An accretion cardinal of organizations is hiring adopted companies to outsource their website aliment responsibilities. These website aliment companies action a advanced ambit of approved and customized website aliment affairs to their clients. Website aliment guarantees bland activity of a site, abnormally its operational aspects. If it is not practiced, it may aftereffect into austere after-effects technically and/or visibly.
A website aliment close may booty affliction of issues such as spelling mistakes in text, burst online links, acknowledgment not answered, missing images and folio titles, and more. Although these things ability complete minor, about back ignored, they can portray an amateurish ancillary and prove to be a setback for your business.
Some website owners accept the mindset that already a website is created, it can booty affliction of itself and does not charge any maintenance. This is a absolute allegory and a amiss acumen as it may advance to banking loss. Armpit visitors do apprehension things discussed above, which may actualize a amiss consequence in their minds and animate them to attending out for a added acceptable maintained website. Outsourcing this assignment to a website aliment close is a amount able and awful cardinal measure. To apprentice why website aliment is necessary; one can acquaintance any acceptable web company. They would explain and appearance how it enriches the user acquaintance by creating a absolute consequence of a website.
A able-bodied maintained website should facilitate effortless banking transaction after any abstruse problems. There has to be no burst links or missing files. The site’s aeronautics accoutrement should be intact. These baby things advices in added acceptable alternation with the customers. It is added acceptable not to discount them if you are austere about accomplishing acceptable business online. For baby websites, one website aliment webmaster should suffice. However, for larger, added abstruse websites, a aliment aggregation may be required. Usually such teams are led by a aliment co-coordinator. They are followed by co mutual agents which may accommodate the abetment of professionals from abutting departments like affection assurance, website performance, change control, etc.
A website aliment company’s assignment can be classified in altered areas such as affection assurance, ecology of website infrastructure, achievement review, acknowledgment management, change control, and web agreeable management. Thus in adjustment to host an absolute and arresting additional functionally absolute website its aliment becomes mandatory
Read more ►
A website aliment close may booty affliction of issues such as spelling mistakes in text, burst online links, acknowledgment not answered, missing images and folio titles, and more. Although these things ability complete minor, about back ignored, they can portray an amateurish ancillary and prove to be a setback for your business.
Some website owners accept the mindset that already a website is created, it can booty affliction of itself and does not charge any maintenance. This is a absolute allegory and a amiss acumen as it may advance to banking loss. Armpit visitors do apprehension things discussed above, which may actualize a amiss consequence in their minds and animate them to attending out for a added acceptable maintained website. Outsourcing this assignment to a website aliment close is a amount able and awful cardinal measure. To apprentice why website aliment is necessary; one can acquaintance any acceptable web company. They would explain and appearance how it enriches the user acquaintance by creating a absolute consequence of a website.
A able-bodied maintained website should facilitate effortless banking transaction after any abstruse problems. There has to be no burst links or missing files. The site’s aeronautics accoutrement should be intact. These baby things advices in added acceptable alternation with the customers. It is added acceptable not to discount them if you are austere about accomplishing acceptable business online. For baby websites, one website aliment webmaster should suffice. However, for larger, added abstruse websites, a aliment aggregation may be required. Usually such teams are led by a aliment co-coordinator. They are followed by co mutual agents which may accommodate the abetment of professionals from abutting departments like affection assurance, website performance, change control, etc.
A website aliment company’s assignment can be classified in altered areas such as affection assurance, ecology of website infrastructure, achievement review, acknowledgment management, change control, and web agreeable management. Thus in adjustment to host an absolute and arresting additional functionally absolute website its aliment becomes mandatory
Relational Database Storage
Several extensions and code libraries (including Zend Framework) offer session save handlers that store session data in a relational database such as MySQL or Oracle. Session storage in a central database solves the scalability limitation imposed by local storage mechanisms, by making the session data available to all servers in the cluster, and making sure data integrity is maintained. Database session handlers work more or less the same, regardless of implementation and database used for storage; one or more tables are created using the session ID as the primary key, and with another column for serialized session data. With each new session, another row is inserted to this table. On each request with the same session ID, this row is fetched in the beginning of the request and is then updated at the end of it. This storage method is obviously more scalable than local storage, but still has several disadvantages which should be pointed out:
Session Storage is very different from regular data that is usually stored by web applications in a relational database. Sessions have an almost 1:1 read/write ratio (PHP will save the session at the end of each request that opened the session, even if the data did not change), and as such, row-level locking is required to maintain session integrity. Database-resident query caching usually does not work well with such usage patterns. To gain optimal performance, the session storage database should be isolated from the application’s database, and tuned differently. This imposes an additional maintenance overhead, at least in higher load levels. When a single database is used for an entire cluster, the single database quickly becomes both a performance bottleneck and a potential point of failure and subsequently, database clustering is required. Again, this causes a maintenance overhead whenever the application scales up.
Read more ►
Session Storage is very different from regular data that is usually stored by web applications in a relational database. Sessions have an almost 1:1 read/write ratio (PHP will save the session at the end of each request that opened the session, even if the data did not change), and as such, row-level locking is required to maintain session integrity. Database-resident query caching usually does not work well with such usage patterns. To gain optimal performance, the session storage database should be isolated from the application’s database, and tuned differently. This imposes an additional maintenance overhead, at least in higher load levels. When a single database is used for an entire cluster, the single database quickly becomes both a performance bottleneck and a potential point of failure and subsequently, database clustering is required. Again, this causes a maintenance overhead whenever the application scales up.
Existing Session Storage Engines
There is a multitude of session save handlers available for PHP, each with its own advantages and disadvantages. Given the modular nature of session storage in PHP, users are free to create additional save handlers, either as C/C++ extensions, or by using user-space PHP code.
The following list covers some of the more widely used session handlers, and overviews their capabilities:
The ‘files’ save handler is PHP’s default save handler. It stores session data as files on disk, in a specified directory (or sometimes in a tree of directories). Usually, this save handler is capable of easily handling tens of thousands of sessions.
The biggest disadvantage of the files save handler is that it imposes a major scalability bottleneck when trying to scale an application to run on more than one server.
In most clusters, requests from the same users may end up on any of the servers in the cluster. If the session information only exists locally on one of the servers, requests ending on other servers will simply create a new session for the same user, resulting in data loss or inconsistency.
One way to work around this problem may be to store session data on a shared file system such as NFS (Network File System). Unfortunately, this is a highly inefficient method and usually results in performance problems and data corruption. This is due to the fact that NFS was not designed for the high read/write ratio and potential concurrency levels required for session handling.
Another potential solution is to use a “sticky”, session aware load balancer. Most load balancers today have stickiness capabilities in some form or another. While this is a better solution, experience shows that in high loads sticky load balancers tend to become a bottleneck, and cause uneven load distribution. Indeed, most heavy PHP users prefer to use round-robin load balancing with other session storage mechanisms.
In addition, sticky load balancing does not solve another inherit disadvantage of the files session handler: session redundancy. Many users rely on clustering for application high-availability. However, in many cases session high-availability is also important. If a server crashes or otherwise becomes unavailable, the load balancer will route the request to a different server. The application in this case will still be available – but the session data will be lost, which in many cases may lead to business loss.
Read more ►
The following list covers some of the more widely used session handlers, and overviews their capabilities:
The ‘files’ save handler is PHP’s default save handler. It stores session data as files on disk, in a specified directory (or sometimes in a tree of directories). Usually, this save handler is capable of easily handling tens of thousands of sessions.
The biggest disadvantage of the files save handler is that it imposes a major scalability bottleneck when trying to scale an application to run on more than one server.
In most clusters, requests from the same users may end up on any of the servers in the cluster. If the session information only exists locally on one of the servers, requests ending on other servers will simply create a new session for the same user, resulting in data loss or inconsistency.
One way to work around this problem may be to store session data on a shared file system such as NFS (Network File System). Unfortunately, this is a highly inefficient method and usually results in performance problems and data corruption. This is due to the fact that NFS was not designed for the high read/write ratio and potential concurrency levels required for session handling.
Another potential solution is to use a “sticky”, session aware load balancer. Most load balancers today have stickiness capabilities in some form or another. While this is a better solution, experience shows that in high loads sticky load balancers tend to become a bottleneck, and cause uneven load distribution. Indeed, most heavy PHP users prefer to use round-robin load balancing with other session storage mechanisms.
In addition, sticky load balancing does not solve another inherit disadvantage of the files session handler: session redundancy. Many users rely on clustering for application high-availability. However, in many cases session high-availability is also important. If a server crashes or otherwise becomes unavailable, the load balancer will route the request to a different server. The application in this case will still be available – but the session data will be lost, which in many cases may lead to business loss.
Background: PHP Sessions
State Representation in HTTP
HTTP, the protocol over which the web is built, is a stateless protocol. Each HTTP request is user session context independent, and the server is, on the HTTP protocol level, unaware of any relationship between consecutive requests.
This has made HTTP a highly scalable and versatile protocol. However, in most Web applications some notion of a user session – that is short-term, user specific data storage, is required.
For example, without some sort of state representation a web application cannot distinguish between logged-in users (or technically put, requests coming from an HTTP client that has logged in) and non logged-in users. In many cases even more complex data, such as the contents of a shopping cart, must be maintained between requests and attached to a specific user or browser.
HTTP leaves the solution of such problems to the application. In the PHP world, as in most web-oriented platforms, two main standard methods exist for storing short-term user specific data: Cookies and Sessions.
HTTP Cookies
Cookies are set by the server, and are stored by the browser on the end user’s machine. Browsers will re-send a Cookie to the same domain in which it originated, until it expires. This allows storing limited amounts of user-specific information and making them available to the application on each request made by the same user. Cookies are convenient and scalable (no storage is required on the server side), but are also limited due to a number of reasons:
Cookies are limited in size, and the limit varies per browser. Even if the limit is high, large amounts of data sent back and forth in each request may have a negative effect on performance and bandwidth consumption.
Cookies are sent repeatedly, on each request to the server. This means that any sensitive data contained in cookies is exposed to sniffing attacks, unless HTTPS is constantly used – which is in most cases not an effective option.
Cookies store strings – storing other, more complex types of information will require serialization and de-serialization to be handled in the application level.
Cookie data is stored on the client side – and as such, is exposed to manipulation and forgery by end users, and cannot be trusted by the server.
These limitations make it almost impossible to rely on Cookies to solve all state representation problems. As a better solution, PHP offers the Sessions concept.
Read more ►
HTTP, the protocol over which the web is built, is a stateless protocol. Each HTTP request is user session context independent, and the server is, on the HTTP protocol level, unaware of any relationship between consecutive requests.
This has made HTTP a highly scalable and versatile protocol. However, in most Web applications some notion of a user session – that is short-term, user specific data storage, is required.
For example, without some sort of state representation a web application cannot distinguish between logged-in users (or technically put, requests coming from an HTTP client that has logged in) and non logged-in users. In many cases even more complex data, such as the contents of a shopping cart, must be maintained between requests and attached to a specific user or browser.
HTTP leaves the solution of such problems to the application. In the PHP world, as in most web-oriented platforms, two main standard methods exist for storing short-term user specific data: Cookies and Sessions.
HTTP Cookies
Cookies are set by the server, and are stored by the browser on the end user’s machine. Browsers will re-send a Cookie to the same domain in which it originated, until it expires. This allows storing limited amounts of user-specific information and making them available to the application on each request made by the same user. Cookies are convenient and scalable (no storage is required on the server side), but are also limited due to a number of reasons:
Cookies are limited in size, and the limit varies per browser. Even if the limit is high, large amounts of data sent back and forth in each request may have a negative effect on performance and bandwidth consumption.
Cookies are sent repeatedly, on each request to the server. This means that any sensitive data contained in cookies is exposed to sniffing attacks, unless HTTPS is constantly used – which is in most cases not an effective option.
Cookies store strings – storing other, more complex types of information will require serialization and de-serialization to be handled in the application level.
Cookie data is stored on the client side – and as such, is exposed to manipulation and forgery by end users, and cannot be trusted by the server.
These limitations make it almost impossible to rely on Cookies to solve all state representation problems. As a better solution, PHP offers the Sessions concept.
Magento: Using Parallel Connections
Browsers can load page elements in parallel. Specifying different domains for media, skin, and JavaScript URLs in the Magento Enterprise Edition configuration (System→Configuration→GENERAL→Web) will help speed the page rendering time in the browser, as most browsers limit the number of downloads to 2-4 parallel threads per domain name.
Other web page design recommendations are beyond the scope of this document. You can find the detailed list of web site design best practices at the Yahoo Developer Network at http://ping.fm/AXhAv
Read more ►
Other web page design recommendations are beyond the scope of this document. You can find the detailed list of web site design best practices at the Yahoo Developer Network at http://ping.fm/AXhAv
Magento: Number of HTTP Requests per Page
In order to improve page load and processing time, it is important to reduce the number of HTTP requests per page. Magento Enterprise Edition allows combining multiple JavaScript files and style sheets into a smaller number of files.
This process is fully under the control of a theme developer who implements it through the flexible system of theme layouts instead of directly including the JavaScript files from within the templates.
The following is the example of how the number of JavaScript files can be properly reduced:
The previous layout file example combines the two scripts in a single file that will be added to the page with one request to
js/index.php?c=auto&f=,custom_js/gallery.js,custom_js/intro.js.
Read more ►
This process is fully under the control of a theme developer who implements it through the flexible system of theme layouts instead of directly including the JavaScript files from within the templates.
The following is the example of how the number of JavaScript files can be properly reduced:
The previous layout file example combines the two scripts in a single file that will be added to the page with one request to
js/index.php?c=auto&f=,custom_js/gallery.js,custom_js/intro.js.
Subscribe to:
Posts (Atom)