Using Ansible in Cloud and On-Premises Software DevOps
The common development model that we employ across cloud and on premises creates a symbiosis that we believe benefits all of our customers. Regardless of which model they choose, they benefit from the requirements and capabilities designed and delivered for the other.
Cloud + on premises = massive value
In the cloud, we are able to implement a rapid delivery cycle of design, implement, test, deploy, and support. For on-premises software, we run a quarterly release schedule with annual support; once per year we have a release for which we provide two-year support.
This cadence means that our cloud customers can leverage our newest features quickly, while our on-premises customers bank on the stability and quality of the shipped product that has been hardened on the cloud.
Our cloud customers benefit from the fact that our on-premises customers have some very complex use cases, which result in the development of a robust, enterprise-ready set of features. Our on-premises customers benefit from the operational best practices that we can share based on our experience running the cloud business.
It’s a win for our customers, but it also means that our engineering team has to manage a complex set of requirements and processes. We can't use a waterfall development process because the velocity in the cloud will suffer. We can't have a uniform deployment strategy because we need to enable our on-premises customers to determine both the deployment topology and its scheduling. Low levels of customization are ineffective because our customers use our products in marvellously different and innovative ways.
We don't want separate cloud and on-premises development efforts because the synergy provides massive value. This is a terrific problem to have and one that many companies probably wish they had, as engineering problems are easier to solve than business model problems.
DevOps and Ansible
DevOps at Apigee has a unique business context. Our automation work has to take into account the business, software development, deployment, and support life cycles for both a typical enterprise business running on-premises and a typical enterprise business running in the cloud. To do this, we leverage several tools, both open source and homegrown. One of the tools we bet on early was Ansible. We liked the Ansible model because it allowed us to do three things at the same time:
abstract away the issues of dealing with the infrastructure layer at scale
express operational playbooks and processes in a way that’s easy for a seasoned operations person to understand
have a zero footprint on managed servers other than very basic things (like ssh, monit, and collectd), which are implemented reliably on all of them
Two of our engineers, Madhurranjan Mohaan and Ramesh Raithatha, have written a book about what they have learned about using Ansible to configure systems, deploy software, and orchestrate advanced IT tasks.
Also, if you’re interested in what DevOps means in an enterprise software setting, or if you believe that there is some really innovative technical work in bringing cloud to mainstream businesses and want to be somewhere where this future is being created today, then consider Apigee as a place to work. We’re always looking for talent and the drive to excel.