Tech - 21/05/2017

#io17– Day three, final day

Remember your favorite app and its registration or login process there? Big registration forms and long-winded login flows are painful. To learn more about this important topic I participated in a session about Android APIs to improve registration, login and payment forms. This presentation kicked off the day. And it did not get boring afterwards. As Google announced official support for the Kotlin language, I had to visit some Kotlin talks. These were quite interesting, but we need to evaluate if and how changing the language would help us.

 

 

Between sessions, there was time to checkout cool demos by the Project Tango-Team – Augmented Reality and Daydream-and Virtual Reality at its best. The nice thing about that was, that the demos were mixed between playing around and asking questions about the technical foundation.

Last but not least, I used the time to talk to many Google Devs about the upcoming changes for Android O, as well as clarifying some issues we had in our app. Interesting are the new limits on apps, running in background to get location updates. The goal of the limits is to prevent apps draining too much battery. Adding limits is not all for Android O. As the notification system has strongly evolved, users have more control on how and when notifications are shown. App designer and developer will need to adjust in future, just like our teams will think about it.

After three days of exciting talks, discussions, meetings with different people, coding and bug hunting sessions, I am really happy to fall into bed. Thank you all for this great event and the great support from the teams at Google and PAYBACK.

@slashingsash

Tech - 19/05/2017

#io17 – Day two

Today we did a deep dive into different technologies. Product managers and developers from Google showed us how easy it is, to write apps for the Google assistant and how to use them with Google Home and Home Automation. They challenged the whole developer community to come up with great ideas and start developing in this new area.

As a present, a Google Home Kit was handed out to every participant. I am really looking forward using it at home in my apartment. Hopefully it will work in Germany so I can develop some cool smart home apps 🙂

 

 

To ease the UX development and improve the speed of build systems, some new features in Android Design Tools were presented, as well as updates to the gradle build system. With that in mind, I hope to be prepared to cope with every UX idea which is coming up. A fast building time is crucial for that. Especially if building apps for different countries, it shouldn’t take too long. Otherwise the development would be very inefficient and devs would get mad after a while.

My personal highlight was meeting the firebase team to hunt a bug, we have reported in their libs some time ago. We put our heads and laptops together and finally found a solution, which will be published for “the whole world” in one of the next releases. #happy

@slashingsash

Tech - 18/05/2017

#io17 – Engage!

The day we were waiting for has finally passed by. It has been an awesome day! Two keynotes, one more general and a specific one for developers, kicked of the Google I/O 2017. Sundar Pichai and many other Googlers presented the next big thing: Nearly every product in the future will be based on AI and machine learning. Therefore existing SDKs will be adapted and lightweight machine learning libs (like Tensorflow light) will empower mobile developer to use some sort of AI in their apps. Additionally some special hardware in the next generation of mobile devices will speed up the whole AI training and computer vision mechanism.

 

Thereby images can be interpreted automatically and a user can ask Google which POI is shown on a specific image. Or Google can be asked by different people to “call mum”, which calls the individual number of each mum. Besides that, Kotlin was announced as a officially supported programming language for Android development. We will see how this is helping or challenging our future development.

Support for our current development techstack and product could be found in many areas, too. On the technical site, new lifecycle methods were presented, as well as new Android Studio profiler for helping us to find network and memory issues in our app. On the product site, new notification-mechanism and the Android O operating system gives the user more control about notifications and protects him from apps draining too much battery.

 

However, most awesome are the discussions and conversations with the Google devs and other mobile developers from all over the world. Common issues could be discussed and new ideas exchanged.
To strengthen these friendships between all the attendees of the Google I/O, the day had to end with a special evening. Arcade games, bands, VR immersive movies and a night market with cuisines from around the world.

CU at #io17

@slashingsash

Tech - 17/05/2017

#io17 – Getting up at 6am

A „shocking“ mail arrived yesterday evening: “Badge pickup starts at 7am, based on a first-come, first-served mechanism”. However, the Google I/O is surely a valid reason for developers around the globe to get up early. So I got up and took a car to this year’s location, the Shoreline Amphitheatre.

