Tag Archives: blogging

My Build and Deploy Process (as Requested by Bill Fellows)

Recently I attended Reg-Gate’s SQL in the City event in Seattle, WA. I was in Seattle for the annual PASS Summit, you can read about my Summit adventures here. While at RedGate’s event, I attended a session that called on SQL Server Data Tools (SSDT) users. RedGate wanted to get a better handle on what pain points we had in SSDT with respect to source control. I use Team Foundation Server (TFS) as my source control product and it ties in very nicely with SSDT.

After this discussion, Bill Fellows (B | T), asked if I would be willing to blog or speak about my own build and deploy process for databases. Well, given that I am so NOT a speaker type, the seed for this blog post was planted.

I will not be diving into technical detail on how to do all these things (that would be a very large book), but more giving an overview of the features of TFS and why I think they are important and how I use them. Think of this as the 50,000 foot overview of my build and deploy process.

Integration with SSDT (Visual Studio)

Since I don’t want to use umpteen gazillion tools for development, I want my source control to integrate seamlessly with Visual Studio. TFS does this better than any other product I’ve used, probably because they are both Microsoft products. This way I don’t have to use multiple IDEs to work on SSIS, SSRS, SSAS and database development projects. I have one tool with the same source control experience for all.

Design your Branches Accordingly

TFS uses the Branch paradigm to split code out for different development efforts. I like this paradigm, it’s easy to visualize and makes sense to me. Designing your branches is probably the most important part of the source control process. Think of this as your data model, if you get this wrong, you will pay dearly for it in the end. Think about how your organization is structured and how your code moves through the development process. What environments do you have: Development, QA, Staging, Hotfix, etc.? How does your code move through those environments? Is it strictly one-way or can your code move in more than one direction?

Gated Check-ins

Because no matter how many times you tell your developers to do a build locally before checking in their changes, someone will inevitably forget. The last thing you want is bad code getting into your code base. Then you’re left with all your developers sitting around while changes are backed out/corrected, we all know what happens when developers sit around with idle hands. Gives me nightmares just thinking about it.

Automated Builds

This is so important. You most likely have more than one developer working on code. You want to make sure that all those changes they are making are not stomping all over each other and breaking things. Just because developers can get their code past the gated check-in, doesn’t mean it won’t break something else. You should actually be doing this for all your environments, not just development. In a large shop I recently worked in, we scheduled our automated builds twice per day. The first one was for 3 a.m., which allowed enough time for correction before staff came in if a build failed. The second one was at lunch time. This one allowed us a “sneak peek” at the big picture before the nightly processes kicked off. While TFS does provide some default build templates, so many of us have such custom applications and database projects that you may have to learn how to write xaml, I did.

Build Notifications

This is one of my favorite “tattle tale” features of TFS. You can set up notifications to find out when things are checked in successfully, when check-ins fail, when builds fail, all kinds of things. Use this feature. I can’t stress this enough, USE THIS FEATURE!

Power Tools

While TFS has some great features, some of them are a bit hard to navigate/use. This is where Power Tools comes in. It’s available freely for download from MSDN. It makes some great features just a click away, instead of having to write some obtrusive custom code to get what you want – like, who has what checked out in a branch or wild card searching or copying a query or cloning builds, etc.  The list is quite extensive.

Default Settings

All of these things don’t really do a lot of good unless you change the default settings for source control in SSDT. One of the biggest bang for your buck settings is to automatically get code when you open a solution. By default this is not enabled, silly I know, but it’s not. The other setting is to check out objects automatically when they are edited. These two settings will make your source code life much easier.

Wrapping it up

I’m not going to lie, getting this all set up in TFS is no small effort. This is your livelihood, treat it as such. Do your research into how your company’s processes currently work and then compare them to how you want them to work. Once you have all that you can come up with a build and deploy process that works for you.

Good luck!

The Whirlwind That Is October – Part 3

