Welcome!

Blog Feed Post

Interview: Continuous Integration and Continuous Deployment at GrabCAD

Continuous Integration and Continuous Deployment at GrabCAD

After our Continuous Deployment Meetup last May in Boston we talked a lot with Amos Benninga from GrabCAD about Development Workflows and the internal processes at his company. We were especially interested in how GrabCAD grew over time, how they practice Continuous Integration and Continuous Deployment and which technologies they use to cope with the daily challenges a fast growing company like his is facing.

We have been in touch ever since and a lot of valuable information has been accumulated throughout our ongoing conversations. Amos and us felt it would be a good thing to summarize our talks and publish them as an interview on the Codeship blog.


Name: Amos Beninga
From: Israel, came to Boston 2002 for a startup.
Working for: GrabCAD – Grab is revolutionizing the CAD industry.
Why I started at GrabCAD: The business opportunity and technology was perfect for me
Previously worked for: BladeLogic, Akiban, Ekotrope

Programming Languages used at GrabCAD: Ruby, Java, Scala, Python, JavaScript
Frameworks used at GrabCAD: Rails, AngularJS, various libraries
Cloud Services used at GrabCAD: Amazon


What is the definition of Continuous Integration and Continuous Deployment for you and the company?

Continuous Integration is testing your code all the time and keeping software quality high. It gives you the confidence to get stuff out as quickly and often as possible

Continuous Deployment is basically getting code into production. Things should be easy and repeatable. That’s where Continuous Deployment comes into play. Deployment should not be manual.

When did you use Continuous Integration and Continuous Deployment for the first time?

At my previous company BladeLogic. We automated the whole IT of our customers. Test automation is important. I don’t want to repeat many processes manually. It is definitely worth automating a lot of things. Things that would take long manually are very fast when automated so you should automate a lot. As a developer I want to be “lazy”.

Was Continuous Deployment planned and used from the beginning at GrabCAD?

In the beginning we used Engine Yard for deployment. Over time we used more Scala and Java in our features. This was not supported as well as needed so we moved to AWS and put more emphasis on automation throughout the infrastructure.

We have about 30 production servers in place right now. You commit your code and if it passes all the tests it will make its way into production through our automated system.

Could you explain your workflow? What’s your sprint length, ticketing?

We do Scrum with 1 week sprints. We do our sprint planning at the beginning of the sprint (which does not have to be aligned with the beginning of the week). Then the team starts to work on the features which have been agreed upon. Every feature that is done gets into production. The feature teams decide on their own how much needs to be tested for that feature. Sometimes we push to a staging environment.

When a feature is ready you merge to master and then go to Jenkins and push the “OK DEPLOY” button. We release a couple of times a day.

After the week we do a sprint review.

How do you do release planning?

Once a quarter we do release planning. The first week or two of the quarter is for planning the quarter and then we have about 8 to 9 weeks we can work on the features.

For the initial backlog we do rough estimations. We calculate in points. We look at points and see: “This team has about 600 points left and we know how much the team can still do.”

Who defines the goals?

Goals come from the company level. The goals then get split up into tasks and features. We try to split them up in as small pieces as possible so we can get them into the sprints efficiently. We also do a semi-detailed breakdown with the aforementioned points (e.g. 200 points for this feature)

Which metrics are you using to determine the work within your teams?

It’s not easy to define meaningful metrics for the engineering teams. Take this example:

A feature is ready and live. But then the marketing promotes it and everything else kicks in later. You can validate the result of the feature only later on. The engineering team’s goal is to deliver the feature.

Our KPIs for engineering are

  • velocity (scrum points),
  • number of deployments to production per week and
  • number of regressions per feature/developer.

This gives us confidence in Continuous Deployment.

The sales team’s metrics include

  • sales,
  • virality,
  • engagement and others

Your team works in three locations. How does that work for you?

The development teams are pretty evenly spread throughout three countries. Having everyone in one place has less overhead in communication but due to circumstances we had to have three locations. However, having small teams has a lot of advantages and can compensate for geographical gaps. For example you can easily see where something went wrong and take quick action against any mishappenings.

