Linux

Persisting SQL Server Data in Docker Containers – Part 2

So in my previous post, we discussed Docker Volumes and how they have a lifecycle independent of the container enabling us to service the container image independent of the data inside the container. Now let’s dig into Volumes a little bit more and learn where Docker actually stores that data on the underlying operating system.

This is the second post in a three part series on Persisting SQL Server Data in Docker Containers. The first post introducing Docker Volumes is here. And the third post on mapping base OS directories directly into containers is here.

Persisting SQL Server Data in Docker Containers – Part 1

What’s the number one thing a data professional wants to do with their data…keep it around. Let’s talk about running SQL Server in Containers using Docker Volumes on a Mac

This is the first post in a three part series on Persisting SQL Server Data in Docker Containers. The second post on where Docker actually stores your data is here. And the third post on mapping base OS directories directly into containers is here.

Workshop – Kubernetes Zero to Hero – Installation, Configuration, and Application Deployment

Pre-conference Workshop at SQLSaturday Baton Rouge

I’m proud to announce that I will be be presenting an all day pre-conference workshop at SQL Saturday Baton Rouge on August 16th 2019! This one won’t let you down!

The workshop is **“Kubernetes Zero to Hero – Installation, Configuration, and Application Deployment” **

    <a href="https://www.eventbrite.com/e/kubernetes-zero-to-hero-by-anthony-nocentino-tickets-61845012096"><img loading="lazy" style="display: block; margin-left: auto; margin-right: auto;" title="NewImage.png" src="/images/2019/01/Availability-Group-StatusNewImage-1.png" alt="NewImage" width="129" height="126" border="0" /></a>

    **Here’s the abstract for the workshop**

  <blockquote>

      Modern application deployment needs to be fast and consistent to keep up with business objectives and Kubernetes is quickly becoming the standard for deploying container-based applications, fast. In this day-long session, we will start with an architectural overview of a Kubernetes cluster and how it manages application state. Then we will learn how to build a production-ready cluster. With our cluster up and running, we will learn how to interact with our cluster, common administrative tasks, then wrap up with how to deploy applications and SQL Server. At the end of the session, you will know how to set up a Kubernetes cluster, manage a cluster, deploy applications and databases, and how to keep everything up and running.

  </blockquote>

Session Objectives

New Pluralsight Course – Managing the Kubernetes API Server and Pods

New Pluralsight Course – Managing the Kubernetes API Server and Pods

  My new course&nbsp;**“Managing the Kubernetes API Server and Pods”**&nbsp;in now available on Pluralsight&nbsp;<a href="http://www.pluralsight.com/courses/managing-kubernetes-api-server-pods">here</a>! Check out the trailer&nbsp;<a href="https://www.pluralsight.com/player?course=managing-kubernetes-api-server-pods&author=anthony-nocentino&name=1db2671f-60d7-4221-ac1a-8797cfc3c350&clip=0&mode=live">here</a>&nbsp;or if you want to dive right in go&nbsp;<a href="http://www.pluralsight.com/courses/managing-kubernetes-api-server-pods">here</a>!&nbsp;This course offers practical tips from my experiences managing Kubernetes Clusters and workloads for Centino Systems clients.

  This course targets IT professionals that design and maintain Kubernetes and container based solutions.The course can be used by both the IT pro learning new skills and the system administrator or developer preparing for using Kubernetes both on premises and in the Cloud.

  Let’s take your Kubernetes administration and configuration skills to the next level and get you started&nbsp;<a href="http://www.pluralsight.com/courses/managing-kubernetes-api-server-pods">now</a>!

  The modules of the course are:

