Upgrade to Pro — share decks privately, control downloads, hide ads and more …

.NET and Kubernetes

.NET and Kubernetes

Kubernetes ecosystem around .NET

Avatar for dimitry

dimitry

May 14, 2018
Tweet

More Decks by dimitry

Other Decks in Technology

Transcript

  1. AWS vs Google vs Azure Major Cloud Providers • All

    are growing but Azure and Google are growing at a faster rate than AWS (1), followed by GCP • Other players ‣ Openstack Private Cloud (2) ‣ AliBaba Cloud (3) ‣ IBM ‣ Oracle ‣ Many others ‣ (1) https://www.sdxcentral.com/articles/news/microsoft-beats-aws-in-cloud-revenues-for-the-first-quarter-of-2018/2018/04/ ‣ (2) http://www.cloudpro.co.uk/leadership/cloud-essentials/7154/openstack-set-to-reach-6-billion-by-2021-says-451-research ‣ (3) https://techcrunch.com/2018/02/06/alibaba-cloud-growing-like-gangbusters-but-still-far-behind-aws-and-other-market-leaders/
  2. Workloads are critical ‣ Companies need to think workloads instead

    of providers ‣ Movement between providers should be as seamless as possible ‣ Enter Kubernetes • http://www.eweek.com/cloud/ibm-cto-defines-multi-cloud-reality-at-kubecon-europe
  3. 5

  4. Why Kubernetes? 6 • Clear leader in orchestration space: ‣

    https://www.docker.com/kubernetes ‣ https://docs.microsoft.com/en-us/azure/aks/ ‣ https://www.openshift.com/learn/topics/kubernetes/ ‣ https://aws.amazon.com/eks/ ‣ https://cloud.google.com/kubernetes-engine/ ‣ https://www.openstack.org/software/releases/queens/components/kolla and https://www.openstack.org/sof tware/releases/queens/components/magnum ‣ First class citizen in all major providers
  5. 12 ConfigMap • Create config map to inject configuration into

    app ‣ Files ‣ Literal values ‣ kubectl create configmap meetupapi-config --from-file ~/dima/presentations/2018-05- 14-k8s-and-net/config/local.properties • (ENV Vars can be passed directly into the pod if static)
  6. 13 Secrets • Create secret in kubernetes • Consume in

    pod • If using templates, DO NOT check it in • Reference it in the pod (as volumes or as ENV vars)
  7. 14 Volumes • Different kinds: ‣ Persistent • Supports different

    drivers ‣ AzureFile ‣ AzureDisk ‣ AWSElasticBlockStore ‣ GCEPersistentDisk ‣ Cinder ‣ Dynamic volumes – provisions volumes on the fly
  8. Not quite 18 Kubernetes and .NET – solved? • For

    .NET Core – SURE! • Existing .NET apps (not core) … maybe: ‣ Kubernetes 1.10 windows container support is in beta. • Is definitely possible if running on Windows infrastructure
  9. 19 Kubernetes and Windows Containers – what’s missing? • Control

    plane (master node) needs to run on Linux infra • Only support for Windows Server 2016 and later (preferred 1709+) • Docker 17.06+ • CNI plugins (https://github.com/containernetworking/plugins/pull/85) ‣ Win-l2bridge (host-gateway) CNI plugin is coming ‣ Win-overlay (vxlan) is coming • No StatefulSet support • Secrets and ConfigMap cannot be used as volume mounts • No Hyper-V isolation • Flannel not supported • ENVVARS that use `:` need to replace with `__` else K8S breaks
  10. Deployment solved – everything else? 20 • Enter Kubernetes ecosystem

    ‣ Packaging ‣ Service Mesh ‣ Monitoring ‣ Logging ‣ Tracing ‣ CI/CD and Code Integration
  11. Monitoring 23 • Prometheus - https://prometheus.io/ • Monitors orchestration clusters

    and applications • https://medium.com/@timfpark/simple-kubernetes-cluster-monitoring-with-prometheus-and- grafana-dd27edb1641
  12. Logging and Tracing 24 • FluentD - https://www.fluentd.org/ • OpenTracing

    - http://opentracing.io/ • Sidecars to aggregate logging and send it to a single storage (ELK, for example) • Sidecars to trace requests through all services
  13. 26 CI/CD and Code Integration • OpenShift - https://www.openshift.org/ •

    Kubernetes + code pipelines ‣ Build configuration ‣ CI/CD pipelines ‣ Security ‣ Routing ‣ https://medium.com/levvel-consulting/the- differences-between-kubernetes-and- openshift-ae778059a90e
  14. 27 OpenShift on Public Cloud • https://azure.microsoft.com/en-us/blog/openshift-on-azure-the-easiest-fully-managed- openshift-in-the-cloud/ • https://aws.amazon.com/about-aws/whats-new/2017/09/red-hat-openshift-container-platform-

    on-the-aws-cloud-quick-start-reference-deployment/ • https://cloud.google.com/solutions/partners/openshift-on-gcp • https://www.redhat.com/en/about/press-releases/red-hat-and-alibaba-cloud-join-forces-bring- increased-flexibility-open-source
  15. Potential if time permits 28 • Deploy on Azure Kubernetes

    • Deploy the same thing on GCP Kubernetes
  16. Next steps 29 • I have an enterprise .NET ASP.NET

    web forms app. Can I lift and shift? ‣ Not easily (not on AKS) • If I can’t move my enterprise app, should I forget about Kubernetes? ‣ Not necessarily ‣ Options include: • New services written in .NET core while moving enterprise app to service fabric • Peeling onions off current enterprise app to make it more cloud friendly (if it makes sense) and moving those pieces to .NET core ‣ 12-factor App - https://12factor.net/
  17. Copyright © 2016 Rackspace | Rackspace® Fanatical Support® and other

    Rackspace marks are either registered service marks or service marks of Rackspace US, Inc. in the United States and other countries. Features, benefits and pricing presented depend on system configuration and are subject to change without notice. Rackspace disclaims any representation, warranty or other legal commitment regarding its services except for those expressly stated in a Rackspace services agreement. All other trademarks, service marks, images, products and brands remain the sole property of their respective holders and do not imply endorsement or sponsorship. THANK YOU ONE FANATICAL PLACE | SAN ANTONIO, TX 78218 US SALES: 1-800-961-2888 | US SUPPORT: 1-800-961-4454 | WWW.RACKSPACE.COM