Software defined environment

Blog > Software Defined Environment

Software Defined Environments

Software Defined Environments (SDE) are the approach used to introduce the abstraction above the infrastructure.
An SDE enables the teams to expose the infrastructure as a set of services that the stakeholders in the software development 
life cycle (SDLC) can acess and utilize through a well-defined set of APIs. SDEs can be delivered through a layer 
of virtualization, running on the cloud.

SDEs provide different levels of abstraction that enables components of the environments to easily defined and managed 
as software. Such components include:

-Software definen storage (SDS)
-Software defined networks (SDNs)
-Software defined compute (SDC)
-Software defined management (SDM)
-The Orchestration and workload automation

Organizations like Cisco and VMware provide solutions to manage the data centers, not limited to the environments, 
refering to their solutions as software defined data centers (SDDCs).

For software defined environments, while deliver a layer of abstraction and access to environments through APIs to 
the customers, they also deliver the ability to automate through software management to the environments.

The delivery environment providers can:
-Version environments by providing versions for the application that define the environments.
-Keep the environment versions in a repository, to allow for prior versions of environments to be accessed when required 
for recreation or assessing for defects.
-Change management of the environments-this will be easy since every change that the teams make to an environment is software 
driven by creating a better version of the environment. The use of scripts applies the changes. They can be versioned with 
the code and other artifacts of the application stack that is beeing delivered.
-Accomplish inventory management of SDEs. This will be easier as the latest versions of the code representing the SDE provide inventory.
-Do the configuration management of the delivery environments.

Cloud hosted environments are normally software defined. Though, the level of software definition and management may vary from 
one cloud service provider to the other.