Jamie Phillips

Information & Communications Technology

Kubernetes Windows Golang .NET Container

Knoxville, Tennessee, United States

Jamie Phillips

Software Engineer Cloud Native Technologies, SUSE Rancher

Jamie Phillips is a Software Engineer Cloud Native Technologies at SUSE Rancher, and works remotely from East Tennessee. He has a keen interest in DevOps and the Cloud. He can be found on Twitter @phillipsj73, his blog at phillipsj.net, and GitHub as phillipsj.

Current sessions

Windows Containers for Legacy Apps

Containers have created a new way of doing the development and deployment of applications. Many legacy applications may never migrate to more contemporary languages, tooling, or frameworks. Many of those applications are running on Windows Servers. Those very applications can be containerized leveraging Windows containers. In this session, we will learn about Microsoft's different offerings and when to use each offering. We will also discuss the limitations that you will face working with those offerings.


Windows Containers for Legacy Apps

Containers have created a new way of doing the development and deployment of applications. Many legacy applications may never migrate to more contemporary languages, tooling, or frameworks. Many of those applications are running on Windows Servers. Those very applications can be containerized leveraging Windows containers. In this session, we will learn about Microsoft's different offerings and when to use each offering. We will also discuss the limitations that you will face working with those offerings.


Self-hosted Serverless

Self-hosted serverless? Really? You have got to be kidding me! Serverless is more about the deployment model and scalability than about being truly "serverless." You don't have to use a cloud provider to start leveraging the deployment model or the scalability of serverless. Several open-source frameworks allow you to self-host your serverless platform. We will discuss the use cases for self-hosting, why you would want to do it, and the infrastructure requirements. Finally, we will wrap up with a brief introduction and demo of OpenWhisk, OpenFaaS, and KEDA.


Orthogonality: Deployments vs Releases

Orthogonal defines items as being “at right angles” or statistically independent. Did you know that deployments and releases are orthogonal? A deployment is independent of a release even though the two concepts are typically joined together. We will explore this concept and techniques to achieve it.


Linux for the .NET Developer

In 2017 Microsoft reported that 40% of Azure VMs run Linux, and in 2018, it was announced as 50% and expected to grow. .NET Core has changed much for the .NET Developer, and one of the most significant changes has been the adoption of Linux. Containers, Windows Subsystem for Linux, and support for tooling on Linux have opened many possibilities. All of this change is requiring developers to get up to speed on Linux and learn how to use it for development and deployment. In this talk, we are going to discuss ways to get started with Linux and distributions that make it a smoother transition from Windows. We will also discuss what development environments are available, along with the availability of familiar tools. At the end of the talk, you will have an understanding of the landscape and paths forward in your Linux journey.


Learn You an Infrastructure as Code for a great good!

Infrastructure as Code is often discussed and talked about among teams. There is a desire to start adopting these practices and tools, however, teams often struggle with were to start. In this talk, we are going to explore reasons to proceed with implementing IaC and what advantages it will deliver to you, your team, and the rest of your organization. I will cover two popular tools for getting started with creating your infrastructure as code, Packer, and Terraform. Packer is a tool for creating machine images that are on-premise and cloud-ready, Terraform is a tool for defining and orchestrating the creation and provisioning of resources both on-premise and in the cloud. This presentation will explore how these two tools along with Azure can enable your team to accelerate creating systems whose infrastructure is repeatable, resilient, and recoverable while staying CALM.


Lessons learned from producing multi-cloud marketplace Windows-based images using Packer

For the last two-plus years, I have been producing marketplace images for AWS and Azure using Packer. These marketplace images start with the base image provided for SQL Server on Windows Server. There have been several challenges and differences that were not expected that produced many learnings. In this session, we cover using Packer for multi-cloud image builds, operating system updates, configuration, system generalization, and cost-saving tips.


How we added Windows support for Rancher Kubernetes Engine V2

Are you curious about Kubernetes? How are Kubernetes distributions made? Or are you interested in how others develop products? If any of those things are of interest, then join me as we discuss the story of how we added Windows support to a Linux-only Kubernetes distribution. I will cover how to approach it, the decisions we had to make, and the various challenges we faced along the way.


Considerations for cross-platform Go Development: Techniques for supporting both Linux and Windows p

Go is an exciting language and provides some unique ways to handle cross-platform concerns when targeting multiple platforms. While the standard libraries try to give abstractions, not everything maps across the platform. This talk will discuss the techniques and tools I have learned while adding Windows support to a Linux-only Go application.


Azure for the Pythonista

Azure is a cloud platform with many services. People often assume that Azure is for .NET and Microsoft developer, however, there is a lot to offer the Pythonista. AI, ML, Web Apps, Storage, and Serverless are just the tip of the iceberg of what there is to offer. In this talk we are going to focus on what the Azure PaaS services provide and how Python is supported on both Windows, Linux, and container based. We will take a basic application and walk through how to deploy that application to Azure App Service.


A tale of intrigue, mystery, and frustration: Local Kubernetes Development Environments

Have you ever had to work on a system with many moving pieces? Some of those pieces all require modification and testing together? If you have, you know the frustration and difficulty in writing the code and verifying that it all works together. Even if you haven't, the lessons learned are still helpful as more teams adopt distributed systems. This talk will cover how I have learned to create a development environment spanning Linux, Windows, and multiple components to build a Kubernetes distribution that supports Windows.