Introducing Software Engineering-as-a-Service

By Sudhanshu Hate

June 19, 2012

Abstract

Industry-standard cloud models such as Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS) support only hosting software end product (software applications). However none of these existing cloud models supports real-time software engineering, maintenance activities, and enabling processes on the cloud.

The envisaged EaaS platform provides the ability to intelligently provision development environments in the cloud. Post-provisioning, it provides an environment to execute end-to-end software development lifecycle activities (SDLC), such as requirements engineering, architecture, design, development, and testing. The platform also supports continuous software maintenance in the cloud. Apart from software engineering and maintenance, the platform provides enabling processes to execute the complete SDLC.

Software development and maintenance activities in the cloud can be performed by connecting remotely to the EaaS instance using dumb terminals.

Introduction

The software application lifecycle broadly consists of two key phases, application development and application deployment. Conventionally application development and hosting happens on-premise (within the enterprise boundary). With the advent of cloud, it is leveraged only for application deployment however; the application engineering and maintenance activities continue to take place on-premise, that is, not in the cloud.

On-premise (outside of cloud and within the enterprise boundary) application development requires up-front investments and planning, in the form of procuring desktops, servers, and software applications. Not only this, it means establishing complete development and maintenance processes and adhering to them.

However, today, no turnkey solution exists which can provision an application development and maintenance ecosystem (development machines/nodes running with hardware, software, servers, processes) off-premise (in the cloud) based on inputs of certain parameters such as application size in the form of use case, function points, duration/timelines, scope, etc.

EaaS provides the turnkey solution to not only provision the complete development ecosystem (hardware, software, desktops, servers, processes) but also enables the complete application lifecycle development and deployment activities in the cloud with the ability to ramp up and ramp down resources.

The cloud-based development environment can be accessed from the in-house machines or dumb terminal by logging into the provisioned system on cloud. This in turn supports the necessary application development, and maintenance lifecycle activities such as coding, version control, check in, check out, code reviews, unit testing, code execution to name a few.

This software provisioning and execution platform will be useful for many enterprises, entrepreneurs, and individual professionals to rent it in “pay as you use” manner. By requesting the environment on demand and releasing it as soon as the work is done, a lot of lead time in conventional hardware, software procurement and money can be saved.

The platform can be accessed by logging into the system using a dumb terminal (a machine with very minimal CPU and memory configurations) that will facilitate software creation at anytime from anywhere without needing to rely on pre-configured desktops or laptops.

Challenges

There are multiple challenges with the existing model of on-premise or off-premise (cloud hosted) application development such as:

  • Current models such as Infrastructure as a Service (IaaS), Platform as a Service (PaaS), Software as a Service (SaaS) and associated technology vendors such as Amazon, Microsoft, Google, Salesforce, etc. support only various application deployment models which have the ability to provision hardware (nodes) and either allow software installation (IaaS) or provide software service APIs (PaaS) or finished applications (SaaS). However, none of these models supports real-time application development lifecycle (engineering), or maintenance activities including support for the associated software processes.

Platform

Service

Platform Vendor

IaaS

Infrastructure provisioning

Amazon

PaaS

Infrastructure provisioning, Platform APIs, programming language support

Microsoft, Google App Engine

SaaS

Finished product/application can be directly accessed.

Salesforce.com, Google Apps, email, etc.

EaaS

End to end application development lifecycle activities, execution support including persistence

None as yet

 

  • Application development using IaaS, PaaS, and SaaS models has to be done on-premise (outside of cloud and within the enterprise boundary), which means configuring desktops with the requisite development environment.

  • The existing IaaS, PaaS, and SaaS models do not have the ability to intelligently recommend provisioning environments for various activities such as development, testing, production, etc. based on specific application sizing parameters.

  • On-premise development models demand upfront investment (CAPEX) in real estate, hardware, software, and processes which makes the overall software development costly.

  • On-premise development models inhibit the ability to work anytime and from anywhere as they are tightly-coupled with and dependent on specific hardware, software, and processes. This set-up usually exists only in the enterprise boundary on a pre-configured desktop or laptop.

  • Ability to elastically ramp up, ramp down, and provision various test, development, maintenance environments is costly and time-consuming with on-premise.

  • Software needed in on-premise environment requires individual software licenses to be bought from individual vendors.

Proposed Solution – EaaS platform