October has been such a whirlwind of PASS activity for me. Two SQL Saturdays and the PASS Summit. This post is about the PASS Summit in Seattle, October 27 through 30. You can read about my SQL Saturdays here and here. Settle in, get a cup of <insert caffeinated beverage of choice>, this is going to be a long one.

I arrived in Seattle on Saturday, October 24th. Since I spent a lot of my formative years in the Pacific Northwest, I usually go early and have family and/or friends meet up with me for the weekend, but this year life just got in the way so I spent Saturday afternoon and Sunday wandering around Seattle alone doing touristy things and stocking up on souvenirs for those left at home.

Monday morning came bright and early and I headed over to RedGate‘s SQL in the City event. This is the fourth year that I’ve attended this event. It mostly showcases how to use RedGate products, but there are some other useful sessions as well. One that I particularly liked was the workshop that called on SSDT users. They broke us up into two groups and had a RedGater leading the conversation. I got to meet some new folks like Phil Helmer (B | T) and know that I wasn’t alone with some of my frustrations when using TFS in SSDT. Of course Bill Fellows (B | T) was there providing valuable insight as well. And yes Bill, I will blog about my build and deploy process sometime in the near future. I also got to meet Andrea Allred (B | T) in person. We had connected over Twitter via our musical interests and really hit it off in person. Andrea I can’t thank you enough for encouraging us to drive 4 hours to see The Struts (B | T), it truly was an experience I will never forget. I also got to officially meet Sheila Acker (T). She has been a familiar face for the last five years, but we officially met this year. So nice to finally meet you Sheila.

I ended my Monday by catching up with my dear South African friend Martin Phelps (B | T) at Rock Bottom Brewery. He has a lot of work ahead of him, he and his teammates are trying to make it to the World Championships of sky diving in April 2016. Good luck Martin!

I got to sleep in a bit on Tuesday before I hit my favorite hole in the wall eatery, Blue Water Taco Grill (BWTG). Let me just say that I LOVE BWTG. I live in High Point, NC, where they think that a good breakfast burrito is what you get at Chik-Fil-A during their breakfast hours – NOT! I miss my breakfast burritos from Pete’s Kitchen in Denver and while the one that I get at BWTG is not smothered in green chile, it does have chorizo in it – food fit for a king (or queen as it were). But I digress, on with the adventures of Tuesday.

Tuesday was a day for meetings, the SQL Saturday Organizer and Chapter Leader meetings. These were fabulous, got some great ideas for ways to advertise SQL Saturday and my local chapter. After my meetings I hung out with Andrea and her husband Ryan Allred (T) for a while talking music. We exchanged some of our favorite band names, which I am still going through. Then it was off to be a PASS Ambassador for the Welcome Reception. For those that don’t know me, this is my “Most favorite-est” (as my youngest niece would say) thing to do at Summit. I can’t stand up in front of a room of thirty people and present a session without almost hyperventilating, but I have absolutely no problem standing in a crowd of people and greeting them with smiles and assistance when needed.

If you couldn’t tell, I am a big music fan, so it was no contest when I found out that Florence + the Machine (B | T) was playing in Seattle on Tuesday night. After my PASS Ambassadorship ended, I skipped the volunteer party and headed straight to Key Arena. Florence did not disappoint, she performed barefoot (as usual) and was very “twirly”. After a very long day of nonstop action, I headed back to the hotel to get some much needed sleep.

Wednesday started off very early with being a PASS Ambassador once again. Did I mention that this is my favorite volunteer job at Summit? I was at the top of the escalators at 6:45 a.m. greeting attendees, speakers and sponsors. One thing that was new this year was the Ask Me! hand sign. I still haven’t found out whose brain child that was, but when I do, look out, you will be getting a serious #SQLHug from me. Most IT folks are such introverts that they seldom make eye contact with people, so the fact that I had a sign giving them permission to ask a question was AMAZING. I even had one attendee ask if he could have his picture taken with me and my sign (and if this was you, please share that pic, I didn’t get your name and would love to see how it turned out).

