- OpenEuler : Huawei Linux distribution, interesting side project is A-tune which relies on AI for identifying the workload that runs on your the OS and tries to tune it to optimise its performance.
- AutoGluon : AutoGluon enables easy-to-use and easy-to-extend AutoML with a focus on deep learning and real-world applications spanning image, text, or tabular data. [github]
- k3c : kubernetes but lightweight and easy to use for container development
A blog about life, Engineering, Business, Research, and everything else (especially everything else)
Showing posts with label docker. Show all posts
Showing posts with label docker. Show all posts
Thursday, March 05, 2020
[Links of the Day] 05/03/2020 : Linux AI tuning, easy AutoML , lightweight container development environment
Labels:
Artificial intelligence
,
automl
,
containers
,
docker
,
huawei
,
Kubernetes
,
links of the day
,
linux
,
machine learning
Thursday, September 26, 2019
[Links of the Day] 26/09/2019 : Continuous compliance, Golang UI terminal for docker, Startup checklist
- Continuous Compliance : an interesting post about continuous compliance and how to integrate it as a standard practice in your CICD. However, more often than not, the main issue on the human side and not the technical side. Sadly, companies tend to avoid the introduction of continuous compliance. They this technology as an increased risk because the constant validation can pickup problem that are not detectable with episodic checks. Which ultimately translates into $$ cost, as if a compliance issue is detected, it has to be fixed. That's why your best chance to introduce continuous compliance practice within your SDLC would be in the initial requirements collection phase of a Greenfield project.
- Lazy-Docker : great UI terminal for managing docker and docker-compose. Bonus : written in GO.
- Startup Checklist : a succinct checklist that can quickly help you develop ideas and filter them. However, like the author mention, be careful to not over filter ideas as the good one can be too easily dismissed.
Labels:
compliance
,
continuous integration
,
docker
,
docker-compose
,
golang
,
links of the day
,
user interface
Thursday, May 09, 2019
[Links of the Day] 09/05/2019 : Algorithms discrimination, Generalised solution to distributed consensus, P2P Docker registry
- Discrimination in the Age of Algorithms : Machine learning has a huge potential, both for good and evil. The most perfidious is discrimination from an opaque algorithm, as proving that the algorithm is discriminative becomes extremely hard post-hoc.
- A generalised solution to distributed consensus : this result will rapidly become the first thing taught in every single distributed systems class. And if this holds as a generalization of trustful distributed consensus as a field, then she has defined its Turing Machine equivalent. And it is even remarkably easy to understand!
- kraken : P2P Docker registry capable of distributing TBs of data in seconds
Labels:
algorithm
,
Artificial intelligence
,
containers
,
discrimination
,
distributed consensus
,
docker
,
links
,
machine learning
,
registry
Tuesday, November 27, 2018
[Links of the Day] 27/11/2018 : AWS deployment workflow framework, Dockerize your dev workflow, Nuke your AWS account
- Odin : yet another AWS deployment solution. But this time with step function!! The concept is rather ingenious. And I wish we could literally script cloud formation deployment cycle using step function and lambda. There is probably a way using the WaitCondition and stuff. But it seems extremely convoluted. In the meantime kudos to Coinbase, I really like it and hope to adopt some of Odin mechanism myself.
- Binci : containerize development workflow with docker. Personally, I have used docker compose to do it. I have a little bit of an issue with npm/JS as the core language for these type of solution. But all in all, containerizing your development environment and workflow should be standard practice by now in the industry. Sadly it is isn't yet.
- cloud-nuke : want to wipe your AWS/Azure/GCP resources associated with an account, use cloud-nuke. Alternative solution: aws-nuke Nuka-Cola sold separately...
Thursday, September 13, 2018
[Links of the Day] 13/09/2018 : Kubernetes in Docker, Forensic Diffing AWS image, Consistent File system on top of S3
- kind : Kubernetes-in-Docker - A single node cluster to run your CI tests against that's ready in 30 seconds
- diffy : Diffy allows a forensic investigator to quickly scope a compromise across cloud instances during an incident, and triage those instances for followup actions.
- Snitch: Box created a Virtually Consistent FileSystem build on top of S3. An interesting solution that allows Box to prevent data loss by building a consistent solution using an eventually consistent storage. Sadly not open sourced...
Labels:
consistency
,
docker
,
filesystem
,
forensic
,
Kubernetes
,
links
,
s3
,
security
Monday, May 14, 2018
[Links of the Day] 14/05/2018 : Concurrency and Paxos resources, PostgreSQL + docker streaming replication
- PostDock : This is an interesting project, It aims are delivering a Postgres streaming replication cluster for any docker environment. Sprinkle this with Kubernetes config and you would end up with an RDS equivalent. Even if I still think that on a long run CockroachDB / spanner solution are probably better for cloud deployment.
- awesome-consensus : Awesome list for Paxos and friends
- Seven Concurrency Models in Seven Weeks : more concurrency stuff. Excellent (free) book looking at all the important stuff: Threads & locks, functional programming, separating identity & state, actors, sequential processes, data parallelism, and the lambda architecture.
Labels:
concurrency
,
consensus
,
docker
,
links of the day
,
paxos
,
postgres
,
replication
Wednesday, May 09, 2018
A look at Google gVisor OCI runtime
Google released a new OCI container runtime: gVisor. This runtime aim at solving part of the security concerns associated with the current container technology stack. One of the big argument of the virtualisation crowd has always been that the lack of explicit partitioning and protection of resource can facilitate “leakage” from the containers to the host or other adjacent containers.
This stem from the historical evolution of containers in Linux. Linux has no such concept of native containers. Not like BSD with Jails or Solaris with Zones. Containers in Linux are the result of the gradual emergence of a stack of various security and isolation technology that was introduced in the Linux kernel. As a result, Linux ended up with a highly broad technology stack that can be separately turned on / off or tuned. However, there is no such thing as a pure sandbox solution. The classic jack of all trade curse, it’s a master of none solution.
The Docker runtime (Containerd) package all the Linux kernel isolation and security stack (namespaces, cgroup, capabilities, seccomp, apparmor, SELinux) into a neat solution that is easy to deploy and use.
It allows the user to restrict what the application can do such as which file it can access with which permission or limits resource consumption such as networks, disk I/O or CPU. It allows the applications to share resources without stepping on each other toes happily. Also, limits the risk any of their data being accessed while sitting on the same machine.
With a correct configuration ( the default one is quite reasonable ) will allow blocking anything that is not authorised and in principle protect from any leak from a malicious or badly coded piece of code running in the container.
However, you have to understand that Docker has some real limitation already. It has only limited support for user-namespace. The user-namespace allows applications to have UID 0 permission within the containers ( aka root ) while the containers and user running has a lower privilege level. As a result, each container would run under a different user ID without stepping on each other toes.
All of these features rely on the reliability and security (as in no bugs) of the Linux kernel. Most of Docker advanced feature relies on kernel features. And getting new features is a multi-year effort, it took a while for good resource isolation mechanism percolates from the first RFC to the stable branch by example. As a result, Docker and current container ecosystem are directly dependent on the Linux kernel update inertia as well as its code quality. While being excellent, no system is entirely free of bug, not to mention the eternal race for patching them when they are discovered and fixed.
Hence the idea is to, rather than having to share the kernel between all the containers, have one kernel per container. Explicitly limiting potential leakage, interference and reduce the attack surface. gVisor adopts this approach, which is not new as KataContainers already implemented something similar. Katacontainers is the result of the fusion of ClearContainer (intel) and runV (hyper). Katacontainers use KVM as a minimalistic kernel dedicated to the container runtime. But, you still need to manage the host machine to ensure fair resource sharing and their securitisation. This additional layer of indirection limits the attack surface as even if a kernel bug is discovered you will be challenged to exploit it to escape to another an adjacent container or underlying one as they are not shared.
gVisor can use a KVM as kernel; however, it was initially and is still primarily designed around ptrace. User Mode Linux already used the same technique, which is to start a process in userspace for the subsystem that will be running on top. Similarly to a hypervisor model used by virtual machines. All the system calls will be executed using the permission of the userspace process on behalf of the subsystem via an interception mechanism.

