impact of cloud services on software development life

30
Impact of Cloud Services on Software Development Life Cycle MOHAMMED M. YAZJI

Upload: mohamed-m-yazji

Post on 04-Jun-2015

90 views

Category:

Data & Analytics


8 download

DESCRIPTION

Impact of Cloud Services on Software Development Life - Copy

TRANSCRIPT

Page 1: Impact of cloud services on software development life

Impact of Cloud Services on Software Development Life Cycle

MOHAMMED M. YAZJI

Page 2: Impact of cloud services on software development life

Outline

Introduction

Requirement Analysis

Cloud Assessment

Usage Patterns and Requirements Capture

Architecture

Information Architecture

Information Security

Non-functional Information Details

Partitioning Strategy

Page 3: Impact of cloud services on software development life

Introduction

It is generally agreed that evolution of a new paradigm requires adaptation in usage patterns and associated functional areas to fully benefit from the paradigm shift

Likewise to leverage the benefit of cloud paradigm shift in software segment, software development life cycle (SDLC) must continuously adopt new changes to be the guideline for development/implementation of cloud-based projects

Page 4: Impact of cloud services on software development life

Introduction

This chapter mainly describes the changes that are required in SDLC (part of software engineering process) while adopting the cloud computing environment

To truly benefit from cloud environment, software development teams should look at the cloud computing environment as a new development paradigm and leverage it to lead to differentiated value

Page 5: Impact of cloud services on software development life

Requirement Analysis

The industry, in general, tends to think of cloud as an enabler or rather a solution and hence believes that it has no bearing on requirements,

The truth is that cloud is more of a choice at enterprise level

Along with the choice, the guidelines and checklists that aid in requirement analysis are also required for applications moving to cloud to be successful

Page 6: Impact of cloud services on software development life

Requirement Analysis

These relevant requirements are mostly non-functional in nature.

This implies the following additional tasks that need to be planned as part of requirement analysis:

Cloud assessment

Cloud usage pattern identification and capturing data points

Page 7: Impact of cloud services on software development life

Cloud Assessment

Cloud readiness assessment will help to evaluate the cloud readiness and applicability for an enterprise

The assessment also helps to determine the business case and return on investment

It is important to note that cloud assessment guidelines are defined at enterprise level

Page 8: Impact of cloud services on software development life

Cloud Assessment

assessment questions

Does cloud architecture fit the requirements for the application?

Is the enterprise comfortable with public cloud, or should the enterprise focus only on private cloud option among other options?

Identifying suitable cloud service provider (IAAS/PAAS )

Assessing the cost of using cloud (private or public cloud) (compare—capital expense of hosted option vs. running cost of cloud option)

How would applications be monitored after they are hosted on public cloud?

Page 9: Impact of cloud services on software development life

Usage Patterns and Requirements Capture

A common usage patterns

1. Constant Usage of Cloud Resources over Time

This pattern is applicable to both internal and external (e.g. Web sites) applications that are constantly used by enterprise users, and there is little variance in load and usage of these applications

corresponding requirement

Availability of applications at regular intervals.

Defining the strategy for application downtime and uptime.

Defining limits of data loss in case of application crash

Page 10: Impact of cloud services on software development life

Usage Patterns and Requirements Capture

A common usage patterns

2. Cyclic Internal Load

This pattern applies to recurrent business functionalities like batch jobs hat execute at end of day and data processing applications.

corresponding requirement

Detail out the I/O volume required to satisfy the business process

Page 11: Impact of cloud services on software development life

Usage Patterns and Requirements Capture

A common usage patterns

3. Cyclic External Load

This pattern includes applications that are developed to serve a particular demand, like publishing examination.

corresponding requirement

Detail out level of concurrency required across time periods

Page 12: Impact of cloud services on software development life

Usage Patterns and Requirements Capture

A common usage patterns

4. Spiked Internal Load

This pattern applies to executing one-time jobs for processing at a given point in time.

corresponding requirement

Identify volume of data that is required to process the business Functionality

Detail out the network bandwidth and expected delay in response

Define set of business functionalities and business components

Identify reusability of components.

Page 13: Impact of cloud services on software development life

Usage Patterns and Requirements Capture

A common usage patterns

5. Spiked External Load

This pattern applies to applications that should be able to handle a sudden load which may come from an external source example: customers, vendors, or public users.

corresponding requirement

Define the limit of independence to access the application

Page 14: Impact of cloud services on software development life

Usage Patterns and Requirements Capture

A common usage patterns

6. Steady Growth over Time

This pattern usually applies to a mature application or Web site, wherein as additional users are added, growth and resources are tracked.

corresponding requirement

Cost of maintaining application on cloud

