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

Share this post:

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!

More Events stories
April 16, 2019

Webinar: 3 New Ways to Get to Containers with WebSphere ND

For many enterprises, their inventory of WebSphere apps represent a significant investment that they want to preserve and extend via containerization. This webinar introduces the benefits of container-based development and operations and explains how to reduce the uncertainty and risk involved in migrating WebSphere-based workloads to the cloud.

Continue reading

April 12, 2019

IBM Cloud to Showcase How SAP Partners Can Grow Revenue at SAP Global Partner Summit 2019

This year, IBM Cloud is a platinum sponsor of the SAP Global Partner Summit. Check out what we have in store.

Continue reading

April 10, 2019

Learn How to Accelerate Your SAP Journey to Hybrid Cloud at SAPPHIRE NOW

Learn how to accelerate your SAP journey to hybrid cloud with the IBM Cloud team at SAPPHIRE NOW—May 7–9, 2019, in Orlando, Florida.

Continue reading