I wanted to share a few queries I created for Atlassian JIRA, that help me to keep track of my activities (e.g. for a weekly report, or to keep track of issues I submitted to other developers) – maybe they are useful for you, too:

  • “My issues reported last week”:
    reporter = currentUser() AND createdDate >= startOfWeek(-1w) AND createdDate < startOfWeek() ORDER BY created DESC
  • “My issues resolved last week”:
    assignee = currentUser() AND Status = Resolved AND updatedDate >= startOfWeek(-1w)
  • “Open issues reported by me”:
    reporter = currentUser() AND assignee != currentUser() AND resolution = Unresolved ORDER BY createdDate DESC

While virtualization makes it pretty easy to spawn up new VMs quickly (e.g. for load balancing purposes), I always felt that providing concurrent file-based access to the same data to these VMs has been somewhat cumbersome, even though it’s still a requirement for many applications that need to share data between parts of the application, or multiple instances thereof.

If you didn’t have some kind of SAN/NAS solution in your data center, it usually involved quirks creative solutions on the VM side (e.g. setting up a VM instance that acted as a central file service via NFS/SMB, or using a shared disk file system like GFS2 or OCFS2). But even if you did, the underlying virtualization technology did not provide any integration or API-based approach to this (at least that was my impression).

I recently stumbled over Amazon’s Elastic File System (EFS), which was announced on April 9th, 2015. EFS provides shared storage as a service (STaaS) via the NFSv4 protocol. This makes it pretty easy to mount the same share on multiple (Linux-based) VMs. Amazon only charges you for the storage that you actually use (billed monthly, based on the average used during the month), and the use of SSDs should make sure that latency (IOPS) does not suck too badly.

Interestingly, Microsoft has been offering something similar for almost a year now: Azure File Service was announced on May 12th, 2014 already. It provides shared access to files via the SMB protocol (which makes it suitable for both Windows and Linux-based VMs). In addition to that, Azure File Service also provides a REST API to access and manage objects stored on this service, which makes this service more versatile/flexible. Similar to Amazon, Microsoft only charges for the disk space you actually use.

Note that both EFS and Azure File Service are still labeled as “Preview” at the time of writing and have certain limitations you should be aware of (Unsupported NFSv4.0 Features in EFS, Amazon EFS Limits During Preview, Features Not Supported By the Azure File Service) – so make sure to have backups of any data you store on them 🙂

The Open Source community has noticed the requirement for shared file access, too – Red Hat recently announced their participation in OpenStack’s Manila project, which provides a shared file service for this emerging cloud technology. From what I can tell, Manila’s focus currently is more on providing shared storage for OpenStack compute nodes, it’s not entirely clear to me yet if there are any plans to establish this as a solution to provide shared file systems to virtual machines as well (in addition to the object and block storage capabilities they already offer).

Learn something new every day: to quickly create a screen shot of a web page in Mozilla Firefox, just press Shift + F2, which opens a small command line interface (including tab completion!). Now type “screenshot <filename>” and you’re done!

Back in the good old days of physical servers, you basically had two choices to increase the performance of your application: you either “scaled up”, by migrating to a beefier server with more RAM, CPUs/MHz, or you “scaled out”, by distributing your application load across multiple individual servers.

Interestingly, I still observe customers applying this way of thinking to virtual environments, using multiple VMs behind a virtual load balancer for scaling out application load.

Does this approach really make sense anymore? I think that it puts more load on a hypervisor to schedule multiple VMs for handling the workload than it would if the same load would be handled by one single powerful VM instance (with more vCPUs, more vRAM).

Does “Scale Out” still make any sense in a virtual environment? It probably also depends on the application and if it can effectively scale with more CPUs and memory, but in general I don’t think it is a valid approach.

Today marks a big day for me: I bit the bullet and deleted my Facebook account. The option wasn’t that easy to find, but in the end it didn’t hurt at all!

I will miss the social interaction with my friends and acquaintances across the globe there, but I did not agree with the upcoming changes to Facebook’s terms of service and the privacy implications they have.

Congratulations to the Ind.ie team for reaching their goal of raising $100k before December 10th! It’s always nice to see successful crowd funding campaigns that support goals to improve our lives and society.

I’m currently working on setting up Pulse (aka SyncThing) on my own infrastructure, as an alternative to BitTorrent Sync.

I’m also looking forward to Heartbeat, their distributed social network project that is based on Pulse.

I’m confident the money raised will be put into good use!