Sdlc on Cloud Computing

Embed Size (px)

Citation preview

  • 8/3/2019 Sdlc on Cloud Computing

    1/9

    Cloud Computing is identified as an important technological innovation in the recent

    technological environments. This paper examines Cloud Computing environment and its

    Application/Systems development life cycle. In addition, analysis includes the specific research

    about Cloud Computing technology, components, and implementation strategies. The research is

    performed using sources from academia, news media resources, and World Wide Web.

    Research Summary

    The research suggests that the Cloud Computing is a paradigm shift in Internet applications and

    will promote the transformation of current web environment to a more flexible, robust, and faster

    Web environment; and Cloud Computing environment supports the transformation of web to a

    more powerful and faster processing environment due to its large scale processing, storage, and

    networking capabilities. The Systems Development Life Cycle (SDLC) for Cloud Computing

    requires minor tailoring of the SDLC for its deployment cycles and technology architecture.

    Furthermore, this report provides analysis of Cloud computing infrastructure implementation

    overview, challenges, and specific SDLC tasks for successful deployment; and provides insight

    about market leaders and their successful implementations of the Cloud Computing

    environment.

    Recommendation & Conclusion

    Research shows that the IBM Rational Unified Process provides significant capabilities to tailor

    and adapt the methodology for the implementation of a Cloud Computing

    environment/infrastructure. In addition, because Cloud Computing environment is a distributed

    hardware and application environment, it is essential to ensure that the environment is highly

    secured and SDLC must provide guidelines to secure the environment by monitoring

    infrastructure, connectivity and data.

    Table of Contents

    Introduction

    The Cloud Computing refers to the clustered architecture of many desktop like PCs to serve the

    processing capacity to applications like a super computer. The Cloud computing environment is a

    platform as well as the application environment. The Cloud computing platform dynamically

    provisions, configures, reconfigures, and de-provisions resources as needed; the application

    environment consists of web applications as well as web services (Boss, Malladi, & Quan, 2007).

    The Cloud Computing promises to revolutionize the large scale web applications

  • 8/3/2019 Sdlc on Cloud Computing

    2/9

    implementations for speed, reliability, and scalability. According to a publication by IBM "Cloud

    computing infrastructures can allow enterprises to achieve more efficient use of their IT

    hardware and software investments. They do this by breaking down the physical barriers

    inherent in isolated systems, and automating the management of the group of systems as a single

    entity. Cloud computing is an example of an ultimately virtualized system, and a natural

    evolution for data centers that employ automated systems management, workload balancing, and

    virtualization technologies" (Boss, Malladi, & Quan, 2007).

    The systems development life cycle of Cloud Computing Application is similar to the traditional

    SDLC; however, the Cloud Computing Applications will have shorter release times and fewer

    tasks that could delay the implementation such as multiple levels of approvals etc; and Cloud

    Computing SDLC will adapt agile development methodologies vs. those related to the traditional

    SDLC. In addition, Cloud infrastructure allows for more dynamic life cycle where it can be

    customized to a specific installation such as addition or remove of various test/QA stages in the

    SDLC process.

    ResearchFindings

    "What aspects of SDLC are different for Cloud Computing and why"

    According to Boss and Malladi the Cloud Computing is a dynamic computing environment that

    enables large processing requirements in a clustered dynamic configuration infrastructure

    environment (Boss, Malladi, & Quan, 2007). It is a paradigm shift, because Cloud Computing

    provides new capabilities to implement and deploy applications in a fast cycle environement with

    minimum effort and the ability to support large processing requirements (Kelkar, 2009). Per

    research, the Cloud computing is an excellent virtual environment for large scale web

    applications and computing (Boss, Malladi, & Quan, 2007). In addition, Cloud environment

    provides large scale clustering of server environments to create mass processing power that

    enables global computing environment over the world wide web.

    The current industry platforms include Google, Microsoft, andYahoo with diverse capabilities,

    architectures, and configurations. While Google is an active platform with current applications

    for public sector and as well as private corporations, Yahoo and Microsoft are still emerging

    (Ricadela, 2007). According to articles in BusinessWeek and ZDNet.com Microsoft, Yahoo and

    Google are envisioning new applications for public and private consumers using the Cloud

    Computing environments for supporting applications, storage, social networking, and enterprise

  • 8/3/2019 Sdlc on Cloud Computing

    3/9

    applications. On the forefront of Cloud computing, "Google's search engine and productivity

    applications are among the early products of efforts to locate processing power on vast banks of

    computer servers, rather than on desktop PCs" (Ricadela, 2007). The performance and wide

    acceptance of Google search engine framework presents an exceptional success in cloud

    computing platform. The objectives set by the current companies such as Google, Microsoft and

    yahoo is not only to make the Cloud computing tackle significant large scale applications, it is

    also to provide online services to the mases and enterprises (Ricadela, 2007).

    Although, there are significant advantages in implementing Cloud Computing environment, there

    are obsticals to overcome with this new and emerging technology. One of the challenges is that

    the technical standards for connecting various computer systems and software that are not yet

    completely defined. And the U.S. broadband availability is yet to be expanded which may trigger

    infrastructure defficiency for the expansion of Cloud computing. In addition, possibilities of

    storing large amounts of data about users' identity and preferences is likely to raise new concerns

    about privacy and information protection (Ricadela, 2007).

    In addition, the new technological environment also introduces new approaches to the Systems

    Development Life Cycle. The Could computing Systems Development Life Cycle (SDLC) must be

    tailored according to the requirements of the project due to the change in effort levels, and

    implementation speed. Cloud computing implementations can leverage current methodologies

    such as Iterative development, Cloud Application Life Cycle, Rational Unified Process,

    Agile/SCRUM, and other methodologies as feasible (Kelkar, 2009). The methodologies are

    tailored for fast cycle deployments based on specific requirements. Although, the methodologies

    can be tailored for specific requirements, it is essential that the platform capabilities must be

    considered to overcome any implementation challenges. Because Cloud Computing is highly

    platform/vendor specific, the methodology selected must be adaptable for a specific solution that

    is being implemented (Kelkar, 2009). The Cloud Computing is a fast paced implementation

    environment and requires emphasis during the requirements and elaboration phase of the SDLC

    (Kelkar, 2009). When compared to traditional implementation methods, the Cloud Computing

    environment implementation consists of significantly reduced effort and cost for the construction

    phase of the project.

    The SDLC of Cloud Computing, Architecture, and implementation are fast paced and different

    from traditional environment, and requires careful analysis of requirements and selection of

    Cloud environment for implementation and Life Cycle adaptation. As the Cloud computing is

    dependent on the large scale computing clusters, networks, and broadband connectivity, it is

  • 8/3/2019 Sdlc on Cloud Computing

    4/9

    required that the implementation organizations must prepare the environment during/prior to

    the project inception.

    Research Analysis

    Research shows that the Cloud computing environment provides capabilities that enable large

    scale web application implementations that adapt to the change in business environment as

    needed. Cloud computing with accelerated SDLC process will enable implementations with

    significantly reduced construction and deployment effort/duration, ultimately resulting in

    reduced IT Costs. Research shows that the Cloud computing SDLC can be tailored for specific

    project based on the solution requirements; and because of the reduced construction phase for

    the project the solution can be tailored and implemented as per the change in business

    requirements within the time required for business use. Although, Cloud computing environment

    is a distributed model and require careful configuration of infrastructure, the application

    environments are considerably simpler than other types of application environments. According

    to the research, the complexity of implementation is involved in the analysis of requirements for

    the solution and mapping the requirements to the capabilities of a specific Cloud computing

    environment; however, the implementation of the defined solution is comparatively less complex

    than other computing environments such as Commercial Off the shelf (COTS) products or

    custom applications - where for some significant programming is required.

    Research analysis depicts that the Cloud computing environment architecture requires the

    implementation of computing environment in the backend that creates the Cloud. This can

    comprise of group of application servers, network, and storage devices. As part of the process,

    this group of hardware devices must be connected and configured so that the processing and

    storage of Cloud Computing environment is seamlessly created to function as a unified back-end

    system. In addition, the application side of the Cloud computing environment must leverage the

    clustered environment of the cloud from the backend to provide large processing and storage

    capabilities to the client. Furthermore, the integration of various server components, storage

    devices, databases, and application components via network is a defined process that needs to be

    completed based on the hardware and software environment that is adapted to create the Cloud

    infrastructure. For example, the Cloud infrastructure can be created using vendor solutions such

    as IBM, DELL and others for hardware, as well as the use of any or combination of database

    systems such as Oracle, SQL Server or DB2 from various vendors. Thus, it is essential that the

    integration of hardware components, server components, storage components, database systems,

    and application server components must be completed as a defined process to ensure that the

  • 8/3/2019 Sdlc on Cloud Computing

    5/9

    Cloud infrastructure environment can support the application requirements. Additionally, the

    application architecture must provide the capabilities to leverage the Cloud infrastructure

    capabilities such as storage connectivity, security, and communications without the use of any

    client computer resources; and may simply function using the standard web browser

    environment.

    As Cloud computing environment is a new approach and different from Mainframe or Client

    Server environments, the SDLC process must ensure that the installation and configuration of

    infrastructure and application environment is completed appropriately for initial implementation

    as well as for the ongoing maintenance and operations. It is essential that the SDLC provides

    implementation approach, and guidelines to implement infrastructure that may be significant,

    depending on the size of the Cloud environment that is being erected; and SDLC must provide

    the methodology to ensure that the configuration of the application environment that will be

    operated on the Cloud infrastructure. In addition, the ongoing maintenance of the Cloud

    computing environment must also be considered as part of the SDLC process to ensure that as

    users demand the performance, security, storage, and reliability to the their subscribed cloud

    computing environment. The SDLC may be tailored specific to private or public Cloud

    environments. In case of private Cloud for corporations and businesses, the SDLC may be specific

    to the organization's standard methodology; however, for public cloud environment, the SDLC

    must be tailored to ensure the support of many diverse set of users, thus requires significant

    quality and reliability check. Furthermore, because Cloud computing is a paradigm shift in

    computing that is different from Mainframe or Client Server, it is essential that the SDLC process

    is carefully defined for the project.

    The SDLC for the Cloud computing can be defined based on the existing Systems Development

    Life Cycle methodologies such as Rational Unified Process (RUP), Agile Method, and Iterative

    Management. In addition, Waterfall model from the Mainframe era may be used; however, due

    to faster life cycles of the Cloud components implementation, this process may be burdensome to

    the Cloud Computing environment. The other methodologies provide an iterative approach to the

    implementation where the faster deployments are possible by tailoring the milestones as needed.

    Regardless of what SDLC methodology is adapted, the Cloud Computing environment requires

    the implementation to be completed in at least two phases such as initial implementation and

    ongoing maintenance and support. The initial implementation is the phase where the Cloud

    environment is erected to install and configure the infrastructure and application components;

    and then the system is made available to the users and subscribers to use the Cloud Computing

  • 8/3/2019 Sdlc on Cloud Computing

    6/9

    environment. During the ongoing maintenance and support phase, the SDLC will support the

    process where the users subscriptions are created, configured, and any required resources

    (hardware and/or software) are added to the Cloud computing environment; in addition, SDLC

    will support the process where the system resources are monitored constantly to meet the users

    processing, network bandwidth and storage requirements while ensuring that the current

    equipment is fully functional with redundant storage and processing capabilities. Because Cloud

    computing is highly used for greater processing and storage power, it is required to ensure that

    the information that is stored and processed is critical and must be protected in all aspects such

    as integrity, security and reliability.

    According to the Rational Unified Process (RUP) from IBM, the initial implementation is

    achieved as supported by the individual component vendor requirements for the installation and

    configuration of the Cloud environment by leveraging the phases such as Inception, Elaboration,

    Construction and Transition. The duration of the phases is dependent on the scale and scope of

    the environment that is being erected; and the resource requirements are provided by the

    individual vendors, who distribute the components. This process may include creation of data

    center environments for providing the basic infrastructure that is needed for the installation of

    the infrastructure components. The RUP process may need to be tailored for the initial

    implementation; however, it may not be necessary as it is mostly milestone driven for the

    construction, and configuration of hardware and server components, that are vendor specific.

    However, the RUP process must be tailored for the ongoing maintenance and support as this

    phase will include the support of user subscriptions and the process must be designed to be

    iterative and repeatable.

    During the ongoing maintenance and support phase the RUP SDLC will include all phases such

    as Inception, Elaboration, Construction, and Transition and served for specific purpose such as

    Inception for the gathering the initial requirements, Elaboration for the design, construction for

    the implementation, and Transition for deploying to production or handing keys to the client. As

    the ongoing maintenance and support phase there are two types of activities that are typical to

    the Cloud Computing environment 1) maintenance activities and 2) user subscription activities.

    For maintenance activities the organization use the RUP methodology to ensure that the

    activities are completed with minimum impact to the users and resources are protected as

    required. For example, the RUP methodology can be tailored to ensure that the maintenance

    activities are performed iterative to ensure the integrity in development and test environments

    prior to applying the software and/or hardware components to the production environment.

  • 8/3/2019 Sdlc on Cloud Computing

    7/9

    Secondly, the subscription activities are those to add users, websites or specific type of

    application capabilities; these activities may require infrastructure modifications, yet they are

    mostly either within the application or fully automated. The subscription activities have very

    faster life cycle from Inception to Transition as they require minimum effort on the modification

    or configuration of the system. Based on the analysis, Rational Unified Process provides an

    excellent customizable process that can be applied to any Cloud computing environment for

    initial implementation as well as the ongoing maintenance supporting comprehensive

    implementation process while providing the faster implementation release cycles.

    Research analysis depicts that the Agile System Development Life Cycle is also well suited for the

    Cloud Computing environment with its iterative management approach and flexible release

    management methodology. Research shows that there are multiple "Agile" methodologies from

    various vendors including SCRUM, Microsoft Team System Agile System Development Life cycle,

    and from many other Software vendors; and most of them support project delivery in Cloud

    Computing environment. The agile process allows faster deployment cycles with defined release

    management techniques, where the work is defined and grouped into releases and then

    completed iteratively within specific durations such as daily, weekly or monthly. Per research,

    because Agile is a framework that is applied to various methodologies, iterations and phases of

    cycles are customizable to the project or a particular organization. In Cloud computing

    environment the agile process can be used to accomplish the initial implementation as well as the

    ongoing maintenance and support. Because the methodology is flexible and could be adjusted

    quickly, and phases are customizable, it is an excellent methodology for Cloud computing

    environment to support any type of Cloud computing project. The tasks are accomplished by

    defining the iterations, releases and tasks with durations on as needed basis. Additionally, agile

    process promotes improved communications and faster Deployments that are essential for cloud

    computing environments.

    The fundamental SDLC difference when compared to traditional applications such as Client

    Server and Mainframe to the Cloud computing environment, the project work performed need to

    be completed more iteratively, inclemently, and with speed as the development / construction

    time to release functionality is considerably less. In addition, with the dynamic infrastructure

    environment the SDLC must support the ability to deploy maintenance releases quickly and

    efficiently. Furthermore, because the application configuration is primarily is dependent on the

    subscription requirements, it is essential that the requirements are defined correctly, including

    the identification of features.

  • 8/3/2019 Sdlc on Cloud Computing

    8/9

    Based on the research the Cloud environments are already deployed to millions of users by

    Google, Microsoft and yahoo and are able to respond to subscription requests daily and

    maintaining the infrastructure to support millions of users across the globe. It is important to

    note that although the Cloud computing is a new approach to computing, it is already proved to

    be successful by the providers such as Google, Microsoft and Yahoo; thus, the adaption of this

    new approach is not rated as high risk. However, due to the distributed computing environment

    it is essential to ensure that the data ownership, security and performance are acceptable to the

    user community. Based on the research Google with its search engine, email, application labs,

    and other user applications is in the leading position in the Cloud computing, while Microsoft

    and others are following close to the competition.

    The SDLC of Cloud computing also requires high quality maintenance because critical

    components are clustered and networked to support one or more application environments while

    using a unified Infrastructure with specific configuration. Any of the clustered components

    malfunction will result into either performance issues or storage issues to the overall Cloud

    computing environment; even though the environment is redundant and does not take the

    system offline. As a result, the quality need to be maintained while delivering quick releases;

    furthermore, it is essential to have a prepared maintenance environment to quickly respond to

    any Infrastructure issues- to keep the system ready for high volumes of workloads. In addition,

    maintenance plans must include quality checks such as performance monitoring and application

    availability.

    Recommendation

    Research shows that the SDLC for Cloud Computing is different from the SDLC for Mainframe or

    Client Server computing and requires minor tailoring to the SDLC process. In addition, the

    selected SDLC process must enable faster deployments with incremental and iterative task

    management approach. According to the research and analysis, the IBM Rational Unified Process

    is highly suitable for Cloud Computing implementations with its comprehensive Systems

    Development Life Cycle with iterations, phases, and disciplines, which are highly compatible with

    the Cloud Computing environment. In addition, the IBM Rational Unified Process supports

    iterative management methodology that is essential for the management of complex multi-phase

    implementation projects.

    ConclusionIn

  • 8/3/2019 Sdlc on Cloud Computing

    9/9

    Conclusion, the Cloud Computing is a paradigm shift in the recent computing technologies with

    support to large scale processing, applications, and storage capabilities. In addition, it provides

    capabilities to deploy applications as required by the changes in the business environment with

    its accelerated deployment SDLC process. Furthermore, Cloud Computing environment with is

    architecture and implemented applications in the global world wide web environment, it is a

    proven infrastructure and application environment that can provide large scale process

    capabilities supported by reliable hardware and application infrastructure.However, because

    Cloud Computing environment is a distributed infrastructure it is critical to ensure that the

    environment is supported by secured infrastructure for connectivity and storage to ensure the

    data security. Furthermore, the deployment of solutions using Cloud Computing environments

    require analysis of information privacy, network security, network speed, and scalability

    requirements, especially to support large scale global applications.