Monday, May 25, 2015

Cloud deployment IaaS

Let me put my experience & views on design and implementation of a system used for automatically deploying distributed applications on infrastructure clouds. I am big fan of open systems so the efforts driven in that direction. The system interfaces with several different cloud resource providers to provision virtual machines, coordinates the configuration and initiation of services to support distributed applications, and monitors applications over time.

Infrastructure as a Service (IaaS) clouds are becoming an important platform for distributed applications. These clouds allow users to provision computational, storage and networking resources from commercial and academic resource providers. Unlike other distributed resource sharing solutions, such as grids, users of infrastructure clouds are given full control of the entire software environment in which their applications run. The benefits of this approach include support
for legacy applications and the ability to customize the environment to suit the application. The drawbacks include increased complexity and additional effort required to setup and deploy the application.
Current infrastructure clouds provide interfaces for allocating individual virtual machines (VMs) with a desired configuration of CPU, memory, disk space, etc. However, these interfaces typically do not provide any features to help users deploy and configure their application once resources have been provisioned. In order to make use of infrastructure clouds, developers need software tools that can be used to configure dynamic execution environments in the cloud.
The execution environments required by distributed scientific applications, such as workflows and parallel programs, typically require a distributed storage system for sharing data between application tasks running on different nodes, and a resource manager for scheduling tasks onto nodes. Fortunately, many such services have been developed for use in traditional HPC environments, such as clusters and grids. The challenge is how to deploy these services in the cloud given the dynamic nature of cloud environments. Unlike clouds, clusters and grids are static environments. A system
administrator can setup the required services on a cluster and, with some maintenance, the cluster will be ready to run applications at any time. Clouds, on the other hand, are highly dynamic. Virtual machines provisioned from the cloud may be used to run applications for only a few hours at a time. In order to make efficient use of such an environment, tools are needed to automatically install, configure, and run distributed services in a repeatable way.
Deploying such applications is not a trivial task. It is usually not sufficient to simply develop a virtual machine (VM) image that runs the appropriate services when the virtual machine starts up, and then just deploy the image on several VMs in the cloud. Often the configuration of distributed services requires information about the nodes in the deployment that is not available until after nodes are
provisioned (such as IP addresses, host names, etc.) as well as parameters specified by the user. In addition, nodes often form a complex hierarchy of interdependent services that must be configured in the correct order. Although users can manually configure such complex deployments, doing so is time consuming and error prone, especially for deployments with a large number of nodes. Instead, we advocate an approach where the user is able to specify the layout of their application declaratively, and use a service to automatically provision, configure, and monitor the application deployment. The service should allow for the dynamic configuration of the deployment, so that a variety services can be deployed based on the needs of the user. It should also be resilient to failures
that occur during the provisioning process and allow for the dynamic addition and removal of nodes.
For this blog we have considered a system called Wrangler that implements this functionality. Wrangler allows users to send a simple XML description of the desired deployment to a web service that manages the provisioning of virtual machines and the installation and configuration of software and services. It is capable of interfacing with many different resource providers in order to deploy applications  across clouds, supports plugins that enable users to define custom behaviors for their application, and allows dependencies to be specified between nodes. Complex deployments can be created by composing several plugins that set up services, install and configure application software,
download data, and monitor services, on several interdependent nodes.

We have been using Wrangler since mid 2010 to provision virtual clusters for scientific workflow applications on Amazon EC2, the Magellan cloud at NERSC, the Sierra and India clouds on the FutureGrid, and the Skynet cloud at ISI. We have used these virtual clusters to run several hundred
workflows for applications in astronomy, bioinformatics and earth science.
So far we have found that Wrangler makes deploying complex, distributed applications in the cloud easy, but we have encountered some issues in using it that we plan to address in the future. Currently, Wrangler assumes that users can respond to failures manually. In practice this has been a
problem because users often leave virtual clusters running unattended for long periods. In the future we plan to investigate solutions for automatically handling failures by re-provisioning failed nodes, and by implementing mechanisms to fail gracefully or provide degraded service when re-provisioning is not possible. We also plan to develop techniques for re-configuring deployments, and for dynamically scaling deployments in response to application demand.

This is just the initial steps writing the completed scenario in next blog. Do write to me at ravindrapande@gmail.com

Wednesday, May 13, 2015

New Modern Performance Management Software

If any of these emotions describe the process your company uses to administer performance reviews, there’s a good chance those same emotions are found in both the reviewer and the reviewee. Recent research found that 53 percent of employees say performance reviews don’t motivate them to work harder, and 63 of employees felt their reviews weren’t true indicators of their performance. So we also need to analyze that is this process helping us or damaging? This is a real-time exercise we need to perform