When I arrived, I was kind of expecting long queues and crowded registration desks. But none of them. After three minutes I got my badge, as well as a goodie bag containing t-shirt, sun lotion (!), sunglasses (!) and a water bottle (!). Nice 🙂

 

The rest of the day was used to explore some other tech companies inside Silicon Valley. Many green avenues, biking trails and roads, broken up by high tech buildings of like Microsoft, Waze and Apple.

I finished the day by visiting the old and the new Apple Campus to get another impression than only the Google one. However, they have one thing in common: Nice places! (Although a Theresienwiese is missing^^): Looking forward to “Laptop and Lederhosen”.

CU at #io17

@slashingsash

Tech - 16/05/2017

Google #io17 – Sascha goes to California

„Congratulations – You have won“, that was the headline jumping into my point of view as I opened my mail inbox. I was some kind of shocked, that my Gaussian spam filter had not blocked this mail. So I immediately marked the message as SPAM. Done!! Spam was removed from the inbox. Ready to continue work…..

.. Really? …
Luckily, I decided to have a closer look at the presumed SPAM mail.
It was written very nicely in English, with correct spelling and elaborate grammar.
.. Strange …
Is this really true? I knew, that I have applied for a Google I/O Ticket some weeks before and that I had to fill out plenty of questions during the admission process. But I have never thought of actually getting the invitation. I was proven wrong. And a money withdrawal by Google showed me, that the ticket is for real.

I was so happy about it, so that my productivity immediately boosted up, ^^ yes indeed. In fact, the whole team was really keen on talking to the Google devs about some bugs we have found in their libs as well as learning more about new exciting Google technologies.
Therefore we prepared a bunch of questions and tried to find the best matching sessions.

Let’s get started! Engage!

@slashingsash

Tech - 09/02/2017

First Jenkins Area Meetup in Munich @ PAYBACK

On Monday, 6th February 2017 we had our first Jenkins Area Meetup in Munich. We were quite surprised how many local experts are around here. They even came from Ingolstadt just to join the JAM Kickoff. One of the main goals for us was to find out what the attendees are interested in. Besides the obvious social networking part to share and learn about Jenkins technologies, we asked what they would love to hear about in further JAM Sessions. Here are the results:

 

People were also highly interested in some specific workshops for Jenkins Job DSL and our own Framework “V-DSL”. Please stay tuned until we can release it into the wild under an Open-Source licence. To get a sneak peak about what we did, check out the slides and presentation on Rule Jenkins with Configuration as Code in the meanwhile. Another topic was advice about how to build a rock stable Jenkins environment.

Startup Jenkins with specific JVM options and System Properties

-Xms4096m -Xmx4096m
-XX:NewSize=2048m -XX:MaxNewSize=2048m
-XX:ParallelGCThreads=4 -XX:ConcGCThreads=4
-Dhudson.slaves.ChannelPinger.pingInterval=-1

This is the base setup you should go with. 4 gigs of RAM should be enough for any use case, nothing more. If you are interested in the details here, check out another great Jenkins talk: So, You Want to Build the World’s Biggest Jenkins Cluster? Keep in mind, that if you encounter significant performance decrease, activate JMX in order to keep an eye on your JVM running Jenkins. To generally enhance your overall Jenkins experience is setting proper System Properties. Check out the complete list to see what is possible. For example:

-Dhudson.model.UpdateCenter.never=true
-Dhudson.security.ExtendedReadPermission=true

The most significant one we stumbled upon was a fix for a major groovy memory leak. This is fixed in groovy version 2.4.8, but unfortunately, Jenkins core runs 2.4.7 in the current LTS version (v2.32.2). We recommend to set the following startup parameter as a workaround if you are excessively running groovy scripts (e.g. DSL or pipeline)

 -Dgroovy.use.classvalue=true

Have full control on other system settings with Post-initialization scripts

