Welcome!

@DevOpsSummit Authors: Zakia Bouachraoui, Elizabeth White, Yeshim Deniz, Liz McMillan, Pat Romanski

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
CloudEXPO | DevOpsSUMMIT | DXWorldEXPO Silicon Valley 2019 will cover all of these tools, with the most comprehensive program and with 222 rockstar speakers throughout our industry presenting 22 Keynotes and General Sessions, 250 Breakout Sessions along 10 Tracks, as well as our signature Power Panels. Our Expo Floor will bring together the leading global 200 companies throughout the world of Cloud Computing, DevOps, IoT, Smart Cities, FinTech, Digital Transformation, and all they entail. As your enterprise creates a vision and strategy that enables you to create your own unique, long-term success, learning about all the technologies involved is essential. Companies today not only form multi-cloud and hybrid cloud architectures, but create them with built-in cognitive capabilities.
For far too long technology teams have lived in siloes. Not only physical siloes, but cultural siloes pushed by competing objectives. This includes informational siloes where business users require one set of data and tech teams require different data. DevOps intends to bridge these gaps to make tech driven operations more aligned and efficient.
Daniel Jones is CTO of EngineerBetter, helping enterprises deliver value faster. Previously he was an IT consultant, indie video games developer, head of web development in the finance sector, and an award-winning martial artist. Continuous Delivery makes it possible to exploit findings of cognitive psychology and neuroscience to increase the productivity and happiness of our teams.
Atmosera delivers modern cloud services that maximize the advantages of cloud-based infrastructures. Offering private, hybrid, and public cloud solutions, Atmosera works closely with customers to engineer, deploy, and operate cloud architectures with advanced services that deliver strategic business outcomes. Atmosera's expertise simplifies the process of cloud transformation and our 20+ years of experience managing complex IT environments provides our customers with the confidence and trust that they are being taken care of.
Serveless Architectures brings the ability to independently scale, deploy and heal based on workloads and move away from monolithic designs. From the front-end, middle-ware and back-end layers, serverless workloads potentially have a larger security risk surface due to the many moving pieces. This talk will focus on key areas to consider for securing end to end, from dev to prod. We will discuss patterns for end to end TLS, session management, scaling to absorb attacks and mitigation techniques.