Mindjet’s Spigit Migrates from Heroku to IBM Bluemix, Cuts Deployment Time to Seconds
Meet the security and compliance demands of enterprise clients, significantly reduce application deployment time, and cut operational costs.
Successful transition from Heroku to IBM Bluemix in two weeks. Improved productivity with application deployment times of "mere seconds."
RabbitMQ, MongoHQ, AWS S3, Jenkins CI, IBM Containers (Docker-based), IBM DevOps services
Spigit is a subsidiary of Mindjet. It is a California-based cloud software company that provides innovation management using crowdsourcing for the Fortune 500.
The company has helped users from 150+ countries generate over $1B in increased revenue and over 200 patents from their enterprise innovation programs.
(This case study is based on a presentation by Mindjet CTO and IBM’s and Chinh Vo at IBM InterConnect 2016, with additional information from the IBM Bluemix blog.)
Millions served across the world
“The agile and open capabilities of IBM’s Bluemix, including the new Docker-based IBM Container services, helped us cut our deployment times to mere seconds and increase our freedom to do what every startup wants to do more of focus on innovation for our clients.”
Thus said James Gardner, CTO of Mindjet, at IBM InterConnect 2016 in Las Vegas. James, along with IBM’s Jay Allen and Chinh Vo, offered attendees a fascinating look at how it migrated its Spigit application from Heroku to Bluemix with help from IBM’s jStart team.
Spigit provides crowdsourcing software for innovation use by companies in the systems integration, financial services, insurance, pharmaceutical, healthcare, and technology industries. Spigit was a company founded in 2009 in San Francisco, and acquired by Mindjet in 2013.
Today, Spigit has approximately 4.5 million users across 150 countries generating over $1 billion increased revenue from their innovation programs. Its users include IBM, Capgemini, Cigna, Citibank, Metlife, Pfizer, and United Healthgroup.
“Spigit is responsible for all of the operations and management of the infrastructure,” according to James. “Its users require enterprise-class scale and security, as Spigit houses a lot of intellectual property (IP). Furthermore, two-thirds of Spigit customers deploy to their entire global employee base.”
“Spigit is responsible for all of the operations and management of the infrastructure.”
—James Gardner, CTO, Mindjet
IBM jStart—the team that assisted Spigit with the migration—typically focuses on emerging technologies that have commercial potential within 12–18 months. According to IBM, this allows jStart to keep ahead of the adoption curve, while being prepared for client engagements and partnerships. The team mainly works with predictive and prescriptive analytics, cognitive computing, cloud technologies, big data, social data, and mobile platforms.
There was also a cooperative effort between jStart and the Bluemix Garage team. IBM calls it “a consultancy with a startup DNA empowering companies, large and small, to design and build engaging applications using IBM Design Thinking, Lean Startup, and Agile DevOps.”
The need for change
James told his audience the Spigit initiative originally started in 2010 with Heroku, “which has the most extraordinary developer experience you can imagine. Attracted by its ease of use, “we thought now this is going to be fantastic,” he related. However, as the experience of moving from single-tenant to multi-tenant production environments emerged, the company’s more challenging customers were looking for security reviews, audits, SLAs, and other sophisticated aspects of enterprise applications.
The company then turned to IBM and Bluemix. James said doing so ended the existing customers worries, “but we began to realize that we were going to need more than hosting. We were going to need certain machine learning capabilities.”
“We were going to need the ability to analyze text in certain ways. We’ll then have to start building recommendation engines just like Netflix was doing.”
Spigit needed a vendor that could provide the entire infrastructure, so that it didn’t have to handle the operations side of the business. “We are only a 300-person company, so it’s not exactly that we can invest in massive new computer science, massive new crowd science, and re-platforming our applications to scale all at once,” James noted.
“IBM had Watson.” —James Gardner, CTO, Mindjet
IBM Bluemix’s catalog of services had the potential to meet Spigit’s needs, according to James. “IBM had Watson. At the time, Watson was beginning to be a thing,” he explained. “We thought could it be possible that we can get this shortcut by moving from Heroku to Bluemix and then starting to rely on services out of Bluemix to do this stuff.”
The migration process
Jay described an important factor in the migration process that started a year ago which was, “the key part of our migration—we did this in one day—was the migration of the codebase. If the codebase won’t move, you have a big set of problems.”
“The codebase is the main thing. The first day we were there about a year ago, by the end of the day, we had the code from Heroku running on Bluemix,” said Jay. “Now it was not production ready—it was one instance. We didn’t have an auto scaling service attached to it. There was a cache of things that needed to be done to make it horizontally scale but the most important thing is—does the code run on Bluemix? Yes—it was done in one day.”
“The key part of our migration—we did this in one day—was the migration of the codebase
—Jay Allen, IT Architect, IBM
Spigit is a MEAN application: MongoDB, Express, AngularJS, and Node.js. It originally used Heroku add-ons for RabbitMQ, Mongo, and Auth, as well as AWS S3 for file storage and New Relic for monitoring.
Bluemix’s application-centric nature, with being loosely-coupled services, allows for easy mix and matching and swapping in and out. Bluemix services were able, over time, to replace the Heroku services used in the original POC (proof of concept). Once integrated with Bluemix, high-value IBM services could begin—monitoring, scaling, and IBM DevOps, according to James.
Chinh noted one instance where they saw Bluemix outperforming Heroku which was, “from a load testing perspective, there was an interesting scenario we went through there.”
“We used the Load Impact service that came with the Bluemix layer. From there we did the initial load testing for performance compared to the Heroku side of things,” said Chinh. “From initial testing at that point and time, the profile showed that at the beginning, we were getting the same type of response time. As we moved up to the 50 to 250 range, Bluemix handled that better than Heroku.”
“As we moved up to the 50 to 250 range, Bluemix handled that better than Heroku.”
—Chinh Vo, Chief Architect, IBM
- Successfully migrated application in two weeks
- RabbitMQ (CloudAMQP) on Bluemix
- MongoHQ on Heroku
- AWS S3
- Created a delivery pipeline that utilized Jenkins and DevOps Services
- Load testing
- Horizontal scaling of Node.js application
- Application deployment times cut down to mere seconds
- IBM Containers on Bluemix helped development teams operate more efficiently, innovate with speed, improve engagement, and boost productivity.
Over the course of the migration process, Spigit and IBM faced a number of issues and came up with workarounds:
- Build containers in DevOps Services did not support outgoing connection on all ports.
- DevOps team made changes to support outgoing connections.
- DevOps Services pipeline maintenance
- Reorganization and deletion of stages
- E-mail notification on failures
- Limited access to application debugging
- Cannot SSH into a container
- Improved logging—logs can be captured and analyzed, but there is a need for more robust monitoring and analytics.
- NPM (node package manager) builds did not cache modules.
- Support has been added to DevOps Services.
Here is an overview of the Spigit crowdsourcing platform.
About the speakers