Welcome!

@DevOpsSummit Authors: Jason Bloomberg, Pat Romanski, Yeshim Deniz, Elizabeth White, Liz McMillan

Related Topics: @DevOpsSummit, Java IoT, @CloudExpo

@DevOpsSummit: Blog Feed Post

SBT, Scrooge, Intellij and You By @VictorOps | @DevOpsSummit [#DevOps]

We are going through the process of overhauling the serialization framework that we use for inter & intra process communication

How to Set Up a Playdate Between Scala, Thrift, Scrooge, SBT and Intellij
By Nick Isaacs

Here at VictorOps, we are going through the process of overhauling the serialization framework that we use for inter and intra process communication. We evaluated several great options including Kryo (and its Scala companion Chill), Protobuffers, and Thrift.

In the process, we put together a little test project to help us decide which of these choices was right for us. Testing Thrift posed some challenges as the tooling, while quite mature, wasn’t quite as plug-n-play with our local development environment as we would have liked. The following instructions assume a basic knowledge of the Scala/SBT framework, Thrift, and (optionally) Intellij.

What is needed:

Steps:

1. Create a new project with a build.sbt file and add the following lines:

libraryDependencies ++= Seq( "org.apache.thrift" % "libthrift" % "0.8.0", "com.twitter" % "scrooge-core_2.11" % "3.17.0" )

com.twitter.scrooge.ScroogeSBT.newSettings unmanagedSourceDirectories in Compile += baseDirectory.value / "target" / "scala-2.11" / "src_managed"

This will add the Thrift and Scrooge dependencies to your sbt project.

2. If you do not already have a project/plugins.sbt file, create one and add the following line:

addSbtPlugin("com.twitter" % "scrooge-sbt-plugin" % "3.14.1")

3. Create a new directory to hold your Thrift files (by default, Scrooge will check in src/main/thrift, which worked fine for us)

4. Define some Thrift files, if you want, here is a simple example:

namespace java com.example.thrift.java
#@namespace scala com.example.thrift.scala

typedef list<string> friendList

struct NastyCaseClass {
1: string firstName,
2: string lastName,
3: bool ownsPetOtter,
6: friendList listOfFriends,
}

5. By default, Intellij marks everything in the target/ directory as ‘excluded’ for builds. We are gonna have to do something about that.

  • Open up the “project structure” window & click “modules in the right hand menu

Screenshot 2015-03-03 15.16.27

  • Click on the name of your project, you should see the directory structure appear

Screenshot 2015-03-03 15.17.05

  • Click “target” and uncheck “Excluded”

Screenshot 2015-03-03 15.17.13

  • Expand “target” and mark all subfolders as “Excluded” except for scala-version.no

screenshot_2015-03-05_13.05.49

  • Expand “scala-version.no” and mark all folders as “Excluded” except for “src_managed” which you should mark as “Source”

Screenshot 2015-03-03 15.18.30

6. Run an SBT clean, scrooge-gen, and compile. All generated files should now be visible to both SBT and Intellij (hooray for syntax highlighting)

Hope this helps anyone in a similar situation. Another thing to note was that updating *.thrift files would cause SBT to become a bit “unhappy”. To rectify this, simply run a scrooge-gen and a clean after making edits.

Happy serializing  :)

The post SBT, Scrooge, Intellij and You appeared first on VictorOps.

Read the original blog entry...

More Stories By VictorOps Blog

VictorOps is making on-call suck less with the only collaborative alert management platform on the market.

With easy on-call scheduling management, a real-time incident timeline that gives you contextual relevance around your alerts and powerful reporting features that make post-mortems more effective, VictorOps helps your IT/DevOps team solve problems faster.

@DevOpsSummit Stories
"Our strategy is to focus on the hyperscale providers - AWS, Azure, and Google. Over the last year we saw that a lot of developers need to learn how to do their job in the cloud and we see this DevOps movement that we are catering to with our content," stated Alessandro Fasan, Head of Global Sales at Cloud Academy, in this SYS-CON.tv interview at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
Andi Mann, Chief Technology Advocate at Splunk, is an accomplished digital business executive with extensive global expertise as a strategist, technologist, innovator, marketer, and communicator. For over 30 years across five continents, he has built success with Fortune 500 corporations, vendors, governments, and as a leading research analyst and consultant.
Hardware virtualization and cloud computing allowed us to increase resource utilization and increase our flexibility to respond to business demand. Docker Containers are the next quantum leap - Are they?! Databases always represented an additional set of challenges unique to running workloads requiring a maximum of I/O, network, CPU resources combined with data locality.
The current age of digital transformation means that IT organizations must adapt their toolset to cover all digital experiences, beyond just the end users’. Today’s businesses can no longer focus solely on the digital interactions they manage with employees or customers; they must now contend with non-traditional factors. Whether it's the power of brand to make or break a company, the need to monitor across all locations 24/7, or the ability to proactively resolve issues, companies must adapt to the new world.
In his keynote at 18th Cloud Expo, Andrew Keys, Co-Founder of ConsenSys Enterprise, provided an overview of the evolution of the Internet and the Database and the future of their combination – the Blockchain. Andrew Keys is Co-Founder of ConsenSys Enterprise. He comes to ConsenSys Enterprise with capital markets, technology and entrepreneurial experience. Previously, he worked for UBS investment bank in equities analysis. Later, he was responsible for the creation and distribution of life settlement products to hedge funds and investment banks. After, he co-founded a revenue cycle management company where he learned about Bitcoin and eventually Ethereum.