Docker Con Europe 2017 - A recap

Welcome 🙂

Being an Docker Campus Ambassador, I got the oppurtunity to visit Docker Con Europe 2017 - which was an awesome experience which I want to share here. As it has been quite some time since I've been to a bigger conference - and this trip does not only include visiting Docker Con - I am going to seperate this blog into two sections.

First, I am going to go for the main take-aways, which should have been posted everywhere in the net already. Secondly, I'm going to go through the whole story and add some pictures of the beautiful city of Copenhagen.

So lets get started 🙂

 

1.) Take aways

Modernize Traditional Apps (MTA)

Docker has found itself a new usecase: Use Docker to deploy legacy apps in your DevOps enabled workflow. Docker does present tools for that during its keynote, like the Docker Application Converter. However, these tools are not given out to users and only work in the specific field of Tomcat Java Web Apps or IIS Web Apps with .NET. The only way to get your apps converted in a professional way, is to buy Docker Enterprise Edition and get a Docker Partner like Avanade or Amazic over to your premises and do the work for you. So it is not magic, but hard work to convert your old apps. More infos here.

Docker with Swarm and Kubernetes

Docker is going to include Swarm and Kubernetes in the future - side by side - which is awesome. However, the reason behind that might not tbe that Docker wants to do something for its users, but more for Google: In the past it was looking like Google is going to seperated from Docker and doing its own thing. So embracing Google and Kubernetes might be the thing that keeps Google from running away - and leading the pack away from Docker. I personally think that after some iterations, Swarm and Kubernetes might disappear and lead way to another tool, which consists of parts of Swarm and Kubernetes. You might want to buy KubeSwarm.com today? 😉 Oh, and if you want to join the adventure early: beta.docker.com will get you started.

Docker Certified Associate

There is a official Docker Certification available now, which can be found here. Due to beeing a Beta Tester, I was already in that program - however, the first experience was kind of rough, which should be corrected by now to a more pleasent one. To get you started, we prepared a little DCA Prep Guide on Github. PRs are very welcome!

ARM (IoT) - Resin

Finally I got to meet up with the nice guys and girl of resin.io - if you're a regular on my blog, you might have seen a load of different articles and videos about their Infrastructure platform for IoT, as well as their OS resinOS for IoT applications. Basically: They get Docker running on Raspberry Pi and similiar platforms. And they also created balena, which I already talked about in this post.

ARM (Server) - Qualcomm

DockerCon is a Software Convention by design, so vendors like Cisco had a hard job getting to people. But the hardest job among all, had Chandni Chandran and Elsie Wahlig from Qualcomm. They actually showcased the coolest piece of hardware of the overall convention (just fighting with the bleeding-edge new specialized Prototype Raspberry Pi from resin ;)) - the Qualcomm Centriq 2400 - a 48 core ARMv8 CPU - ready for datacenter usage - and yes, it does run Linuxkit! Meeting Chandni, the Product Manager for this Server Series, and Elsie, the Director of Product Management for Datacenter Technologies was a huge honor, as well as it was a blast for an ARM fanboy as I am ^^'. The cool thing about their technology is, that it might come soon to packet.net (which I did review sometime ago) - so, lets get our fingers crossed that this beautiful and awesome machine finds its way into the racks of every major hoster - and maybe onto my table 😉 [Hey, it is as cool as you could *really use it* without building a server closet around it - and.. for the other insane path - dreaming is allowed, ain't it? :3]

Monitoring

Felt like the "hot-*hit" of this Docker Con: Nearly everyone was holding up a product in that area. Be it DataDog, sysdig or Instana. However, as some booth-visitors pointed out - some of these products, like DataDog, only exist in a SaaS solution and cannot be used on-prem. Quite the security breach you got there... I would go with Instana.

Security Solutions

CyberArk, BlackDuck, Aqua Security, Twistlock and cilium - among others. I would vote for cilium, as they do Open Source.

Storage

