E-Commerce IT ConsultingIT Consulting determines the best way to build the e-commerce website based on the strategy. It is a how-to guide for development, IT support, and compliance with the Payment Card Industry. Deliverables provide:
- Selection of technologies and services such as deployment regions, programming languages, and DNS services.
- Data structures for information shared between the website and other applications.
- Completion of business requirements. Frequently omitted details are for security, availability, disaster recovery, and response time.
- Detailed design documents so others can figure out what is going on later.
- The project plan to implement the solution.
- Plan to mitigate technical risks.
- Respond to audit questions from the Payment Card Industry and Privacy Regulators, then fix any gaps.
ReliabilityThere are many 3rd party testing tools to validate websites. Using them improves SEO because the website renders correctly in all scenarios, meaning your website can appear in any device's search result. Just because the page appears on your web browser, only assume that is the case for some users. Many websites show a massive number of errors using the following tools. We drive test scores to perfection because we want the best solution for our customers.
- Google Rich Results for SEO
- Google Mobile-Friendly Test
- Google Page Speed Insights for page response times.
- Facebook Sharing Debugger
- W3C Markup Validation
Performance PlanningPerformance needs frequently get dropped from website development. Many e-commerce sites attempt to improve page load speeds after the fact with a CDN. However, virtually all websites prevent that from working correctly by turning off the cache for the top-level URL on the page. Our solutions analyze design options and develop solutions to make the website fast.
Network DistanceThe network bandwidth rarely determines the download speed for a web page. The distance between the web browser and the server matters the most. The following chart shows eighty-one percentage of websites are too far from the local market for optimal performance. The transoceanic connections are so far they cause hanging and SEO issues. Businesses that need a global presence should deploy stand-alone websites to each region of operation. Local companies can deploy in a single location near their clients.
The following chart shows the average distance from businesses in Toronto, Canada, to the web server.
System TuningSystem tuning finds the lowest cost configuration that still provides optimal performance. We start the process by significantly oversizing the hardware and tuning for the fastest response time. Performance testing establishes the benchmark for subsequent testing. Then we downsize hardware and seek to require the same performance. The process repeats until the solution lands on the smallest possible hardware footprint while retaining maximal performance. The approach drives up hardware efficiency to reduce system costs.
DNS LatencyDNS latency is the time taken to get the IP address for the website, which is a delay added to the page load time. The average response time from a primary DNS server is 1/4 second. The following chart shows the distribution of response times across 100,000 websites.
Datacenter ConnectionsThe number of parallel links between the internet and your hosting provider's data center impacts the reliability of your website. Highly connected installations make faster connections and have more options when dealing with internet overloads, outages, and maintenance issues.
The following chart shows the number of BGP concurrent connections immediately downstream from the website. It is a proxy of the network concurrency into the hosting data center. It reveals that enormous variations exist between providers.
Server HardwarePractically, one of the parameters drives the selection of the server model. The server in a cloud environment minimizes the number of options the designer has when selecting a model. The main criteria are CPU count, RAM, disk space, and disk speed. Load testing determines the required capacity. Our websites are network bound, so we selected the data center with the fastest network connections. Addition checks ensured the following hardware features on the server to further speed up the network.
- Low latency and high bandwidth network cards.
- CPU containing the AES instruction set, which accelerates HTTPS connections.
- CPU with the SHA instruction set, which speeds up HTTPS connections.
Webserver CompressionCompressing, transmitting, and decompressing data sent to the web browser is faster than sending uncompressed data. The process is transparent to website design, and there is no need to compress source files. Web servers should compress all data except JPG and PNG files because they have built-in compression.
Operational ManagementDevOps (Development and Operations) is a modern infrastructure development process that works well in cloud environments and with Agile Software Development
MonitoringMonitoring reduces the time between failure and detection of the outage. The design considerations are
- False positives send an alarm when there is nothing wrong.
- The delay between the outage and detection.
- What will the monitor see versus what it will not notice? For example, most monitors will not log in to an application, so they cannot see the failure.
- Does the monitor fit the disaster recovery needs?
Solution DeploymentModern clouds turned software development on its head. It integrates performance, recoverability, security, and cost reduction requirements into frequent analysis, prototyping, testing, and deployment cycles. The many advantages of the approach include removing human error by fully automating and testing everything before deploying production. The added flexibility supported our total quality management.
Sub-Second Page Response TimeA fast website enhances the user experience. It makes the website accessible to slower clients, over slower networks, and at greater geographic distances from the server. That increases the page ranking. Our designs are the fastest on the web because we factor performance into every design decision.
The websites we build are 100% approved by Google performance per, as shown in the report below.
Number of URLs per PageThe number of URLs on a web page is the number of separate downloads the browser needs to complete to render the page. The fewer there are, the faster the page loads. The following chart shows the number of CSS files per page across 100,000 websites. Reducing them is critically important because the browser waits for all of them before starting to render the page. So fast sites have zero CSS files, as shown in green. Most e-commerce services are deep into the red.
Payload EfficiencyAn efficient payload is faster because it reduces the data sent through the network and the time rendering the content. Failure to keep code efficient leads to bloating. The following chart shows the ratio of visible text on a page over the payload size. It outlines that 13% of websites allocate 1% or less of the payload to content. The 4 to 15% range tends to be optimal because pages should provide metadata for SEO, security, and layout. There are many ways to increase payload efficiency. The most effective are:
- Send mobile-sized images to mobile devices and larger ones for desktops.
- Optimize image file types. For example, SVG work best with charts and logos.
- Tune image file settings. Specific adjustments depend on the file type, such as setting JPEG quality to 60% typically causes no visible degradation but can dramatically reduce file sizes.
- Strip excess spaces and comments from text files before deploying them to production.
- Compress all content sent over the network. It may seem counterintuitive, but compressing on the server and decompressing in the browser is faster.
Multi-Regional DeploymentsClients can deploy websites into multiple regions to enhance scalability, system availability, and page response time. Our solution is faster and more robust than a Content Delivery Network (CDN).
Selecting High-Performance TechnologyThe best response times come from websites using the fastest technologies. We find them by analyzing data from over 100,000 local businesses. We look at DNS, networking, programming languages, and everything else that correlates with speed. Then we prototype solutions to optimize the hardware with the configuration settings. The most critical design decisions for performance are: technology decisions are:
- Cache content in local storage. Virtually all websites disable cache on the page-level URL.
- Serve static content with static files. Most Content Management Systems (CMS) recreate the same static content for each user request causing a massive system load.
- Use a hosting platform that guarantees hardware capacity. Many do not, making it impossible to test and tune system performance.
- Minimize the distance between the web server and the web browser because that determines the download speed.
- DNS services materially impact page response times.
- Tune the web server configuration. The process model and thread concurrency make or break performance.
- Use HTTP/2, which efficiently reuse network connections.
Technology SelectionTechnology selection is the basis of system design because inferior options severely degrade the solution's potential. Our method starts by gathering and analyzing data from over 100,000 websites. The facts allow us to:
- Ensure solution elements have the market share for bugs to get fixed before they impact the website.
- Avoid bleeding-edge technology.
- Find design alternatives.
- Get subsecond page response times.
- Identify the best working solution for technical challenges.
Highly Available DesignThe cloud significantly reduces the required investment to obtain high availability. That prevents many outages from happening in the first place and reduces recovery time should it occur. The following sections outline how to increase uptime in a cloud-providing IaaS (Infrastructure as a Service).
Software CurrencyMany issues get fixed by applying current patches. However, most web servers are out of date. For example, WordPress powers over half of the websites but only patches the current version. The following chart shows that 81% of websites are out of support, as shown in the following chart.
Testing EnvironmentsTesting is standard practice to mitigate IT risks, but most website services cannot clone production to build a test environment. Testing becomes increasingly crucial as the sophistication increases. Test environments support:
- Validate solutions updates before exposing them to users.
- Verify the ability to roll forward and back production updates, part of our zero downtime upgrades.
- Provide a sandbox to develop integrations with other systems.
- Allow testers to use 3rd party tools for SEO, performance, security, social sharing, and HTML syntax.
- Support disaster recovery testing.
Network RedundancyNetwork redundancy provides multiple internet connections to the data center. The Border Gateway Protocol (BGP) runs core internet routers and is the network protocol supporting concurrency. Hosting websites in a data center with many BGP links improves speed and reliability. However, many data centers have a single connection, while others have over 30.
Blue / Green DeploymentA Blue/Green deployment tests a deployed production candidate before sending it production loads. Even if the candidate fails after rolling forward, the load can move back to the old version. The old environment remains in place until the new one proves stable, say after a week. The approach maximizes uptime during deployments which is the most unpredictable IT task.
Hard Disk RedundancyHard disk redundancy supports continuous data uptime even when one disk fails. Unlike other types of hardware redundancy, disk redundancy is cost-effective due to the availability of sophisticated technology. If a disk fails, the other disks in the array rebuild the content onto the replacement. It is relevant because disks are a frequent mode of server failure.
Server RedundancyCloud solutions changed design patterns for server redundancy. It does not pre-purchase redundant capacity. Instead, it deploys them on demand and leverages the excess resources of the cloud provider. Even if the provider does not have an exact replacement, hardware virtualization ensures the image will run on different server configurations.
Disaster RecoveryDisaster recovery is the ability to recover from unexpected events. It's a matter of time before a solution crashes. Planning for that event lowers the probability of failure happening in the first place and minimizes the recovery times when it happens.
Disaster Recovery RequirementsIT disasters have well-known failure modes making recovery planning straightforward. A complete set of disaster recovery scenarios are:
- Automate recovery to remove human error and accelerate the processing.
- Plan to purge ransomware and malware from the website.
- Automate hardware replacement.
- Run load test scripts to stress systems while measuring page response times.
Business ContinuityBusiness continuity includes disaster recovery and the surrounding business processes. The supporting IT tasks are:
- Provide documentation to auditors and respond to their queries.
- Support continuity testing and fix gaps.
- Write scripts to simulate failure scenarios.