As depicted in the following diagram, the proposed EaaS system consists of primarily three modules.

Figure 1

Figure 1.0: EaaS Platform Block diagram

The provisioning system is intelligent to recommend sizing for various environment such as

  • development

  • testing

  • staging

  • production environment

based on input of various parameters such as application size in the form of

  • number of use cases

  • function point

  • project timelines, etc.

The provisioning system will also allow the user to select and install specific software development packages or utility software applications for executing the main software project.

The execution environment will support day-to-day software development/maintenance lifecycle activities such as project planning, requirements gathering, architecture, design, code check-out/check-in, coding, profiling, unit testing, integration testing, version control to name a few.

The process module will provide systems and processes for executing a software project at a specific project quality standard such as CMM, ISO level and will provide necessary project management, quality measuring and tracking software systems on the cloud.

The cloud-based development environment will be accessible from on-premise machines or dumb terminals by logging into the provisioned system in the cloud. After which, necessary application development, maintenance lifecycle activities such as coding, version control, check in, check out, code reviews, unit testing, code execution, etc. can be performed.

Details of the Sub-system

The following figure depicts the platform support for key activities, functions. The platform has three key logical modules as provisioning, execution and processes as depicted and detailed in the diagram below.

Figure 2

Figure 2.0: EaaS platform components

Provisioning Environment

The following figure, in the form of block diagram, explains the high-level steps in platform provisioning.

Figure 3

Figure 3.0: Provisioning Module

The provisioning system will rely on a wizard-based workflow that will take one or more inputs from the user, such as application size in terms of function points, number of use cases, timeline within which the project needs to be executed, and associated software to be provisioned. Based on these inputs, the provisioning algorithm will compute sizing for various aspects of the development environment, such as number of nodes, server specs, software, and processes for specific environment such as dev., test, production, etc.

The user can either accept the recommended environment or tweak it based on his/her needs by going back and forth in the workflow.

After confirmation from the user, the provisioning module will provision the necessary environment.

The following are some examples of environments that can be provisioned (provisioning environments are not limited to these):

Development environment – to perform software development, engineering activities.

Performance testing environment – to perform activities such as performance testing, benchmarking.

Integration testing environment – to perform integration testing activities.

Production environment – the environment where the software application will be deployed for end users to perform actual business functions.

Maintenance environment – the environment where software maintenance activities, bug fixing and testing will be done. This environment can also be treated like a staging environment.

In real life, the software project may need more or may not need all of these. Also the configuration for each of these environments would be variable, dependent on client needs, and dependent on the needs of the particular project.

Execution Environment

The execution environment allows users to perform complete end-to-end software engineering activities in the cloud, such as:

Requirements gathering/engineering – tools to capture and document software engineering requirements in the form of use cases, workflows, business interactions, or change requests.

Architecture modelling – tools to define and depict various architectural views, such as business, technology, deployment, information view of the proposed system.

Module design – tools to design various components, sub-systems of the software application.

Coding – integrated Development Environment (IDE) to write, compile, run, and verify the actual code.

Version control – source control for versioning of code, documents, etc.

Unit testing – tools to unit-test the code for a particular use case.

Software documentation – tools to support documentation activities during the lifecycle.

Processes

While performing software engineering and support activities, various supporting processes are needed that are enabled through this module.

Project Management processes – processes to support project management activities during the software development lifecycle such as project plan creation and tracking, milestone creation, planning customer billing milestones, resource planning and allocation, etc.

Quality processes – quality processes to support software development lifecycle activities such as code review, defect logging, defect fixing, estimation, etc.

People processes – processes such as leave planning.

Development processes – processes such as version control, code back up, conducting reviews, etc.

Benefits of the Solution

  1. Ability to support an end-to-end software environment in the cloud (provisioning, execution-software engineering and deployment, ecosystem-processes).

  2. For end users, using the environment doesn’t require a large upfront investment but relies on resource or transaction-based pricing (CAPEX to OPEX).

  3. Ability to work anytime from anywhere by providing necessary credentials to enter the cloud.

  4. Ability to increase or decrease the number of development nodes as per the demand of the application development lifecycle, provision various test and release environments.

  5. Provide suggestions about distributing the load across various phases in lifecycle to help optimize and plan resources and cost.

  6. All software licenses can be either provided from the provisioning environment within the cloud or made to custom install in the cloud environment.

  7. The platform enables channels of co-creation and harnesses collective intelligence for the distributed workforce.