StorageOS, Virtuozzo Storage, elastfile, NetApp, Zenko CloudServer where the main players, however, next to the raw storage, also storage adapters were available like the Zenko Multi Cloud Connector or the ever famous RexRay - it seems like quite a trend to go more and more to Amazon S3 compatible interfaces. For reference I linked only vendors which had Community Editions or Open Source Software available ;).

Virtualization

VMware, Cisco, IBM, Nutanix. Well, that was a surprise. While VMware stays on track with its vSphere Integrated Containers 1.2, Cisco trys to wrap up Docker in its UCS and Flexpod series via RedHat. IBM starts up with its IBM Cloud Private - which even comes in a Community Edition - and seems interesting. Same goes for Nutanix Community Edition which can be checked out here.

Misc

Somehow everyone seems to go out for an Enterprise Edition now: Create.io, Redis Enterprise and nginx+ (Load Balancer). But somehow, some of these corporations deserve special treatment: nginx+ is all about trust, as you get your binaries delivered without "call-home" - which is a nice thing and I would love to see this being the "norm" again. Other than that, jFrog was there with awesome coffee and lovely designed shirts, as well as Atlassian and other DevOps tool makers like Puppet, Chef and Rancher. Also - Microsoft, Amazon and Google had their booths as well but... well, that was kind of a must, so ;).

 

2.) The whole story

Well, now that we got through this, we might add some images to complete the overall picture ;)!

Flight from Luxemburg to Zurich

Just short before Zurich

Zurich Airport - here I got information that resins new Moby Clone balena had been released. So I just grabbed the next Wifi Connection, downloaded all files - and went back into the air - next stop: Copenhagen!

Zurich from above

balena Experiments in Flight

... and working!

Arrived in the heart of Copenhagen

My sleeping and dev place for the next days to come 😉

Skt Alban Church

Kastellet

Kastellet

Kastellet

Kastellet

Kastellet

Harbour

The little Mermaid

Amalienborg Palace

Nyhavn

Nyhavn

Nyhavn

North Atlantic House

Folketheatret

Bicycles

Soylent Green - anyone?

Food - some assembly required

Chili from Berlin, Wine from Trier and Water from Copenhagen - does taste awesome

Working on the JCTixx v2 Portable Scanner Type M / Munin

Crew on board!

Bella Center on Monday, fist Docker Day!

Already a cool start

On Monady, we got to attend the Community Leaders Summit. We finally got to meet a big part of the Community Leaders familiy, Meetup Organizers from all over the world - and other Campus Ambassadors, which was awesome. I finally got to meet Karen Bajza, Bret Fisher, Jean-Marc Meessen and Jens Doose, which was really cool :).

The obligatory picture with the floating Moby on Day 2 was even an event on which one was awarded a special pin.

Breakfast was awesome, I loved those pancakes...

... and did I mention we got a load of coffee everywhere around the Bella Center? During all that time, I could meet up with Xinity, Gildas Cuisinier, Oliver Robert and Xiaowen - waiting eagerly for the keynote.

The first Keynote was one of the biggest events

... and Modernize Traditional Apps (MTA) was the big buzzword for the days to come...

... I could not help but start hacking around with image2docker during the keynote... The results were mixed.

#dinoselfie - with Michael Irwin!

resin.io's beautiful new custom Raspberry PI Board...

..with some awesome features!

Cisco is also commited to Containers

... and jFrog had some awesome designs

OpenFAAS with Alex Ellis

Qualcomm Centriq 2400

Qualcomm Centriq 2400 - thats what I call hands-on!

Docker Party at the second evening...

...in an old train hall...

...with lots of space...

... and games!

Tivoli park 🙂

Bella Center in the morning of Day 3

The famous jFrog Universal Coffee Registry

... and the even more famous resin.io Demo -
with a Raspberry Pi - running resin.io - in resin 😉

Working on balena demos at the resin booth

Working on balena demos at the resin booth

Lunch was awesome, too 😉

I finally meet Chanwit Kaewkasi during a Hallway Track and as he is a fellow ARM fan - I could not help but bring him to the Qualcomm booth to get him some demotime - I think I liked it ;).

