Real World Experiences: Cloud Foundry on Windows

Similar documents
There and Back Again The BOSH Windows Story

São Paulo. August,

Cloud-Native Applications. Copyright 2017 Pivotal Software, Inc. All rights Reserved. Version 1.0

Deploying and Operating Cloud Native.NET apps

Beyond 1001 Dedicated Data Service Instances

Copyright 2016 Pivotal. All rights reserved. Cloud Native Design. Includes 12 Factor Apps

5.1 Configuring Authentication, Authorization, and Impersonation. 5.2 Configuring Projects, Solutions, and Reference Assemblies

Deploying and Operating Cloud Native.NET apps

Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme

Cloud Computing Introduction to Cloud Foundry

VMware Cloud Application Platform

Cloud Native Applications. 主讲人 :Capital One 首席工程师 Kevin Hoffman

Cloud Native Architecture 300. Copyright 2014 Pivotal. All rights reserved.

OpenStack Summit Half-Day Track

Lessons Learned: Deploying Microservices Software Product in Customer Environments Mark Galpin, Solution Architect, JFrog, Inc.

Exam C Foundations of IBM Cloud Reference Architecture V5

Immutable Infrastructure

Skype for Business Server 2019 Preview Deployment Guide

Single Sign-On for PCF. User's Guide

Turbo-driving your Applications Swisscom & Cloud Foundry

DevOps Anti-Patterns. Have the Ops team deal with it. Time to fire the Ops team! Let s hire a DevOps unit! COPYRIGHT 2019 MANICODE SECURITY

Design and Architecture. Derek Collison

The four forces of Cloud Native

Implementing Microservices Tracing with Spring Cloud and Zipkin

Docker and HPE Accelerate Digital Transformation to Enable Hybrid IT. Steven Follis Solutions Engineer Docker Inc.

COURSE 20487B: DEVELOPING WINDOWS AZURE AND WEB SERVICES

Merging Enterprise Applications with Docker* Container Technology

Venafi Platform. Architecture 1 Architecture Basic. Professional Services Venafi. All Rights Reserved.

Microservices mit Java, Spring Boot & Spring Cloud. Eberhard Wolff

The 12-Factor app and IBM Bluemix IBM Corporation

AGENDA Introduction Pivotal Cloud Foundry NSX-V integration with Cloud Foundry New Features in Cloud Foundry Networking NSX-T with Cloud Fou

AN EVENTFUL TOUR FROM ENTERPRISE INTEGRATION TO SERVERLESS. Marius Bogoevici Christian Posta 9 May, 2018

Logging, Monitoring, and Alerting

SQL Azure. Abhay Parekh Microsoft Corporation

70-532: Developing Microsoft Azure Solutions

Developing Windows Azure and Web Services

Building Microservices with the 12 Factor App Pattern

Architecting for the.

Java Architectures A New Hope. Eberhard Wolff

Immutable Infrastructure

Redis for Pivotal Cloud Foundry Docs

Hi! NET Developer Group Braunschweig!

API, DEVOPS & MICROSERVICES

Managing Openstack in a cloud-native way

VMware Enterprise Desktop Solutions. Tommy Walker Enterprise Desktop Specialist Engineer Desktop Platform Solutions

sqlite wordpress 06C6817F2E58AF4319AB84EE Sqlite Wordpress 1 / 6

Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme

NEXT GENERATION CLOUD SECURITY

To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry. Tony Erwin,

@unterstein #bedcon. Operating microservices with Apache Mesos and DC/OS

905M 67% of the people who use a smartphone for work and 70% of people who use a tablet for work are choosing the devices themselves

Real-life technical decision points in using cloud & container technology:

Distributed Architectures & Microservices. CS 475, Spring 2018 Concurrent & Distributed Systems

Evaluating Encryption Products

Microservices Smaller is Better? Eberhard Wolff Freelance consultant & trainer

Scaling DreamFactory

Continuous Delivery for Cloud Native Applications

Introduction to Virtualization and Containers Phil Hopkins

Microservices Architekturen aufbauen, aber wie?

[Docker] Containerization

[MS20487]: Developing Windows Azure and Web Services

Microsoft Official Courseware Course Introduction to Web Development with Microsoft Visual Studio

Microservices at Netflix Scale. First Principles, Tradeoffs, Lessons Learned Ruslan