<ul>
  <li>
    **Using the Kubernetes API**&nbsp;–&nbsp;In this module we will dive into the Kubernetes API, looking closely at the architecture of the API Server and how exposes and manages Kubernetes API Objects. Then we will learn about API versioning and object maturity. Next, we’ll look at anatomy of an API request, leading us up to debugging interactions with the API Server.
  </li>
  <li>
    **Managing Objects with Labels, Annotations and Namespaces**&nbsp;–&nbsp;In this demo-heavy module, we will learn out to organize and interact with resources in Kubernetes using Labels, Annotations, and Namespaces. We will also learn how to use labels to influence Kubernetes operations in Controllers and Pod scheduling.
  </li>
  <li>
    **Running and Managing Pods**&nbsp;–&nbsp;In this module, we will look at the fundamental unit of work in Kubernetes, the Pod, looking at why the Pod abstraction is needed and design principals for placing your applications in Pods and running those Pods in your cluster. &nbsp;We’ll examine Pod lifecycle and how its state impacts application health and availability. We wrap up with how Controllers interact with Pods and how Pods report their health status with readiness probes and liveness probes.&nbsp;
  </li>
</ul>

  <a href="https://www.pluralsight.com/library/courses/managing-kubernetes-api-server-pods/table-of-contents"><img loading="lazy" style="display: block; margin-left: auto; margin-right: auto;" title="NewImage.png" src="/images/2019/01/Availability-Group-StatusNewImage-3.png" alt="NewImage" width="565" height="128" border="0" /></a>

  <a href="http://www.pluralsight.com/courses/managing-kubernetes-api-server-pods">Check out the course at&nbsp;Pluralsight!</a>

  &nbsp;

Speaking at SQLSaturday Atlanta – 845

Speaking at SQLSaturday Atlanta!

  I’m proud to announce that I will be speaking at <a href="https://www.sqlsaturday.com/845">SQL Saturday Atlanta</a> on May 17th 2018! This one won’t let you down! <a href="https://www.sqlsaturday.com/845/Sessions/Schedule.aspx">Check out the amazing schedule</a>!

  If you don’t know what SQLSaturday is, it’s a whole day of free SQL Server training available to you at no cost!

  If you haven’t been to a SQLSaturday, what are you waiting for! <a href="https://www.sqlsaturday.com/845/RegisterNow.aspx">Sign up now</a>!

  My presentation is **“<a href="https://www.sqlsaturday.com/845/Sessions/Details.aspx?sid=87539">Containers – You Better Get on Board!</a>” **

  <a href="https://www.sqlsaturday.com/845/EventHome.aspx"><img style="display: block; margin-left: auto; margin-right: auto;" src="https://sqlsaturdayfiles.blob.core.windows.net/845/sqlsat845_header.png" alt="SQLSaturday #845 - Atlanta 2019" /></a>

  Here’s the abstract for the talk

<blockquote>

    Containers are taking over, changing the way systems are developed and deployed…and that’s NOT hyperbole. Just imagine if you could deploy SQL Server or even your whole application stack in just minutes. You can do that, leveraging containers! In this session, we’ll get you started on your container journey learning container fundamentals in Docker, then look at some common container scenarios and introduce deployment automation with Kubernetes.

    In this session we’ll look at<br />Container Fundamentals with Docker<br />Common Container Scenarios<br />Automation with Kubernetes

    Prerequisites: Operating system concepts such as command line use and basic networking skills.

</blockquote>

Using PowerShell in Containers

The vision for PowerShell Core is to be able to run PowerShell anywhere. In this article, I’m going to discuss how you can use Docker Containers to enable just that. We’ll look at running PowerShell in a container, running cmdlets, running different versions of PowerShell at the same time, and also how to build our own “serverless” computing platform.

Let’s address a few reasons why you would want to run PowerShell in a container.

Speaking at PowerShell Summit 2019