Elsie and Chandni are demo-ing LinuxKit on their new Qualcomm System

A last selfie with Karen 🙂

And I needed to pay the container bath a visit - on the Hallway Track

Leaving Kopenhagen on Day 4 - and last thing I see...

... is a container ship. Well. Ain't going to get more Dockerized than that ;)!

I was very lucky and attended the MTA Pin Challenge - during that I bumped into Mano Marks - finished the Challenge as first one, and got an custom WASD Keyboard with some nice finish. Nick Harvey found out about that - and my new job - and completely went bananas - as he figured out that this keyboard might soon receive code which could go to space... Well... Let's hope so ;).

And with that, I conclude my little Docker Con recap. I hope you enjoyed the ride as much as I did - there are certainly interesting times ahead ;)!

PS: I heared the recorded videos are online now :3

[Review] Packet.net

There are a lot of companies providing cloud services today: Amazons AWS, DigitalOcean, Heroku - just to name a few. Being an ARM-SoC-Fanboy however (well, I do too much RPi and Co stuff.. ^^'), I run into Packet.net - another cloud services provider - but with a little twist: Packet.net does offer Bare Metal Services. So you do not order "another VM", but the Hardware itself. They claim to have it provisioned within 8 Minutes (Source: https://www.packet.net/) and you also can use a ton of specialized stuff (some servers even got NVMe flash). But what really caught my attention, was the Type-2A server, an Cavium 96 Core ARMv8 @ 2GHz with 128 GB of DDR4 RAM and some SSD space - for 0,50 USD / hour (More Info here, here and https://www.packet.net/bare-metal/). So I decided to follow Packet.net on Twitter.

Full Disclosure: This was not a paid review, however, thanks to the guys over at Packet.net, I got 25 USD in Packet.net "currency" which I used to get an hand-on experience with their service - which I summed up in this review. (You can read the full discussion with the guys at Packet.net over on Twitter: https://twitter.com/nmaas87/status/808966172913733632).

With that being said, lets get started:

1.) Sign Up:
The process to register at Packet.net was fairly straight-forward: Just click on Signup, enter your Name, E-Mail and Password. However, at this stage you already had to enter details to either an Credit Card or directly link your details to an Paypal Account, which reminded me directly that this is going to be an paid service. Also, your Account will be tested by trying to transfer 1 USD from it. However, I wished that there would be a way to register without such details, as you can actually add members to a project afterwards - but not everyone in a corp should need to enter Credit Card Details imho (EDIT: This is possible after creating the initial Account via Inviting other ppl to the project). After this, you had to validate your E-Mail via the normal "get Mail, click Link"-Game. Then, after this was over, you had to enter your phone number and give them the sent code... And after this was over - you got the info that your account was suspended and needed to be verified manually. Ok, so I got another E-Mail within 20 minutes and got ask if I had an Social Media Account, so that they could line up my data with that... I sent them to my Twitter Account, and that checked out ok. However, that made the whole sign-up process come in in about 30 minutes. "You'll be spinning up servers in less than 8 minutes" - well, that looks kind of different :/. At that point in time, they actually got my Name, Mail, Phone Number, an valid payment account linked, as well as an Social Media Profile. Um, honestly I think - that is a bit too much.

2.) Console / Webinterface:
The Webinterface is quite nice and very usable, no problems there :)!

3.) Kicking the tires:
You actually create an project, link it to one of your payment accounts and get the possibility to add other Team Members via E-Mail Invite. Those people will be able to work within the project, however they won't be able to configure anything on the payment side, which is quite nice. I invited myself with another Mail Account and discovered, that I did not need to go through an "manual control" or payment service addition. However, I still had to "click that link" and do the SMS Code challenge. One nice thing to add here: You can actually use the same number for multiple accounts :).

Next thing to do, would be to add SSH keys. You can add Project SSH Keys, which are bound to "just the project", or personal SSH Keys which will be added to every server of every project you're a member of. 4096 Bit RSA worked fine, so.. Everything ok on that side. Additionally, you can add Two Factor Authentication (2FA) which I would personally use, if I were to use Packet.net on a real project.

