Dec 7, 2018 - DockerCon 2018 - great event (with a small fly in the ointment)

Comments

DockerCon 2018 - great event (with a small fly in the ointment)

I have just returned from DockerCon Europe 2018 and I’d like to share my impressions while they are fresh in my mind. It was my first DockerCon so I was not quite sure what to expect. As the title says, it was great experience and barring the scaling issue (more below) could have been really awesome experience.

But let’s take things in order. First location - Barcelona. Hard to pick better place in December than Spain. I am sure the Northerners greatly appreciated the break from cold and enjoyed the balmy 15 to 20 degrees. The venue Centre de Convencions Internacional de Barcelona - CCIB - though not located in the centre, is at the shore and one can walk to the beach in 2-3 minutes. There were three of us going from Valencia office (which is 3 hours train ride down the coast from Barcelona) and we had also great hotel experience. I can highly recommend Hotel Princess Barcelona. What can be better than starting your day with watching sunrise over Mediterranean Sea. Thanks David - because you did such a great job, you are now in charge of travel and hotel booking going forward :-D

The registration was well prepared and smooth. Considering the amount of participants (I do not have the numbers, but it felt well over thousand) it was very quick. DockerCon mobile app was available with up to date schedule, agenda, speakers info and feedback option and it worked quite well.

Content

The activities of the DockerCon come in different form, targeting different audiences and different sized rooms.

There were general sessions aka keynotes - the only ones streamed online (see DockerCon). These were in big hall seating everybody. From my point of view, these were OK but not overly exciting. What I heard only confirms impression about direction of the Docker as a company - but I will get back to that.

Much more interesting were Breakout sessions and Community theatre sessions. Breakout sessions were hosted on first floor in auditoriums of capacity hundreds of participants. There were multiple tracks focusing on developers, operations etc - 5 in total and we had to choose one. Sometimes two interesting tracks overlapped, but judging by the presence of the recording crew, those I missed will be eventually available as recordings. Cannot wait until I can add them to my long watch list - still working through AWS re:Invent 2018 videos.

Pretty much every session I attended was good or great. It was very interesting to see Jaana B. Dogan of Google (@rakyll) in person (you may know the name if you are following GoLang space or Medium. Here are the [slides])https://speakerdeck.com/rakyll/monitoring-and-debugging-containers)

The few I would like to emphasize are those where I either learned something new or I can immediately use it - e.g. “Dockerfile Best Practices” by Sebastiaan van Stijn and Tibor Vass, or “Tips and Tricks of the Docker Captains”

The nice surprise at the DockerCon was for me the presentation of Sean Gillespie of Pulumi: Program the Cloud Using Containers as the Building Block. At first sight the idea looked a lot like Trophoshere in Typescript - use real programming language in place of DSL or YAML, only instead of being limited to Python and generation of Cloudformation, one can use TypeScript, Python or Go and instead of only script generation it interfaces with target API on your behalf. The target API can be AWS, GCP or Azure - or Kubernetes. And it also maintains state (inside their cloud for now, more backends coming). So all in all - this is like Terraform with real programming language instead of HCL - something that may come very handy. I am intrigued and will certainly try it out. It is open source and this is the repo and https://github.com/pulumi/pulumi. Btw - great presentation, Sean - it was pleasure to listen to you.

In Community theatre - interesting talk about psychology of doing code reviews by Elodie Rafalimanana and for me personally very interesting “Transparent Execution of Scientific Workflows in Docker Containers” from Barcelona Supercomputing Centre” by Jorge Ejarque and talk by Boston Consulting Group on “Lessons in Using Docker to Close the Loop on Industrializing AI and ML Applications” (Clement Roche and Bartlomiej Nogas). The talk “Improving Docker Desktop File Sharing Performance” by David Scott and Pierre Gayvallet was also very useful for practical day-to-day work.