Now, how do you intercept these system calls which should be executed by the kernel? UML and gVisor divert ptrace primary goal ( which is debugging ) and inject a breakpoint in the executable code to intercept and stop for every system call execution. Once caught the new userspace kernel will execute the call on behalf the original process within userspace. It works well, but as you guessed, there is no free lunch. This method what heavily used by the first virtualisation solution. But rapidly, processor vendors realised that offering hardware-specific acceleration method would be highly beneficial ( and sell more at the same time).
KVM and other hypervisor leverage such accelerator. Now you even have AWS and Azure deploying completely dedicated coprocessor for handling virtualization related acceleration. Allowing VM to run almost that the same speed as a bare metal system.
And like Qemu leveraging KVM, gVisor also offer KVM as underlying runtime environment. However, there is significant work to be done to enable any container to run on to of it. While ptrace allow to directly leverage existing Linux stack, with KVM you need need to reimplement a good chunk of the system to make it work. Have a look at Qemu code to understand the complexity of the task. This is the reason behind the limited set of supported applications as not all syscalls are implemented yet.
As is, gVisor is probably not ready yet for production. However, this looks like a promising solution providing a middle ground between the Docker approach and the Virtualization one while taking some of the excellent ideas coming from the unikernel world. I hope that this technology gets picked up, and the KVM runtime becomes the default solution for gVisor. It will allow the system to benefit from a rock-solid hardware acceleration with all the paravirtualisation goodies such as virtio.
Labels:
container
,
docker
,
google
,
isolation
,
kernel
,
kvm
,
linux
,
performance
,
security
,
unikernel
,
virtualization
Tuesday, September 12, 2017
[Links of the Day] 12/09/2017 : OpenFaaS serverless framework, Papers I like, Docker comparison tool
- FaaS : Functions as a Service (OpenFaaS) is serverless framework using Docker & Kubernetes. What I really like about this approach is that it simply relies on using STDIN and STDOUT as a way of passing event trigger and output of the serverless function. It allows great flexibility and open up functionality that you wouldn't have by using Lambda by example. As it constraints you behind the REST + API gateway model.
- Papers I like : start of a really cool series ( 5 parts so far) of interesting fundamental papers. Must check out!
- lstags : a practical little tool that allows you to compare local docker image with the ones in a repository.
Labels:
docker
,
links of the day
,
paper
,
serverless
,
tool
Friday, April 21, 2017
[Links of the Day] 21/04/2017 : HPC 2017 trends, Docker cheat-sheet, Incident response best practice
- Current Trends in High-Performance Computing and Challenges : Jack Dongarra annual HPC review, It's amazing how the chinese progressed. They literally took over the top 500 in less than ten years. And now they dominate using homegrown chips and network fabric. [slides]
- Docker cheatsheet : 'nough said.
- Increment - On-call : New magazine providing article on how to scale companies. Each edition focus on a different topic. For the inaugural issue, they focus on industry best practices around on-call and incident response.
Labels:
best practices
,
docker
,
HPC
,
label
,
links of the day
,
on-call
,
scale
Friday, April 14, 2017
[Links of the Day] 14/04/2016 : OpenFabric Workshop , Docker's Containerd , Category Theory
- OpenFabrics Workshop 2017 : Some interesting talk this year at the open fabric conference:
- uRDMA : Userspace RDMA using DPDK. This opens up a certain amount of possibility, especially for object storage solution. [Video , Slides, github]
- Crail : Using urdma above to deliver accelerated storage solution for Apache big data projects [Slides, github]
- Remote Persistent Memory: I think this is the next killer app for RDMA. If Intel doesn't jump onto it and deliver a dpdk like solution. [Video, Slides]
- On Demand paging: slowly the tech is crawling its way up to upstream acceptance. While on-demand paging introduces a certain performance cost. It also allows a greater flexibility in consuming RDMA. One of the interesting aspects that nobody mentioned yet is how this feature could be used with persistent memory. I think that there is some good potential for p2p NVM storage solution.[Video, Slides]
- Containerd : Containerd move to github, the docker "industry standard" container runtime is also reaching its v.0.2.x release. [github]
- Category Theory : If you are into functional programming and Haskell. This is a must read book for you.
Labels:
category theory
,
container
,
docker
,
haskell
,
kernel
,
linux
,
nvm
,
nvme
,
openfabrick
,
rdma
,
user space
Friday, October 14, 2016
[Links of the day] 14/10/2016 : Docker Infrakit , erasure Code for big-data and ARM research summit
- InfraKit : docker answer to public cloud lock in. It allow devs to easily deploy their systems on various cloud infrastructure without code change.
- Erasure Coding for Big-data Systems : Phd Thesis of Rashmi Korlakai Vinayak on erasure code for very large data systems. The author analyse the requirement and provide potential solution allowing resource efficient distributaire storage codes . The authors looks at the various trade-off that can be used to guarantee durability while limiting ressource usage.
- ARM Research Summit 2016 : live blog of the keynotes, a lot of the research issue are similar to x86 one. Which can be worry some as ARM needs to be able to differentiate itself from Intel especially in the server market.
Labels:
arm
,
bigdata
,
cloud
,
docker
,
erasure code
,
links of the day
Friday, July 22, 2016
[Links of the day] 22/07/2016 : Blockchain distributed storage, Docker use cases, Run Go in unikernel
- BlockStack : a distributed storage system that uses blockchains on Bitcoin to securely define a global name space. The name’s are all tied to values which representing URI(URL)s to storage systems like AWS S3 but could be any cloud storage service.
- Use Case track : Videos from the Use Case track at @DockerCon 2016
- Atmanos : this is really cool, this project enable you to compile go code and run it as a unikernel on top of Xen
Labels:
blockchain
,
docker
,
golang
,
links of the day
,
storage
,
unikernel
Tuesday, April 12, 2016
[Links of the day] 12/04/2016: distributed systems class, docker for HPC and nice monitoring system
- netdata : nice monitoring systems for a single node system
- distributed systems class : a must read distributed system class by Aphyr (Kyle Kingsbury). It pretty much covers everything you need to know as an introductory class and give you enough pointer to then dig deeper into the wonderful world of distributed systems. Bu beware, like alice in wonderlands you never know how deep the rabbit's hole goes.
- Shifter : docker container seems to have have some limitation when it comes to run in HPC environment. By example the lack of capabilities to run on disk less node is a significant limiting factor. Shifter was created using docker technology with HPC as the main deployment environment in mind to specifically address these shortcomings.
Labels:
containers
,
Distributed systems
,
docker
,
HPC
,
links of the day
Friday, January 22, 2016
On Docker absorbing Unikernel
Docker just bought Unikernel. This is an interesting move from this company. It allows Docker to make a counter move to its usual strategy which revolved around expanding its deployment practice, management tools and platform management offer.
The main attraction of unikernels, for Docker and its users, are performance and security. While some may argue that performance might be a red herring. You have to remember that, with unikernel, Docker is able to make a significant foray in the world of :
In order to make unikernels attractive to the current its current developer base. Docker will have to put tremendous efforts in creating user friendly DevOps mechanism that made Docker popular. This is a significant challenge as unikernels often requires specific tools and application build to run. Making this offer transparent and easy to use will make or break this acquisition. Capstan from OsV is a step is a right direction to achieve that by example.
However, Docker might have a darker motivation :
- networking where real time performance in NVF is crucial (Rump is really nice for that). Storage might also be another use case.
- IoT where speed and minimalist footprint provide a significant advantages
In order to make unikernels attractive to the current its current developer base. Docker will have to put tremendous efforts in creating user friendly DevOps mechanism that made Docker popular. This is a significant challenge as unikernels often requires specific tools and application build to run. Making this offer transparent and easy to use will make or break this acquisition. Capstan from OsV is a step is a right direction to achieve that by example.
However, Docker might have a darker motivation :
- if docker successfully embrace the unikernel tech, will accelerate the vendor lock in due to its inherent nature.
- if docker fails it would have simply extinguish a competitor and part of a competing tech with it.
Tuesday, November 10, 2015
Links of the day 10/11/2015: #containers, #Unikernel & #virtualization power consumption, security, and streamlined
- Qubes with Rumprun : Interesting application of unikernel to deliver greater security at speed. the goal is to reduce the possible attack surface while maximizing performance.
- Power Consumption of Virtualization Technologies: empirical Investigation that confirm a lot of what we knew already, virtualization power consumption is higher than container.
- Vagga : containerisation tool without daemons. Slim down streamline version of container. No deamons or other process to run to support it. Looks like a solid contender to docker and other vagrant.
Labels:
containers
,
docker
,
kvm
,
links of the day
,
power
,
security
,
virtualization
Friday, October 23, 2015
Links of the day 23/10/2015: #Openstack, #KVM, #Docker at scale at #CERN
- Openstack at scale at CERN : 5k hypoerisor, 15k VM, up to 1 Millions vm, the scale of the CERN openstack deployment is really what is driving the effort to push openstack beyond its limits.
- HEPIX fall 2015 : Hepix is a really interesting workshop as it provide real use case report and experience of large scale IT infrastructure and as time evolved pretty much HPC cloud centric solution.
- Performance comparison of KVM and Docker instances in OpenStack : well no surprise here, docker faster all the way
Monday, August 24, 2015
Links of the day 24/08/2015 : #Docker vs #kvm vs #Osv performance, #Linux NVM programming tutorial and Datacenter SLA ontology
- Hypervisors vs. Lightweight Virtualization: a Performance Comparison : Ericsson presentation comparing #KVM / #Docker / #LXC/ #OSv at WoC 2015 , good overview of the trade off between the various technologies.( even if jailhouse / partitioning tech is missing).
- Data Center Telemetry Analytics for Efficient and Adaptive Service Level Agreement Management : trying to create a single ontology to represent datacenter information. Hard task also because depending of the customer consumption model of such resource you will not get a 1-1 mapping. The classic example is with Telco vs ISV customers.
- Linux* Tutorial for Persistent Memory Programming Using Non-Volatile Memory Libraries : Updated NVM SDK tutorial from Intel. Some nice bit on transactional operations and a glimpse on future NVM performance in the backup slide: less than 20 usec read latency with software making the bulk of the cost and hardware taking less than 5 usec of the overall.
Labels:
docker
,
hypervisor
,
intel
,
kvm
,
library
,
links of the day
,
lxc
,
nvm
,
nvme
,
osv
Thursday, July 23, 2015
Links of the day 23 - 05 - 2015
Today's links 23/05/2015: #EC2 + #docker = #PaaS , cpu pipeline side channel attack, packetized memory interfaces
- Empire : self-hosted PaaS called Empire. Empire provides a 12 factor-compatible, Docker-based container cluster built on top of Amazon's robust EC2 Container Service(ECS), complete with a full-featured command line interface.
- Hardware Side Channels in the Cloud : attacks which targets co-located virtual machines in the cloud. This attack exploits the CPU’s pipeline as opposed to cache tiers which are often used in side channel attacks.
- Applications for Packetized Memory Interfaces : interesting thesis where teh author propose to abstract away the underlying timing characteristics of the memory technology and allow greater flexibility in the design of memory hierarchies by using packetized memory. However i am not sure yet how this differ from Numascale and consort..
Thursday, June 25, 2015
Links of the day 25 - 06 - 2015
Today's links 25/06/2015: Java 8 Micro service actors, Device testing framework, #Docker security cheat sheet
- NTS: cloud-based automation framework that lets you remote control most Netflix Ready Devices.
- Kontraktor : (Micro-)Service oriented, distributed Actors designed for Java 8
- Docker Security Cheat Sheet : container are as secure as the duct tape around it :)
Labels:
docker
,
famrework
,
java 8
,
links of the day
,
security
Monday, June 15, 2015
Links of the day 15 - 06 - 2015
Today's links 15/06/2015: #NVMe history, #Docker Load balancer, real time distributed OLAP
- NVM Express : History and driver evolution [ Slide deck ]
- Flaxton : Load Balance Docker containers and child servers using Linux ipTables, without dealing with container ip
- Pinot : Linkedin realtime distributed OLAP datastore deliver scalable real time analytics with low latency. It can ingest data from offline data sources (such as Hadoop and flat files) as well as online sources (such as Kafka).
Subscribe to:
Posts
(
Atom
)