Last thing I did, was to add an API Key, so that I could try that as well.

The thing I really missed here, was some kind of "Help me" link, to the description of the API Interface. You can really easily find those by browsing to the Main Website, and going to Resources -> API Docs - however, it would be more User friendly to actually include a link on that page for the sake of getting the confused Admin faster to her/his/its goal ;). Especially, since they managed to include an "How to generate an SSH Key" link directly at the "Add SSH Key" section. By the way, the documentation for the API Interface, once found, is excellent - as well as the API Interface itself. I played a bit around with the Restful API and it seems as really every last bit of functionality is included in it, so, an real plus if you want to orchestrate your deployment a bit :).
Bonus Points: They even host different language bindings for their API, i.e. Python and Java on their Github Account: https://github.com/packethost/packet-python

The last thing to do, was to deploy a server - and that is quite easy:

Just enter the needed details, like the Type of Server you want to create, with what kind of OS and where should it be hosted. After clicking Deploy, the Server Deployment begins.

I created the server on 26.12.2016 at 16:45, thinking that not that many people should be playing around with Packet.net at that day. Complete deployment took 9 Minutes and 11 Seconds, so just over the advertised 8 Minutes - however, I still think that is more than ok :)!

The next thing you'll see, is the control panel for your server: It actual contains everything you need: From metering, to your IPs, Login credential - and even an root credential, as well as an Serial Console ("Console") and an Rescue OS ("Server Actions") as well as some reboot options and the usual. With the created SSH Key and the User root I was able to directly connect to my new ARMv8 Beast and started playing around.

First order of business was installation of Docker, however, I found out that the install script has an error (which I need to fwd to their github Repo soon), so I went with the lazy way and installed the usual docker.io Package from Ubuntu, which worked great. However, after installing and testing this, I run into issues by trying to get an ARMv6/ARMv7 Image from Resin.io running. However, an special created ARMv8 Debian Image worked.

Then, I went and tried some Multicore Stuff. I found a nice Python Pi Script on Gist and included some timeit stuff (https://gist.github.com/nmaas87/941b6934b51c90f462172ed63718b602).

Just to get an idea of how powerful that machine is: My main desktop, an AMD-8350 with "8" x 4 GHz Cores and 24 GB RAM went through 1.000.000.000 data points for their Monte-Carlo Simulation in 73.70 seconds. The Type-2A, with 96 Cavium ThunderX CN8890 @2GHz and 128 GB RAM did the same job in 34.14 seconds. Nice, not bad for an ARM :)!

In the end I also tried some speedtests in terms of their connectivity to the net, but the results were full of outliers, so I won't include them here.

4.) Conclusion
I think Packet.net does serve a quite unique purpose with their services: You get "raw" performance without any virtualization or sharing and for a good price point, if you would just need some special hardware for special occasions, like i.e. testing Docker or scientific experiments on huge multicore systems. They made "real" servers as easy to use as a VM and allowing to access this power via an really good documented API is a big plus.

I want to thank Packet.net for making this review possible :)!

And now, a nice picture of an fully working 96 Core ARMv8 😉

[Review] Western Digital WD Labs PiDrive 314GB

Today, I want to do my first review on this blog, concerning the Western Digital / WD Labs PiDrive 314GB. I received this nice little drive from the guys over at PiAndMore as a gift for my three presentations at the PiAndMore 9 (among other loot ;)). So, what is this PiDrive and what is so special about it? Well it is in fact a small 2.5 HDD with integrated Sata to USB 3.0 Controller (with the matching "two-piece" connector). It was specially designed by WD to work with the Raspberry Pi Series and gives the RPi 314 GB of space (hence the name PiDrive - however, there is an 1 TB Version available as well).

So what did I get?

pidrive1

The PiDrive itself, a USB Micro to USB A Connector cable, as well as a power brick. Unfortunately, the power brick turned out to be a UK Version, not a German one, so I needed to get an adapter for that. The Brick itself was a beefy (2A@5V) supply, probably meant to power the RPi and PiDrive at the same time.

