DevOps, MicroServices and Java

25 August 2016   Laetitia Jovanovic
DevOps, MicroServices and Java

Gogo @ Voxxed

How we embraced DevOps, micro services on Java based architecture and cutting edge frontend stack?

It was a quest. For Gogo it implied changes on multiple levels, including cultural shift. For InterVenture team, just starting to operate as a part of Gogo, it was a great opportunity to take a deep dive in AWS world, explore options, propose solutions, and drive the change forward.

With a great DevOps team onboard, continuous delivery became reality. We started with Asgard, and got it replaced by Netflix Spinnaker on our road of ever improving deployment pipeline.

While Gogo still has legacy systems and services running in the data center (fighting the dark side), many of existing ones and all green field projects/products have moved to/started with preferred tooling.

Can you tell us more on backend technology set in use?

It’s micro-services architecture running on cloud. We rely on AWS managed services, thinking towards making everything cloud agnostic. Our standard application stack is based on Spring Boot, Spring Cloud and Netlix OSS (Zuul, Eureka, Archaius, Ribbon, Hystrix etc.) Data is stored in variety of storages, depending on the best match (MariaDb, Postgresql, MS Server, Memcached, Amazon’s DynamoDb, Elasticsearch). By combining proven and cutting edge technologies, we are ready to embrace the change with increased confidence about tomorrow.

Quality Assurance become Quality Engineering with quality engineers coding Java based tests alongside the developers.

How about frontend?

ES6, React, Flux, Redux, Webpack, Mocha, Enzyme, and that’s not where the list ends. But it’s not the tool set that makes your code great, it’s how you use it.

Team was founded last fall, and we all know 2015 was a big year for Facebook’s React, with many large companies adopting it in production. Trend has continued throughout 2016, and we took the bait - started using React as a view layer on our newly developed micro-services platform, combined it with Flux for data flow, and moved to Redux along the way. All this made it easier to build and maintain stateful UI components (encompassing the template and JS logic), and to reason about data flow in our apps.

Universal rendering and React Native are still ahead of us. Combined with product growth and upcoming road map challenges, we are looking forward to quests such as these.

What are the next challenges?

With deployments going global (currently single region), and complexity on handling PCI and SOX in the Cloud, we still need to deal with some big questions and bets on containers as we move forward.

Our long term expectation is we develop against production with lots of small changes being pushed all the time. This is a model that other companies have been able to reach, it’s some pain getting there but once you are, teams and companies seem to be in a good place. Raising standards and culture of discipline are stepping stones on our way to this change.

Back to list