And employees aren’t the only ones who question the validity of these standard appraisals. Only 8 percent of companies report their performance management process drives high levels of value, while 58 percent say it is not an effective use of time.

That’s right: nearly 60 percent of organizations don’t see reviewing the performance of their employees as a worthwhile use of resources.  Employees don’t trust them. Managers don’t respect them. In other words: performance reviews are broken.

How to Fix the Performance Review Process :Most companies are guilty of treating performance management as a yearly event, despite research showing that organizations that use continual performance management processes have better business results. Companies where employees revise or review their goals at least quarterly are:
  45 percent more likely to have above-average financial performances
  64 percent more likely to be effective at holding costs at or below the levels of their competitors.

Performance management shouldn’t end once a performance appraisal is over. It should be an ongoing process that helps create developmental plans to support an employee’s goals, career interests, and potential, as well as your organization’s business and talent needs.

Modern performance management should be dynamic, agile, and transparent.

Companies must update their performance management processes before they can leverage technology to make smarter decisions about their workforces. Draping new software on top of a flawed process won’t fix the problem.

New Processes, New Technology :Employees want to learn. They want to be good at their jobs, and they want immediate feedback on how to improve. Performance management has evolved into a series of continuous events that include goal-setting and -revising, mentoring and coaching, and development planning.

Thankfully, human resources technology has evolved, too.

But not all systems are created equal. When you compare HR software, there are significant differences between systems. Many still support the traditional performance appraisal process, but more and more are disrupting the industry to bring the benefits of modern performance management into the workplace.

Let’s understand benefits:

1. Agility in Feedback and Learning  :Facilitating a culture of continuous feedback means everyone knows where they stand on a regular basis. If ongoing feedback seems like overkill, consider how the alternative affects poor Sally:

Menu’s annual review rolls around, during which she discovers her manager was disappointed by something she did several months ago. Rather than discussing the situation and coaching her on the fly, the behavior went unchecked, and was relegated to the annual performance meeting. Not only is Menu blindsided, but she was unable to make adjustments as time went by.

Annual or semiannual feedback is not frequent enough, and it provides very little in the way of transparency or actual direction. Underperformers will assume their performance is fine and not try to improve,  great performers who desire frequent feedback will become uncertain and disengaged. Additionally, employees who see reviews as inaccurate are twice as likely to seek new jobs.

Outdated modes of providing feedback hurt businesses. Performance management software provides transparency into employee performance. Since managers can see the status of goals in real time, it’s easy to address issues as they arise and eliminate those unwelcome end-of-year surprises.

2. Dynamic Goal Setting : Business moves fast, and annual goal-setting can’t keep pace with the modern world. A goal that was created in January may not be relevant six or even three months later, so individual goals must change to stay in sync with larger strategic goals. If employees hit personal targets that aren’t aligned with the overarching aspirations of the company, then at least some of the moving parts of your business are moving in separate directions.

The right software can simplify the goal-setting process and keep everyone working on the right objectives. Software allows companies to set overarching goals and then attach manager, team, and individual employee expectations to them. Cascading goals align everyone across the organization and provide greater transparency between and inside departments.

As business priorities evolve, performance management software can create a domino effect that keeps everybody on the same page.

3. Relevant Career Development :After salary, career growth is the No. 1 reason candidates accept job offers. This is good news for businesses, because employees content with stagnation aren’t ideal teammates. Top talent is hungry for career development, and companies should do everything they can to provide it. Performance meetings are a time to discuss employee growth, development, and long-term career aspirations, then make training plans that will bridge employees’ skill gaps and help them reach new levels.

Companies that provide detailed development planning and coaching to their employees have a third less voluntary turnover and generate twice the revenue per employee of their peers. Performance management software helps employees gain insight into their career opportunities. Not only can such software match career goals with corresponding e-learning material or classes, but it can also alert employees to internal hiring opportunities in other departments or offices. Employees that want to learn and improve are valuable assets, so invest in them.

Companies must look closely at how they manage and measure employee performance, as well as the technology they use to do so. Modern performance management methods and tools help identify competencies, aspirations, and skill gaps, and then create strong, effective employee performance programs.

If employees feel that they can get the tools they need to succeed from another company, then that’s exactly what they’ll do: they’ll leave, taking their knowledge and value to competitors. Don’t let old performance management methods and technology fuel the turnover fire.