I'm jotting down some notable tech news we've been discussing internally (in our slack #techtalk channel) this week.
We use New Relic on a number of applications, it's a great tool for highlighting performance issues in applications. Microsoft has always been somewhat in that game, but their new offering built into Azure is called "Application Insights". It looks to be a direct competitor to New Relic. It also has logging and a query engine to go with it, so it may also be aiming for cloud logging providers too (like Log Entries). https://azure.microsoft.com/en-us/documentation/articles/app-insights-overview/.
Trevor uses a mac (boo!), and we're a Microsoft development house. At times he struggles to find the right tools to work in a primarily windows environment, and he usually resorts to a virtual machine or RDP. We recently found this tool called Wagon (https://www.wagonhq.com/), and Trevor has been using it and enjoying it. Wagon is built on Electron, another tool we have been keeping an eye on lately. Fabrizio is especially enamored by it.
Apparently we care about API versioning. I'm not sure, but other people care about it more than me: Your API versioning is wrong, which is why I decided to do it 3 different wrong ways.
VHS won! But only barely. https://www.theguardian.com/technology/2015/nov/10/betamax-dead-long-live-vhs-sony-end-prodution, http://news.sky.com/story/remember-vcrs-production-to-end-as-sales-slump-10509632.
Lastly, John found this. Have we gone too far?
In one of the applications we're working on we recently had to make a move from InfluxDb v0.8.7 to v0.9.6. Because the official migration paths didn't work for us (DB upgrades would either lose data or not finish at all) we had to develop a small c#/.net app that would reliably execute the migration for us.
We successfully migrated around 4GB of data with it and are quite happy with how it went. It did take quite a bit of time but all the data is safe and usable.
The app also lets you specify backfills (rollups) to be created once all the base data is migrated.
Today we're open-sourcing this migration tool in hope it might help someone else make the move as well. :)
12/01/2017 UPDATE: It is Against the Azure Terms of Service to use a VM to send out emails. Microsoft recommends you use a third party email sender.
Today I had an interesting challenge. It was to set up a SMTP server on an Azure virtual machine for a client who were moving to the cloud.
As we all know Microsoft likes to lock down or change certain settings on us when using their cloud services so hopefully this guide will help someone when setting up their SMTP on an Azure VM.
Here is the steps I needed to do in order to get SMTP server working on the Azure virtual machine.
- Install SMTP via Server Manager > Manage > Add Roles and Features
- Click Next until you reach "Server Roles"
- Tick Web server
- Click Next
- Tick SMTP
- After Installation Open IIS 6.0 Manager
- Right Click on SMTP Virtual Server and click properties
- Pick the VMs local IP address (Should be only one in drop down)
- Click Access Tab
- In the "Connection" and "Relay" screens select "All Except the list below"
- Click Apply and OK
- Go to Services
- Right Click "Simple Mail Transfer Protocol"
- Set the startup type to Automatic
- Click Apply
- Stop and Start the Service
- Click OK
- In your Web configs ensure to change any SMTP Server values from "localhost" to the name of the Azure VM e.g. "DovetailExampleVMName" This is the name you used when you first created the Virtual Machine on the Azure portal.
- Test your SMTP server
Hope this helps some people who are having trouble porting some websites over to an Azure virtual machine that used SMTP on their server.
Big data has been a hot topic for some time in our Industry, and Dovetail has of course been exposed to the challenges of creating, consuming and reporting on large data sets. InfluxDB is our new friend on this journey.
Without going into the details of the project - Kit, John & Trevor have been working with a new client recording large amounts of information from sensors, then creating valuable, responsive reports on the fly for end users.
We created the initial prototype using SQL Azure, but quickly found this would not perform sufficiently as a long term solution. The team did some research into time-series databases and settled on InfluxDB as a great next step.
InfluxDB is developed specifically to handle time series data and automatically summarizes data at specified intervals, resulting in much faster reports from large datasets.
Since we're all now humming the song now, we might as listen to it - https://www.youtube.com/watch?v=GDpmVUEjagg (Great tune).
We've started using slack. Do
we really need another way to communicate besides email, im, sms,
I had seen Slack over a year ago, and thought, nah, surely we've
enough ways to communicate already. But it has actually proved
quite useful so far. Yes, it's another realtime chat app.
Where we have found real value is in the different channels
(rooms). We have created channels for each of our clients, so
relevant discussions about client projects can be kept. Context
matters when it comes to adhoc information, so this keeps the right
stuff in the right place. It's searchable, which is really handy to
find old conversations.
We have places for our structured data like: specs (Google
Docs), support cases (FogBugz), and project management (Teamwork).
Slack fills the gap for unstructured ahoc conversations.
Conversations that might come in handy in the future.
What we're up to this week
Martin is working with CIS this week. He's been
tasked with migrating their server infrastructure from a dedicated
physical server to an Azure virtual machine. Cloud rocks!! He was
also specifiying some salesforce and sharepoint
integration as the guys in CIS are evaluating both tools to improve
their workflow. Martin has also been working on an
eTender for the Transport industry.
John is working on the final tweaks to the GVS voucher system
before we go live with a new version very soon. As mentioned
before, the new version takes advantage of responsive web
design, which will make the user experience much
better for clients on mobile and desktop browsers.
While Trevor is away on Holidays (The south of
France mind you, swit swoo!) I am taking over
the project management of IKEA Family Kiosk
project. Tomás is working on this with me and
we are creating lots of new functionality for an upcoming release
of the IKEA Family Kiosk system for the UK and
We're still sad, missing über-intern Greg,
but we've been cheered up by playing darts on the board he left as
a parting gift. Mossy and Martin
have been struck down by Darter's Elbow already, much to the
delight of the rest of us. Thanks again Greg - it was a really well
chosen present and is much appreciated.
This week Mossy and I rolled out an upgrade to
IKEA's FAMILY system. We're utilising Microsoft Azure Traffic Manager
to provide geo-redundancy across datacentres, and I've been very
impressed with how the Azure platform makes features such as this
so straightforward. I did get caught out by the fact that Internet
Explorer caches DNS records, but everything is working great
John has rolled out fixes and new features for
a number of clients, including PerfectCard and IKEA. He's really
found his feet now and doing great work. Meanwhile
Martin has turned the first sod on a new project
for CIS so it's all go. When Tomas gets back
from holiday next week there'll be no easing back in to it - sorry
The big surprise of the week was discovering that Pinchy the Crayfish is a
lady - she's carrying eggs under her tail to prove the point.
Hooray! It's about time we got a bit of gender balance in the
Today, I wanted to create a clone of a SQL Server Azure database. I was looking at various ways of doing this, including exporting and re-importing the database, but thankfully, there is a much easier way.
I ran the following SQL command against the master database on the SQL Azure server:
CREATE DATABASE New_database
AS COPY OF Old_Database
For more details, check out the official documentation and this Idera blog post.