Since I was manning the top of the escalators until the start of the Keynote, I missed breakfast completely, so I headed over to BWTG for my morning burrito. I sat there eating my burrito and watching the Keynote – streaming live – Thank you PASS TV! After that I was able to attend the Microsoft Foundation Session on Business Intelligence. Man oh man, I can’t wait for SQL 2016, the enhancements to SSRS alone are enough to make me want to skip over Thanksgiving, Christmas and New Year’s.

Lunch time came around and it was time to say fair well to outgoing Director Amy Lewis (B | T). Amy has been the Director with the Program Portfolio for the last two years and prior to that she was heavily involved in the Program Committee, so I have worked with Amy directly or indirectly for five years. I was sad to see her not run for the Board again, but I understand that life just gets in the way. We have a new fearless leader in Ryan Adams (B | T) and I can’t wait to work with him. I was able to make it to two more sessions in the afternoon, then it was on to the Exhibitor Reception. It was nice to get a chance to chat with some of the vendors and see their products. I also ran into more #SQLFamily than I can name here. I was also “coerced” into giving an interview for PASS TV. If you were unfortunate enough to see that take place, you now understand why I am not a speaker. If you did not witness it, be thankful and leave it at that.

The night ended with SQL Karaoke hosted by Pragmatic Works at Hard Rock Cafe. This is always a good time and this year was no exception. I only wish I could have stayed longer. I retired early as I was to be a PASS Ambassador once again at 6:45 a.m. on Thursday.

The highlight of Summit came when Lance Harra (T) was presented with the PASSion award during Thursday’s keynote. This was long overdue, Lance has been on the Program Committee in some shape or form for eleven years, being a Program Manager for the last three or four. As a member of the Program Committee for the last five years and now a Program Manager, I see how hard Lance works. Next time you see Lance, be sure to congratulate him. We are very proud of him.

Unfortunately this is the point during Summit when I come down with a nasty virus and miss Thursday afternoon and all of Friday. I ended up sleeping in my hotel room for the rest of the conference, missing out on some cool sessions and most importantly #SQLFamily time. I so wanted to catch up with Sebastian Meine (B | T) in the Community Zone to talk about tSQLt. I was also looking forward to hanging out with AZ (T) and so many others during the Community Appreciation party. But in true #SQLFamily fashion, AZ checked in on me every day until I made it home. Thank you AZ!

I ended up at Urgent Care on Sunday morning after I got home.  Needless to say my poor excuse for a respiratory system was in dire need of medical attention.  Four prescriptions and one shot in the butt later, I was sent home to rest and recuperate.

While my experience at Summit ended way too early, I still had a great time. If you’ve never attended a Summit, what are you waiting for? If you’ve attended before, I am so glad you came back and I hope to see you next year.

One last reminder – you can still submit session evals online until November 6, 2015 via the Guidebook app. So do it now! The speakers and the Program Committee need your feedback so we can continue to make Summit a success.

The Whirlwind That Is October – Part 2

October has been such a whirlwind of PASS activity for me. Two SQL Saturdays and the PASS Summit. This post is about the second SQL Saturday I attended in Charlotte, SQL Saturday #452, on October 17, 2015, where I was a member of the organizing team. You can read about my first SQL Saturday here.

I have been an attendee and volunteer for the SQL Saturday in Charlotte that is put on by CBIG for the last 3 years. This year I was approached by one of their fearless leaders, Rafael Salas (B | T), to help out as one of the organizers. How cool is that?!

Let me start by saying I love, absolutely love, helping out as an organizer.   But with that said, wow, it’s a whole lot of work! So the next time you attend a SQL Saturday, be sure to find the organizers and thank them for the event. They do this on their own time and don’t get paid for any of it.

Since I’ve volunteered for registration at several SQL Saturdays (in addition to Charlotte) over the past 4 years and I’ve been on the PASS Program Committee for six years, I decided I could be of most use helping out with speaker selection, session scheduling and registration on the day of the event.

