Start Your Free Trial

Continuous Integration & Deployment

Continuous integration testing with ESXi labs on AWS and Google cloud for StacksWare VDI software asset management product

AWS-ESXi
Author:
Vivek Nair
Interests include geeking out about virtualization & building complex distributed systems. Previously worked at Asana and on the Local Law Enforcement team at Palantir Technologies. Currently a lecturer in the CS department at Stanford University

This post summarizes how StacksWare, an agentless software asset management product for VDI, has implemented CI testing of their product on ESXi infrastructure test beds. StacksWare development team has modeled complex production ESXi infrastructures in Ravello service, without the overhead of buying their own rack servers or paying for expensive managed data centers.

Continue reading »

Step-by-step guide: Setting up CI/CD with Ravello, Jenkins and Chef on Amazon EC2

jenkins

I recently presented at an Amazon (AWS) EC2 user group meet-up in Toronto, Canada. The idea was to demo some popular tools being used today rather than only provide a Ravello product demo. It turned out to be a very technical dynamic group with lots of interactive discussion and technical questions. As promised, I put together a detailed blog that described the talk and provides some technical details for anyone who wants to try it out. In the end I hope this blog is detailed enough for anyone interested in learning the various technologies to integrate some cool tools like Jenkins and Chef with Ravello Systems.

Continue reading »

Beginner’s Guide: Android Continuous Integration and Development using Jenkins and AWS – Part 1

Android Continuous Integration and Development using Jenkins and AWS

As a new member of the Ravello team and an avid tinker of everything Android, I have been investigating how to utilize the AWS or Google cloud to create a continuous integration environment for Android development. Over the past few weeks my colleagues and I have written on the following topics:

  1. How to deploy an Android Virtual Device (AVD) on AWS using Ravello HVX
  2. Enabling KVM support for an AVD running on AWS using HVX
  3. The performance advantages of deploying an AVD on AWS using HVX
  4. A brief look at performing Android CI using AWS with HVX

Continue reading »

Continuous Integration with AWS, Jenkins and Ravello Systems

Continuous Integration and Deployment (CI/CD) pipelines are being adopted using tools such as Jenkins. We recently published a detailed blog on continuous integration and deployment using Jenkins in a hybrid VMware and AWS environment. When their production applications are deployed…

Continue reading »

Continuous Integration – Then and Now

Jenkins

Developers produce code, and make changes to that code several times a day or a week. As soon as their code is checked into some kind of repository, they want a process be fired off to validate that checked-in code doesn’t break the package, the file or the application they are building. In order to have packages automatically built or tested after code check-in, you needed to provision or run the test on some kind of automation testing tool.

Continue reading »

Install Openstack on EC2 for Continuous Integration & Dev/Test

Openstack on Amazon EC2 with Ravello

When I first started getting involved in running Openstack on Amazon EC2 discussion at my company Ravello Systems, it sounded kind of silly to me. Openstack is a platform to build private cloud, so why would anyone want to set it up on Amazon? Then, I went to annual Summit in Atlanta this year and all my doubts were put to rest.

Continue reading »

Continuous Integration and Deployment using Jenkins in a hybrid VMware ESXi and AWS EC2 Environment

Jenkins

Jenkins is a very popular solution for managing Continuous Integration and Deployment (CD/CD) pipelines. By using Ravello for the integration and system tests phases, users can improve the fidelity of already existing on-premise VMware based pipelines leveraging the unlimited capacity of the AWS cloud.

In this post I will show you how you can integrate Ravello based test environment into a CI/CD pipeline managed by Jenkins.

Continue reading »

Test automation and Continuous Integration & Deployment (CI-CD)

Continuous Integration

SUMMARY: Software is being adopted at unprecedented rates which is putting a strain on traditional software development processes. Test automation and Continuous Integration / Continuous Deployment (CI-CD) are part of the answer.

We live in the age of consumerisation of IT, which I tend to mentally distill as “the age of the apps”. While traditionally IT products were sold to enterprises first and then later trickled down to consumers, since about 2008 that trend has reversed. There are now more than a billion smartphones in the world, which gives companies and indie developers a channel that allows for an unprecedented velocity in getting software adopted. While in enterprise software sales cycles and implementation projects could take years, an app is bought in a few minutes: search the app store, read a few reviews, and hit “buy”.

Continue reading »

Ravello Arms Deutsche Telekom with On-Demand Cloud Flexibility

Deutsche Telekom

Deutsche Telekom AG is the world’s fourth largest wireless service provider by market capitalization in the global telecommunications industry. The Telecom giant operates businesses worldwide, including mobile telephony (under the T-mobile brand), fixed telephony, broadband Internet and IT Services.  The scope of the company’s activities necessitates an agile and reliable development platform.