Summary

Conventionally, software development activities require a lot of time because of the effort involved in planning, procuring, and execution. Not only are the procurement lead times very lengthy, but also consume extraordinary upfront investments in hardware, software and at times defeat the business case in the short term.

The cloud avenue to plan, procure, and execute end-to-end software engineering activities will not only help eliminate the challenges mentioned above, by allowing enterprises to in essence “rent” only what is needed at any point in the SDLC, but also enable the anytime-anywhere development in this distributed workforce world.

Acknowledgments

Author would like to acknowledge the efforts of Naveen Kumar Principal, Infosys Ltd. and Sameer Suryakant Kulkarni, Content Architect, Infosys Ltd.

About the Author

Sudhanshu Hate (Suds) is a Senior Technology Architect at Infosys Labs, Infosys Limited. He has more than 14 years of industry experience working across various stages of SDLC. For last several years, he has been responsible for technology research, envisioning, building, and consulting on Microsoft technology based solutions.

His areas of work span across cutting-edge technology research, architecture reviews, defining technology strategy, point of views with focus around Microsoft .NET stack, cloud (Windows Azure), big data, and high performance computing

Sudhanshu has co-authored two books: ASP.NET 4 Social Networking and .NET 4 for Enterprise Architects and Developers. He has also written several papers and presented at various conferences.

Note: The author has a pending patent on this very subject.

Subscribe to HPCwire's Weekly Update!

Be the most informed person in the room! Stay ahead of the tech trends with industy updates delivered to you every week!

AWS Embraces FPGAs, ‘Elastic’ GPUs

December 2, 2016

A new instance type rolled out this week by Amazon Web Services is based on customizable field programmable gate arrays that promise to strike a balance between performance and cost as emerging workloads create requirements often unmet by general-purpose processors. Read more…

By George Leopold

AWS Launches Massive 100 Petabyte ‘Sneakernet’

December 1, 2016

Amazon Web Services now offers a way to move data into its cloud by the truckload. Read more…

By Tiffany Trader

Weekly Twitter Roundup (Dec. 1, 2016)

December 1, 2016

Here at HPCwire, we aim to keep the HPC community apprised of the most relevant and interesting news items that get tweeted throughout the week. Read more…

By Thomas Ayres

HPC Career Notes (Dec. 2016)

December 1, 2016

In this monthly feature, we’ll keep you up-to-date on the latest career developments for individuals in the high performance computing community. Read more…

By Thomas Ayres

Lighting up Aurora: Behind the Scenes at the Creation of the DOE’s Upcoming 200 Petaflops Supercomputer

December 1, 2016

In April 2015, U.S. Department of Energy Undersecretary Franklin Orr announced that Intel would be the prime contractor for Aurora: Read more…

By Jan Rowell

IBM and NSF Computing Pioneer Erich Bloch Dies at 91

November 30, 2016

Erich Bloch, a computational pioneer whose competitive zeal and commercial bent helped transform the National Science Foundation while he was its director, died last Friday at age 91. Bloch was a productive force to be reckoned. During his long stint at IBM prior to joining NSF Bloch spearheaded development of the “Stretch” supercomputer and IBM’s phenomenally successful System/360. Read more…

By John Russell

Pioneering Programmers Awarded Presidential Medal of Freedom

November 30, 2016

In an awards ceremony on November 22, President Barack Obama recognized 21 recipients with the Presidential Medal of Freedom, the Nation’s highest civilian honor. Read more…

By Tiffany Trader

Seagate-led SAGE Project Delivers Update on Exascale Goals

November 29, 2016

Roughly a year and a half after its launch, the SAGE exascale storage project led by Seagate has delivered a substantive interim report – Data Storage for Extreme Scale. Read more…

By John Russell

AWS Launches Massive 100 Petabyte ‘Sneakernet’

December 1, 2016

Amazon Web Services now offers a way to move data into its cloud by the truckload. Read more…

By Tiffany Trader

Lighting up Aurora: Behind the Scenes at the Creation of the DOE’s Upcoming 200 Petaflops Supercomputer

December 1, 2016

In April 2015, U.S. Department of Energy Undersecretary Franklin Orr announced that Intel would be the prime contractor for Aurora: Read more…

