Enterprise Software Installations: Evolution of Full Automation
Thu, 23 Jul 2020 18:21:01 -0000|
Read Time: 0 minutes
by Sam Lucido
July 23, 2020
Is there an evolution underway that is changing Enterprise Software and how it’s provisioned? I think so. Enterprise applications have traditionally been difficult to install and provision. There were pre-requisites, configuration requirements, post-requisites and other steps that took days to figure out. In many situations it required a team of administrators or consultants to complete the installation. Both options were expensive and time consuming.
Virtualization, including automation and orchestration, has advanced installations and provisioning through the use of templates. A virtual machine template is the main image of a virtual machine with all the components and configuration settings necessary to easily create a copy of that VM. Virtual Machine templates provide a means to provision copies of a virtualized application quickly and efficiently. This approach streamlined how applications could be quickly provisioned in the company. Next, application storefront web portals further transformed application provisioning into self-service operations for end users, reducing the burden on IT even more.
To further examine the deployment of VM templates, let’s take a look at Day 0, 1, and 2 of the deployment process:
- Day 0: Installation of the application in a virtual machine. The goal is to create a validated VM template of an application that can be reliably provisioned, on-demand. Depending on the complexity of the application there could be a significant upfront investment in developing the VM template.
- Day 1: A copy of the VM template is deployed with all the corresponding infrastructure: server resources, network, storage, and initial configuration. There is a substantial time savings by the supporting IT teams as the entire process has been automated. In addition to the savings, reliability of deploying applications has been improved by using a VM template and an automated provisioning process.
- Day 2: Any customizations or support activities are part of day 2 activities.
Using VM templates to automate the business accelerated application provisioning and consistently delivered a reliable outcome. VM templates advanced the way in which applications were provisioned. Although virtualization with its automation and orchestration solved many challenges, a few important challenges remained:
- The initial dependency of the enterprise software installation was still required. For example, a highly experienced professional is needed for databases, because an understanding of all the dependencies and configuration tasks is essential for successfully installing databases and similar applications.
- The layer of automation and orchestration must be maintained, too. For most applications, the rules for automation and orchestration must be tested, validated, and supported throughout the life of the application.
- As the number of applications available in a self-service portal increases, the demand on the supporting teams also increases. This challenge of scale in supporting more applications can require teams to prioritize what new applications and updates of existing applications are available on the self-service portal.
Now what if companies that created the enterprise application moved to an approach in which there were no installations required? Consider the capability to deliver the application as an image that can be opened and used, remarkably like a VM template. Linux Containers are different from virtual machines in several important ways:
- Virtual Machines: A hypervisor is used to abstract the underlying server hardware and present the CPU, memory, storage, and networking resources to the virtual machine. Each virtual machine has a guest operating system with libraries and binaries to run the application.
- Linux Containers: The guest operating system is used to abstract the underlying server hardware and present the servers resources to the Containers. Because Containers use the shared libraries of the guest operating system, they are exceptionally light. For example, Containers avoid the overhead of the hypervisor and the need for a guest OS for each virtual machine.
Popular public Container registries like Red Hat Quay and Docker Hub enable the business to download application images. These images can then be placed into a local private registry for the company, enabling them to quickly deploy the application over the local area network. Let’s look at how the use of Container images can change the Day 0, 1, and 2 activities:
- Day 0: Download the application image from a public registry and place into the local private registry, with no installation necessary. The application image can be customized to meet business requirements but the complexity of installation is eliminated.
- Day 1: A copy of the application image is deployed with all the corresponding infrastructure: server resources, network, storage, and initial configuration. There is a substantial time savings for the supporting IT teams as the entire process has been automated. In addition to the time savings, reliability of deploying applications is improved by using an application image and automated provisioning process.
- Day 2: Any customizations or support activities are part of day 2 activities.
Shifting responsibility for the installation from an IT professional to the company that developed the software transforms Day 0 activities. The complexity of software installation is replaced by downloading the image. The company that developed the software takes responsibility for creating a reliable application image, so Day 0 activities become lighter weight.
The challenge of scaling a self-service portal can also become more manageable. New application images and updates to existing images can be downloaded, tested, and placed in the local private company registry. Prioritization may still be necessary but the capability to quickly make new or updated applications available is facilitated by the company that developed the software.
This is another evolutionary jump as the complexity of installation shifts to the company that developed the software. The primary benefit is a substantial time savings as the company using the application doesn’t have to invest in installing the software. Dell EMC provides these white papers that show how you can start taking advantage of Containers:
This solution shows how the use of Oracle Database in containers, Kubernetes, and the Container Storage Interface (CSI) Driver for the Dell EMC PowerFlex family (previously known as Dell EMC VxFlex family) transforms the development process. Using orchestration and automation, developers can self-provision an Oracle database, thereby increasing flexibility and productivity while saving substantial time in creating a production copy for development and testing environments.
This solution highlights the power of implementing SQL Server 2019 Big Data Cluster technology hosted on Dell EMC VxRail hyperconverged infrastructure (HCI). In the solution use case, we integrate SQL Server 2019 RDBMS, SQL Server Big Data Cluster, MongoDB, and Oracle RDBMS to create a unified data analytics platform. SQL Server 2019 scale-out storage and compute clusters, and new data virtualization techniques are the enabling technologies. This SQL Server 2019 Big Data Cluster solution also benefits from the simplicity of a complete, yet flexible, validated Dell EMC VxRail HCI platform with Kubernetes management and storage integration.
In this white paper, we designed our use case to parallel the steps that customers take to deploy a SQL Server Big Data Cluster. Throughout the use case discussion, we describe important steps, design considerations, and outcomes. The discussion is not intended to outline step-by-step deployment actions but, instead, to provide guidance to make your Big Data Cluster solution successful.
Designing and configuring a resilient VxFlex architecture was our initial step. Because Big Data Clusters are business-critical, we designed a VxFlex architecture with multiple controller nodes and hyperconverged nodes so that there was no single point of failure. Performance was not a key consideration because VxFlex enables massive scale-out with the addition of nodes. One of the many advantages of VxFlex nodes is that customers can choose between using a bare-metal infrastructure or implementing virtualization. In this use case, we used VMware vSphere virtualization to increase manageability and security.
This solution shows how the use of SQL Server containers, Kubernetes, and the Dell EMC XtremIO X2 Container Storage Interface (CSI) plug-in transforms the development process. Using orchestration and automation, developers can self-provision a SQL Server database, increasing productivity and saving substantial time.
Additionally, Dell EMC provides an entire section on the Info Hub dedicated to Containers, featuring technical papers on these topics:
- Red Hat OpenShift Container Platform
- SUSE Containers as a Service
- Canonical Kubernetes
- Google Cloud’s Anthos on VxFlex family
Related Blog Posts
Oracle Database Solutions on Docker Container and Kubernetes
Tue, 25 Aug 2020 18:51:56 -0000|
Read Time: 0 minutes
Containers are a lightweight, stand-alone, executable package of software that includes everything that is needed to run an application: code, runtime, system tools, system libraries, and settings. A container isolates software from its environment and ensures that it works uniformly despite any differences between development and staging. Containers share the machine’s operating system kernel and do not require an operating system for each application, driving higher server efficiencies and reducing server and licensing costs.
The traditional build process for database application development is complex, time intensive and difficult to schedule. With containers and the right supporting tools, the traditional build process is transformed into a self-service, on-demand experience that enables developers to rapidly deploy applications. In the remaining sections of this article we describe how to develop the capability to have an Oracle database container running in a matter of minutes.
Oracle has a long commitment to supporting the developer communities working in containerized environments. At the DockerCon US event in April 2017, Oracle announced that its Oracle 12c database software application would be available alongside of other Oracle products on Docker Store, the standard for dev-ops developers. Dev-ops developers have pulled over four billion images from the Docker Store and are increasingly turning to the Docker Store as the canonical source for high-quality curated content. In the present-day database world, customers are invariably switching to the use of containers with Kubernetes management to build and run a wide variety of applications and services in a highly available on-premises hosted environment.
Containerized environments can reliably offer high-performance compute, storage and network capabilities with the necessary configurations. A containerized environment also reduces overhead costs by providing a repeatable process for application deployment across build, test, and production systems. To enable the deployment and management of containerized applications, organizations use Kubernetes technologies to operate at any scale including production. Kubernetes enables powerful collaboration and workflow management capabilities by deploying containers for cloud-native, distributed applications and microservices. It even allows you to repackage legacy applications for increased portability, more efficient deployment, and improved customer and employee engagement.
Figure 1: Docker containers for reducing development complexity
For many companies, to boost productivity and time to value, container usage starts with the departments that are focused on software development. Their journey typically starts with installing, implementing, and using containers for applications that are based on the microservice architecture as shown in Figure 2. Developers want to be able to build microservices-based container applications without changing code or infrastructure.
This approach enables portability between data centers and obviates the need for changes in traditional applications enabling faster development and deployment cycles. Oracle Docker containers run the microservices while Kubernetes is used for container orchestration. Also, the microservices running within Docker containers can communicate with the Oracle databases by using messaging services.
Figure 2: Architecture for Oracle Database featuring Docker and Kubernetes
Using orchestration and automation for containerized applications, developers can self-provision an Oracle database, thereby increasing flexibility and productivity while saving substantial time in creating a production copy for development and testing environments. This solution enables development teams to quickly provision isolated applications without the traditional complexities.
Our Dell EMC engineers recently tested and validated a solution for Oracle database using Docker containers and Kubernetes. The solution uses Oracle Database in containers, Kubernetes, and the Container Storage Interface (CSI) Driver for Dell EMC PowerFlex OS to show how dev/ops teams can transform their development processes.
Dell EMC engineers demonstrated two use cases for this solution. Both of our use cases feature four Dell EMC PowerEdge R640 servers, which are an integral part of Dell EMC VxFlex Ready Nodes, and a CSI Driver for Dell EMC PowerFlex that were hosted in our DellEMC labs.
Use Case 1
In use case 1, the DellEMC engineers manually provisioned the container-based development and testing environment shown in Figure 3 as follows:
- Install Docker.
- Activate the Docker Enterprise Edition-License.
- Run the Oracle 12c database within the Docker container.
- Build and run the Oracle 19c database in the Docker container.
- Import the sample Oracle schemas that are pulled from GitHub into the Oracle 12c and 19c database.
- Install Oracle SQL Developer and query tables from the container to demonstrate that the connection from Oracle SQL Developer to Oracle database functions.
Figure 3: Use Case 1 - Architecture
The key benefit of our first use case was the time that we saved by using Docker containers instead of the traditional manual installation and configuration method of building a typical Oracle database environment. Use Case 1 planning also demonstrated the importance of selecting the Docker registry location and storage provisioning options that are most appropriate for the requirements of a typical development and testing environment.
Use Case 2
Use Case 2 demonstrates the value of CSI plug-in integration with Kubernetes and Dell EMC Power Flex storage to automate storage configuration. Kubernetes orchestration with PowerFlex provides a container deployment strategy with persistent storage. It demonstrates the ease, simplicity, and speed in scaling out a development and testing environment from production Oracle databases. In this use case, a developer provisions the Oracle database in containers on the same infrastructure described in Use Case 1 only this time using Kubernetes with the CSI Driver for Dell EMC PowerFlex. Figure 4 depicts the detailed architecture of Use Case 2.
Figure 4. Use Case 2 – Architecture
Use Case 2 demonstrates how Docker, Kubernetes, and the CSI Driver for Dell EMC PowerFlex accelerate the development life cycle for Oracle applications. Kubernetes configured with the CSI Driver for Dell EMC VxFlex OS simplified and automated the provisioning and removal of containers with persistent storage. Engineers used yaml configuration files along with the kubectl command to quickly deploy and delete containers and complete pods. Our solution demonstrates that developers can provision Oracle databases in containers without the complexities that are associated with installing the database and provisioning storage.
Use Case Observations and Benefits
Adding Kubernetes container orchestration is an essential addition for database developers on a containerized development journey. Automation becomes essential with the expansion of containerized application deployments. In this case, it enabled our developers to bypass the complexities that are associated with plain scripting. Instead, our solution uses open source Kubernetes to accomplish the developer’s objectives. The CSI plug-in integrates with Kubernetes and exposes the capabilities of the Dell EMC PowerFlex storage system, enabling the developer to:
- Take a snapshot of the Oracle database, including the sample schema that was pulled from the GitHub site.
- Protect the work of the existing Oracle database, which was changed before taking the snapshot. We can protect any state. Use the CSI plug-in Driver for Dell EMC PowerFlex OS to create a snapshot that is installed in Kubernetes to provide persistent storage.
- Restore an Oracle 19c database to its pre-deletion state using a snapshot, even after removing the containers and the attached storage.
In our second use case, using Kubernetes combined with the CSI Driver for DellEMC PowerFlex OS simplified and automated the provisioning and removal of containers and storage. In this use case, we used yaml files along with the kubectl command to deploy and delete the containers and pods. All these components facilitate the automation of the container hosting the Oracle database on the top of PowerFlex.
Kubernetes, enhanced with the CSI Driver for Dell EMC VxFlex OS, provides the capability to attach and manage Dell EMC VxFlex OS storage system volumes to containerized applications. Our developers worked with a familiar Kubernetes interface to modify a copy of Oracle database schema gathered from the Github repository database and connect it to the Oracle database container. After modifying the database, the developer protected all progress by using the snapshot feature of Dell EMC VxFlex OS storage system and creating a point-in-time copy of the database.
Comparing Use Case 1 to Use Case 2 demonstrated how we can easily shift away from the complexities of scripting and using the command line to implement a self-service model that accelerates container management. The move to a self-service model, which increases developer productivity by removing bottlenecks, becomes increasingly important as the Docker container environment grows.
The power of containers and automation show how tasks that traditionally required multiple roles—developers and others working with the storage and database administrators - can be simplified. Kubernetes with the CSI plug-in enables developers and others to do more in less time and with fewer complexities. The time savings means that coding projects can be completed faster, benefiting both the developers and the business-side employees and customers. Overall, the key benefit shown in comparing our two use cases was the transformation from a manually managed container environment to an orchestrated system with more capabilities.
Innovation drives transformation. In the case of Docker containers and Kubernetes, the key benefit is a shift to rapid application deployment services. Oracle and many others have embraced containers and provide images of applications, such as for the Oracle 12c database, that can be deployed in days and instantiated in seconds. Installations and other repetitive tasks are replaced with packaged applications that enable the developer to work quickly in the database. The ease of using Docker and Kubernetes, combined with rapid provisioning of persistent storage, transforms development by removing wait time and enabling the developer to move closer to the speed of thought.
The addition of the Kubernetes orchestration system and the CSI Driver for Dell EMC VxFlex OS brings a rich user interface that simplifies provisioning containers and persistent storage. In our testing, we found that Kubernetes plus the CSI Driver for Dell EMC VxFlex OS enabled developers to provision containerized applications with persistent storage. This solution features point-and-click simplicity and frees valuable time so that the storage administrator can focus on business-critical tasks.
SQL Server in containers: Dell EMC CSI plug-in—It's about manageability!
Mon, 30 Mar 2020 18:46:49 -0000|
Read Time: 0 minutes
A picture can be worth a thousand words, however, not every slide in a presentation is self-explanatory and sometimes even the speaker notes don’t provide enough real estate to cover the full meaning of the content. That happened to me recently with this slide in a technical presentation that I created:
The unanswered question was what does this sentence mean? - “Get fixes and upgrades faster as Dell EMC’s plug-in doesn’t require Kubernetes updates and upgrades!” I wrote this blog give more background and details about that statement. Before we can get to that, let’s discuss the value that the CSI plug-in has for customers using XtremIO X2 and VxRack FLEX. The CSI is a standard used by Dell EMC and other storage providers to provide an interface for container orchestration systems to expose storage services to containers. Thus, the CSI plug-in enables orchestration between containers and storage via Kubernetes. Other orchestration systems such as Mesos, Docker, and Cloud Foundry also use the same CSI specification for managing containers and storage together.
The CSI plug-in has another advantage for both orchestration systems (like Kubernetes) and the storage providers. For example, Kubernetes development can progress independently without requiring storage vendors to check code into the core Kubernetes repository. Similarly, the storage vendors update the CSI plug-in only when required and not with every update or upgrade of Kubernetes. Overall there is less complexity for both Kubernetes developers and storage vendors because the CSI plug-in simplifies the integration between the orchestration and storage layers. Thus, the CSI plug-in enables faster fixes and upgrades by Dell EMC to work with Kubernetes. I hope that answers the question from above. You can also take a look at this Kubernetes blog that goes into greater detail: Introducing Container Storage Interface (CSI) Alpha for Kubernetes.
We also recently wrote a white paper about SQL Server Containers that provides an overview of how the XtremIO X2 features available with our CSI plug-in can be used with SQL Server 2019 Linux containers . Here is a shortcut to the CSI plug-in overview in the paper. With the CSI plug-in, the Kubernetes administrator can:
- Dynamically provision and decommission volumes
- Attach and detach volumes from a host node
- Mount and unmount a volume from a host node
The Kubernetes administrator can even use the XtremIO X2 snapshot capabilities to provision a copy of the SQL Server. It’s these capabilities that really make automation and orchestration of SQL Server containers easier and faster. Want to learn more? The SQL Server Containers white paper is the right starting place because it takes you through the technology and shows how the XtremIO X2 CSI plug-in with Kubernetes and Docker can address traditional challenges.
Please rate this blog and provide us with ideas for future solutions. Thanks!