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

ASP.Net Core - Shift Left and Start Out Right

Chris Ayers
October 19, 2019

ASP.Net Core - Shift Left and Start Out Right

If you're starting an ASP.Net Core application, there are some great things you can add it to that will make your application incredible. Learn about Healthchecks, Versioning APIs, Feature flags, Swagger, and Key Vault. By embracing monitoring, configuration, and versioning from the start, we're going to shift left on DevOps to start your application out right.

Chris Ayers

October 19, 2019
Tweet

More Decks by Chris Ayers

Other Decks in Technology

Transcript

  1. DevOps is the union Of people, process, and products to

    enable continuous delivery of value to our end users. -Donovan Brown
  2. PRACTICES Automated Testing Continuous Integration Continuous Deployment Release Management PRACTICES

    Usage Monitoring Telemetry Collection Testing in Production Stakeholder Feedback PRACTICES Testing in Production Usage Monitoring User Telemetry Stakeholder feedback Feature flags PRACTICES Code Reviews Automated Testing Continuous Measurement PRACTICES Application Performance Management Infrastructure as Code Continuous Delivery Release Management Configuration Management Automated Recovery PRACTICES Application Performance Management Infrastructure as Code Continuous Deployment Release Management Configuration Management Automated Recovery PRACTICES Enterprise Agile Continuous Integration Continuous Deployment Release Management FLOW OF CUSTOMER VALUE TEAM AUTONOMY & ENTERPRISE ALIGNMENT BACKLOG refined with LEARNING EVIDENCE gathered in PRODUCTION MANAGED TECHNICAL DEBT PRODUCTION FIRST MINDSET INFRASTRUCTURE is a FLEXIBLE RESOURCE DEVOPS HABITS AND PRACTICES
  3. AGILE Features Sprint 1 More Features Sprint 2 Release to

    Dev Sprint 3 More Features Sprint 4 Release to QA Sprint 5 •MVP •Release to Prod Sprint 6
  4. WHAT ARE WE GOING TO SHIFT LEFT? Health Monitoring Observability

    Feature Flags Configuration and Secrets API Versioning API Documentation
  5. HEALTH MONITORING  Built into ASP.Net (as of version 2.2)

     Builtin Health probes  Custom Health checks  Readiness vs Liveness  Optional Healthcheck UI  System  Network  SqlServer  MongoD  Kubernetes  Npgsql  Elasticsearch  Redis  EventStore  AzureStorage  AzureServiceBus  AzureKeyVault  MySql  DocumentDb  SqLite  RavenDB  Consul  SignalR  Kafka  RabbitMQ  Uris  OpenIdConnectServer  DynamoDB  Oracle  Aws.S3  Hangfire  Gcp.CloudFirestore  Prometheus  Seq  ApplicationInsights  Datadog
  6. OBSERVABILITY: A MEASURE OF HOW WELL INTERNAL STATES OF A

    SYSTEM CAN BE INFERRED FROM KNOWLEDGE OF ITS EXTERNAL OUTPUTS.  Monitoring  Logging  Tracing  Analytics  Alerting
  7. USER AND SESSION COUNTS PERFORMANCE COUNTERS HOST DIAGNOSTICS DIAGNOSTIC TRACE

    LOGS CUSTOM EVENTS AND METRICS REQUEST RATES, RESPONSE TIMES, AND FAILURE RATES DEPENDENCY RATES, RESPONSE TIMES, AND FAILURE RATES EXCEPTIONS PAGE VIEWS AND LOAD PERFORMANCE AJAX CALLS FROM WEB PAGES AZURE APPLICATION INSIGHTS
  8. HOW DO YOU WANT TO VERSION? •/api/foo?api-version=1.0 •/api/foo?api-version=2.0-Alpha •/api/foo?api-version=2015-05-01.3.0 Query

    String Versioning •/api/v1/foo •/api/v2.0-Alpha/foo •/api/v2015-05-01.3.0/foo URL Path Versioning •accept: text/plain;v=1.0 •content-type: text/plain;v=2.0 Media Type Versioning HTTP Header Versioning