.NET and Kubernetes
Bringing Legacy .NET Into the Modern World
with Pivotal Container Services
October 7–10, 2019
Austin Convention Center
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Safe Harbor Statement
The following is intended to outline the general direction of Pivotal's offerings. It is intended for information
purposes only and may not be incorporated into any contract. Any information regarding pre-release of
Pivotal offerings, future updates or other planned modifications is subject to ongoing evaluation by Pivotal
and is subject to change. This information is provided without warranty or any kind, express or implied, and
is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making
purchasing decisions regarding Pivotal's offerings. These purchasing decisions should only be based on
features currently available. The development, release, and timing of any features or functionality described
for Pivotal's offerings in this presentation remain at the sole discretion of Pivotal. Pivotal has no obligation to
update forward looking information in this presentation.
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
This
session
- Review existing app environment
- About windows containers
- Kubernetes decisions
- Creating containers with Docker
- Working example in K8s
- Questions
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Traditional Architecture
● Server 2008
● IIS
● Pooling
● Sessions
● Server 2008
● IIS
● Pooling
● Sessions
Windows Server
2008
● IIS: webform UI
● Pooling
● COM obj
MS SQL
DB
File Share
● Server 2008
● SMB
L
o
a
d
B
a
l
a
n
c
e
r
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
What fits in
a Windows
Container?
- Minimal operating system
- Full Windows install (C:Windows)
- Structured file system (C:, C:Program Files)
- Registry
- .NET runtime
- Different .NET runtimes side by side - host
OS is neutral to the version(s)
- Patch host operating system with no regard
to apps within
!!
!!
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
1. Choose BASE image - compatibility with
host OS
Create a
Windows
Container
USING windows/servercore2019
Install .net
Install IIS
Copy in app
PS C: docker build my-app
PS C: docker push my-app
2. Write DockerFile
3. Build the container image
4. Push the image to a repository
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Choosing
Kubernetes
➔ Tenancy model
Using clusters, namespaces, selectors
➔ Bring your own container
Script the environment with docker file
➔ Assemble your own routing
Define ingress and attach DNS
➔ Persistent disks
Make the app(s) resilient to failures
➔ Long running processes
Expect the workloads to not “move around”
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
A goal of
acting
modern
➔ Container everything
Everything lives in a container
➔ Automate everything
Software defined & build pipelines
➔ Stream logs
Write to console and let the platform handle it
➔ Loosely coupled services
Service info is “fed” to the app, not coded within
➔ Assume failures
Session info held external, disks are mapped
➔ High availability
Run multiple instances that are distributed in IaaS
➔ Cloud everything
Make everything as portable as possible
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
What do you want to “own”
DIY k8s or container stack
Embedded OS
OS Image
Runtime Layer
Service Brokerage
Application Layer
Platform
Provided
App
Team
provided
Embedded OS
OS Image
Runtime Layer
Service Brokerage
Application Layer
Platform
Provided
App
Team
Provided
Embedded OS
OS Image
Runtime Layer
Service Brokerage
Application Layer
App
Team
Provided
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Zero code change with containers
- Review the docker file and deployment model -
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
A Working Example
- See it in action -
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
K8 Cluster
Modern Architecture: Kubernetes cluster
L
o
a
d
B
a
l
a
n
c
e
r
Kubernetes
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
K8 Cluster
Modern Architecture: Kubernetes pod and config
L
o
a
d
B
a
l
a
n
c
e
r
Kubernetes
K8 Pod
ConfigMap
Volumes
etc
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
K8 Cluster
K8 Pod
Modern Architecture: Windows container
L
o
a
d
B
a
l
a
n
c
e
r
Kubernetes
ConfigMap
Volumes
etc
Windows
Container
● IIS
● WebForm UI
● COM obj
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
K8 Cluster
K8 Pod
Windows
Container
● IIS
● WebForm UI
● COM obj
Modern Architecture
L
o
a
d
B
a
l
a
n
c
e
r
MS SQL
DB
File Share
● Server 2008
● SMB
Kubernetes
ConfigMap
Volumes
etc
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
A New World Unlocked
- All the possibilities on a modern platform -
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
K8 Cluster
K8 Pod
Modern Architecture: Scale pods
L
o
a
d
B
a
l
a
n
c
e
r
MS SQL
DB
File Share
● Server 2008
● SMB
Kubernetes
ConfigMap
Volumes
etc
Windows
Container
● IIS
● WebForm UI
● COM obj
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
K8 Cluster
K8 Pod
Modern Architecture: Scale clusters
L
o
a
d
B
a
l
a
n
c
e
r
MS SQL
DB
File Share
● Server 2008
● SMB
Kubernetes
ConfigMap
Volumes
etc
Windows
Container
● IIS
● WebForm UI
● COM obj
Unless otherwise indicated, these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
K8 Cluster
K8 Pod
Windows
Container
● IIS
● WebForm UI
● COM obj
Modern Architecture: Persistent disks
L
o
a
d
B
a
l
a
n
c
e
r
MS SQL
DB
Kubernetes
ConfigMap
etc
Persistent
Volume
Mount
Ask questions. Stay connected.
@dierufdavid @chrisumbel
#springone@s1p