What’s the team-composition at the different locations?

We have teams in Estonia, the UK and in the USA. We moved away from very functional teams in different locations to cross-functional teams in all locations.

We do have specialized teams owning different sections of the product though. If everyone owns everything, no-one owns nothing.

We do shift our teams every so-often to keep them fresh or when we have a new project and see that a specific person is perfect for that task.

How did the team grow over the times?

The core of the company started in Estonia and the CEO moved to Boston. Our biggest market is in the USA. Today we have the headquarters, the product management teams and the sales teams in the USA.

We were also able to land two key CAD experts in the UK which triggered opening the third location.

What do you use for product management?

We now use JIRA and GreenHopper. Originally we used AgileZen.

When do new developers get productive in a new team?

They can commit to the work within the first week.

What do you think will get you more productive in the future?

We want to make the staging and Continuous Deployment and Testing environment better. These things are massively important for development productivity. We are putting a lot of effort into it in this quarter.

We are also thinking about changing to different languages. In Rails some performance and maintenance tasks are not as we like them to be. We may change some things to Scala or Java to get better performance.

Which strategies do you use to test or measure the performance of your application? Think load testing vs. monitoring.

Currently we don’t do a lot of load testing. We might do it in the future. We use New Relic and our own monitoring. The GrabCAD website grew organically. We have a regular growth pattern now and its quite easy to estimate what’s going to happen in the near future.

How do you grow and scale your application?

We are on and want to stay with cloud providers. Cloud services are totally worth it. Think about IT people, servers, cooling systems and many more. There are a lot of hidden costs you save when you use cloud services.

Have you built your own management tools on top of Amazon or do you use a lot of Amazon providers?

We have some basic scripts. We are using Chef. Amazon instances provide a Chef client. It’s really easy to create the machines and it’s secure.

Getting something like this in place is work intensive and you have to figure out if it’s worth your time in the early days. We planned a lot of overhead to use Chef and built this setup.

We pay far less for our servers than for our office and salaries, so it’s not an issue. If we want to cut costs we just have to improve our code base.


Thanks

We want to thank Amos and GrabCAD for making this interview available to everyone. What are your thoughts on the processes and workflows at GrabCAD? How do you plan your tasks and which technologies are you using?

Let us know in the comments!

Read the original blog entry...

More Stories By Manuel Weiss

I am the cofounder of Codeship – a hosted Continuous Integration and Deployment platform for web applications. On the Codeship blog we love to write about Software Testing, Continuos Integration and Deployment. Also check out our weekly screencast series 'Testing Tuesday'!