Continue reading »

How We Auto-test Ravello Platform Upgrades

Upgrade Tests with Ravello

Following a recent post from our VP of R&D, Gil Hoffer, discussing the importance of upgrade testing, we decided to share with you how we use our system to perform upgrade testing for our own platform.

At Ravello, upgrade tests are performed automatically on a daily basis. Our upgrade testing comprises two main processes, each designed to verify different aspects of the upgrade.

Continue reading »

Avoid 911 Production Upgrade Failures: Painless Upgrade Tests

Upgrade Tests with Ravello

Software product upgrades are nothing new. But with the spread of continuous development and continuous integration they are becoming more and more frequent.  Typically, the upgrade process takes one or more specific components and upgrades them to a new version, for example, to a newer code or configuration version.  Whenever there is a need to perform an upgrade, there are several factors to consider to ensure that the product works correctly.

Continue reading »

Choosing a Central Logging Tool: 5 Important Features, 6 Optional Tools

All systems

This post is brought to you by Ravello R&D based on our own internal best practices and lessons learned. We need to continually monitor our servers, production and dev environments. As our environments grow and scale out it becomes increasingly difficult to debug failures and crisis analysis requires multi SSH-ing to different servers. Therefore we wanted to be able  to view all the logs for all our servers from one single entry point. We also wanted to be notified of abnormal activity in our logs, because we can’t sit and watch them all day long.

Continue reading »

Using Chef with Ravello Systems: Automatic Deployment of Chef Clients

Chef and Ravello Systems

In a Chef server/client configuration, the server stores the cookbooks (recipes), the policies and metadata that describe each registered node that is managed by the Chef client. The Chef client is used to obtain configuration details, such as recipes, templates, and file distributions, from the server.  In response to  requests from our customers, we have enabled an out-of-the-box chef extension that makes virtual machine configuration a breeze.

Continue reading »

Modern IT Culture: Granularity, Frequency and Automation

Pain Time Graph

Many IT/R&D organizations have come to understand the advantages of continuous integration (CI), enabling the development and deployment of features and fixes in a more efficient manner. To accomplish this, the specific product development tasks are typically organized into smaller speedy batches. Such modern approaches to application development are changing how the different parties in the enterprise, testers, developers and project managers work together, and are creating an even greater need for clear, open and frequent communications.

Continue reading »

Using Jenkins-cli as Job Gen

Jenkins

A common use case for doing stuff with Jenkins jobs/configuration [for example: enabling jobs, disabling jobs, executing jobs] is to use the Jenkins-cli.jar that is included in your Jenkins distribution.

In a large company where branches are created on a daily basis and you need a build for each branch, job creation could become a bottleneck [so could branch creation – but that a different topic  ].

My use case was to create a Job Generator that would take an existing job from branch 1.0 and create a job (and the branch but as I said different topic) for branch 2.0 with the corresponding name. Thank god for Jenkins in general, Jenkins CLI, and in addition to that a shell script, sedxmlstarlet, and again Jenkins job parameters.

Continue reading »

The Perfect Dev/Test Lab: 10 Principles that make it Possible

The Perfect Software Lab

In a world where competitive advantage is synonymous with business agility, the reality is that the very software that drives the business typically takes inordinate amounts of time to develop and test.

Hyper-agility in software development requires infrastructure and automation that not only keeps pace with development processes but actually helps accelerate cycles and improve overall quality. It is arguably economically infeasible to build an ideal lab entirely on-premise due to the bursty and transient nature of dev/test workloads, but now with new technologies that normalize the clouds, hyper-agile development and test is increasingly within reach of most enterprises.

Continue reading »

Using Maven to Automate Application Deployment and Testing Processes

It’s not a secret that automating CI/CD pipeline processes can be very painful, time-consuming and fraught with “configuration hell” experience. This process can facilitated using the Apache Maven software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project’s build, deployment, testing, reporting and documentation from a central piece of information.

Recognizing the value of maven as a build automation tool, the Ravello maven plugin is designed to help to integrate Maven-based projects with Ravello Systems rich APIs. This integration makes it easier to automatically configure the build, testing, and deployment processes, for smooth operations.

Continue reading »

How Ravello uses Ravello to make dev/test in the cloud NOT suck! – part 1

Here at ravello we’re no different than any other startup which develops new and innovative software – we need to develop fast, adjust our plans as we go along, react to user feedback and be able to roll out versions as fast as possible. In other words – we need to be AGILE.

But our product is fairly complicated – it’s not your average web application – we’re talking a large distributed system, with a specialized hypervisor which runs on multiple cloud providers.

In this post we will describe some aspects of our test and dev mechanisms, which enable us to stay agile, and thus move faster.

Continue reading »