Extending the BOSH Backup and Restore Framework. Therese Stowell, Product Manager Chunyi Lyu, Engineer Platform Recovery Team, Pivotal

+ + a journey to zero-downtime

70-487: Developing Windows Azure and Web Services

Windows Server Windows Server Windows Server 2008

70-532: Developing Microsoft Azure Solutions

SMASHING THE TOP 7 VIRTUALIZATION SECURITY MYTHS

Disaster Recovery How to NOT do it. Derek Martin Senior TSP Azure

Learn. Connect. Explore.

How your network can take on the cloud and win. Think beyond traditional networking toward a secure digital perimeter

Mobile MOUSe.NET SECURITY FOR DEVELOPERS PART 2 ONLINE COURSE OUTLINE

Oracle Corporation

Deploy. A step-by-step guide to successfully deploying your new app with the FileMaker Platform

STATE OF MODERN APPLICATIONS IN THE CLOUD

Containers & Microservices For Realists. Karthik

Microservices on AWS. Matthias Jung, Solutions Architect AWS

IBM Compose Managed Platform for Multiple Open Source Databases

Profound.js. Future of open source development on IBM i. Alex Roytman Profound Logic

White Paper. Why Remake Storage For Modern Data Centers

Principal Solutions Architect. Architecting in the Cloud

Here comes the. Cloud. But is your architecture ready for

Kubernetes Integration with Virtuozzo Storage

Adapting JDT to the Cloud. Alex Boyko Pivotal Jay Arthanareeswaran - IBM John Arthorne - IBM

SECURE DEVELOPMENT KEEPING YOUR SECRETS PRIVATE

Evaluation Guide for ASP.NET Web CMS and Experience Platforms

Mobile Apps Sample Solution

Service-Oriented Architecture (SOA)

Playing Outside Your Sandbox INTERACTING WITH OTHER SYSTEMS USING SHAREPOINT BCS

GET CLOUD EMPOWERED. SEE HOW THE CLOUD CAN TRANSFORM YOUR BUSINESS.

Apple OS Deployment Guide for the Enterprise

D. By deleting the difference disks of the virtual machines within the Delivery Group

BARCELONA. 2015, Amazon Web Services, Inc. or its affiliates. All rights reserved

Transform to Your Cloud

Er XenApp død og begravet? Allan Bak, edgemo A/S

Go Faster: Containers, Platforms and the Path to Better Software Development (Including Live Demo)

Connecting to Mimecast

Overcoming Remote Desktop Challenges with

Let s say that hosting a cloudbased application is like car ownership

Transcription:

Real World Experiences: Cloud Foundry on Windows

Introductions Steven Benario Strategic Product Owner, Pivotal @sbenario 2 Matthew Horan Manager, Software Engineering, Pivotal mhoran

.NET Development State of the World 3

Typical ASP.NET Deployment Provision some servers Install the necessary MSI s Configure and maintain IIS App Pools, Machine.config, GAC (Global Assembly Cache) Servers are long-lived snowflakes Do you know the names of any of your IIS servers? Do any of them have quirks? Oh yeah, well the Tabasco server has a slow disk, so it ll take a little longer to reboot Snowflakes everywhere! Do you know how to re-build all the servers in an emergency? No ability for 3 R s Security (Rotate, Repair, Repave) 4

Cloud Foundry to the rescue But wait, that s only for Linux!

Building Cloud Foundry for Windows Garden Windows BOSH Windows

Why BOSH? BOSH is the way to deploy Cloud Foundry BOSH enforces immutable infrastructure servers are no longer long lived pets. They can be rebuilt. Easily and definitively. Rotate, Repair, Repave Cohesive deployment process across all of CF No more special steps!

State of.net on Cloud Foundry Windows support became GA in October, 2015 Different deployment than Diego Linux BOSH Windows (in Beta now) Generator, MSI, cell creation Super easy!.net Core (Windows AND Linux) Steeltoe Project and there s a book!

Building for Cloud Foundry (generally) 12-factor applications https://12factor.net/ Use declarative formats for setup automation, to minimize time and cost for new developers joining the project; Have a clean contract with the underlying operating system, offering maximum portability between execution environments; Are suitable for deployment on modern cloud platforms, obviating the need for servers and systems administration; Minimize divergence between development and production, enabling continuous deployment for maximum agility; And can scale up without significant changes to tooling, architecture, or development practices. Microservice all the things! Continuous delivery

So what have we learned?