As on every conference, there were some product announcements and important innovations. Some were on Enterprise side - Docker Desktop Enterprise, which may be important for the Docker penetration of the large enterprises and new features of DockerEE. I personally found most interesting convergence of docker-compose and Kubernetes file formats and “default” Kubernetes local cluster available in Docker since version 18.09. The addition (and opening up) of the buildkit with possibility of adding new syntax to Docker file is something that will have great impact and allow innovation in many directions. Generally, the improvements in buildkit were pretty impressive and examples shown with multi-container builds made me gasp few times. Well done, Docker team and Docker community.

One important announcement about which I have mixed feelings was docker assemble - new tool that allows creating docker image without creation of Dockerfile. Sure it is useful, but did not make me anywhere as impressed as the improvements above. Dockerfiles are not exactly rocket science and saving creation of boilerplate ones for common scenarios like Java Maven project or DotNet project is not such a great help - IMHO. I may be wrong but somehow it does not seem to be such a big deal.

Docker sees it as very important though, and it was emphasized in the keynote that the strategic goal is to move from ~ 1 mil of users (mostly Linux) to 10+ millions and include many more Windows users. Importance of Windows, making things simpler and emphasis on Enterprise and enterprise customers were the main corporate theme here in Barcelona. I think there is an acquisition writing on the wall and Microsoft is the buyer. It would make a lot of sense for both - and frankly, Microsoft would be IMHO better option than some the other names mentioned (hello Oracle). All recent events point in that direction - the departure of the co-founder and CTO in May and new CTO - an enterprise veteran from WMWare and Oracle Kal De.

The other important announcement confirming the importance of Windows and Microsoft was CNAB - cloud native application bundle

I guess, with the exponential growth Docker is experiencing, the “enterprisation” is inevitable and morphing of the small, loved, open-source company into something playing in the big leagues is observed with mixed feelings. Luckily, the Docker community and ecosystem is awesome, stronger than ever and will not make it easy for greed to stifle the technical innovation. The strong community will prevail - there are enough good recent examples that show this - like Java and raise of OpenJDK (hello Oracle again).

There were lots of booths and vendor demos. I liked the SysDig and the Datadog demos. We had nice chat with Rancher team and I even found ex-paesano from Czech republic in RedHat booth (one can always recognize the homeland accent). I also had good opportunity to dust off my German.

The AWS was present, pushing Fargate (no surprise there) as well as Azure. It is great that somebody is trying to compete with Amazon. Google did not have any booth, neither did any of the “lesser clouds”.

The food at the event was great, by far the best of any conference I went to. Jose (being used to very high standard as a Spaniard) said it was OK - but he was comparing with Barcelona and Valencia “native level” of expectations. For us, guiris it was just great. Well - except the coffee which was OK. Or maybe I am getting get used to “native level” ? LOL.

DockerCon Party

On day two Docker threw very impressive party. The busses took us from conference centre to the night club district at the shore - Barcelonetta - where people could choose among 4 different styles of clubs: salsa / cuban music, electronic lounge, jazz themed and Indian / Asian themed with what may have been authentic live Indian music. All 4 clubs were interconnected by the shared beach so one could walk on the beach and visit all of them. Add very good food and open bar and you’ll have complete picture. Night clubs with lots of people are not exactly my natural habitat, so it was interesting to see it for a change. Now I can say I was in a night club in Spain. Actually, on Tuesday I probably visited more night clubs than during previous 40 years :-).

The fly in the ointment

Now we are coming to the “fly in the ointment” of the conference - the workshops. The organizers decided to host one of the most interesting parts of the conference - workshops - in small rooms seating tens of people. The rational probably being to keep the hands-on spirit of the presentation, make communication and interaction feasible - which makes sense. As a teacher and trainer I understand very well that it is hard to do deeper hands-on sessions with larger audiencies. What was IMHO complete and inexcusable failure on the side of organizers was

  1. communication of real capacity and expectation management
  2. lack of providing “read-only” access via streaming to overflow rooms
  3. failure to record the sessions.

Actually, a combination of 1 and (2 or 3) would had solved the problem.

There was mentioning on the website of the DockerCon that RSVP for workshops is required. I tried to register the week before the conference and every workshop was allready full, including the waiting list. On Monday - first day of the conference - there were only workshops scheduled, all of them unavailable.

