Category: Blog

  • T-SQL Tuesday #142–What is Bicep?

    It’s time for the monthly blog party, and this month the host is Frank Geisler. I was reaching out to various people last year to find hosts, and also (silly-ly) looking for first names to fill out the alphabet on the host page.

    Frank is a fellow MVP and a BI expert. He was gracious enough to agree to host and I thought he picked an interesting topic. This month’s invitation is about scripting to deploy resources. I don’t do a lot of deployments over and over, but I have been interested in one area. It’s actually been a tab in my browser open for a few weeks, so I took this opportunity to dig in.

    Bicep

    I’ve been seeing this term used in various blogs, and in the MVP email list we have. I wasn’t sure what it was, and I kept thinking of this:

    flexing-flex

    That’s not it at all, and I was glad I went through this resource.

    Bicep is a transpiler, meaning it takes one language and translates it into another. In this case, the Bicep language will move code into the ARM JSON templates. JSON is really for machines, not humans, so the idea is to give sysadmins and developers an easy way to describe resources they need to deploy into Azure.

    The language is new, and it’s on Github. This is a DSL (domain specific language), which means it was designed for a specific purpose. With the 0.3 release, the language is built into the Azure CLI and Azure PoSh utilities, so this will do the transpilation for you. There’s also a decompiler to go from an ARM template back to Bicep. It’s also supported by Microsoft, which is always a plus if you need to call for some issue.

    I don’t know a lot about Terraform, but this appears to be another language designed to do the same thing. The FAQ in GH notes this is a revision of ARM, which I guess makes sense. I’m guessing at some point they’ll try to get people to not use ARM (or stop supporting this) and only work with Bicep. Azure supports Terraform, so I’m guessing this is more an attempt to deprecate ARM and the challenges of customers working with JSON.

    A couple things I did like about this. First, there are modules, so you can reuse some code. There is also intellisense, validating and getting you actual resources from Azure that are available. I do worry about deprecation that makes it difficult to deploy a copy of an existing resource when Azure is trying to push you to use some new resource. However, I do think the intellisense and validation in the VS Code extension improve productivity for developers and sysadmins.

    Reuse also helps infrastructure teams assist developers by providing them modules that adhere to good or best practices.

    The language looks like a mix of Python and YAML. Not too hard to understand, and with help, this should be easy to use to create a resource.

    2021-09-14 10_23_36-Bicep language for deploying Azure resources - Azure Resource Manager _ Microsof

    I’m pressed for time today, so I’m not going to experiment or set up an environment, but I need to add this to a list of things to do.

    Why call it Bicep?  No idea. I can’t find an answer, but I did someone say these are “ARMless deployments”. Not sure that fits with Bicep, but I like the logo.

    2021-09-14 10_22_05-Bicep meet Azure Pipelines _ I CAN MAKE THIS WORK

  • Daily Coping 14 Sep 2021

    I started to add a daily coping tip to the SQLServerCentral newsletter and to the Community Circle, which is helping me deal with the issues in the world. I’m adding my responses for each day here. All my coping tips are under this tag.

    Today’s tip is to give yourself permission to say no.

    This is one of the skills I’ve developed in my career. In fact, at my 10 year anniversary with Redgate, our CEO pointed this out. I tend to say “no” unless I’m 100% sure I can deliver. In general, this is how I work.

    I forgot this recently, and agreed to something I wasn’t sure I could fit in. I had to back out, which I hate doing. A good lesson, and this tip was a good reminder for me.

    This doesn’t mean I just always say no to things. Instead, I try to gauge how confident I am, realistically thinking about my schedule and workload and home life. Then if there’s no reason I can think of that will cause issues, I’ll agree. If I have doubt, I say no, but offer to revisit or see if I can move things around.

    I do try to work with and accommodate others, but I’m happy to say no if I can’t, rather than having to back out, or worse, fail to deliver later.

  • Changing the Connection for Data Masker

    Data Masker for SQL Server is a great tool ensuring the data you use in non-production environments is compliant with any regulations by obfuscating and changing sensitive data. This is part of a series of posts on Data Masker from Redgate Software.

    I needed to check something for a customer recently in Data Masker. However, I didn’t want to mask my existing database. Instead, I wanted to make a copy of the db and then use my masking set. However, the existing masking set includes a setting for the connection string.

    When I first started using Data Masker, this was something I hadn’t thought about. The new masking set dialog asks for an instance/database name, and then this gets hidden. The first time I needed to change the connection, I hunted through all the menus, looking for a project option.

    The Controller

    I was lucky enough to work with the developer of the Data Masker product, who contracted with Redgate for a bit after the acquisition. I emailed him in frustration and he spent a little time explaining the architecture decision. Since Data Masker can connect to multiple databases for different situations, the connection is actually in the controller. This allows one masking set to handle multiple databases.

    As you can see below, all of my rules are indented below the controller. This means they all use the connection setting in the controller.

    2021-09-10 10_10_42-simpletalk_ Data Masker for SQL Server

    To change to connection string, I click “Edit Rule” with the controller highlighted. This lets me see all the settings right away.

    2021-09-10 10_12_41-Edit Rule Controller

    I can change the database name (or other settings) and then I always click “Test Connection” as I have been known to mis-type things, and this isn’t a drop down.

    2021-09-10 10_13_45-Edit Rule Controller

    Don’t forget to click “Update Rule Controller”. There is no save here. That’s what does it.

    Data Masker is an incredibly powerful tool for protecting sensitive data. I see more and more customers using it all the time to comply with GDPR and other government regulations. If you’ve never tried it, download an eval today and check out our library of articles.

  • Daily Coping 13 Sep 2021

    I started to add a daily coping tip to the SQLServerCentral newsletter and to the Community Circle, which is helping me deal with the issues in the world. I’m adding my responses for each day here. All my coping tips are under this tag.

    Today’s tip is to focus on the basics, eat well, exercise, get rest.

    Easy coping tips for me, for the most part, and something I do often. I make exercise a priority, and often am happy to go to bed early to get rest. I try to eat well, though I sometimes indulge myself too often as food comforts me.

    However, with just 3 of us at home, and my wife being a little more careful with eating, I have been tailoring my cooking to be healthier. Shrimp Kabobs a couple nights ago, after a salad for lunch and a couple protein bars to get me through the day. A little yoga on a break from work, and no late nights.

    Taking care of my physical self helps the rest of my cope on many, many days.