CloudSight Tech Update: Exciting Announcements

Chris Weilemann
CloudSight
Published in
3 min readOct 13, 2017

--

At CloudSight, we live, breathe, and in the case of blueberry muffins (not chihuahuas) we eat Computer Vision and Machine Learning — it’s at the core of what we do. What’s also at the core is the CloudSight API — the central hub linking our Computer Vision / Machine Learning applications to our databases, customers, and everything in between. We haven’t talked much about the CloudSight API, but a lot has happened in the last year to help both CloudSight and the CloudSight API grow. So, what’s happened?

Our internal search application has gone from taking well over 10 milliseconds per request to less than 1 millisecond per request…

CloudSight and the CloudSight API wouldn’t be possible without our team. Everyone at CloudSight plays a critical role in our business, and over the last year, our Engineering and Data Science teams have grown from three people to nine people focusing on the CloudSight API and the Computer Vision and Machine Learning the CloudSight API relies on. Our diverse team is spread across the globe, with engineers in Europe, Asia, Australia, and North America, leading us to enhance our communication and coordination while allowing us to monitor the CloudSight API and its services around the clock.

Behind the scenes, we’ve done a lot of refactoring of our codebase to improve performance and reliability. The CloudSight API is a Ruby on Rails application, which until not long ago, was still running on early versions of Ruby 2 and Rails 4. We’ve since upgraded to Ruby 2.4 and Rails 5, allowing us to upgrade to some of the latest RubyGems and utilize the performance and features available in Ruby 2.4. We’ve also been able to leverage some of the awesome features of Rails 5, including ActionCable and (amazingly!) Rails::Api. We’ve upgraded our background and scheduled processing, our serialization of the JSON processed and returned by our API, and have implemented state machines to help in different steps of image processing.

We are refactoring the CloudSight API into smaller, lighter, and faster microservices…

We’ve also made significant infrastructure improvements over the last 12 months. Aside from acquiring a NVIDIA DGX-1, we have done significant analysis on our cloud infrastructure, including performance tuning the virtual machines we utilize, and implementing new best practices as defined by our cloud provider. Our internal search application has gone from taking well over 10 milliseconds per request to less than 1 millisecond per request, all while handling an increase in volume and incoming request rates. We’ve also created our own image resizing application, which resizes incoming images on an average of 16 milliseconds while handling our entire volume of incoming images to the CloudSight API.

Finally, we’ve begun projects to implement the future of the CloudSight API. We’ve recently moved our API documentation provider over to Apiary, allowing us to provide more examples of how to use our API and forcing us to review our API documentation for accuracy and correctness. We’ve also moved our internal Q&A forum to Stack Overflow utilizing the ‘cloudsight’ tag, enabling the community of millions of developers to help CloudSight API users with any issues they run into. We are implementing versioning of the CloudSight API to follow best practices of the industry when writing APIs. Finally, we are refactoring the CloudSight API into smaller, lighter, and faster microservices, which will allow us to make more significant changes with less downtime, utilize different frameworks as they make sense across different aspects of the CloudSight API, and completely refactor the inner workings of the CloudSight API while remaining transparent to the end user.

We are very excited for the future of CloudSight and the CloudSight API. Our Engineering and Data Science teams have been working extremely hard to provide the best experience possible for our clients and end users, all while maintaining a creative, diverse, and fun work environment for everyone. Personally, I’m excited to continue using our blog as a platform to communicate what’s going on with our technology at CloudSight and to highlight new features of the CloudSight API.

--

--