By Jan Rowell

Seagate-led SAGE Project Delivers Update on Exascale Goals

November 29, 2016

Roughly a year and a half after its launch, the SAGE exascale storage project led by Seagate has delivered a substantive interim report – Data Storage for Extreme Scale. Read more…

By John Russell

Nvidia Sees Bright Future for AI Supercomputing

November 23, 2016

Graphics chipmaker Nvidia made a strong showing at SC16 in Salt Lake City last week. Read more…

By Tiffany Trader

HPE-SGI to Tackle Exascale and Enterprise Targets

November 22, 2016

At first blush, and maybe second blush too, Hewlett Packard Enterprise’s (HPE) purchase of SGI seems like an unambiguous win-win. SGI’s advanced shared memory technology, its popular UV product line (Hanna), deep vertical market expertise, and services-led go-to-market capability all give HPE a leg up in its drive to remake itself. Bear in mind HPE came into existence just a year ago with the split of Hewlett-Packard. The computer landscape, including HPC, is shifting with still unclear consequences. One wonders who’s next on the deal block following Dell’s recent merger with EMC. Read more…

By John Russell

Intel Details AI Hardware Strategy for Post-GPU Age

November 21, 2016

Last week at SC16, Intel revealed its product roadmap for embedding its processors with key capabilities and attributes needed to take artificial intelligence (AI) to the next level. Read more…

By Alex Woodie

SC Says Farewell to Salt Lake City, See You in Denver

November 18, 2016

After an intense four-day flurry of activity (and a cold snap that brought some actual snow flurries), the SC16 show floor closed yesterday (Thursday) and the always-extensive technical program wound down today. Read more…

By Tiffany Trader

D-Wave SC16 Update: What’s Bo Ewald Saying These Days

November 18, 2016

Tucked in a back section of the SC16 exhibit hall, quantum computing pioneer D-Wave has been talking up its new 2000-qubit processor announced in September. Forget for a moment the criticism sometimes aimed at D-Wave. This small Canadian company has sold several machines including, for example, ones to Lockheed and NASA, and has worked with Google on mapping machine learning problems to quantum computing. In July Los Alamos National Laboratory took possession of a 1000-quibit D-Wave 2X system that LANL ordered a year ago around the time of SC15. Read more…

By John Russell

Why 2016 Is the Most Important Year in HPC in Over Two Decades

August 23, 2016

In 1994, two NASA employees connected 16 commodity workstations together using a standard Ethernet LAN and installed open-source message passing software that allowed their number-crunching scientific application to run on the whole “cluster” of machines as if it were a single entity. Read more…

By Vincent Natoli, Stone Ridge Technology

IBM Advances Against x86 with Power9

August 30, 2016

After offering OpenPower Summit attendees a limited preview in April, IBM is unveiling further details of its next-gen CPU, Power9, which the tech mainstay is counting on to regain market share ceded to rival Intel. Read more…

By Tiffany Trader

AWS Beats Azure to K80 General Availability

September 30, 2016

Amazon Web Services has seeded its cloud with Nvidia Tesla K80 GPUs to meet the growing demand for accelerated computing across an increasingly-diverse range of workloads. The P2 instance family is a welcome addition for compute- and data-focused users who were growing frustrated with the performance limitations of Amazon's G2 instances, which are backed by three-year-old Nvidia GRID K520 graphics cards. Read more…

By Tiffany Trader

Think Fast – Is Neuromorphic Computing Set to Leap Forward?

August 15, 2016

Steadily advancing neuromorphic computing technology has created high expectations for this fundamentally different approach to computing. Read more…

By John Russell

The Exascale Computing Project Awards $39.8M to 22 Projects

September 7, 2016

The Department of Energy’s Exascale Computing Project (ECP) hit an important milestone today with the announcement of its first round of funding, moving the nation closer to its goal of reaching capable exascale computing by 2023. Read more…

By Tiffany Trader

HPE Gobbles SGI for Larger Slice of $11B HPC Pie

August 11, 2016

Hewlett Packard Enterprise (HPE) announced today that it will acquire rival HPC server maker SGI for $7.75 per share, or about $275 million, inclusive of cash and debt. The deal ends the seven-year reprieve that kept the SGI banner flying after Rackable Systems purchased the bankrupt Silicon Graphics Inc. for $25 million in 2009 and assumed the SGI brand. Bringing SGI into its fold bolsters HPE's high-performance computing and data analytics capabilities and expands its position... Read more…

