Christmas comes early this year with the arrival of the latest version of UForge AppCenter, bringing you a bumper pack of new features and functionality. We've put a stake in the ground for supporting Docker, as you'll have seen from our previous blog posts. This release also includes a brand new plugin service for our enterprise partners that fundamentally changes how UForge AppCenter can be integrated with 3rd party services; and we've given our user interface a facelift.
Today, we're announcing new releases of our cloud application delivery products, UForge AppCenter 3.6 and UForge Marketplace 3.1. Letting you easily build, migrate, ship and govern applications for containers and cloud, UForge remains the best enterprise platform for automating end-to-end application governance and delivery for hybrid IT environments. We also have new initiatives in place including the AppHub European open source marketplace, new global distribution partners such as Crayon, and new customers including the Talend Exchange Marketplace.
The Why and the How
Hybrid Cloud, yes, we understand the business value propositions, or, at least, we think we do. We see the advantages of using an IaaS platform for template modelling, generation and image publication and furthermore we really appreciate these advantages compared to "how we did it" in the good old bad days. So with this safely all taken onboard, how do we actually get started on automating all this wonderful technology for a flourishing and often changing hybrid cloud environment?
This question may be more simple to answer than we may first imagine, so let us explain why? Since, the UForge Platform permits us to seamlessly execute all the various steps we can perform "manually" using a powerful UI, by giving us the additional flexibility, strength and option, to switch into an "automation" or "industrialisation" mode, using standard RESTful web services methods or by just writing code, for direct access to the backend services, using a Java API SDK.
At the workshop
Using the Java API SDK code taken from the samples provided on our website. We can very quickly "build and run" the java module
CreateWindowsAppliance.java in a NetBeans IDE, for example. What happens in this module is roughly algorithmically equivalent to what we demonstrated in our previous blog, where we used the UI to do all the "hard work", but now let's use the Java API SDK, which will empower us further, by subsequently allowing us to incorporate complex or simple processes into any semi or fully automatic or industrialised production methodology we care to choose. Even transforming such automated processes into fully RESTful procedures, should be easily feasible, if needs be. Obviously, development proceeds in iterative cycles, so this will ultimately "cut down" drastically on defect evolutions, which can be spuriously introduced by manual template production and manipulation processes.
Once the appliance creation is completed, we can use another code module, to take the appliance template, generate and then publish the image to any of the many (Hybrid) Cloud infrastructures supported by the UForge Platform. For this demonstration, we will use a "QCOW2" format to be published on CloudStack infrastructure. But this could easily have been any one, of the many other cloud format offerings, we support in our comprehensive coverage of cloud connectors (e.g. AMI, Flexiant, OpenStack, Windows Azure and Abiquo, to name a few).
PublishCloudstack.java module will generate the appliance image and publish it to our CloudStack (hybrid) cloud using the provided API access and keys. Once successfully published, we can access the cloud management console and launch our image on a compute node and finally access our running instance using the provided console, that's all there is to it!
The Hybrid Cloud challenge
We have to note, that in any real Hybrid Cloud environment we will have many different services. We can envisage; launched and running image templates, providing their services on many different cloud infrastructures, most likely deployed from an IaaS platform, using differing connectors and or supporting multiple and different image formats. Such diverse cloud ecosystems may lead to hugely challenging situations, which would need highly adaptable, agile and flexible solutions to succeed well in. Management of these Hybrid Cloud systems would be well suited to the rich functionality provided in the UForge Platform, which can easily aide, in adapting any cloud service, on any cloud, in a world of very rapid changes by making the change process, as simple as regenerating and publishing images, from existing appliance templates to any new cloud environment in a few automatable steps.
Seen our last blog on creating a Windows 2008 R2 XAMPP server template? If yes, then creating a WordPress blogging server is as easy as just adding an extra package!
What do we do?
After we have created our XAMPP server template we perform two additional steps.
- Add the WordPress component to the XAMPP stack
- Update our installation and configuration script
C:\uploads\mysoftware\JREWindows64bit-7.45\jre-7u45-windows-x64.exe /s C:\uploads\mysoftware\MSVS-2008\vcredist_x64-2008.exe /q:a timeout 30 taskkill /F /IM TrustedInstaller.exe C:\uploads\mysoftware\XAMPP-1.8.3\xampp-win32-1.8.3-2-VC11-installer.exe --mode unattended timeout 20 C:\xampp\xampp_start.exe timeout 20 C:\uploads\mysoftware\WordPress-3.8\bitnami-wordpress-3.8-0-module-windows-installer.exe --mode unattended timeout 20
That's all to it. Just follow the previous XAMPP blogs steps to generate, launch and access your WordPress Windows image.
Imagine we want to build a Windows server machine, containing a web development stack, including Apache web server, MySQL, PHP and Perl, the equivalent to the popular LAMP stacks, but with the Perl language added on, just for more flexibility! UForge factory will allow us to do this and more, as it will allow us to define our Windows machine as a "model" or so called server template, giving us the flexibility to add to or refine our machines capabilities and or functionalities, over time, by the simple clicking of a button. Let's get started. Firstly, we have to create a new server template which is based on our chosen Windows operating system and architecture.
- Using the UForge UI, we create the template selecting Windows Server 2008 R2 as our preferred operating system.
- This completed, we now proceed to defining the "OS profile" by selecting the Windows Server 2008 R2 distribution we'd like to use, in this case, Enterprise, Core, English.
Adding the software
The next step is to add the necessary middleware components. There are many options available here and a simple Internet search can give us some ideas. In this case we opted for Apache Friends community offering with a well-integrated middleware stack using an opensource software project called XAMPP. As we will find in the XAMPP online documentation, PHP needs some extra software i.e. the Microsoft Visual 2008 studio compiler, which is a redistributable package from Microsoft. Finally, we note, that Tomcat has one additional requirement; a Java runtime environment (JRE). So re-capping, we need to add two extra pieces of software, JRE, Microsoft Visual C++ and XAMPP itself. With UForge, adding these extra pieces of software to a template can be done using what is called My Software projects. Typically, for our XAMPP server template, we will create three of these My Software projects, but this is only a suggestion, we can, if we want, create more or less, depending on how we want bundle certain pieces of software and/or special files. Each project is named, with a version number and a description. We may also consider adding the corresponding software license file to the projects. As for the software itself, we simply upload the each piece of software to its corresponding My Software project.
Installation and configuration
The installation and configuration of our chosen middleware software components can be done in many ways, two of which are:
- In the My Software project itself, by ticking the "Install this software" check box, and giving some parameters to pass for the installation process.
- Using classic Windows bat configuration scripts files.
In this example, we'll illustrate how to perform our chosen middleware software installation and configuration with bat installation scripts. We will create two scripts: one to be executed at first boot, and one to launch XAMPP service on every boot. The installation script is a simple Windows executable bat file, Note: this first boot script contains all the installation, configuration and service setup processes:
C:\uploads\mysoftware\JREWindows64bit-7.45\jre-7u45-windows-x64.exe /s C:\uploads\mysoftware\MSVS-2008\vcredist_x64-2008.exe /q:a timeout 30 taskkill /F /IM TrustedInstaller.exe C:\uploads\mysoftware\XAMPP-1.8.3\xampp-win32-1.8.3-2-VC11-installer.exe --mode unattended
This script installs the JRE, Microsoft Visual Studio and XAMPP stack. Looking at the script launching the XAMPP management stack for every boot, it contains only the XAMPP stack's component startup scripts:
Adding the Windows bat script files to the template is easy, we just use the UForge UI's Configuration view, as the following clearly depicts.
Et voila ... that's it!
We're done, our UForge Server Template is complete, at least for this iteration of its life. Note we can easily update this server template, at any time, to improve and perfect it, over its overall life-time. So, what's next for our newly created Windows 2008 R2 Server XAMPP server template?
Image Generation and Launch
We specify some desired machine sizes and select our preferred "physical, virtual or cloud" format to create the image in, after which we are ready to launch and start it.
Note using our template description for instructions, we'll be able to connect to the XAMPP console using our favorite web browser.
You can also launch the XAMPP Control Panel in the Windows image.
So what are you waiting for? Try it out for yourselves, now! Just sign-up at UShareSoft for your free account and get cracking with modelling and building your very first Windows server template, you can even use our Marketplace templates as basis of yours.