Welcome!

Java IoT Authors: Yeshim Deniz, Elizabeth White, Liz McMillan, Zakia Bouachraoui, Pat Romanski

Related Topics: @DevOpsSummit, Java IoT, Linux Containers, Containers Expo Blog, FinTech Journal

@DevOpsSummit: Blog Post

Our Favorite Continuous Delivery Tools By @TrevParsons | @DevOpsSummit [#DevOps]

Identifying and tracking issues as easily as possible

We're working hard in the Logentries towers to integrate our continuous delivery tools, so we can identify and track issues as easily as possible.

This saves us time that we can spend on important things like adding new features (or playing pool!). We use a lot of tools to manage our development cycle, and we've made them interact too.

We use JIRA (by Atlassian) to plan our work, Gitlab to manage our code, and Jenkins for our continuous integration.

Does Mr Jenkins Approve?

Merge requests (a.k.a. a pull request in github) aren't accepted in Logentries until Mr Jenkins is happy with it.

Mr Jenkins is listening, and whenever a new merge request is submitted, he'll go through it with a fine-tooth comb. If he's not happy, he'll reject it.

People don't like Mr Jenkins, he's pedantic.

Jenkins

Not only does he perform all of our tests (which the developer will have run before submitting a merge request, but you never know...), he also performs style checks and static analysis depending on the language:

Once he's done with his tests, Mr. Jenkins will vote on the merge request:

continuous delivery tools Jenkins message

Another failed build sir. Shall I prepare afternoon tea?

Implementation
This integration is actually very simple to implement thanks to a great Jenkins plugin: theGitlab Merge Request Builder Plugin. Once you create Mr. Jenkins' account on your gitlab site and install the plugin, you can have automatic builds running in 5 minutes.

Why You Should Bother
If you run Jenkins builds against code before it gets merged into a central branch, it can be fixed before it gets accepted!

You have to work on Stories

JiraGitlab

<->

We don't think we're unique in planning our work.

We hope we're not unique in planning our work...

We use JIRA to write stories which our developers work on, along with the occasional bug, and we've integrated our JIRA stories into Gitlab.

Gitlab can be customised to perform pre-receive checks on any commits pushed to the server.

We've written a Ruby script that checks every commit pushed to our gitlab server, and confirms the commit message mentions a JIRA issue that's in progress or blocked.

If no issue is mentioned, the push is rejected. Ouch.

If an issue is mentioned, the script goes ahead and comments on the mentioned JIRA issue to say that a commit has been made.

cd message in Gitlab

Mr Jenkins always cleans up after himself, as any good butler should.

  • Now we can track all the work that's been done on a story in JIRA.
  • Now we can see the JIRA issue that each commit relates to in Gitlab.

Awesome.

Implementation
Jira has a well-documented API which is pleasant to use.

You need to update your pre-receive hook file in:

${Git installation directory}/gitlab-shell/hooks/

Then, check if the commit message mentions a jira issue

$oldrev = ARGV[1]$newrev = ARGV[2]
revision_list = IO.popen(%W(git rev-list ^#{$oldrev} #{$newrev})).read
revision_list.split("\n").each do |rev|commit_msg = IO.popen(%W(git log -format=%B -n 1 #{rev})).readissues = commit_msg.scan(/(jira[- ]?\d+)/i)if issues.empty?puts "No issue mentioned"exit 1endend

Once you've found issue IDs, check if the issues are open using the JIRA api, and then post a comment. These steps are long, but not complicated.

our favorite continuous delivery tools

An Easy Shortcut for Lazy Developer
It can be a bit of a pain remembering the exact code of your issue (and typing it in every time), so our developers just put the JIRA issue ID in the branch name and use a  handy script we found here to automatically put the branch name in each commit message.

BRANCH_NAME=$(git symbolic-ref -short HEAD)if [ -n "$BRANCH_NAME" ] && [ "$BRANCH_NAME" != "master" ]; thensed -i.bak -e "1s/$/ [$BRANCH_NAME]/" $1fi

Why You Should Bother
Having your git push rejected seems like a huge irritation, but most people are used to a little rejection(#risqué joke), and after a couple of failures, you'll remember to mention the right ID.

This results in a huge amount of time saved for planners, because they now know exactly what's being done on that. We also have a great, interlocked, history between our revision control system and our planning system.

All Over the Shop
All of this data is a pain to manage and compare when it's spread across so many products.

Happily enough, we have just the ticket to fix that... There'll be another blog post soon on how we've integrated our CD tooling into Logentries and how we're using it.

More Stories By Trevor Parsons

Trevor Parsons is Chief Scientist and Co-founder of Logentries. Trevor has over 10 years experience in enterprise software and, in particular, has specialized in developing enterprise monitoring and performance tools for distributed systems. He is also a research fellow at the Performance Engineering Lab Research Group and was formerly a Scientist at the IBM Center for Advanced Studies. Trevor holds a PhD from University College Dublin, Ireland.

IoT & Smart Cities Stories
Cloud-enabled transformation has evolved from cost saving measure to business innovation strategy -- one that combines the cloud with cognitive capabilities to drive market disruption. Learn how you can achieve the insight and agility you need to gain a competitive advantage. Industry-acclaimed CTO and cloud expert, Shankar Kalyana presents. Only the most exceptional IBMers are appointed with the rare distinction of IBM Fellow, the highest technical honor in the company. Shankar has also receive...
DXWorldEXPO LLC announced today that ICOHOLDER named "Media Sponsor" of Miami Blockchain Event by FinTechEXPO. ICOHOLDER gives detailed information and help the community to invest in the trusty projects. Miami Blockchain Event by FinTechEXPO has opened its Call for Papers. The two-day event will present 20 top Blockchain experts. All speaking inquiries which covers the following information can be submitted by email to [email protected] Miami Blockchain Event by FinTechEXPOalso offers sp...
DXWordEXPO New York 2018, colocated with CloudEXPO New York 2018 will be held November 11-13, 2018, in New York City and will bring together Cloud Computing, FinTech and Blockchain, Digital Transformation, Big Data, Internet of Things, DevOps, AI, Machine Learning and WebRTC to one location.
@DevOpsSummit at Cloud Expo, taking place November 12-13 in New York City, NY, is co-located with 22nd international CloudEXPO | first international DXWorldEXPO 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 t...
Headquartered in Plainsboro, NJ, Synametrics Technologies has provided IT professionals and computer systems developers since 1997. Based on the success of their initial product offerings (WinSQL and DeltaCopy), the company continues to create and hone innovative products that help its customers get more from their computer applications, databases and infrastructure. To date, over one million users around the world have chosen Synametrics solutions to help power their accelerated business or per...
When talking IoT we often focus on the devices, the sensors, the hardware itself. The new smart appliances, the new smart or self-driving cars (which are amalgamations of many ‘things'). When we are looking at the world of IoT, we should take a step back, look at the big picture. What value are these devices providing. IoT is not about the devices, its about the data consumed and generated. The devices are tools, mechanisms, conduits. This paper discusses the considerations when dealing with the...
Charles Araujo is an industry analyst, internationally recognized authority on the Digital Enterprise and author of The Quantum Age of IT: Why Everything You Know About IT is About to Change. As Principal Analyst with Intellyx, he writes, speaks and advises organizations on how to navigate through this time of disruption. He is also the founder of The Institute for Digital Transformation and a sought after keynote speaker. He has been a regular contributor to both InformationWeek and CIO Insight...
Machine learning has taken residence at our cities' cores and now we can finally have "smart cities." Cities are a collection of buildings made to provide the structure and safety necessary for people to function, create and survive. Buildings are a pool of ever-changing performance data from large automated systems such as heating and cooling to the people that live and work within them. Through machine learning, buildings can optimize performance, reduce costs, and improve occupant comfort by ...
Digital Transformation is much more than a buzzword. The radical shift to digital mechanisms for almost every process is evident across all industries and verticals. This is often especially true in financial services, where the legacy environment is many times unable to keep up with the rapidly shifting demands of the consumer. The constant pressure to provide complete, omnichannel delivery of customer-facing solutions to meet both regulatory and customer demands is putting enormous pressure on...
Bill Schmarzo, Tech Chair of "Big Data | Analytics" of upcoming CloudEXPO | DXWorldEXPO New York (November 12-13, 2018, New York City) today announced the outline and schedule of the track. "The track has been designed in experience/degree order," said Schmarzo. "So, that folks who attend the entire track can leave the conference with some of the skills necessary to get their work done when they get back to their offices. It actually ties back to some work that I'm doing at the University of San...