By Tiffany Trader

ARM Unveils Scalable Vector Extension for HPC at Hot Chips

August 22, 2016

ARM and Fujitsu today announced a scalable vector extension (SVE) to the ARMv8-A architecture intended to enhance ARM capabilities in HPC workloads. Fujitsu is the lead silicon partner in the effort (so far) and will use ARM with SVE technology in its post K computer, Japan’s next flagship supercomputer planned for the 2020 timeframe. This is an important incremental step for ARM, which seeks to push more aggressively into mainstream and HPC server markets. Read more…

By John Russell

IBM Debuts Power8 Chip with NVLink and Three New Systems

September 8, 2016

Not long after revealing more details about its next-gen Power9 chip due in 2017, IBM today rolled out three new Power8-based Linux servers and a new version of its Power8 chip featuring Nvidia’s NVLink interconnect. Read more…

By John Russell

Leading Solution Providers

Vectors: How the Old Became New Again in Supercomputing

September 26, 2016

Vector instructions, once a powerful performance innovation of supercomputing in the 1970s and 1980s became an obsolete technology in the 1990s. But like the mythical phoenix bird, vector instructions have arisen from the ashes. Here is the history of a technology that went from new to old then back to new. Read more…

By Lynd Stringer

US, China Vie for Supercomputing Supremacy

November 14, 2016

The 48th edition of the TOP500 list is fresh off the presses and while there is no new number one system, as previously teased by China, there are a number of notable entrants from the US and around the world and significant trends to report on. Read more…

By Tiffany Trader

Intel Launches Silicon Photonics Chip, Previews Next-Gen Phi for AI

August 18, 2016

At the Intel Developer Forum, held in San Francisco this week, Intel Senior Vice President and General Manager Diane Bryant announced the launch of Intel's Silicon Photonics product line and teased a brand-new Phi product, codenamed "Knights Mill," aimed at machine learning workloads. Read more…

By Tiffany Trader

CPU Benchmarking: Haswell Versus POWER8

June 2, 2015

With OpenPOWER activity ramping up and IBM’s prominent role in the upcoming DOE machines Summit and Sierra, it’s a good time to look at how the IBM POWER CPU stacks up against the x86 Xeon Haswell CPU from Intel. Read more…

By Tiffany Trader

Beyond von Neumann, Neuromorphic Computing Steadily Advances

March 21, 2016

Neuromorphic computing – brain inspired computing – has long been a tantalizing goal. The human brain does with around 20 watts what supercomputers do with megawatts. And power consumption isn’t the only difference. Fundamentally, brains ‘think differently’ than the von Neumann architecture-based computers. While neuromorphic computing progress has been intriguing, it has still not proven very practical. Read more…

By John Russell

Dell EMC Engineers Strategy to Democratize HPC

September 29, 2016

The freshly minted Dell EMC division of Dell Technologies is on a mission to take HPC mainstream with a strategy that hinges on engineered solutions, beginning with a focus on three industry verticals: manufacturing, research and life sciences. "Unlike traditional HPC where everybody bought parts, assembled parts and ran the workloads and did iterative engineering, we want folks to focus on time to innovation and let us worry about the infrastructure," said Jim Ganthier, senior vice president, validated solutions organization at Dell EMC Converged Platforms Solution Division. Read more…

By Tiffany Trader

Container App ‘Singularity’ Eases Scientific Computing

October 20, 2016

HPC container platform Singularity is just six months out from its 1.0 release but already is making inroads across the HPC research landscape. It's in use at Lawrence Berkeley National Laboratory (LBNL), where Singularity founder Gregory Kurtzer has worked in the High Performance Computing Services (HPCS) group for 16 years. Read more…

By Tiffany Trader

Micron, Intel Prepare to Launch 3D XPoint Memory

August 16, 2016

Micron Technology used last week’s Flash Memory Summit to roll out its new line of 3D XPoint memory technology jointly developed with Intel while demonstrating the technology in solid-state drives. Micron claimed its Quantx line delivers PCI Express (PCIe) SSD performance with read latencies at less than 10 microseconds and writes at less than 20 microseconds. Read more…

By George Leopold

  • arrow
  • Click Here for More Headlines
  • arrow
Share This