With GitHub Enterprise on Bluemix Dedicated, there’s no worry

Earlier this month, I had the good fortune of attending GitHub Universe at San Francisco’s Pier 70 along with these fine folks from IBM and over 1,400 other members of the GitHub community. We were treated to gorgeous sunshine, over-the-top eats, and some pretty inspiring talks.

While most of my conversations centered around IBM Bluemix and the Watson and IoT services powering our foosball table, some of my favorites were with the college students and recent graduates wanting to know about life as an engineer at IBM. Common questions I heard were – “what do I work on,” and “what technologies do we use?”

As a senior technical lead on Git Squad in IBM’s Cloud unit, one of the offerings we’re responsible for is IBM Bluemix Dedicated for GitHub Enterprise. Essentially, we offer GitHub Enterprise as a service, hosted in our cloud and managed entirely by us. As part of Bluemix Dedicated, each GitHub Enterprise instance is installed on physically isolated hardware, private and secure for our users.

Because we need to be able to manage a large number of instances of GitHub Enterprise, automation is key. Much of what our squad works on is automation to provision and configure primary and replica GitHub Enterprise VMs, an on-site backup VM, and an off-site EVault backup, all hosted by SoftLayer. We use primarily bash scripts (with some Perl and JavaScript sprinkled in), orchestrated with UrbanCode Deploy, to automate not just the initial provisioning of the service, but also upgrades, fail-overs, and basically any repeatable process we need to perform across our environments.

In addition to the infrastructure described above, we also develop two microservices to round out our offering. The first is our Central Authentication Service, or CAS service. This service allows us to use single sign-on with Bluemix to log in to GitHub Enterprise. We currently are using the open-source Apereo CAS server with a custom extension that delegates authentication to Bluemix UAA using OAuth. The Apereo CAS server is a Java implementation built on the Spring framework, and while it gets the job done, we’ve found we need something a little more lightweight and designed with scalability and high availability in mind. As such, we are finishing up development on an entirely new CAS implementation using Node.js that we would like to open source in the future.

Our other microservice, also written in Node.js, is a monitoring application that verifies not only that the service is up, but that it is useable, by regularly performing remote Git operations against the GitHub Enterprise primary server. We continue to improve this app as new issues arise by adding additional verifications of the service and its configuration. Test failures immediately post to Slack and trigger a PagerDuty incident assigned to our DevOps team, so we work hard to make sure everything is rock solid! We also work with the Bluemix monitoring team to set up ping monitors, OS health monitors, and custom GitHub Enterprise-specific monitors to verify the health of processes like replication and backup.

There’s a bit more to it than this, of course, but one of our big values to our users is that you don’t need to worry about any of what I just talked about. You get the GitHub developer experience, and we take care of the rest. Through our service, we are growing the GitHub community to include developers at companies who aren’t allowed to store their source at, but don’t want the worry or overhead of providing GitHub Enterprise in-house. We self-host our source code in one of our own managed instances of GitHub Enterprise, so it was exciting to be at Universe not just as a sponsor and partner, but also as a user and member of the GitHub community.

If you’ve managed to make it this far down my post, you may be thinking, “That was fascinating, Robin, but I use and What do you have for me?” We didn’t forget about you. In addition to our managed GitHub Enterprise offering, our squad is also responsible for the integration of GitHub into Bluemix Toolchains, which has just gone beta. With Toolchains, you can choose your favorite devops tools and have them automatically integrate to support the development, deployment, and operation of your apps.

Interested in more information? Check out a tutorial or just dive right in!

Share this post:

Add Comment
One Comment

Leave a Reply

Your email address will not be published.Required fields are marked *

Anthony Cooray

Very useful introduction to how this service is setup. Thanks. Hope we have something like this for all the services.

More Events Stories

Best Hacks with Watson and Bluemix

The Watson Developer Cloud has unleashed the potential for developers around the world to tap into the cognitive power that Watson provides. We have seen apps leveraging Watson’s personality extraction capabilities for enhancing social engagement to apps combining speech detection to deliver interactive experiences. Out of all these applications, some of the most unique and innovative use cases have come out of hackathons, where the creative juices are always flowing. I want to highlight some of the great MVPs that have come out of only a few days of hacking with Bluemix and Watson.

Continue reading

Gartner Symposium 2015: The most magical conference on Earth

This week I had the opportunity to attend the Gartner Symposium conference at Disney World in Orlando, Florida. Like all great conferences, this one had amazing keynotes, speakers, sessions, and entertainment. Of course, to me, if anything is hosted in Disney World, it is instantly 10x more entertaining.

Continue reading

Webinar: Domain-Driven Data – Matching databases to data problems

But there are so many types of databases and data analysis tools from which to choose. Should you use a relational database? How about a key-value store? Maybe a document database? Or is a graph database the right fit? What about polyglot persistence and the need for advanced analytics? Help! In this webinar, we will walk through the development of a customer-facing mobile app. You’ll see how full-stack developers and data scientists can work together to easily move data across databases and development languages so everyone works in their favorite environment without the friction and productivity loss of the past.

Continue reading