As we found out, there were hundreds of people in the same situation, and even those who tried to register weeks before the event did not get in. This was mentioned on the discussion in the conference app several times. So it was clear to organizers weeks ahead that the capacity of the sessions is way under the expected demand and they did absolutely nothing.

The communication and expectation management was IMHO pretty misleading: the conference web site should had explained that “Workshops: RSVP required” on the website page describing what was included in the conference offering actually meant this: “some 20 % of you conference pass buyers may get chance to get into workshop sessions if you are really fast and we will do nothing for the rest of you - just happily take your money”.

Considering that one day out of three the only scheduled sessions were workshops (the breakouts, general sessions and Community Theatre was only on Tue and Wed) all big breakout rooms were empty on Monday and there were enough of them to broadcast the stream of each of the workshops - all that was required was to do it. Not good enough, Docker !

Some people went for Self-paced hands-on - which may had been nice alternative for beginners with Docker or people interested in Docker Enterprise. Not belonging to either of those groups, we went to Barcelona center and spent 3 hours walking through the one of the most interesting and beautiful cities in Europe. Which was kinda silver lining on the Monday.

Conclusion

But let bygones be bygones and focus on the positive: I am very happy I went.

I feel energized and inspired, have discovered few completely new things to try, got many useful hints on how to improve workflows and tools I use, saw the marvellous creations of Gaudi and sunrise over the sea again, spent time with friends among people of my tribe, and even got to the high end nightclub - what a great 3 days. The clear unspoken message from both the breakout sessions, announcements and demos was importance and dominance of Kubernetes, new raising Cloud OS.

Which - btw - does not really need Docker and can run using different containerization technologies. But that is a different story.

Mar 24, 2016 - Starting ACC (ATG Control Centre) on OS-X

Comments

Starting ACC (ATG Control Centre) on OS-X

Copy the installation of ACC for respective version from a Linux VM:

The startup script in bin/startClient will fail, because it cannot determine which Java to use to run the app.

It is trying to determine Unix flavour, failing that defaults to Solaris and ends up with invalid settings.

Fix

Set the variable JAVA_VM to path to executable command on your system.

which java
java is /Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/bin/java
java is /usr/bin/java
  
export JAVA_VM=/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/bin/java

After that, it works.

You can also modify the script to make sure this happens automagically. I have commented out the Solaris default and replaced it with my Java

Mar 23, 2016 - Git bits 2

Comments

Git bits 2

Using the Scala source repo to demonstrate - see Github

Show merged and unmerged branches

This command allows you to show all local branches merged / unmerged to current branch

➜  scala git:(2.12.x) git branch -a --merged
* 2.12.x
  remotes/origin/2.11.x
  remotes/origin/2.12.x
  remotes/origin/HEAD -> origin/2.12.x
➜  scala git:(2.12.x) git branch -a --no-merged
  remotes/origin/2.10.x
  remotes/origin/2.8.x
  remotes/origin/2.9.x
  remotes/origin/DarkDimius-patch-1
  remotes/origin/gh-pages
  remotes/origin/legacy/msil

This shows you all local branches merged into named branch:

➜  scala git:(2.12.x) git branch -a --merged origin/2.9.x
  remotes/origin/2.9.x

Better output

Put these 2 lines into ~/.gitconfig under the ‘[alias]’ section

unmerged = !git branch -r --no-merged | grep -v HEAD | xargs -L1 git --no-pager log --pretty=tformat:'%Cgreen%d%Creset | %h | %an | %Cblue%ar%Creset' -1 | column -t -s '|'
merged = !git branch -r --merged | grep -v HEAD | xargs -L1 git --no-pager log --pretty=tformat:'%Cgreen%d%Creset | %h | %an | %Cblue%ar%Creset' -1 | column -t -s '|'

Here is how my alias section looks like

This is the output of the commands

➜  scala git:(2.12.x) git unmerged
fatal: Unknown commit master

There are no local branches out of sync with master
➜  scala git:(2.12.x) git merged
 (origin/2.11.x)                               1fcfdd8    Lukas Rytz     4 days ago
 (HEAD, origin/HEAD, origin/2.12.x, 2.12.x)    0e4c39a    Vlad Ureche    2 days ago