Moving basic applications to the cloud has numerous benefits. What some adopters are slow to grasp is that maintaining good performance for cloud apps is a never-ending task.
As cloud-based computing for corporate operations addresses executive concerns about costs, one aspect of cloud environments that needs to be borne in mind is maintaining good performance for customers and internal end users over time. Cloud performance provides means and metrics for tracking how effectively cloud infrastructure supports business needs, operates as trouble-free as possible, and delivers a satisfying user experience.
Suppose an organization is beginning its path to cloud adoption. In that case, a standard recommendation is to plan a multicloud strategy that relies on multiple cloud service providers (CSPs) rather than a single CSP. Particularly when an enterprise decides to adopt a multicloud architecture, it can take time to analyze the intended workload and the types of services that align with organizational goals to build or buy a suitable architecture and service package. Ideally, this architecture considers big-picture aspects such as performance goals for app functions, how databases will interact with them, how services will be provisioned, how security will be maintained, how to accommodate future growth, and overall system costs. However, many early adopters have found it necessary to retrofit their architectures to handle growth that has exceeded initial expectations, and enterprises that have found unexpected success with cloud infrastructure still don't feel they have a complete handle on a system that has expanded over several years and become too essential to scrap. The problem then becomes one of improving the system without having to start over from scratch. To this end, there are several techniques support teams can undertake that will be helpful.
Optimizing Cloud Performance
There are numerous techniques and recommendations for improving cloud performance. Most rely heavily on the support team's understanding of the existing system, which means there needs to be an ongoing, data-driven approach to monitoring the system and its users over time to define how well it is currently performing. Only by tracking the system's metrics can meaningful judgments be made about which areas are lacking and whether potential remedies are having the desired effect. Any tools offered by a CSP that help right-size their services should be in daily use by an assigned person or team. (If the enterprise is using a private cloud without help from a CSP, some may have to be invented.)
For existing cloud services offered by a CSP, cloud support staff must be familiar with the tools provided by the appropriate central cloud platform in use. (AWS CloudFormation is an Infrastructure as Code (IaC) tool that offers a language with which to manage AWS and some third-party resources. Microsoft's Azure Resource Manager is a template-based management layer that helps control the flow of requests through a multicloud system from application programming interfaces (APIs), software development kits (SDKs), and other tools. Understanding how these and other tools from various CSPs work can help match capabilities to business needs. Google Cloud Platform (GCP) is a cloud services suite that includes multiple cloud service modules, such as scalable virtual machines, cloud storage, data warehousing, document databases, a Kubernetes engine, and numerous management tools.) Using the various managed services offered by these platforms, as well as additional services available from multiple CSPs, can handle many infrastructure management tasks and free on-site staff to focus more strategically on topics such as cloud performance. All three platforms have specific best-practice recommendations that should be followed in addition to the general advice given here.
Avoid Moving Data More Than Necessary
Reducing data movement between the cloud and user environments can have a significant effect on application performance, particularly when even subsecond improvements multiplied by the number of system users can become substantial. Support personnel should frequently monitor and analyze cloud operations and be ready to adjust their environments as needed. Environmental and cost optimizations are sensitive to shifts in usage patterns that invariably change over time. Improving—or even maintaining—cloud performance goals is a constantly moving target. Continuous fine-tuning of cloud environments is necessary to maintain performance. This makes constant monitoring of real-time data consumption an essential way to spot and fix inefficiencies.
There are specific metrics for judging how well operations perform. Input/Output Operations Per Second (IOPS) rates how fast a cloud platform can read and write data, but they're affected by the amount of data being moved at once and the workload demand at a given moment. Latency is the time it takes for data to move between any two points in a cloud environment, which is vital for real-time applications but must sometimes be explicitly allocated to specific users in shared environments. Capacity measures how much storage and other computing resources are currently available, but having too many can be unnecessarily costly. Resource Availability measures the accessibility of apps to users and can also track the amount of downtime your users experience.
Auto-scaling is a standard option offered by CSPs that cloud users should leverage to improve performance on the fly. It automatically reallocates cloud resources as user needs fluctuate and ensures the enterprise uses them only when necessary during low-activity periods. Using auto-scaling will require policy decisions on which parameters to set, but it is a quick first step to improving performance if it is not already in use.
Optimizing storage is another critical method for improving performance. It often requires using tiered storage, the practice of storing data on different media depending on how frequently it's used. Using data compression and deduplication tools can save storage space. However, statistics on which data is used most often should inform choices of storage media and the frequency of decompressing stored data. Some frequently accessed data may be best to cache in temporary storage to speed retrieval. Examples of alternative data storage include in-memory caching, which stores data in server memory, and edge caching, which stores data in a location geographically close to its most frequent users, both of which deliver data more quickly than from other kinds of cloud storage.
Periodically re-establishing optimal configurations for cloud resources can boost performance. Some CSPs offer artificial-intelligence and machine-learning utilities that help their customers analyze cloud resource allocations. These utilities provide insights into better ways to store not only data but also user tools and applications themselves.
Load balancing is another method of improving performance. Load balancers are hardware devices or software algorithms that distribute client requests across all available servers, preventing any single server from becoming overburdened. Load balancers avoid creating a single point of failure, monitor server health, sometimes offer SSL/TLS encryption services, and enable horizontal scaling (which distributes the workload of individual applications when the apps require many simultaneous connections to function).
Test to Remain Best
Cloud systems need to be performance-tested during typically low-activity periods to ensure they can handle both unusual situations and regular traffic. Stress testing simulates heavy request traffic over time and can show if application systems can tolerate high demand without losing response times. Similarly, load testing shows whether a system can withstand heavy, simultaneous demand for service without crashing or experiencing significant response time. Failover testing checks that a system can switch seamlessly and automatically to a high-traffic state or to a server failure. Latency testing reveals how long it takes data to traverse a network. Scalability testing measures the effect of adding required resources to the system to see how well it handles the increased workload.
Such tests measure the percentage of CPU capacity required to process user requests (CPU utilization), the amount of RAM needed to handle user requests (memory utilization), response times, throughput, and error rate. Testing best practices include testing continuously, using workloads that simulate at least routine levels of activity, employing cloud-environment testing tools, monitoring continuously throughout the test, and designing some tests to check how the system responds to loads of various sizes.
Don't Forget Network Performance
Networks are the circulatory system of any cloud environment, so regular network performance testing is also vital. Testing should include analyzing network traffic patterns and infrastructure, bandwidth testing to ensure sufficient data throughput to handle expected demand, checking latency to keep communication lag between 30 and 40 milliseconds, and ensuring there are multiple pathways for data to follow in the event of a network component failure.
Network optimization includes examining bandwidth patterns and consumption, assessing how well the network configuration continues to meet Quality of Service standards, reviewing the topology of network links and nodes to determine whether data flow between devices is stable, and verifying that software and firmware in use are up to date. Also important is to review the frequency of data caching and to use the most up-to-date compression and deduplication algorithms, firewalls, and intrusion-prevention software. When available, use the latest system automation tools and AI technology to predict potential bottlenecks and recommend alternative network configurations. Finally, as with the application systems, tracking application performance helps ensure nothing about the network itself is impeding cloud response time.
A newer technology to investigate is jumbo frames if data transmission needs are routinely heavy. Standard Ethernet frames handle a maximum transmit unit of 1,518 bytes. Frames larger than this standard are fragmented for simpler network transmission, but using a larger Ethernet frame size can improve network performance by reducing the number of CPU interrupts required to handle Ethernet traffic and thus reducing network overhead. The downside is that not all CSPs offer servers that can handle jumbo frames, which can be as large as 9,000 bytes.
Keep the Focus on Performance Metrics
Because there are so many elements in cloud, system, and network performance, it's essential to focus on the most relevant ones. To begin with, metrics related to throughput, system availability, and response time provide historical data that help pinpoint the state of the infrastructure. System scalability health is easier to judge with information about latency, error rates, and resource use. Other significant metrics relate to organizational goals, such as improving the user experience, reducing error rates, and making resource use more efficient. Cloud support teams benefit from analytical algorithms that gather raw data and summarize it in dashboards that clarify which areas are falling behind and need optimization. The data must also be integrated with the enterprise's strategic goals, which can only be adequately prioritized by the organization itself. Analytic tools that summarize performance data for business strategists are available from CSPs or third parties, or may need to be custom-built if commercial tools don't sufficiently meet needs. By creating a performance baseline that reflects these parameters, support teams can determine what constitutes an acceptable definition of "normal" performance and identify trends that need remediation.
Because appropriate metrics will change as demands and system architectures evolve, the selected metrics themselves need to be periodically evaluated for continued relevance or at least for ranking in importance. Feedback from operations personnel and users alike will shape and clarify performance priorities as part of a permanently ongoing process.
Business users want new applications now. Market and regulatory pressures require faster application updates and delivery into production. Your IBM i developers may be approaching retirement, and you see no sure way to fill their positions with experienced developers. In addition, you may be caught between maintaining your existing applications and the uncertainty of moving to something new.
IT managers hoping to find new IBM i talent are discovering that the pool of experienced RPG programmers and operators or administrators with intimate knowledge of the operating system and the applications that run on it is small. This begs the question: How will you manage the platform that supports such a big part of your business? This guide offers strategies and software suggestions to help you plan IT staffing and resources and smooth the transition after your AS/400 talent retires. Read on to learn:
LATEST COMMENTS
MC Press Online