Is Your Line-of-Business Software Ready for the Cloud?
Re-engineering for the Cloud
Migrating line-of-business software to the cloud in some cases will be straightforward. In others, it will require data, data structures, and the processes of the existing system to be identified and extracted in order to reconstitute them into a new form for subsequent re-implementation.
Cloud computing involves metered access to fine-grained resources, and software systems must be implemented with resource economy as a priority. If done otherwise, operating costs can become prohibitive.
In depth technical reviews must also be undertaken to ensure software systems are scalable before considering migrating to the cloud. These reviews are expected to cover:
- Distributed state management
- Appropriate database systems (NoSQL vs SQL)
- Database I/O segregation
- Contention locks and transactions
- Distributed caching
- Asynchronous processing
- Queuing and batching
- I/O Retry mechanisms
- Use of content delivery networks
Cohesive Computing software specialists are experienced in designing distributed systems with high performance and scalability using Azure and .net. Contact us now if you have questions about migrating your software system to the cloud.
Software Performance Issues Can Prevent Migration to the Cloud
Re-engineering for Performance
Designing for performance and scalability is best practice, but unfortunately this contrasts with the haphazard approaches that are characteristic of many software projects. In these cases application performance is not evaluated until system testing, or worse it is neglected until customers report a problem. Performance fine-tuning and hardware scaling will only provide a temporary but costly fix for serious performance issues.
Performance Troubleshooting and Resolution: What are the Options?
Usually it is not practical or possible to restart from the beginning the design and development of the software application. Identifying and resolving performance bottlenecks for the most critical or commonly used features should be sufficient to extend the life of the application.
Cohesive Computing specialists will start by taking measurements to identify the causes of performance issues, which would involve one or more of the following:
- Runtime profiling of application and data storage systems
- Use of performance and resource monitoring tools
- Review of application and system logs
- Workload statistics – number of users, response times, transaction volumes, data volumes
The results from the above would then lead on to reviews of the following:
- Deployment and infrastructure
- Host configuration
- Database design
- Format and structure of data
- Application security
- Communication interface design
- Static code analysis
- Application data caching
- Application state management
- The user interface
Actions necessary to resolve performance bottlenecks may involve one or more of the following:
- Reconfiguration of hosting computer(s)
- Redesign of database queries, indexes and/or database model
- Modification of data structures and algorithms
- Use of more appropriate data storage systems
- Redesign of communication interfaces
- Pre-computation, caching, queuing and batching strategies
- Asynchronous processing
- Task and data parallelism
How We Can Help
Cohesive Computing specialists are experienced in designing scalable, distributed high performance systems using Azure and .net. Contact us now if you need advice and action on resolving your application performance and scalability issues.