Problem: Database Creation and Authentication How are databases created in your organization? DBA? IT? In one example, we moved a legacy app over to PCF in 4 weeks, but took 2 months to get the Database created! Any machine on the network can just talk to database? Wait, that s just crazy. You really do that? Windows Domain Authentication is often built in and free, so it becomes the de-facto standard in Windows development shops

Solution: Cloud Foundry Service Brokers! Service brokers manage creation of databases and credentials. Credentials are provided to applications when needed, and can be revoked independent of the database. 13

Problem: Implicit Application Authentication It s easy to use Windows authentication to protect Web applications. Using Windows auth with DC/LDAP integration and centralized user database is easy for developers But doesn t work outside of Domain-joined Windows Servers

Solution: Use UAA for app authentication Refactoring to utilize OAuth enables cross-platform, standardized support. Allows for building mobile apps, cross-platform desktop apps, as well as Web. UAA supports LDAP backend, which can integrate with Windows domain controllers. 15

Problem: Unknown app dependencies Security module somehow present on the host system, present in Web.config but nobody knows where it came from, injected by another team Not using NuGet or other dep management system for library deps, means random DLLs installed on the system somehow E.g. DB2 drivers We spent a week tracking down where this random dependency in our machine.config came from, and eventually found out that a security team was injecting it via group policy!

Solution: Use a dependency mgmt system NuGet is great Bin-deploy everything Some deps don t support this (e.g. DB2). Work with your vendors or migrate off. Keep source code in version control. 17

Problem: Session store State may be stored locally on the server, which requires sticky sessions While CF does support sticky sessions (via jsessionid), this is an anti-pattern

Solution: Use a DB for session storage! Should be easily configurable for MySQL, Redis, etc. (Both available for Pivotal Cloud Foundry) 19

Problem: Logging Historically, developers often use the Windows Event Log Anyone search through 2GB of XML lately? You don t know where the app is running in a distributed system

Solution: Use a configurable logging framework e.g. log4net log4net ConsoleAppender writes to the expected location for loggregator aggregation. Simply change the logging mechanism and retrieve app logs by `cf logs`. Cloud Foundry utilizes loggregator to aggregate application logs and present them to the developer and operator via cf logs 21

Problem: Custom ISAPI handlers ISAPI handlers have a strong legacy because they gave developers so much power. With great power comes great responsibility e.g. PDF generation. Using shared memory for some sort of storage.

Solution: Don t do that. 23

Problem: Configuration sprawl Often, application configuration is a snowflake on the server Configs applied to the disk, multiple files, Web.config, Machine.config Can you replicate an web server today?

Solution: Store config in the environment Use environment variables or custom user provided services for environment config (12 factors) Don t snowflake 25

Other Gotchas Cross-cell encryption Encrypted cookies across multiple instances of an app? Utilizes MachineKey from Web.config (actually, Machine.config) Instead, override MachineKey in Web.config Global Assembly Cache (GAC) Don t use it No network shares or local persistent disk. Cells are ephemeral, app may move around on cells. Anything written to disk will be lost. Also, it won t be shared.

What would be better? The future! Steeltoe Spring Cloud clients for ASP.NET and ASP.NET Core Spring Cloud Config Server Service Discovery with Eureka Spring Cloud Connectors Works with OSS or Spring Cloud Services Open Source! Spring Cloud Connectors SQL Server + EF6 (Windows / Greenhouse) mysql Redis RabbitMQ PostgreSQL Steeltoe RC1 available 7-October!

The Future! Of garden-windows and Greenhouse Windows 2016 is supported today. https://github.com/cloudfoundry/garden-windows Improved container isolation and network virtualization to come in Server 2016 BOSH Windows GA

.NET as a First Class Citizen in CF Today, we talked today about lessons learned from the field BOSH Windows simplifies the operator experience And is cohesive with the rest of CF.NET Core is fully supported Imagine Strangling the monolith New development with.net 4.6 +.NET Core Using Steeltoe to build great Cloud Native Applications Include legacy dependencies as needed Transition on your own timeframe to.net Core on Linux

Thanks to our OSS contributors! Current team of OSS contributors: Ben Moss (Pivotal) David Morhovich (Pivotal) Amin Jamai (Pivotal) Charlie Vieth (Pivotal) Sunjay Bhatia (Pivotal) Previous contributions from: CenturyLink HP

We re hiring!