Page 15: Impact of cloud services on software development life

Architecture

In general, software that is to be deployed in cloud environments should be architected differently than on premise hosted/deployed applications

Cloud computing as a development environment has led to emergence of varieties of design and architecture principles,

The new architecture paradigm requires improving the thought process for horizontally scaling out the architectures by developing and designing large number of smaller components that are loosely coupled and easy to deploy in distributed environments.

Page 16: Impact of cloud services on software development life

Architecture

Cloud computing solutions should operate on a network which is capable of handling massive data transactions

With every increase in demand of quality software from clients, enterprises must produce the software that can be adapted to new environments without degrading the existing parameters of quality of service for the application.

Page 17: Impact of cloud services on software development life

Information Architecture

As the world is growing and becoming more connected every day, data plays a vital role in software application.

The key in building the information architecture is to closely align information to business process by availing the features available in cloud environment

Page 18: Impact of cloud services on software development life

Information Architecture

This process enables all stakeholders This process enables all stakeholders like business leaders, vendors, consumers, service providers, users, and all other stakeholders in evaluating, reconciling, and prioritizing on the information vision and related road map

For good information architecture you have Understanding the key considerations of data architecture in distributed environment and trade-offs for decisions made related to technology and architecture choices in cloud environments

Page 19: Impact of cloud services on software development life

Information Architecture

core decision points of information architecture :

Access Information: unconstrained access to the right users at the right time.

Reusable Services: Facilitate discovery, selection, and reuse of services

Information Governance: Provide proper utilities to support efficiency of information governance strategy.

Standards: Define set of standards where technology will support process simplification.

Page 20: Impact of cloud services on software development life

Information Security

Security is one of the important nonfunctional requirements demanded by clients.

Information security plays a vital role in distributed environments while defining information architecture.

The level of security applied depends on

the type of information. In general,

information is classified into four main categories

1. Public

2. Private

3. Confidential

4. Secret

Levels of information security

Page 21: Impact of cloud services on software development life
Page 22: Impact of cloud services on software development life

Information Security

Authentication, authorization, and data protection are different mechanisms of implementing security that every system should adopt. These security mechanisms need to be applied to information which may be available in different formats and dates

Information at Rest

Information in Transit

Transient Information

Information CRUD

Page 23: Impact of cloud services on software development life
Page 24: Impact of cloud services on software development life

Information Security

Table 4.3 should be understood with the following in mind:

Authenticating the access to public information is optional.

Authenticating the access to information that is private to the organization is mandatory, and the same is applicable for the information that is classified under confidential and secret categories.

Authorizing the access to public/private information is optional.

Authorizing the access to confidential and secret information is mandatory.

Protecting the access to public/private information is optional.

Protecting the access to confidential and secret information is mandatory.

Page 25: Impact of cloud services on software development life

Information Security

Table 4.4 provides details about the responsibilities of different stakeholders

Table 4.5 defines different kind of information that may be moved to cloud environment

This implies that confidential data can be in cloud but needs encryption

Page 26: Impact of cloud services on software development life

Non-functional Information Details

The following non-functional information requirements need to be analyzed as part of information architecture

1. Volume

Sizing the data volume is mandatory non-functional information to be captured

2.  Variety 

There are many varieties of data used in day-to-day business. The sets of data include: Relational, Configuration, Graphs, Geospatial, Documents, Unstructured data (videos, audio)

Page 27: Impact of cloud services on software development life

Non-functional Information Details

The following non-functional information requirements need to be analyzed as part of information architecture

3. Internal and External

Internal requirements include:

High impact • Medium impact • Low impact

External requirements include:

Regulations (country level/region level) • Industry specific (SWIFT/HIPAA)

Page 28: Impact of cloud services on software development life

Non-functional Information Details

The following non-functional information requirements need to be analyzed as part of information architecture

4. Ability to Query

The relevant requirements are:

The ability to query or search the data stored in a distributed environment

Level of querying demanded

Single field, multiple fields in a table, fully relational data

Scope of query

Single logical partition or data distributed across multiple logical partitions

Real-time data need

Query intervals and responsiveness

Data freshness

Page 29: Impact of cloud services on software development life

Partitioning Strategy

Partitioning data involves a trade-off between scalability, consistency, and flexibility

The main needs that influence data partitions are:

Data size that is stored on a single server

Transaction volume that needs to be processed on a single server

Data variety that is stored in different places

Page 30: Impact of cloud services on software development life

Partitioning Strategy

In highly elastic scenarios of distributed environments, partitions may be needed for just few hours or days.

As part of just-in-time partitioning strategy, if load is predictable, then:

Partition before load commences

Un-partition after load moderates