The simplest example can be found in the documentation, but this opens up a lot of other possibilities too. For example we heavily struggled with Jenkins SECURITY-170, where arbitrary build parameters were disabled. Either you enable them back one by one, or you are aware of the risks and enable them back again and migrate affected jobs calmly. Same thing with Jenkins SECURITY-95. If you struggle with displaying issues with e.g. internally scripted tooling for Jenkins expand the Context Security Policy settings accordingly, or disable them. Keep in mind that simply disabling these security features on an internet facing Jenkins environment is a bad idea obviously.

 // SECURITY-170
 System.setProperty('hudson.model.ParametersAction.keepUndefinedParameters', 'true')
 // SECURITY-95
 System.setProperty('hudson.model.DirectoryBrowserSupport.CSP', '')

Update on Static Code Analysis Plug-ins

For the second talk, we had special guest Prof. Dr. Ullrich Hafner from the University of applied sciences Munich, who is the maintainer of the Static Code Analysis Plugin. He started developing this plugin round about 10 years ago and gave us a small forecast what might come up in the next 10 years, depending on personal time and engagement of his students working on bachelor and master thesises on this topic. Upcoming in one of the next releases is for example an improved recognition of warnings based on Abstract Syntax Tree comparison. Also a more modern warnings report view in Jenkins is planned. Please report any bugs on Jenkins bugtracker and do not hesitate to raise pull requests.

Follow up
A big “Thank you” to all who joined the JAM Kickoff. Many interesting talks took place especially after the keynotes and we are looking forward to host the next Meetup soon. Join the JAM Meetup and follow us on Twitter.

Christian & Markus

Tech - 05/02/2017

Join us at the first Jenkins Area Meetup in Munich!

JenkinsSwagThere are a lot of tech companies in our city and many of them are using Jenkins as their automation server. We want to gather all Jenkins enthusiasts and start this Meetup series with some interesting talks. You will see, how to configure a rock solid build server and get a glance at an ongoing open source project for a Jenkins Configuration As Code Testing Library.

Also plugin development will be covered: Almost every software project uses any kind of static code analysis and, of course, there exist a lot of Jenkins plugins for this purpose. Did you know that they are all developed here in Munich? You will have a chance to meet the guy on Monday, so don’t forget to sign up here.

Jenkins doesn’t just cover topics around continuous integration, you can do continuous delivery with it as well. To round things up, we will show you how to automate your deployments, for example with Spinnaker.

Tech - 24/01/2017

Apache Kafka Meetup with Jay Kreps and Michael Noll

Just use Kafka, they said. It will be easy, they said.

At PAYBACK Global we introduced Kafka in 2016 to enable asynchronous communication between our services in order to decouple our components and improve performance. What started as a simple idea quickly turned into an ambitious project with several hurdles. The concept of a messaging service might seem easy at first, but the more services you have and the more requirements (e.g. delivery semantics) you add, the more complex it gets in the real world. Who’d have thought that?

Our first approach of using Kafka:

201701_Kafka

We identified the following topics which still needed to be addressed:

  • How do we assure backwards and upwards compatibility?
    • How to implement?
    • How to test?
  • Do we need versioning for messages? If so, how?
  • Do we need to transport part of the request context along with actual messages/events, like a correlation id?
  • How do we deal with resilience and other non-functional requirements

If you want to find out how we answered these questions and which other pitfalls we encountered on our way join us on Wednesday 25th 2017 at the Apache Kafka Meetup with Jay Kreps and Michael Noll.

Tech - 19/09/2016

Jenkins World 2016 – Becoming a true Jenkins master