We had a great team of organizers this year, Rafael Salas (B | T), Javier Guillen (B | T), Jason Thomas (B | T), Elizabeth Ricks (T), Don Sparks and me. In the past Melissa Coates (B | T) has been one of the organizers and even though she is not on the team this year she definitely deserves an honorable mention as she put a lot of the processes in place to help make sure things run smoothly. Thank you Melissa!

One of the reasons SQL Saturday was developed was to encourage local speakers. Well, the CBIG team believes in that mission wholeheartedly. We were able to accept sessions from all the local speakers plus some great regional/national speakers.

The event was held at Central Piedmont Community College (CPCC) again this year. It’s a great venue with lots of light and room. All the sponsors were wonderful and had great give-a-ways for the attendees. We only had one speaker cancel in the last week prior to the event and that was beyond his control – clients, what can you do?! Andy Leonard (B | T) was so gracious and stepped up to fill the empty slot without hesitation, Thank you Andy!

We changed things up for the speaker dinner on Friday night. Instead of having just speakers, we included our sponsors and some of our very dedicated volunteers and called it our Appreciation Dinner. The food was delicious and the venue was perfect. I had the opportunity to talk with some speakers and sponsors I’d never met before. Thank you to both groups for all that you do for the community, we wouldn’t be able to put on such a great event without your support.

There were 588 people registered and 328 people actually attend. That’s a 55% turn out, which isn’t great, but it is pretty good. We had some amazing volunteers there helping us out both the night before for setup and during the event on Saturday. This is the fourth year I’ve been involved with this SQL Saturday and it really does just keep getting better every year.

Needless to say the day of the event went by in the blink of an eye. One minute my alarm was going off at 5:45 a.m., the next we were headed out the doors to the after event party. Several speakers and volunteers joined us at the after event party at Grapes Bistro & Wine Bar. The food was spectacular and the setup of the venue allowed for an easy flow of conversation. Slava Murygin (B | T) was there to take lots of pictures too. BTW – You can view them here for the Appreciation Dinner and here for the Event and after event party. Thank you Slava for all the pics, you did a great job.

I’m kind of sad that it’s over, but I really do need to catch up on some sleep. I am looking forward to next year and hope that we will see you there.

Well done CBIG!

The Whirlwind That Is October – Part 1

October has been such a whirlwind of PASS activity for me. Two SQL Saturdays and the PASS Summit. This post is about the first SQL Saturday I attended in Raleigh, SQL Saturday #445, on October 10, 2015, where I was both volunteer and attendee.

This event is put on by the Triangle Area SQL Server User (TriPASS). Brett Tomson (L | T) has long been the leader of this group but recently handed the reigns over to Kevin Feasel (L | T). Kevin and Brett did a great job. They had awesome speakers, great sponsors and wonderful volunteers (yes, I am including myself in that).

This year’s event was at a new venue, William Peace University. It was a smaller venue than last year, but it worked. It’s a beautiful campus with very friendly staff who were willing to help out in any manner they could.

Being the morning person that I am, I got up at 4:30 a.m. on Saturday to make the 90+ mile drive to Raleigh. I helped out with registration in the morning, which is always one of my favorite volunteer activities. You get to see EVERYONE that’s attending; speaker, sponsor and attendee alike. It gives me a chance to give #sqlhugs to my #sqlfamily to start the day off.   What could be better than that?!

I was able to attend two sessions, which were fabulous. Then I finished off my volunteer duties by taking lunch tickets at the Dining Hall. That’s right, I said Dining Hall. Because we were at WPU, the organizers were able to take advantage of the campus Dining Hall and the people that staff it. There was quite the selection from the salad bar, sandwich bar and dessert bar. The only bar missing was the bar with alcohol, but we still had afternoon sessions, so I guess that was for the best. This is the first SQL Saturday that I’ve attended where lunch was not brought in. I’m sure it was nice for the organizers because they didn’t have to worry about getting volunteers to help with lunch setup, wrangling coolers for soda/water or clean up and attendees had a very wide selection to choose from.

After lunch I was able to go visit the vendors and chat with them while attendees were in session. I even snagged one of the coveted bacon scented T-shirts from Micron (be forewarned, even after three washings it still smells like bacon).

