Since cloud-based applications are multi-tenant aware, providing highly configurable apps to thousands of users (tenants) in a shared cloud environment is quite demanding and requires scalable SaaS configuration management. Configuration management supports how services are managed by providing crucial information about the delivery of services. This information is crucial even to the other service management processes, including change management, problem management, or incident management. It is also required to meet all agreed-to service levels.
The Impact of Cloud-based Service
The cloud is an example of the biggest paradigm shifts in the world of Information Technology (IT). It has eliminated the need of having physical infrastructural hardware in a physical data center into order to manage applications running on that particular physical hardware. Instead, virtualization has enabled IT firms to decouple logical infrastructure from traditional physical infrastructure to deliver newfound flexibility to not only offer, but also effectively manage value-add services.
In addition, IT firms are now able to provision the cloud infrastructure itself, together with the one (infrastructure) they are currently running themselves. Software as a Service (SaaS), platform as a service (PaaS) and infrastructure as a service (IaaS) as currently available to supplement or replace (if need be) all traditional IT offerings that have been used in the past.
A common usage is web server performance monitoring. Once the performance attains a certain limit, a new service will automatically be provisioned in the cloud. The usage of the cloud-based server is continued as long as performance demands need it. And as soon as demand drops below a given threshold, the additional server is immediately decommissioned.
The most interesting thing about this is that it can happen in minutes and the process can be fully automated. A different approach to configuration management should be applied to management of different cloud-based offerings to ensure that all the needs of the customers are fully met.
Principles of SaaS Configuration Management
The purpose of service asset/configuration management process is to ensure proper control of assets required to deliver services, and that reliably accurate information regarding those assets is available where and when needed. The objectives are:
- Identification, control and care for the assets under the watch of the IT firm throughout the asset lifecycle
- Identify, record, control, audit, report and verify services and crucial configuration items (CIs), including baselines, versions, constituent components, attributes, and relationships
- Ensure the integrity of CIs, including that of configurations required to effectively control the services through establishing and maintaining a reliable and accurate configuration management system (CMS)
- Account for, manage and adequately protect the integrity of CIs via the service lifecycle by closely working with change management to ascertain that only authorized components are utilized and that only authorized changes are made.
- Support effective and efficient service management processes by offering accurate configuration information needed to enable people the make right decisions at the right time –for instance, to authorize any changes or releases and resolve incidents and issues.
- Maintain highly accurate configuration information on the current, planned and historical state of services and other crucial CIs.
Challenges of Managing Cloud-based Projects
Even tech-savvy and experienced developers can face challenges when developing and deploying custom apps for SaaS platforms because not all SaaS vendors always gracefully embrace the generally accepted corporate processes for application build, test and release.
So, the best way to handle this is to tailor your configuration management to tackle SaaS challenges. What has made SaaS popular in part is that applications are available without the unnecessary long deployment cycle characterized by on-premise deployment. Therefore, a new report can immediately be delivered or a new field can instantly be added to a data entry form.
However, as SaaS offerings have matured into full-fledged development platforms, even the complexity of apps has grown dramatically. For instance, a SaaS provider’s application may possess features such as automated email, Web feeds, real-time Web service integration, and batch integration to operational systems. The downside of this is that it raises the risk that even a minor change has the potential of impacting critical business processes or even break the application.
It is a great challenge when applying best practices for configuration management in cloud-based environments because:
- SaaS deployment tools haven’t matured yet
- Business, and not IT, may be the one supporting the application
- SaaS administrators may be unfamiliar with configuration and release management best practices
- SaaS integrations often require synching releases with legacy systems
- Configuration, code, manual checklists and deployments scripts need to be checked into the relevant source code repository
- Deploying an app will often require manual and automated steps
How to Address Security, Audit and Business Continuity Beforehand
Traditionally, configuration management views production configuration and code as the baseline, identifying changes to be released and incorporating them into a new, auditable baseline as soon as the release is validated.
To ensure reliability for the enterprise, you should do the following:
- Limit which users have a system admin profile and define their respective SaaS configuration management responsibilities
- Institute appropriate procedures to ensure that configuration, code, and data for production are smoothly checked into the code repository and appropriately archived
- Create manual, as well as automated installation scripts
- Ensure there is a plan in place for backing out production changes if necessary
- Deploy to a sandbox for testing, and even QA
- Repeat the deployment to production
- Validate the deployment in production
To prevent senior developers from getting lost trying to figure out how a specific feature may have been implemented, configuration management should be under control. Getting configuration management under total control is much easier if both the development and testing teams have a common understanding/are on the same page right from the beginning. Otherwise, the chances of success are greatly minimized.
Cloud-based development platforms could have a mix of configuration and custom deployments that can easily confuse developers, making it difficult to deploy. To address this issue, you need to adapt your configuration management process for cloud-based projects. While SaaS offerings are specially designed to limit the time spent on development, some tweaking is needed to fully integrate them with typical enterprise systems. You will be able to tackle the issues much easily once you fully understand how standard programming and SaaS configuration management best practices apply to typical SaaS application.