14375273_10210465135573444_494122255_oThe final day was all about how to become a true Jenkins master. The „Open Source Hub“, a booth filled with Jenkins experts and contributors, continuously showed live demos about new plugins and projects they wrote. Here I finally found the inspiration to adopt a Jenkins Plugin that is highly used within PAYBACK, but is no longer maintained. The other sessions gave a detailed insight on how to effectively prevent Jenkins instances to fail, how to setup Jenkins to deal with hundreds of team members located around the world, and how to create huge Jenkins clusters. Speaking of which, they also demoed us the worlds biggest Jenkins cluster with the astonishing amount of 2000 masters and nearly 8000 executors. Stephen Connolly,a well known Jenkins core committer and technical lead for CloudBees Jenkins Operations Center, showed us how we can do that too.

 

He gave some great ripping-off-the-state-of-californiainsights how we can determine the right setup size of what we really need and where scaling with Jenkins is possible. Even the Developer Infrastructure group at Google was there to
present their journey deploying a large-scale Jenkins installation. In between sessions, there were a lot of fun activities you could participate in. CloudBees managed to get the CommitStrip team to Jenkins World, creating some live drawings and even a a giant collaborative mural painting. Thomas, the writer and Etienne, the cartoonist, teamed up with a few Jenkins contributors to design a 5m x 2m mural which was painted by the attendees. Finally CloudBees invited us for a „Farewell Get-Together“ for all international attendees in an original California style casino to say goodbye and plan what we will accomplish until next year.

Tech - 16/09/2016

Jenkins World 2016 – It’s Jenkins time in California!

unbenanntFrom September 13th until September 15th 2016, the Jenkins World took place in Santa Clara, California! It is the biggest international conference concerning Jenkins, one of the most famous continuous integration tools. On three days, users, experts and continuous delivery thought leaders had the opportunity to learn, explore and network face-to-face, as well as to help shape the future of Jenkins. Of course PAYBACK could not miss an event like this, as we are also using the tool on an advanced level. Our colleague and DevOps Engineer Christian attended and even held a talk about Ruling Jenkins with Configuration as Code! Read what he experienced during these three exiting days.

The first day was all about workshops where you could get some insights into microservices, Jenkins pipeline plugin or continuous delivery in the context of DevOps. Additionally you could get prepared to become a certified Jenkins Engineer. Fortunately, I already got this certificate in the beginning of the year by participating in one of the first tests offered. Afterwards there was a great networking event, hosted at the best place you can possibly imagine, the Computer History Museum! Over there we were not only provided with some great American barbecue, you also could get back to your childhood, by walking through the exhibition halls filled with great ancient Technologies. Enjoying a couple of drinks, we also could share some insights on how companies are using Jenkins, typical issues you encounter and how to deal with them. Finally I could get some answers for very specific questions that came up all over the year by some other experts. The great talks also inspired me to finally setup a Jenkins Area Meetup Group in Munich. I struggled with this thought for a couple of months now, since there are a lot of tech companies in Munich, and almost all of them use Jenkins. I’m pretty sure we can find some other Jenkins engineers that will be interested, and as far as I know PAYBACK is a great partner for hosting meetup-events anyway 🙂

On the second day the main event finally arrived and Kohsuke Kawaguchi, creator of the Jenkins project, did the Kickoff-Talk. He was giving us a look back at where Jenkins originally started and where we are today, also giving away a sneak peek at a couple of nice new features that will be available for Jenkins in the near future. Afterwards Cloudbees CEO and founder Sacha Labourey took over to announce DevOps Express and showing us the The Four Quadrants of DevOps Maturity. After these interesting keynotes, we started to discuss more specific subjects like secure container development pipelines, continuous security or continuous testing. Actually, I got a lot (!) of feedback regarding my talk, as it seems I rather hit the nerve of what a lot of other Jenkins engineers are struggling with, too. And as I imagined, they were looking for a way to deal with it in a way, PAYBACK is now finally able to do. Afterwards, there was also a chance to have a closer look at the future of Continuous Delivery with Jenkins by using the Pipeline Plugin and a brand new user interface experience for Jenkins called Blue Ocean. In the end I had some great round up talks about today’s sessions at the “After Dark DevOps Express Networking Reception” and also got some new ideas for hacking our way through the DevOps challenges.

Christianchristian-rasp