.NET and Kubernetes: Bringing Legacy .NET Into the Modern World with Pivotal Container Services

  • 1.
    .NET and Kubernetes BringingLegacy .NET Into the Modern World with Pivotal Container Services October 7–10, 2019 Austin Convention Center
  • 2.
    Unless otherwise indicated,these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Safe Harbor Statement The following is intended to outline the general direction of Pivotal's offerings. It is intended for information purposes only and may not be incorporated into any contract. Any information regarding pre-release of Pivotal offerings, future updates or other planned modifications is subject to ongoing evaluation by Pivotal and is subject to change. This information is provided without warranty or any kind, express or implied, and is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions regarding Pivotal's offerings. These purchasing decisions should only be based on features currently available. The development, release, and timing of any features or functionality described for Pivotal's offerings in this presentation remain at the sole discretion of Pivotal. Pivotal has no obligation to update forward looking information in this presentation.
  • 3.
    Unless otherwise indicated,these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ This session - Review existing app environment - About windows containers - Kubernetes decisions - Creating containers with Docker - Working example in K8s - Questions
  • 4.
    Unless otherwise indicated,these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Traditional Architecture ● Server 2008 ● IIS ● Pooling ● Sessions ● Server 2008 ● IIS ● Pooling ● Sessions Windows Server 2008 ● IIS: webform UI ● Pooling ● COM obj MS SQL DB File Share ● Server 2008 ● SMB L o a d B a l a n c e r
  • 5.
    Unless otherwise indicated,these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What fits in a Windows Container? - Minimal operating system - Full Windows install (C:Windows) - Structured file system (C:, C:Program Files) - Registry - .NET runtime - Different .NET runtimes side by side - host OS is neutral to the version(s) - Patch host operating system with no regard to apps within !! !!
  • 6.
    Unless otherwise indicated,these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 1. Choose BASE image - compatibility with host OS Create a Windows Container USING windows/servercore2019 Install .net Install IIS Copy in app PS C: docker build my-app PS C: docker push my-app 2. Write DockerFile 3. Build the container image 4. Push the image to a repository
  • 7.
    Unless otherwise indicated,these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Choosing Kubernetes ➔ Tenancy model Using clusters, namespaces, selectors ➔ Bring your own container Script the environment with docker file ➔ Assemble your own routing Define ingress and attach DNS ➔ Persistent disks Make the app(s) resilient to failures ➔ Long running processes Expect the workloads to not “move around”
  • 8.
    Unless otherwise indicated,these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ A goal of acting modern ➔ Container everything Everything lives in a container ➔ Automate everything Software defined & build pipelines ➔ Stream logs Write to console and let the platform handle it ➔ Loosely coupled services Service info is “fed” to the app, not coded within ➔ Assume failures Session info held external, disks are mapped ➔ High availability Run multiple instances that are distributed in IaaS ➔ Cloud everything Make everything as portable as possible
  • 9.
    Unless otherwise indicated,these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What do you want to “own” DIY k8s or container stack Embedded OS OS Image Runtime Layer Service Brokerage Application Layer Platform Provided App Team provided Embedded OS OS Image Runtime Layer Service Brokerage Application Layer Platform Provided App Team Provided Embedded OS OS Image Runtime Layer Service Brokerage Application Layer App Team Provided
  • 10.
    Unless otherwise indicated,these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Zero code change with containers - Review the docker file and deployment model -
  • 11.
    Unless otherwise indicated,these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ A Working Example - See it in action -
  • 12.
    Unless otherwise indicated,these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ K8 Cluster Modern Architecture: Kubernetes cluster L o a d B a l a n c e r Kubernetes
  • 13.
    Unless otherwise indicated,these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ K8 Cluster Modern Architecture: Kubernetes pod and config L o a d B a l a n c e r Kubernetes K8 Pod ConfigMap Volumes etc
  • 14.
    Unless otherwise indicated,these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ K8 Cluster K8 Pod Modern Architecture: Windows container L o a d B a l a n c e r Kubernetes ConfigMap Volumes etc Windows Container ● IIS ● WebForm UI ● COM obj
  • 15.
    Unless otherwise indicated,these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ K8 Cluster K8 Pod Windows Container ● IIS ● WebForm UI ● COM obj Modern Architecture L o a d B a l a n c e r MS SQL DB File Share ● Server 2008 ● SMB Kubernetes ConfigMap Volumes etc
  • 16.
    Unless otherwise indicated,these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ A New World Unlocked - All the possibilities on a modern platform -
  • 17.
    Unless otherwise indicated,these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ K8 Cluster K8 Pod Modern Architecture: Scale pods L o a d B a l a n c e r MS SQL DB File Share ● Server 2008 ● SMB Kubernetes ConfigMap Volumes etc Windows Container ● IIS ● WebForm UI ● COM obj
  • 18.
    Unless otherwise indicated,these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ K8 Cluster K8 Pod Modern Architecture: Scale clusters L o a d B a l a n c e r MS SQL DB File Share ● Server 2008 ● SMB Kubernetes ConfigMap Volumes etc Windows Container ● IIS ● WebForm UI ● COM obj
  • 19.
    Unless otherwise indicated,these slides are © 2013-2019 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ K8 Cluster K8 Pod Windows Container ● IIS ● WebForm UI ● COM obj Modern Architecture: Persistent disks L o a d B a l a n c e r MS SQL DB Kubernetes ConfigMap etc Persistent Volume Mount
  • 20.
    Ask questions. Stayconnected. @dierufdavid @chrisumbel #springone@s1p