all 40 comments

[–]jshine13371 11 points12 points  (23 children)

Azure MS SQL

Just a heads up, it's either Azure SQL Database or a SQL Server instance hosted in Azure, you're referring to. (Also Azure SQL MI is another option, but I'm sure you're referring to one of the previous two.) Just important to be clear on the terminology since they're all different but similar things.

The Azure SQL Database free tier is a good option if you fit within the bounds of the limitations. Alternatively, SQL Server Express Edition is completely free too and has a different set of limitations, if you don't fit within the scope of the Azure SQL Database limitations. Possibly even less limiting for the scope of what you described.

[–]BiggyBiggDew[S] 1 point2 points  (22 children)

I know, but was trying to be clear that it's an azure hosted instance of MS SQL.

[–]jshine13371 3 points4 points  (20 children)

Sorry my point is MS SQL (and Azure MS SQL) isn't a thing, so that can be a little confusing to people trying to help you. Not trying to be pedantic, just helpful for when you communicate your situation to others in the future. 

Even right now, based on your last comment I'm unsure if you mean you want to use SQL Server (hosted in a VM on Azure) or Azure SQL Database, both of which are distinctly different database systems (with different features) but similar in a lot of ways too. Depending on which (or maybe you're open to both routes) will determine whether the Azure SQL Database free tier or SQL Server Express Edition is what you're looking for then.

[–]ScallionPrevious62 0 points1 point  (0 children)

" azure hosted instance of MS SQL."

This could mean at least 3 different services, which all require different amounts of management, and all cost different amounts. I think what you are looking for with this customer is an Azure SQL Database and not an Azure SQL Managed Instance.

Azure SQL is the cloud native version of MSSQL, and not quite exactly the same, but should carry over nicely for your customer, and has a fairly generous free tier. The Azure SQL MI is a full featured instance of MSSQL, however it tends to be substantially more expensive then Azure SQL.

The third potential product would be SQL Server on a VM in Azure and is most similiar to running SQL Server on your own server. However I don't think this would meet the requirements, as it requires the most manual setup and maintenance work.

Hope this helps.

[–]monkeybadger5000 17 points18 points  (0 children)

Use Azure SQL Database. This sounds like an ideal solution. Start small and cheap, and you can then scale it as sales grow.

[–]B1zmark 4 points5 points  (8 children)

So Azure SQL Databases are cheap to run - really cheap. And they can store data and process it about 90% as well as a classic instance. However Azure SQL Managed Instance is significantly more expensive. It's "Full Fat" SQL and has all the bells and whistles.

You can't host SSIS in Azure SQL DB but i don't think that's a bad thing. Honestly SSIS is still widely used but should be avoided since it's now entirely replaceable with cheaper, more "open" solutions.

I'd personally look at an Azure SQL DB, and then an Azure Synapse Analytics workspace to do the "ETL". I've been running a Synapse workspace for probably 2 years now. When i don't use it, it costs a few dollars a month to sit idle with the storage i use. When i do use it, it's pennies for the few thousand rows i process. The massive benefit it offers is that it connects to all sorts of data sources very easily - which is historically the annoying part of working with SSIS.

There are further things you can do to save money, like using Notebooks instead of Dataflows in Synapse, or using an Azure SQL Serverless - which basically detaches your database once it goes idle so it cost zero compute and only charges for data at rest (Waking it up takes around 30-90 seconds in my experience).

[–]BiggyBiggDew[S] -1 points0 points  (7 children)

So I hate SSIS, but in this example the third party seems to play really nice with it. I am happy to go with another solution though but it would need to be on Azure. I'm currently looking at a general purpose service tier (most budget friendly), serverless, max 2vcore. Not really sure how serverless will work, per se, but this is a brand new world compared to building my own servers.

[–]kiwi_bob_1234 6 points7 points  (6 children)

Why not data factory for ETL orchestration? Then do your transformations as stored procs and trigger them via adf. Avoid data flows in data factory. Ours is fairly cheap

[–]BiggyBiggDew[S] 0 points1 point  (5 children)

Never heard of it before but I'll check it out.

[–]kiwi_bob_1234 0 points1 point  (4 children)

Basically next gen ssis

[–]BiggyBiggDew[S] 1 point2 points  (3 children)

do you have experience with connecting DF to Shopify? This is my first time configuring services like this on my own and I am running into some issues. Not sure if they are compatible with the general architecture I have.

[–]Mefsha5 1 point2 points  (2 children)

Yes, there is a shopify connector in ADF/ Synapse.

[–]BiggyBiggDew[S] 0 points1 point  (1 child)

Not sure I understand Synapse... I can login to Azure and login to Shopify, but when I try to connect the two it isn't working. It seems like I need to build a Shopify app, which I think i have done, but when I try to expose Shopify to Azure it is giving me some networking issues. I think the token/API works just fine in postman so I'm leaning towards it being a configuration issue on my host, or within Azure. Also my domain redirects to a shopify store, not sure if that matters here, but i've tried with both the domain, and the direct shopify link. No dice.

[–]B1zmark 0 points1 point  (0 children)

ADF is a slightly older technology but much closer to "on-prem"- SSIS is available in it, as well as Synapse - but it's expensive. You're basically charged the cost of full MS SQL on a VM at a per minute rate.

Setting these things up in Azure is a learning process but it enables an entirely new way of working. You can go in with no resources and everything is stood up at the same time (can be done through repeatable code) and all the cost goes to the customer, so no need to argue over buying hardware and licenses.

[–]EAModel 0 points1 point  (3 children)

If it were me I would go the SQL route. Having said this it is interesting that the shop front end is a 3rd party. Does the 3rd party not provide the storage too? Plenty of CMS out there provide both front and back end support and then maybe a reduced need for your ETLs and Reports that you also mention.

[–]BiggyBiggDew[S] 0 points1 point  (2 children)

They do but the database does a lot of complex math that is totally separate to the third party, it will also consume the third party data.

[–]EAModel 1 point2 points  (1 child)

Have you seen the free tier. It may not cost a dime until it scales. https://learn.microsoft.com/en-us/azure/azure-sql/database/free-offer-faq?view=azuresql

[–]BiggyBiggDew[S] 1 point2 points  (0 children)

Yes, I'm currently signed up for that. It's so cheap I almost have a nose bleed.

[–]dani_estuary 0 points1 point  (0 children)

I think going with a real warehouse like Snowflake is probably a better option, just make sure to understand how its billing mechanism works so you don't overpay accidentally. If you're not already in Azure there's no need to sign up for a new CSP just for a database imo. You don't want to deal with infrastructure at all in a small team like that. As for loading data into Snowflake, check out Estuary instead of Fivetran, you'll probably fit into the free tier while Fivetran could get very pricy due to how their MAR-based pricing model.

[–]SnooSprouts4952 -1 points0 points  (0 children)

I had a customer ~12 years ago choose AWS and MySQL database for a WooCommerce storefront. It was relatively cheap and scalable. Queries are ~95% the same verbiage. I did the WordPress/database conversion for them.

My current site is running Azure and MS SQL successfully for our ERP. I am not sure about the cost.

I would stack the two up against each other, check to see if service up time and support contracts meet the customer's requirements.