Latest Stories
What sort of WebRTC based applications can we expect to see over the next year and beyond? One way to predict development trends is to see what sorts of applications startups are building. In his session at @ThingsExpo, Arin Sime, founder of WebRTC.ventures, discussed the current and likely future trends in WebRTC application development based on real requests for custom applications from real customers, as well as other public sources of information.
Your homes and cars can be automated and self-serviced. Why can't your storage? From simply asking questions to analyze and troubleshoot your infrastructure, to provisioning storage with snapshots, recovery and replication, your wildest sci-fi dream has come true. In his session at @DevOpsSummit at 20th Cloud Expo, Dan Florea, Director of Product Management at Tintri, provided a ChatOps demo where you can talk to your storage and manage it from anywhere, through Slack and similar services with...
The financial services market is one of the most data-driven industries in the world, yet it’s bogged down by legacy CPU technologies that simply can’t keep up with the task of querying and visualizing billions of records. In his session at 20th Cloud Expo, Karthik Lalithraj, a Principal Solutions Architect at Kinetica, discussed how the advent of advanced in-database analytics on the GPU makes it possible to run sophisticated data science workloads on the same database that is housing the rich...
DevOps at Cloud Expo, taking place October 31 - November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA, is co-located with 21st Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. The widespread success of cloud computing is driving the DevOps revolution in enterprise IT. Now as never before, development teams must communicate and collaborate in a dynamic, 24/7/365 environment. There is no time to w...
SYS-CON Events announced today that Massive Networks will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Massive Networks mission is simple. To help your business operate seamlessly with fast, reliable, and secure internet and network solutions. Improve your customer's experience with outstanding connections to your cloud.
In the enterprise today, connected IoT devices are everywhere – both inside and outside corporate environments. The need to identify, manage, control and secure a quickly growing web of connections and outside devices is making the already challenging task of security even more important, and onerous. In his session at @ThingsExpo, Rich Boyer, CISO and Chief Architect for Security at NTT i3, discussed new ways of thinking and the approaches needed to address the emerging challenges of security i...
"We want to show that our solution is far less expensive with a much better total cost of ownership so we announced several key features. One is called geo-distributed erasure coding, another is support for KVM and we introduced a new capability called Multi-Part," explained Tim Desai, Senior Product Marketing Manager at Hitachi Data Systems, in this SYS-CON.tv interview at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
There is a huge demand for responsive, real-time mobile and web experiences, but current architectural patterns do not easily accommodate applications that respond to events in real time. Common solutions using message queues or HTTP long-polling quickly lead to resiliency, scalability and development velocity challenges. In his session at 21st Cloud Expo, Ryland Degnan, a Senior Software Engineer on the Netflix Edge Platform team, will discuss how by leveraging a reactive stream-based protocol,...
FinTechs use the cloud to operate at the speed and scale of digital financial activity, but are often hindered by the complexity of managing security and compliance in the cloud. In his session at 20th Cloud Expo, Sesh Murthy, co-founder and CTO of Cloud Raxak, showed how proactive and automated cloud security enables FinTechs to leverage the cloud to achieve their business goals. Through business-driven cloud security, FinTechs can speed time-to-market, diminish risk and costs, maintain continu...
DX World EXPO, LLC., a Lighthouse Point, Florida-based startup trade show producer and the creator of "DXWorldEXPO® - Digital Transformation Conference & Expo" has announced its executive management team. The team is headed by Levent Selamoglu, who has been named CEO. "Now is the time for a truly global DX event, to bring together the leading minds from the technology world in a conversation about Digital Transformation," he said in making the announcement.
In his session at 20th Cloud Expo, Mike Johnston, an infrastructure engineer at Supergiant.io, discussed how to use Kubernetes to set up a SaaS infrastructure for your business. Mike Johnston is an infrastructure engineer at Supergiant.io with over 12 years of experience designing, deploying, and maintaining server and workstation infrastructure at all scales. He has experience with brick and mortar data centers as well as cloud providers like Digital Ocean, Amazon Web Services, and Rackspace. H...
Internet of @ThingsExpo, taking place October 31 - November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA, is co-located with 21st Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. The Internet of Things (IoT) is the most profound change in personal and enterprise IT since the creation of the Worldwide Web more than 20 years ago. All major researchers estimate there will be tens of billions devic...
"The Striim platform is a full end-to-end streaming integration and analytics platform that is middleware that covers a lot of different use cases," explained Steve Wilkes, Founder and CTO at Striim, in this SYS-CON.tv interview at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
Everything run by electricity will eventually be connected to the Internet. Get ahead of the Internet of Things revolution and join Akvelon expert and IoT industry leader, Sergey Grebnov, in his session at @ThingsExpo, for an educational dive into the world of managing your home, workplace and all the devices they contain with the power of machine-based AI and intelligent Bot services for a completely streamlined experience.
With tough new regulations coming to Europe on data privacy in May 2018, Calligo will explain why in reality the effect is global and transforms how you consider critical data. EU GDPR fundamentally rewrites the rules for cloud, Big Data and IoT. In his session at 21st Cloud Expo, Adam Ryan, Vice President and General Manager EMEA at Calligo, will examine the regulations and provide insight on how it affects technology, challenges the established rules and will usher in new levels of diligence...