Speaking at PowerShell Summit 2019!

  I’m proud to announce that I will be speaking at <a href="https://app.socio.events/MjQ4Nw/Overview/14440">PowerShell + DevOps Global Summit 2019</a> the conference runs from April 29th 2018 through May 3rd 2019. This is an incredible event packed with fantastic content and speakers. <a href="https://powershelldevopsglobalsummit2018.sched.com/">Check out the amazing schedule</a>! All the data you need on going is in this excellent brochure <a href="https://powershell.org/wp-content/uploads/2017/09/2018-Brochure.pdf">right here</a>!

  This year I have two sessions!

  On **Tuesday, April 30th at 11:00AM** – I’m presenting “<a href="https://app.socio.events/MjQ4Nw/agenda/14445/session/61468">**Firewall Evasion and Remote Access with OpenSSH**</a>”

  Here’s the abstract

<blockquote>

    OpenSSH is much more than just remote terminal access to servers, it provides a full suite of remote connectivity methods t you network and its services. In this session, we will look at how to use OpenSSH and its forwarding, tunneling and VPN capabilities so that we can securely reach network services that are behind firewalls and other security boundaries.

    Common use cases for these techniques are cloud jump boxes, secure access into segmented networks, and being able to get remove access and moving data around in poorly secured networks…these tips are are things that will likely get you some extra attention from your security team.

    We will look at the following techniques:<br />– Accessing remote services with SSH Tunneling<br />– Building SWSH connections for multi-hop remote access using ProxyHosts<br />– Proxying HTTP/HTTPS connections with a Sock Proxy<br />– Using aliases to store these advanced configurations for easy use<br />– Controlling and preventing TCP tunneling

</blockquote>

  On **Thursday, May 1st at 1:00PM** – I’m presenting **“<a href="https://app.socio.events/MjQ4Nw/agenda/14445/session/61467">Containers – You Better Get on Board!</a>”**

  Here’s the abstract

<blockquote>

    Containers are taking over, changing the way systems are developed and deployed…and that’s now hyperbole. Just imagine if you could deploy SQL Server or even your whole application stack in just minutes. You can do that, leveraging containers! In this session, we’ll get your started on your container journey, learn some common container scenarios and introduce deployment automation with Kubernetes.

    In this session we’ll look at<br />– Container Fundamentals<br />– Common Container Scenarios<br />– Automation with Kubernetes<br />– Using PowerShell Containers

</blockquote>

I look forward to seeing you there.

Presenting with VS Code and Running Commands on Remote Hosts

In this blog post, I’m going to show you how to use VS Code and Azure Data Studio for presentations where you need to execute local code on remote systems over SSH.

The Challenge

When using tools like VS Code and PowerShell ISE these tools give you the ability to highlight code and execute that highlighted code. This generally means the highlighted code you want to execute will execute against the local machine. When presenting, this technique is very useful and impactful for your audience because both the code being executed and its output will be on the screen at the same time as you step through your demos. I do a lot of presenting on topics like Linux, SQL Server on Linux, Kubernetes, and OpenSSH when I’m logged into remote hosts over SSH. I’d like to have the same functionality, so I can highlight the code in VS Code locally and execute that code on a remote host over SSH. Let’s explore how I do that.

Using Kubernetes Deployments for Updating SQL Server

In Kubernetes we can leverage Controllers to help manage our application state, keeping them in the desired state. In this blog post, we’re going to look at how to use a Deployment Controller to manage the application state of SQL Server in Kubernetes. We’ll look at deploying SQL Server in a Deployment and using that deployment to upgrade SQL Server and rollback our upgrade.

Deploying SQL Server in a Deployment

Let’s start off with deploying SQL Server in Kubernetes. We can do that with the following YAML file to describe our Deployment.

Speaking at SQLBits 2019

Speaking at SQLBits 2019!

I’m proud to announce that I will be speaking at SQLBits on March 2nd 2019! It’s been a goal of mine to speak at SQLBits for a few years now and I’m VERY excited for the opportunity! This year’s conference won’t let you down. Check out the amazing schedule of Experts and Microsoft MVPs! If you haven’t been to SQLBits before, what are you waiting for! Sign up now! SQLBits Logo Here’s the details on my session! Inside Kubernetes – An Architectural Deep Dive – March 2 2018 – 15:10 – Room 12