After getting up so early, I was spent, and since I had to make the 90+ mile trip home, I decided to head home early. I missed the end of the day raffle and after event party, but I hear they were both entertaining, to say the least.

Huge thank you and congratulations goes out to the organizers of SQL Saturday #445, job well done.

Summit 2014

It’s hard to believe it’s over.  It felt like a whirlwind while I was in Seattle for my 7th PASS Summit, but now that I’m back home it feels like it was ages ago.  I think time moves more quickly when you’re with friends and that’s where I was, with friends.

I got to reconnect with old friends and meet new ones.  I didn’t attend nearly as many sessions as I would have liked, because let’s face it, cloning technology isn’t quite where it needs to be as Michael Keaton found out in Multiplicity.  With my luck my “Number Four” would have attended one of Paul Randal‘s sessions and I would have wound up doing God knows what to my servers when I got back.

I also got to meet people that I have “worked” with for quite a while virtually, but never met in person.  I must say it’s always refreshing when their “in person” exceeds your expectations.  There are so many genuinely nice people in our community, I am truly in awe.

In years past I have not been able to participate in most of the after-hours activities due to Summit happening right before a big annual swim meet, which meant I couldn’t take a break from training.  This year, my swim meet was the week before Summit so I didn’t need to get up at 4:30 a.m. every morning to make it to practice before breakfast.  I got to see how the “other half” lived at Summit this year.  I must say it was eye opening and entertaining.  They don’t have next year’s swim meet on the calendar yet, but I have the Summit dates, so next year’s meet just may have to go on without me.

If you’ve ever attended a PASS Summit, you know what I’m talking about when I say I’ve already started the count down until next year’s Summit.  If you’ve never attended a Summit, what are you waiting for?

The Long and Winding Road

TSQL2sDay150x150

“The Long and Winding Road” is one of my favorite Beatles songs, it reminds me of my dad, he was a huge Beatles fan.  My dad passed away almost five years ago, but I still miss him like it was yesterday and I still remember the advice he gave me when I was a kid, “Work hard and don’t let anybody tell you you can’t do something, there’s always a way.  It may not be easy, but there’s always a way.”  I credit that advice for the success I’ve had in my life, both personal and professional.

I started working with SQL Server back on Windows 3.11 (version 4.21a).  I know I’m dating myself here, but that’s kind of the point of this post.  We thought Windows 3.11 was so cool after having to deal with DOS for so many years, we didn’t think it could get any cooler.  But it did.  We got Windows 95, then 98, XP, 7 and now 8.  I can’t wait to see what they come up with next.

The same goes for SQL Server.

We started out with what I thought was a great tool, then they made it better.  We went from having to create devices to hold our database files and keeping track of each file growth, to just being able to create our database files and let them grow on their own.  I don’t know about anybody else, but that made me so happy.  No more sp_helpdb every night to make sure I could recreate my databases if needed in a disaster.

It used to be very hard to write T-SQL code if you weren’t familiar with the database objects, the old iSQL query window didn’t have an object browser so you couldn’t see a list of your tables, let alone column names.  Now we have intellisense built right in to the query window.  This feature alone is with worth its weight in gold.  It allows me to be so much more productive, type the first few letters and hit tab.  “BAM!” as Emeril would say.

BCP really used to be the only way to get data in and out of your database, then they gave DTS.  Once again it’s like going from DOS to Windows.  Then they came out with SSIS.  Holy Cow, I thought I’d won the lottery after writing my first package in under 5 minutes.  It truly was an amazing transformation (pun definitely intended).

There are so many other features that have improved along the way, too many in fact to list them all here.

It’s been a long road,

The wild and windy night
That the rain washed away
Has left a pool of tears
Crying for the day.
Why leave me standing here?
Let me know the way.

There were definitely many tears shed along the way to where I am today, tears of frustration and of joy.  But I wouldn’t change my long and winding road for anything, it’s made me who and what I am today.

SQL Server let me know the way…