For three days I enjoyed the Open Source Summit conference in Prague. These are some of the things I learned from attending the presentations and discussing with presenters and fellow attendees.
Workflow
Focus on workflows, not technology.
because it changes.
Describe how it feels to use the software.
Keystone
Openstack's identify management and service catalogue. Openstack is a Python project.
Python
Python has a
constraints
file, same as dependency management in Maven. Otherwise, pip
will
install possibly multiple or wrong versions of transitive dependencies
from requirements.txt
.
Data dog
Cannot know where you're going if don't measure what you're doing. We all are going to crash sometime, no matter how honest you think your software is.
Containers
Kubernetes
A kubernetes pod is two or more containers that share an IP.
The kernel doesn't define what a container is at all. A container, something that has a pid namespace, needs an init binary. Otherwise there's no way to spawn or reap processes and reassign their children. Pid namespaces are hierarchical.
Rex-ray
Rex-ray container storage.
Fancy files, containers
"People end up just using the same shit everywhere"
Same versions of host and container OSes." Because of breakages in kernel and user land.
Google Reader
We all mourn Google Reader —Novotny
First spontaneous applaus at OSS summit. People are messy.
Bash.
The file
command has a magic file in usr share:
/usr/share/misc/magic.mgc
Open API, Swagger
Swagger can generate definition from bare JAX-RS. Has JSON schema as definition format for models.
Server less
Server less is about not caring about servers. For one off, sporadic requests. With java, you should make regular requests to keep the jvm in the lambda container warm.
Lambda
Lambda doesn't have versioning of source code.
Can't access github.com, must upload zip or edit code in online editor.
Chalice
Chalice, easy creation of lambdas. Lets you script uploading lambdas → integrate with your local VC.
Worth a look
Monitoring
Logs. Good for use known unknowns. New logging platforms like elk and dagadog are only good for known metrics.
Buildroot
Makes new stable release every 3 months.
Licences
spdx, describes licences of source code, possible to automate license compliance. Test cases in python to test if a build image will run at all.
cdla.io, new licences for big data.
Multi licence projects
Fossology. Not even the kernel is 100% one licence. Think of licences like an architectural property. GPL readme, remove "or later". SPDX, tool for automatically check source code.
Internet of Things - IoT
Hacking: Internet of threats. Great presentation. Live hack of toy cars demos.
People
-
Jono: We strive for acceptance. Belonging.
-
Status important.
-
Reciprocal species.
Habits
Form habits with repetition.
Takes 66 days to develop habits → The first two months extremely important for new employees.
Authenticity
No automatic thank you email.
Code of conduct
Assholes don't read code of conduct.
Happiness
It's the intangible world that makes us happy.
Goals
Set several goals, your own. Not only your mentor's. Embrace the fear, laugh at your own mistakes.
Code analysis
perf
counts various OS metrics. It found that it's much faster to
traverse a bitmap by row instead of by column!
Chromebook
- upspin, storage
- U-root: http://u-root.tk/
- An upcoming über-geekz alternative to Chrome Book,
NiChrome: In a nutshell, this
is a bare boned OS, running the Linux kernel and most userland
implemented in Go (except for X, browser,
ssh
and some other things).
Databases
Semi sync replication. At least one slave gets the write. You don't always want fully synchronous replication.
Alibaba Cloud
Alibaba cloud. SQL injection alarms. Cheap outside of China.
Cloud hosted databases like RDS
Many features are disabled as default. Like thread pools.
Cloud locations
Google cloud SQL has a zone in Taiwan.
DB monitoring
Percona has an open source monitoring tool. Can connect to RDS.
MariaDB instead of RDS
Many people run mariadb in ec2 instead of RDS.
Auto tune database
Ottertune. Auto configure a database.
Cloud
Amazon pricing varies between regions.
File systems
GlusterFS, mounted, but not working. Manually remounting to get data. High CPU. Fuse driver has a limit on the number of small operations. Dependency injection in apps put stress on fs. Negative caching beneficial on anything dynamic.
MooseFS
MooseFS looks very promising. Reliable multi master, meta data and chunk servers, nice gui, flexible replication per directory.
BeeGFS
BeeGFS traded performance over consistency.
OrangeFS
OrangeFS very easy to break, no built-in redundancy, adding more nodes must stop the whole cluster.
NFS
NFS, very important to cache both hits and misses. Important to tune network card kernel settings. As well as IPv4.
Live patching the kernel
Noop markers replaced. Call redirection. cat /proc/cmdline
. Per
thread migration of new kernel. Lazy migration inside methods whose
code never exit for the runtime of the kernel. Atomic replace. Revert
preceding, stacked patches.
KeyCloak
Talked to RedHat about KeyCloak and the request for adding SCIM support.
Open source development
Siemens focus on upstream development both for internal and external developers. It's otherwise too hard to maintain the systems, because you in effect have a fork of the software.
Testing
Testing is the only way to catch all bugs. —Linus. (as opposed to reading code ).
Start coding early
If you were ten or eleven when you started programming, you are probably a good programmer. It takes a decade to be good at something. Anything.
Kafka
The streaming platform. Real time hadoop, real time analysis of data.