pidrive2

I loved the "Pi" finish at the package.

pidrive3

The package itself included the PiDrive (wrapped in a antistatic bag, already removed here ;)) and an business card with some tips on "getting started"

pidrive4

The Drive itself - small, lightweight and quite nice to look at.

Ok, after unpacking, I did some "Google Research" as I normally do when it comes to Harddisks and SSDs. A bunch of people (mostly with 1 TB Versions) already explained they were having problems with the Firmware of the Drive and that there already were an update available. So to not get into problems myself, I turned to WDs Support Website (http://support.wdc.com/downloads.aspx?lang=en) and downloaded the "WD Universal Firmware Updater for Windows". I plugged the included USB Micro Cable into the PiDrive and connected it to my Laptop and saw that this Drive also got an *REALLY BRIGHT* white LED as Status Indicator. However, the LED was blinking on/off continuously and I decided that the Drive probably did not got enough juice from the one USB Port. So I combined an old 2.5 HDD cable (USB A to 2x USB A Y Cable) with an USB Micro OTG Cable, so that I got 2x USB A connectors on the one side (which plugged into my Laptop) and the USB Micro connector on the other side, which connected to the PiDrive. Now I got an steady white lit LED - and I could find the Drive in the Device Manager. After I fired up the Firmware Updater, I directly got the info about a new firmware [1.0.12] and got the drive flashed. Everything went fine :).

So, from that point on, I wanted to use the Drive with one of my Raspberry Pis. As I still got some old RPi Model B, v2.0, I tried to give it a try - but it did not work. The LED was just flashing again, and it seems like I would need an active USB Hub or my special cable to get it working [it did also not show up in dmesg or blkid]. Then I realized, that I already had seen a special connector cable from WD (this one: http://wdlabs.wd.com/products/raspberry-pi-accessories/#pidrive_cable) which had sadly not been sent to me. This cable does directly plug into the power brick and does power up the RPi as well as the PiDrive, so that the RPi did not need to supply about 1 A via the USB port to the PiDrive. Bummer.

Next thing I saw, was the max_usb_current=1 which had to be added to the /boot/config.txt on the RPi card. This - however, does only work from RPi+ Modells on onwards (so RPi A+/B+, RPi 2 B) and should not be needed on the RPi 3, as this is already "on by default". Why does this only works on that versions? They got an little Mosfet included there to GPIO 38 which does activate a kind of "high power mode" for the USB controller. So to see wheter your little modification did work, just try gpio -g read 38 and 1 will tell you, that it worked. An lsusb -v 2>/dev/null | grep -e 'MaxPower' -e 'Bus [0-9]' will also tell you, how much power every device on the RPi draws (Thanks to https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=105502&start=25).

So, after I saw that my RPi 3 got its max_usb_current enabled, I rebooted it with the PiDrive attached to the included USB cable. However, the Drive LED did also blink like on the RPi B v2.0, which was really strange. And it did also not show up in the blkid nor in dmesg. So I did unconnect the PiDrive and used an TeckNet 0.3m USB Micro USB cable - and voilá - it worked right out of the box! With sudo blkid I could see my connected drive and did find out that it already had been mounted to /media/USERNAME/WD_PiDrive_314GB.

So, I did not yet do any speed tests and stuff, but I am pretty happy with this little drive. I am really looking forward to play with it a little bit more. Is it worth the price? Probably. I really like WD drives, I make really good use of WD Blues in my Desktops, WD Greens in some Backup Systems and WD Reds in my NAS/Small Servers. I never had any problems with WD Drives and so I am looking forward to a "nice smooth ride" with this HDD (hopefully ;)) as well.

Thanks a lot for Western Digital to giving these PiDrives out :)!

More infos about i.e. the Berry Boot can be found here: http://wdlabs.wd.com/Support/#berryboot / http://www.berryterminal.com/doku.php/berryboot, as well as some nice step-by-step setup in there forums: https://community.wd.com/t/how-to-install-raspbian-on-pidrive-using-windows-pc-step-by-step/134723