Effective .NET Core Unit Testing with SQLite and DapperMike Melusky
- The document discusses effective unit testing for .NET Core applications that use SQLite and Dapper for data access.
- It motivates the importance of unit testing, describes best practices like test-driven development, and demonstrates setting up an in-memory SQLite database for unit tests along with sample test cases using Xunit.
- The presentation was given to the Philly.NET user group and includes code examples for integrating unit testing into an existing .NET Core/C# project that connects to SQL Server for data storage.
Building a Google Cloud Firestore API with dotnet coreMike Melusky
The document provides an overview of building a .NET Core API to integrate with Google Cloud Firestore. It discusses moving from a two-tier architecture with the frontend directly accessing Firestore, to a three-tier architecture with a middle API tier. This improves scalability, maintainability and allows other clients beyond the web frontend. The speaker demonstrates creating the Firestore database, building the .NET Core API using the Firestore SDK, and updating the React frontend to call the new API instead of the Firestore JavaScript API directly.
This document summarizes a presentation on containerizing applications and deploying them to cloud platforms. It discusses Docker containers and containerization as a way to package applications. It then covers deploying .NET Core applications in Docker containers and pushing the images to cloud container registries on platforms like AWS ECS and Azure Container Instances. Finally, it demonstrates containerizing other applications built with technologies like Java Spring Boot, Python Flask, and JavaScript React.
Presentation for Stichting DotNed in 2015:
Microsoft neemt ASP.NET op de schop. Het web applicatie framework uit .NET 1.0 wordt grotendeels herschreven om te voldoen aan de eisen die men tegenwoordig stelt aan het realiseren van een moderne web applicatie. Deze sessie kijken we naar de nieuwe opzet van ASP.NET. We zien hoe Microsoft daarmee een cloud geoptimaliseerd, cross-platform framework creeert, dat zij zelf sneller kunnen laten evolueren door kortere release cycles. Dit alles betekent wel dat ASP.NET anders is geworden. In deze sessie leer je daarom ook wat er is veranderd, hoe je aan de slag gaat en waarom ASP.NET vNext een revolutionaire stap is in Microsoft's framework.
Blog Post: http://WakeUpAndCode.com/aspnetcore-overview-nvcc2016
Recently known as ASP.NET 5, the all-new ASP.NET Core 1.0 is Microsoft's cross-platform lightweight approach to building robust applications for the modern Web. Get a high-level overview of what you need to know about ASP.NET Core from Shahed Chowdhuri, Sr. Technical Evangelist @ Microsoft.
This document discusses implementing real-time web applications using SignalR and Azure Service Bus. It provides an overview of real-time web capabilities, examples using SignalR for forced video switching and real-time deals, and scaling out applications using the publish-subscribe pattern with Azure Service Bus. The document also includes a demonstration of using SignalR with Azure for continuous integration and horizontal scaling.
Today almost every product has an API, to integrate in other products or to made the data available to the outside world. Most API’s are using traditional patterns and technology. With the rise of Angular, React and other modern frameworks there is a need for non blocking API’s. Meet Reactive streams, like Spring Webflux, to super charge your API.
In this session I will tell about and show you Reactive API’s and more
Effective .NET Core Unit Testing with SQLite and DapperMike Melusky
- The document discusses effective unit testing for .NET Core applications that use SQLite and Dapper for data access.
- It motivates the importance of unit testing, describes best practices like test-driven development, and demonstrates setting up an in-memory SQLite database for unit tests along with sample test cases using Xunit.
- The presentation was given to the Philly.NET user group and includes code examples for integrating unit testing into an existing .NET Core/C# project that connects to SQL Server for data storage.
Building a Google Cloud Firestore API with dotnet coreMike Melusky
The document provides an overview of building a .NET Core API to integrate with Google Cloud Firestore. It discusses moving from a two-tier architecture with the frontend directly accessing Firestore, to a three-tier architecture with a middle API tier. This improves scalability, maintainability and allows other clients beyond the web frontend. The speaker demonstrates creating the Firestore database, building the .NET Core API using the Firestore SDK, and updating the React frontend to call the new API instead of the Firestore JavaScript API directly.
This document summarizes a presentation on containerizing applications and deploying them to cloud platforms. It discusses Docker containers and containerization as a way to package applications. It then covers deploying .NET Core applications in Docker containers and pushing the images to cloud container registries on platforms like AWS ECS and Azure Container Instances. Finally, it demonstrates containerizing other applications built with technologies like Java Spring Boot, Python Flask, and JavaScript React.
Presentation for Stichting DotNed in 2015:
Microsoft neemt ASP.NET op de schop. Het web applicatie framework uit .NET 1.0 wordt grotendeels herschreven om te voldoen aan de eisen die men tegenwoordig stelt aan het realiseren van een moderne web applicatie. Deze sessie kijken we naar de nieuwe opzet van ASP.NET. We zien hoe Microsoft daarmee een cloud geoptimaliseerd, cross-platform framework creeert, dat zij zelf sneller kunnen laten evolueren door kortere release cycles. Dit alles betekent wel dat ASP.NET anders is geworden. In deze sessie leer je daarom ook wat er is veranderd, hoe je aan de slag gaat en waarom ASP.NET vNext een revolutionaire stap is in Microsoft's framework.
Blog Post: http://WakeUpAndCode.com/aspnetcore-overview-nvcc2016
Recently known as ASP.NET 5, the all-new ASP.NET Core 1.0 is Microsoft's cross-platform lightweight approach to building robust applications for the modern Web. Get a high-level overview of what you need to know about ASP.NET Core from Shahed Chowdhuri, Sr. Technical Evangelist @ Microsoft.
This document discusses implementing real-time web applications using SignalR and Azure Service Bus. It provides an overview of real-time web capabilities, examples using SignalR for forced video switching and real-time deals, and scaling out applications using the publish-subscribe pattern with Azure Service Bus. The document also includes a demonstration of using SignalR with Azure for continuous integration and horizontal scaling.
Today almost every product has an API, to integrate in other products or to made the data available to the outside world. Most API’s are using traditional patterns and technology. With the rise of Angular, React and other modern frameworks there is a need for non blocking API’s. Meet Reactive streams, like Spring Webflux, to super charge your API.
In this session I will tell about and show you Reactive API’s and more
This document provides an overview of Mono for Android, which allows developers to use C# and the .NET framework to build Android applications. It discusses Android concepts like activities, services, and intents. It also explains how Mono for Android works by using a Mono runtime and proxies to interface with the Android framework from managed code. Benefits of Mono for Android include code reuse across platforms, using C# and Visual Studio for development, and the ability to eventually sell applications on marketplaces.
Christos Matskas presented on ASP.NET 5 and the .NET ecosystem. He discussed how ASP.NET 5 fits into the new .NET Core runtime as a unified framework for MVC, Web API, and SignalR. ASP.NET 5 allows for agility, control, speed, and cross-platform capabilities. It also provides features for cloud support and uses modern web standards and tools. Legacy ASP.NET applications can integrate with ASP.NET 5.
As presented to the Milwaukee Alt.Net group on November 21st, 2011.
UPDATE April 19, 2012: added some domain logic organization slides using Fowler's 4 basic patterns.
-- Presented in Serverless Summit 2017 - www.inserverless.com --
The earlier sessions at this conference covered development scenarios & operations, frameworks/platforms, and technology applications. In this session, I'll tie them together to provide a perspective on architectures and patterns for serverless. I'll cover how serverless compute can be used as glue or backend, legacy API proxy, or do real-time processing. Further, I'll discuss how serverless can be employed for web applications, batch processing, stream processing and event-driven automation, at a high level.
Run your Dockerized ASP.NET application on Windows and Linux!Alex Thissen
This document discusses running Dockerized ASP.NET applications on both Windows and Linux platforms. It introduces Docker containers as a way to deploy ASP.NET applications without needing different frameworks, tooling, or packages for each platform. The document demonstrates how to use Docker containers on Windows and Linux to build and deploy ASP.NET applications in a consistent manner across operating systems.
"This session will cover an Overview of JS frameworks
& how to install and start with angular . Also how to create a first-level sample app using VS Code IDE"
Coordinating Micro-Services with Spring Cloud ContractOmri Spector
This document discusses coordinating APIs between producer and consumer applications using Spring Cloud Contract (SCC). It begins with an example of how separate development of APIs by each team can lead to misaligned implementations. It then demonstrates how SCC allows teams to define API contracts, generate test stubs, and validate implementations without copying contracts or requiring early integration. The key benefits of SCC are that it establishes contract artifacts, enables consumer-driven API design, and provides two-way validation of implementations against a shared contract. Various SCC workflows and uses of contract repositories are also outlined.
TDD a REST API With Node.js and MongoDBValeri Karpov
This document discusses developing and testing a MongoDB and Node.js REST API. It introduces MongoDB and Node.js, and then covers building an API with the following parts: using Mongoose to define schemas for products, categories, and users; building routes with Express; and testing with Mocha and Superagent. Key topics include schema design principles, building RESTful routes, and testing the API end-to-end. The goal is to learn how to structure APIs on MongoDB with Node.js and ensure quality with testing.
ASP.NET 5 has been redesigned with an emphasis on speed, composability, and cross-platform support. The new ASP.NET is leaner, faster, open source, and fixes many of the inconsistencies and problems present in ASP.NET today.
- Entity Framework Core (EF Core) 1.0 is a re-write of Entity Framework from the ground up to be lightweight, extensible, and support new platforms and data stores.
- EF Core 1.0 focuses on being code-first only and supports relational databases via providers, while also aiming to support non-relational stores.
- EF Core is optimized for memory and CPU usage compared to the larger EF6 by using a modular, dependency-injected core and pay-per-play components.
- EF6 will still be supported but EF Core is meant for new applications targeting .NET Core and platforms like ASP.NET Core and Universal Windows Platform.
The document contains a 10 question quiz about serverless computing concepts. It begins by explaining that the term "lambda" in serverless functions originates from Alonzo Church's "lambda calculus" in 1936. Each question is then presented along with the corresponding answer and brief explanation. The questions cover topics like principles for creating lambda functions, suitable and unsuitable use cases for serverless, where to store credentials, characteristics of serverless functions, the "freeze/thaw cycle", and approaches to avoid for state management.
This document discusses Angular, TypeScript, and Katana. It provides an overview of these technologies including what OWIN and Project Katana are, how to decouple the client and server, and demos of using Angular, TypeScript, and Reactive Extensions with ASP.NET. It also summarizes what Angular, TypeScript, and Reactive Extensions are and how they can be used together to build single page applications.
SPS calgary 2017 introduction to azure functions microsoft flowVincent Biret
Slides of the session introduction to Microsoft flow and azure functions during SPSYYC. Lean to create no-code powerful workflows and extend those in a matter of minutes with Azure Functions
--This presentation was presented in Serverless Summit - www.inserverless.com ---
In this presentation I'll show you how to use Amazon Lambda and Lex to build a working chatbot in just a few minutes. No prior experience is required, you'll see how to use a simple starter kit built by myself and a friend to rapidly set up a bot. This is a great way to get your hands dirty with serverless programming on the AWS platform, and have some fun writing a bot!
This document provides an overview of ASP.NET and .NET technologies from the perspective of Chandan Gupta Bhagat, a DevOps and .NET engineer. It introduces Bhagat's background and experience before covering topics like .NET Framework versions, .NET Core, C# vs VB, object oriented programming, ASP.NET Webforms, MVC, Web API, single page applications, and microservices. Code samples and demos are provided to illustrate key concepts.
Gunnar Peipman discusses what's new in ASP.NET vNext. Key updates include support for true side-by-side deployment, a cloud optimized .NET Core runtime that takes up only 11MB, and ASP.NET components being merged into a single framework. ASP.NET vNext apps are designed to be cloud ready. The new K runtime features multiple layers including the CLR native host and managed entry point. KVM and KPM are also introduced as tools for managing the K runtime and packages.
This document summarizes a presentation about building real-time web and mobile apps using Angular and Meteor. Meteor is described as an ultra-simple environment for building modern websites that uses a library of pre-written packages and a command-line tool. The key principles of Meteor are discussed, including data synchronization, shared codebases, latency compensation, and reactivity. Structuring Meteor apps and security features are also covered. The document then explains how Angular can be integrated with Meteor to build full-stack Angular apps that leverage Meteor's real-time capabilities and services.
This document discusses microservices and their advantages and disadvantages. Microservices are small, independent units that work together to form an application. They allow for independent deployment and use of different technologies. While this improves scalability and agility, it also introduces challenges around distributed systems, refactoring code between services, and operating at scale. The key is to start with a functional architecture and limit communication between services.
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeployAmazon Web Services
The .NET Platform is undergoing a revolution with a new modularized .NET Framework and CoreCLR, a new cross platform runtime. ASP.NET 5 gives .NET developers the ability to develop and run their applications outside of Windows. In this session we will explore how to develop and deploy ASP.NET 5 applications on Windows with AWS CodeDeploy and Linux with Docker. For Docker we will explore using Docker with both Elastic Beanstalk and EC2 Container Service.
This document discusses using Docker for Magento development. It provides an overview of Docker, how it can be used to create isolated environments for Magento 1 and 2 projects with different requirements. It outlines the steps to set up a Docker development environment, including selecting base images, using Docker Compose to build the network, and sharing the configuration with a team. Benefits include spending less time on system configuration, easy switching between projects, and setups similar to cloud hosting environments.
This document provides an overview of Mono for Android, which allows developers to use C# and the .NET framework to build Android applications. It discusses Android concepts like activities, services, and intents. It also explains how Mono for Android works by using a Mono runtime and proxies to interface with the Android framework from managed code. Benefits of Mono for Android include code reuse across platforms, using C# and Visual Studio for development, and the ability to eventually sell applications on marketplaces.
Christos Matskas presented on ASP.NET 5 and the .NET ecosystem. He discussed how ASP.NET 5 fits into the new .NET Core runtime as a unified framework for MVC, Web API, and SignalR. ASP.NET 5 allows for agility, control, speed, and cross-platform capabilities. It also provides features for cloud support and uses modern web standards and tools. Legacy ASP.NET applications can integrate with ASP.NET 5.
As presented to the Milwaukee Alt.Net group on November 21st, 2011.
UPDATE April 19, 2012: added some domain logic organization slides using Fowler's 4 basic patterns.
-- Presented in Serverless Summit 2017 - www.inserverless.com --
The earlier sessions at this conference covered development scenarios & operations, frameworks/platforms, and technology applications. In this session, I'll tie them together to provide a perspective on architectures and patterns for serverless. I'll cover how serverless compute can be used as glue or backend, legacy API proxy, or do real-time processing. Further, I'll discuss how serverless can be employed for web applications, batch processing, stream processing and event-driven automation, at a high level.
Run your Dockerized ASP.NET application on Windows and Linux!Alex Thissen
This document discusses running Dockerized ASP.NET applications on both Windows and Linux platforms. It introduces Docker containers as a way to deploy ASP.NET applications without needing different frameworks, tooling, or packages for each platform. The document demonstrates how to use Docker containers on Windows and Linux to build and deploy ASP.NET applications in a consistent manner across operating systems.
"This session will cover an Overview of JS frameworks
& how to install and start with angular . Also how to create a first-level sample app using VS Code IDE"
Coordinating Micro-Services with Spring Cloud ContractOmri Spector
This document discusses coordinating APIs between producer and consumer applications using Spring Cloud Contract (SCC). It begins with an example of how separate development of APIs by each team can lead to misaligned implementations. It then demonstrates how SCC allows teams to define API contracts, generate test stubs, and validate implementations without copying contracts or requiring early integration. The key benefits of SCC are that it establishes contract artifacts, enables consumer-driven API design, and provides two-way validation of implementations against a shared contract. Various SCC workflows and uses of contract repositories are also outlined.
TDD a REST API With Node.js and MongoDBValeri Karpov
This document discusses developing and testing a MongoDB and Node.js REST API. It introduces MongoDB and Node.js, and then covers building an API with the following parts: using Mongoose to define schemas for products, categories, and users; building routes with Express; and testing with Mocha and Superagent. Key topics include schema design principles, building RESTful routes, and testing the API end-to-end. The goal is to learn how to structure APIs on MongoDB with Node.js and ensure quality with testing.
ASP.NET 5 has been redesigned with an emphasis on speed, composability, and cross-platform support. The new ASP.NET is leaner, faster, open source, and fixes many of the inconsistencies and problems present in ASP.NET today.
- Entity Framework Core (EF Core) 1.0 is a re-write of Entity Framework from the ground up to be lightweight, extensible, and support new platforms and data stores.
- EF Core 1.0 focuses on being code-first only and supports relational databases via providers, while also aiming to support non-relational stores.
- EF Core is optimized for memory and CPU usage compared to the larger EF6 by using a modular, dependency-injected core and pay-per-play components.
- EF6 will still be supported but EF Core is meant for new applications targeting .NET Core and platforms like ASP.NET Core and Universal Windows Platform.
The document contains a 10 question quiz about serverless computing concepts. It begins by explaining that the term "lambda" in serverless functions originates from Alonzo Church's "lambda calculus" in 1936. Each question is then presented along with the corresponding answer and brief explanation. The questions cover topics like principles for creating lambda functions, suitable and unsuitable use cases for serverless, where to store credentials, characteristics of serverless functions, the "freeze/thaw cycle", and approaches to avoid for state management.
This document discusses Angular, TypeScript, and Katana. It provides an overview of these technologies including what OWIN and Project Katana are, how to decouple the client and server, and demos of using Angular, TypeScript, and Reactive Extensions with ASP.NET. It also summarizes what Angular, TypeScript, and Reactive Extensions are and how they can be used together to build single page applications.
SPS calgary 2017 introduction to azure functions microsoft flowVincent Biret
Slides of the session introduction to Microsoft flow and azure functions during SPSYYC. Lean to create no-code powerful workflows and extend those in a matter of minutes with Azure Functions
--This presentation was presented in Serverless Summit - www.inserverless.com ---
In this presentation I'll show you how to use Amazon Lambda and Lex to build a working chatbot in just a few minutes. No prior experience is required, you'll see how to use a simple starter kit built by myself and a friend to rapidly set up a bot. This is a great way to get your hands dirty with serverless programming on the AWS platform, and have some fun writing a bot!
This document provides an overview of ASP.NET and .NET technologies from the perspective of Chandan Gupta Bhagat, a DevOps and .NET engineer. It introduces Bhagat's background and experience before covering topics like .NET Framework versions, .NET Core, C# vs VB, object oriented programming, ASP.NET Webforms, MVC, Web API, single page applications, and microservices. Code samples and demos are provided to illustrate key concepts.
Gunnar Peipman discusses what's new in ASP.NET vNext. Key updates include support for true side-by-side deployment, a cloud optimized .NET Core runtime that takes up only 11MB, and ASP.NET components being merged into a single framework. ASP.NET vNext apps are designed to be cloud ready. The new K runtime features multiple layers including the CLR native host and managed entry point. KVM and KPM are also introduced as tools for managing the K runtime and packages.
This document summarizes a presentation about building real-time web and mobile apps using Angular and Meteor. Meteor is described as an ultra-simple environment for building modern websites that uses a library of pre-written packages and a command-line tool. The key principles of Meteor are discussed, including data synchronization, shared codebases, latency compensation, and reactivity. Structuring Meteor apps and security features are also covered. The document then explains how Angular can be integrated with Meteor to build full-stack Angular apps that leverage Meteor's real-time capabilities and services.
This document discusses microservices and their advantages and disadvantages. Microservices are small, independent units that work together to form an application. They allow for independent deployment and use of different technologies. While this improves scalability and agility, it also introduces challenges around distributed systems, refactoring code between services, and operating at scale. The key is to start with a functional architecture and limit communication between services.
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeployAmazon Web Services
The .NET Platform is undergoing a revolution with a new modularized .NET Framework and CoreCLR, a new cross platform runtime. ASP.NET 5 gives .NET developers the ability to develop and run their applications outside of Windows. In this session we will explore how to develop and deploy ASP.NET 5 applications on Windows with AWS CodeDeploy and Linux with Docker. For Docker we will explore using Docker with both Elastic Beanstalk and EC2 Container Service.
This document discusses using Docker for Magento development. It provides an overview of Docker, how it can be used to create isolated environments for Magento 1 and 2 projects with different requirements. It outlines the steps to set up a Docker development environment, including selecting base images, using Docker Compose to build the network, and sharing the configuration with a team. Benefits include spending less time on system configuration, easy switching between projects, and setups similar to cloud hosting environments.
This document discusses containers and Docker. It begins by explaining that cloud infrastructures comprise virtual resources like compute and storage nodes that are administered through software. Docker is introduced as a standard way to package code and dependencies into portable containers that can run anywhere. Key benefits of Docker include increased efficiency, consistency, and security compared to traditional virtual machines. Some weaknesses are that Docker may not be suitable for all applications and large container management can be difficult. Interesting uses of Docker include malware analysis sandboxes, isolating Skype sessions, and managing Raspberry Pi clusters with Docker Swarm.
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013dotCloud
The document outlines the agenda for the OpenStack Summit in November 2013. The agenda includes sessions on Docker and its ecosystem, using Docker with OpenStack and Rackspace, and a cross-cloud deployment demo. Docker is presented as a solution for developing and deploying applications across multiple environments by encapsulating code and dependencies in portable containers. It can help eliminate inconsistencies between development, testing, and production environments.
The document discusses DevOps workflow with Docker on AWS. It describes using Docker to isolate application environments, increasing team productivity and decreasing development team size. Key elements include using Gitlab for source control and CI/CD, building Docker images via Gitlab runners, and deploying to Kubernetes clusters. The workflow allows writing applications once and running them anywhere and forever through continuous integration and delivery of Docker images to private container registries on AWS.
This document provides an introduction to Docker, including:
- Docker allows developers to package applications with all dependencies into standardized units called containers that can run on any infrastructure.
- Docker uses namespaces and control groups to provide isolation and security between containers while allowing for more efficient use of resources than virtual machines.
- The Docker architecture includes images which are templates for creating containers, a Dockerfile to automate image builds, and Docker Hub for sharing images.
- Kubernetes is an open-source platform for automating deployment and management of containerized applications across clusters of hosts.
Moving microsoft .net applications one container at a time Amazon Web Services
This document discusses moving Microsoft .NET applications to containers using Docker. It provides a brief history of .NET and open source efforts. It explores the developer experience of .NET outside of Windows and demystifies .NET in Docker and containers. The document outlines several hands-on demos of developing a .NET app on Windows and running it in a Linux container on AWS. It also discusses how AWS supports .NET and Docker through options like rolling your own on EC2, using Elastic Beanstalk, or Amazon ECS. The document encourages attendees to discuss their training plans and opportunities to get AWS certified.
Containers, Serverless and Functions in a nutshellEugene Fedorenko
This document provides an overview of containers, microservices, Docker, Kubernetes, serverless computing, and functions. It discusses how containers package software for distribution and are more lightweight than virtual machines. Microservices decompose monolithic applications into loosely coupled services. Docker is a popular container platform, while Kubernetes is an open source orchestration system for containers. Serverless computing focuses on writing code without managing infrastructure, using functions as units of work. Functions are stateless and triggered by events. Platforms like AWS Lambda, Azure Functions, Fn, and OpenFaaS support serverless development.
Presentation about docker from Java User Group in Ostrava CZ (23th of November 2015). Presented by Martin Damovsky (@damovsky).
Demos are available at https://github.com/damovsky/jug-ostrava-docker
AWS Summit Auckland - Moving MS .NET Applications One Container at a TimeAmazon Web Services
Moving Microsoft .NET Applications One Container at a Time
The document discusses moving Microsoft .NET applications to containers using Docker. It provides a brief history of .NET and how open source efforts have made it cross-platform. It then covers .NET Core, ASP.NET Core, and how the developer experience is now cross-platform. Hands-on demos show developing an ASP.NET Core app on Windows and running it in a Linux container on AWS. Finally, it discusses how AWS supports .NET and Docker through options like rolling your own, using Elastic Beanstalk, or Amazon ECS.
Docker is a containerization platform that packages applications into standardized units called containers. Azure Container Service simplifies creating clusters of virtual machines preconfigured to run containerized applications using open-source orchestration tools like Docker Swarm, DC/OS, and Kubernetes. The presentation demonstrated Docker and container orchestration on Azure through Visual Studio tools for building, debugging, and deploying containerized applications as well as a continuous integration/deployment pipeline using DC/OS on Azure Container Service.
The document outlines the agenda for the OpenStack Summit in November 2013, including presentations on Docker and its ecosystem, how Docker can be used with OpenStack and Rackspace, and a demonstration of cross-cloud application deployment using Docker. Docker is presented as a solution to the "matrix from hell" of running applications across different environments by providing lightweight, portable containers that can run anywhere regardless of the operating system. The summit aims to educate attendees on Docker and showcase its integration with OpenStack for simplified and efficient application deployment and management across multiple clouds.
Rami Sayar - Node microservices with DockerWeb à Québec
The document discusses converting a monolithic Node.js application into microservices and deploying them using Docker. It begins by defining microservices and their benefits. It then describes converting a sample pizza ordering application into independent microservices for handling messages, serving the frontend, and providing an API. Next, it covers patterns for networking microservices, including using an API gateway. It concludes by demonstrating how to deploy the microservices to Docker containers and use an orchestration tool like Kubernetes to manage them.
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)Amazon Web Services
Keeping consistent environments across your development, test, and production systems can be a complex task. Docker containers offer a way to develop and test your application in the same environment in which it runs in production. You can use tools such as the ECS CLI and Docker Compose for local testing of applications; Jenkins and AWS CodePipeline for building and workflow orchestration; Amazon EC2 Container Registry to store your container images; and Amazon EC2 Container Service to manage and scale containers. In this session, you will learn how to build containers into your development workflow and orchestrate container deployments using Amazon ECS. You will hear how Okta runs 30,000 tests per developer commit and releases 10,000 new lines of code each week to production with a CI system based on 100% AWS services. We'll also discuss how Okta uses ECS for parallelized testing in CI and for production microservices in a multi-region, always on cloud service.
Lino Telera gave a presentation on serverless computing. He began with introductions and background. The presentation covered serverless concepts like Function as a Service, demonstrated building a simple microservice using AWS Lambda that interacts with S3, and discussed integrating functions with services like S3 using Boto. It also showed how functions can be called from devices using skills and discussed running serverless on-premise using OpenFaaS or Pivotal Container Service. The presentation concluded with a Q&A and thanks to sponsors.
Docker is an open source containerization platform that allows users to package applications and their dependencies into standardized executable units called containers. Docker relies on features of the Linux kernel like namespaces and cgroups to provide operating-system-level virtualization and allow containers to run isolated on a shared kernel. This makes Docker highly portable and allows applications to run consistently regardless of the underlying infrastructure. Docker uses a client-server architecture where the Docker Engine runs in the cloud or on-premises and clients interact with it via Docker APIs or the command line. Common commands include build to create images from Dockerfiles, run to launch containers, and push/pull to distribute images to registries. Docker is often used for microservices and multi-container
AWS Innovate: Moving Microsoft .Net applications one container at a time - Da...Amazon Web Services Korea
This document discusses moving Microsoft .NET applications to containers. It provides a brief history of .NET and its evolution to support cross-platform development. It explores using .NET and Docker to develop applications on Windows and deploy them in Linux containers on AWS. It demonstrates developing an ASP.NET application on Windows and running it in a Linux container on AWS EC2. It summarizes that Microsoft has made cross-platform development easier with .NET Core, existing applications can run in Docker containers under Mono or .NET Core, and AWS supports .NET and Docker applications through services like EC2 and ECS.
Containers, microservices and serverless for realistsKarthik Gaekwad
The document discusses containers, microservices, and serverless applications for developers. It provides an overview of these topics, including how containers and microservices fit into the DevOps paradigm and allow for better collaboration between development and operations teams. It also discusses trends in container usage and orchestration as well as differences between platforms as a service (PaaS) and serverless applications.
This document provides an introduction to Docker and discusses:
- The challenges of managing applications across different environments which Docker aims to solve through lightweight containers.
- An overview of Docker concepts including images, containers, the Docker workflow and networking.
- How Docker Compose allows defining and running multi-container applications and Docker Swarm enables orchestrating containers across a cluster.
- The open container ecosystem including the Open Container Initiative for standardization.
Dockerize the World - presentation from Hradec Kralovedamovsky
This document provides an introduction and overview of Docker delivered in a presentation format. It includes:
1. An agenda that covers Docker introduction, demos, Docker in the cloud, IoT and Docker, and news from DockerCon conferences.
2. Background on the presenter and a poll asking who knows and uses Docker in production.
3. Explanations of what Docker is, how it works using Linux kernel features, and its motto of Build, Ship, Run.
4. Mention of links to the presenter's Docker demos and an open source project called Yowie.
Similar to Container Orchestration for .NET Developers (20)
Effective .NET Core Unit Testing with SQLite and DapperMike Melusky
- The document discusses effective unit testing for .NET Core applications that use SQLite and Dapper for data access.
- It motivates the importance of unit testing, then demonstrates how to set up an in-memory SQLite database to run tests against instead of a live SQL Server database for isolation.
- Best practices like test-driven development, code coverage reports, and writing tests for bug fixes are also covered, with examples shown of integrating the XUnit testing framework.
Building xamarin.forms apps with prism and mvvmMike Melusky
This document summarizes a presentation about building Xamarin.Forms apps with Prism and MVVM. The presentation covered introducting Xamarin.Forms, creating a basic app, .NET Standard, core concepts like XAML and navigation, introducing the MVVM pattern and Prism framework, and additional topics like SQLite, authentication, and testing. It demonstrated building a simple app, integrating Prism and dependency injection, and using MVVM patterns like commands and data binding.
Introduction to react native with reduxMike Melusky
This document provides an introduction and overview of React Native with Redux. It begins with an introduction to React components, props, and state. It then covers building a sample React Native app and advanced concepts like navigation and Redux. The document compares React Native to other native frameworks and provides resources for learning more. It was presented at Philly.NET on March 24, 2018 and discusses topics like React basics, React Native, native navigation solutions, and integrating Redux.
This document provides an overview of a one-day Xamarin bootcamp workshop on cross-platform mobile app development using Xamarin. The workshop will cover topics such as introducing Xamarin and Xamarin.Forms, building a sample application, integrating with RESTful APIs, authentication, and software engineering practices for mobile development. It will be led by speaker Michael Melusky and include hands-on coding exercises.
Slide deck from React Native talk for Central Penn DotNet user group on 01/23/2018.
https://www.meetup.com/Central-Penn-Dot-Net-User-Group/events/245677212/
The document discusses progressive web apps and React. It begins by introducing progressive web apps and their benefits over traditional web apps and native apps. It then covers prerequisites for building progressive web apps with React including HTML, JavaScript, Node.js and CLI knowledge. The document proceeds to discuss key React topics like components, virtual DOM, JSX, props and state. It also covers service workers, manifest files and tools for testing progressive web apps.
Into to Docker (Central PA Java User Group - 8/14/2017)Mike Melusky
This document provides an introduction to Docker, including what Docker is, how it differs from virtual machines, basic Docker commands, examples of running common applications like GitLab and JIRA in Docker containers, and considerations for when to use and not use Docker. Docker allows containerized execution of isolated applications, sharing resources for lighter weight usage than virtual machines. Examples demonstrate pulling public images and running containers from them to execute applications like Python, GitLab and JIRA.
This document summarizes a presentation about Angular 2 given by Michael Melusky. The presentation covered introductions to Angular 2, TypeScript, components, data binding, communication between components, routing, directives, pipes, services, and integrating Firebase. It provided overviews and examples of key Angular 2 concepts like components, data binding, dependency injection, and services. It also explained how to set up an Angular 2 project using the Angular CLI and TypeScript basics.
This document summarizes a presentation about Angular 2 given by Michael Melusky. The presentation covered introductions to Angular 2, TypeScript, components, data binding, communication between components, routing, directives, pipes and filters, services, and Firebase integration. It provided examples of TypeScript code, Angular components, data binding syntax, using directives like ngIf and ngFor, and creating services to avoid duplicating code between components. The speaker's goal was to give an overview of the core aspects of building applications with Angular 2.
Securing your azure web app with asp.net core data protectionMike Melusky
This document summarizes securing an ASP.NET Core web application with data protection. It begins with an overview of encryption in ASP.NET prior to Core and introduces the new Data Protector framework. Through demos, it shows how to build an MVC app, encrypt data using the framework, and deploy the application to Azure with an SSL certificate from Let's Encrypt. It discusses key features of the framework like key management, lifetime, and algorithms. The document provides guidance on configuration and deployment considerations for data protection in ASP.NET Core.
This document describes standard array methods and their equivalent observable methods. The standard methods pop, push, reverse, shift, and unshift have equivalent observable methods popObject, pushObject, reverseObjects, shiftObject, and unshiftObject respectively.
Building Native “apps” with Visual Studio 2015Mike Melusky
This document summarizes options for building native mobile applications using Visual Studio 2015. It discusses tools for developing apps for platforms like iOS, Android, and Windows Phone. Key frameworks mentioned include Apache Cordova, which allows developing mobile apps using web technologies, and Xamarin, which enables sharing code across platforms while creating fully native apps. The document also includes a demo of creating a basic app using Apache Cordova and discusses advantages and limitations of various approaches.
This document summarizes a presentation about Emberjs and its components. Emberjs is a framework for creating ambitious web applications that uses templates, components, controllers, models, routes and a router. Templates define the user interface using Handlebars, components organize the UI and define behaviors, controllers are similar to components, models represent persistent data, routes load controllers/templates/models, and the router maps URLs to routes. The presentation demonstrates creating an Emberjs app and some of its key concepts like objects, enumerables and the object model. It also discusses why one may choose Emberjs over Angular and the roadmap to move away from controllers to components.
This document provides an overview and introduction to lambda expressions. It discusses lambda expressions in .NET and C#, how they originated from lambda calculus, and how they allow functions to be passed around like data. It provides examples of using lambda expressions with LINQ, delegates, and expression trees in C#. It also compares how lambda expressions are implemented in Java SE 8 versus C# and .NET. The goal is to help developers understand what lambda expressions are, how they differ from anonymous methods, and how to use them in various programming languages and contexts.
The document discusses Querydsl, an open source query framework for Java that generates type-safe queries across multiple platforms including JPA, JDO, JDBC, Lucene, Hibernate Search, MongoDB, and Collections. It allows domain changes to be reflected in queries, provides autocomplete for faster and safer query construction, and avoids issues with string concatenation and unsafe references present in alternative approaches like HQL. An example application using Querydsl with a Bookstore data model is presented to demonstrate its features.
This document provides an overview of lambda expressions in .NET and Java. It introduces lambda expressions and their origins in lambda calculus. Examples are given of using lambda expressions in C# and F# with LINQ and delegates. The evolution of delegates in C# is discussed, from using methods to anonymous methods to lambda expressions. Expression trees in C# are also covered. The differences between lambda expressions in C# and Java are highlighted, with examples given of sorting lists of objects using lambdas in each language. In summary, lambdas are unnamed inline functions that can be used anywhere a delegate is required to keep code encapsulated.
The document discusses Windows services, which are long-running executable applications that run without a user interface and can start automatically when Windows restarts. It describes how to manage services through the Services console and covers alternatives like Windows Task Scheduler. The document also introduces several frameworks for developing Windows services like Topshelf and Quartz.NET and provides examples of automated backup, event logging, SMS reminders, and using OneNote through a service.
This document introduces CSS3 transitions, transformations, animations and filters. It provides examples of transition properties, timing functions, transformation functions like translate, scale, rotate and matrix, how to define CSS animations with keyframes, and a list of supported filter functions. Browser support for these features includes Firefox 5+, IE 10+, Chrome, Safari 4+ and Opera 12+. References for further reading on these topics are also provided.
OpenMetadata Community Meeting - 5th June 2024OpenMetadata
The OpenMetadata Community Meeting was held on June 5th, 2024. In this meeting, we discussed about the data quality capabilities that are integrated with the Incident Manager, providing a complete solution to handle your data observability needs. Watch the end-to-end demo of the data quality features.
* How to run your own data quality framework
* What is the performance impact of running data quality frameworks
* How to run the test cases in your own ETL pipelines
* How the Incident Manager is integrated
* Get notified with alerts when test cases fail
Watch the meeting recording here - https://www.youtube.com/watch?v=UbNOje0kf6E
Graspan: A Big Data System for Big Code AnalysisAftab Hussain
We built a disk-based parallel graph system, Graspan, that uses a novel edge-pair centric computation model to compute dynamic transitive closures on very large program graphs.
We implement context-sensitive pointer/alias and dataflow analyses on Graspan. An evaluation of these analyses on large codebases such as Linux shows that their Graspan implementations scale to millions of lines of code and are much simpler than their original implementations.
These analyses were used to augment the existing checkers; these augmented checkers found 132 new NULL pointer bugs and 1308 unnecessary NULL tests in Linux 4.4.0-rc5, PostgreSQL 8.3.9, and Apache httpd 2.2.18.
- Accepted in ASPLOS ‘17, Xi’an, China.
- Featured in the tutorial, Systemized Program Analyses: A Big Data Perspective on Static Analysis Scalability, ASPLOS ‘17.
- Invited for presentation at SoCal PLS ‘16.
- Invited for poster presentation at PLDI SRC ‘16.
8 Best Automated Android App Testing Tool and Framework in 2024.pdfkalichargn70th171
Regarding mobile operating systems, two major players dominate our thoughts: Android and iPhone. With Android leading the market, software development companies are focused on delivering apps compatible with this OS. Ensuring an app's functionality across various Android devices, OS versions, and hardware specifications is critical, making Android app testing essential.
Flutter is a popular open source, cross-platform framework developed by Google. In this webinar we'll explore Flutter and its architecture, delve into the Flutter Embedder and Flutter’s Dart language, discover how to leverage Flutter for embedded device development, learn about Automotive Grade Linux (AGL) and its consortium and understand the rationale behind AGL's choice of Flutter for next-gen IVI systems. Don’t miss this opportunity to discover whether Flutter is right for your project.
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesQuickdice ERP
Explore the seamless transition to e-invoicing with this comprehensive guide tailored for Saudi Arabian businesses. Navigate the process effortlessly with step-by-step instructions designed to streamline implementation and enhance efficiency.
E-commerce Application Development Company.pdfHornet Dynamics
Your business can reach new heights with our assistance as we design solutions that are specifically appropriate for your goals and vision. Our eCommerce application solutions can digitally coordinate all retail operations processes to meet the demands of the marketplace while maintaining business continuity.
Software Engineering, Software Consulting, Tech Lead, Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Transaction, Spring MVC, OpenShift Cloud Platform, Kafka, REST, SOAP, LLD & HLD.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j
Dr. Jesús Barrasa, Head of Solutions Architecture for EMEA, Neo4j
Découvrez les dernières innovations de Neo4j, et notamment les dernières intégrations cloud et les améliorations produits qui font de Neo4j un choix essentiel pour les développeurs qui créent des applications avec des données interconnectées et de l’IA générative.
SMS API Integration in Saudi Arabia| Best SMS API ServiceYara Milbes
Discover the benefits and implementation of SMS API integration in the UAE and Middle East. This comprehensive guide covers the importance of SMS messaging APIs, the advantages of bulk SMS APIs, and real-world case studies. Learn how CEQUENS, a leader in communication solutions, can help your business enhance customer engagement and streamline operations with innovative CPaaS, reliable SMS APIs, and omnichannel solutions, including WhatsApp Business. Perfect for businesses seeking to optimize their communication strategies in the digital age.
GraphSummit Paris - The art of the possible with Graph TechnologyNeo4j
Sudhir Hasbe, Chief Product Officer, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
E-commerce Development Services- Hornet DynamicsHornet Dynamics
For any business hoping to succeed in the digital age, having a strong online presence is crucial. We offer Ecommerce Development Services that are customized according to your business requirements and client preferences, enabling you to create a dynamic, safe, and user-friendly online store.
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Crescat
Crescat is industry-trusted event management software, built by event professionals for event professionals. Founded in 2017, we have three key products tailored for the live event industry.
Crescat Event for concert promoters and event agencies. Crescat Venue for music venues, conference centers, wedding venues, concert halls and more. And Crescat Festival for festivals, conferences and complex events.
With a wide range of popular features such as event scheduling, shift management, volunteer and crew coordination, artist booking and much more, Crescat is designed for customisation and ease-of-use.
Over 125,000 events have been planned in Crescat and with hundreds of customers of all shapes and sizes, from boutique event agencies through to international concert promoters, Crescat is rigged for success. What's more, we highly value feedback from our users and we are constantly improving our software with updates, new features and improvements.
If you plan events, run a venue or produce festivals and you're looking for ways to make your life easier, then we have a solution for you. Try our software for free or schedule a no-obligation demo with one of our product specialists today at crescat.io
2. About me
• Michael Melusky (@mrjavascript)
• Lives in Harrisburg, PA
• Software Developer for Audacious Inquiry in Baltimore, MD
• College Professor (Penn State / Franklin and Marshall)
• BBQ and Lawn Care
• XBOX One
• Regular speaker at Philly.NET events (Code Camps and Monthlies)
3. What are we talking about tonight?
• “Dot Net”
• Amazon AWS and Microsoft Azure
• Serverless Computing
• AWS Lambdas and Azure Functions
• Docker
• Kubernetes
• Container Registries (ACR and ECR)
• Containers as a Service with Amazon ECS and Microsoft AKS
4. Amazon v. Microsoft
• I’m not here to cheerlead for either Microsoft or Azure
• If you are tasked with the decision of migrating from a hosted region
to the cloud
• Please don’t use this talk as sole factor in your decision
• This decision takes significant research
• Weighing pros and cons
5. Themes for Tonight
• Serverless Architecture
• Being able to deploy a product without having to worry about
underlying infrastructure
• Portability
• If you ever need to migrate from Amazon to Microsoft or vice versa…
• How difficult will that be?
7. Dot Net
• I spoke here (at Code Camp) back in November
• Showcased containerization of numerous technologies (Java, Python
et al.)
• Focusing solely on “Dot Net” this evening
• What is Dot Net?
8. Dot Net
• Software Framework from Microsoft
• You can use it for building any type of app
• Mobile, Web (MVC), Micro-Service
• Two flavors:
• .NET Framework
• .NET Core
• What is the difference between each?
9. .NET Framework
• Framework from Microsoft
• Runs primarily on Windows systems
• Does not run on Linux
• Latest version is 4.8 (April 2019)
• Does not support C# 8.0
10. .NET Core
• Framework from Microsoft
• Cross-platform (can run on Windows, Linux and Mac
OSX)
• Current version is 3.1
• C# 8.0 is supported!
14. Traditional
“Web Deploy”
• Traditionally we can deploy a .NET
Core application to IIS server
• Right click on project and “deploy”
• How else can we deploy?
• Where can we deploy to?
16. Cloud Providers
• Tonight we’re going to look at two cloud providers
• Amazon and Microsoft
• Amazon AWS
• Microsoft Azure
17. Amazon AWS
• On-demand cloud computing platform
• Servers in 22 geographic regions
• 60+ managed services
• Managed services such as services for
queueing, relational database services,
caching
• Two managed services we are
interested in for tonight:
• AWS Lambdas
• Containerization Services
18. Microsoft Azure
• Cloud computing platform
• Servers available in 52 geographic
regions
• Multiple managed services very similar
to AWS
• Such as Cosmos DB, Azure Cache, Azure
Search, et al
• Of note for tonight:
• Azure Functions
• Azure Container Services
20. Functions
• Relate an input to an output
• Examples:
• X^2 (squaring)
• X^3 + 1
• Trigonometric functions (sin, cos, tan)
21. How does this relate to Azure and AWS?
• Both cloud providers offers “functions”
• Allows you to run a “quick piece of code” on Microsoft/Amazon’s
hardware
• Azure Functions: runtime cannot exceed 5 minutes
• AWS Lambdas: runtime cannot exceed 15 minutes
• Let’s look at both providers
23. Creating Azure Function
• Let’s implement the previous
example with an Azure Function
• Can write the function in a variety
of languages
• Let’s use .NET Core
• Install “Azure Development”
option with Visual Studio
• ** DEMO **
24. Creating AWS Lambda
• Now let’s do the same with AWS!
• Like Azure, many languages are supported (Java, Python, etc.)
• Like before, let’s use .NET Core
• The Visual Studio project templates come from AWS Toolkit for Visual
Studio: https://aws.amazon.com/visualstudio/
• ** DEMO **
26. What’s the difference between the two?
• We implemented the same function for different cloud providers
• Both are .NET Core implementations
• Looking at the code can the AWS Lambda run in Azure Functions?
• And vice versa?
27. Functions in Cloud Providers
• Functions/Lambdas are provider dependent
• Hypothetically consider the case of an AWS customer
• With 100+ Lambdas
• Requirement to migrate the cloud infrastructure to Azure
• How will the lambdas transfer?
• (Spoiler alert: rewrite)
28. “Functions as a Service” (FaaS)
• Both AWS Lambdas and Azure Functions fall under the “Functions as
a Service” model (FaaS)
• Developers simply write the code and run the application
• Don’t have to worry about the infrastructure management
29. Acronyms
• IaaS – Infrastructure as a Service
• Caas – Containers as a Service
• PaaS – Platform as a Service
• FaaS – Functions as a Service
31. Benefits of Serverless Computing
• As a developer (that’s you), don’t need to worry about the following:
• Security updates
• Anti-virus software
• Operating System Updates
• Hardware Upgrades
• You simply write, deploy and run code!
32. Serverless Computing
• Since we identified that the servers are managed by the cloud
provider
• What do we know about the underlying infrastructure?
• Mostly abstracted, but we can assume:
• Linux!
• (Azure has Windows in Preview discussion coming soon)
33. Linux
• Since these host servers run Linux,
the code we write needs to run on
this operating system
• Main reason why we want .NET
Core!
• .NET Core is cross platform
(Windows, Mac OSX, Linux)
• You can’t write AWS Lambdas
using .NET Framework 4.8
34. TL;DR; version
• As developers, we like Serverless Computing
• If we’re working with .NET Core deployment is a breeze
• Only downside so far?
• Lambdas and platforms are provider dependent
• Is there a solution where we have serverless benefits but also cloud
provider independence?
36. Azure Service Fabric
• Platform as a Service (PaaS) from
Microsoft
• Allows you to build and deploy
micro-services with ease
• Runs in containers
• Facilitates solutions for
communication between micro-
services
• Also facilitates container
orchestration
37. Building a Backend
• Choice for building a backend API for front end apps
• Technically you can run your backend API in AWS Lambda
• Not necessarily purpose of Lambda, meant for quick, serverless code
invocations
• Can use Azure Service Fabric for the backend
• Main downside of Azure Service Fabric?
• You are locked in with Azure
• Is there a portable alternative?
39. Docker
• Docker is software which provides
the concept of application
containerization
• Uses OS virtualization under the
hood
40. Containerization?
• A technique which allows you to deploy distributed applications
without launching a virtual machine for each app!
• Each application (or instance of the application) is isolated from each
other
• All code and resources and configuration needed to run the
application is part of the container
• Containers differ from virtual machines
42. Docker
• Can install the Docker Engine from Docker Hub
• Docker Desktop is available for Mac OSX and Windows
• With Docker for Windows, Windows 10 Professional is required
• Virtualization is needed
44. Docker Images
• Docker Containers are instances of Docker Images
• So for us to run our applications in the Docker Engine, we will need to
build a Docker Image (coming soon)
• For now let’s look at the Docker Command Line Interface (CLI)
• As well as some common commands
45. “docker images”
• Will show all “top level” images
• Included in response is the tag, the size, creation date
46. “docker ps”
• Lists all running containers
• If you want to see all containers (e.g. stopped containers)
• docker ps –a
47. Running a Docker Image
• docker run
• Allows you to run container using an image
• docker stop
• Allows you to stop a particular container
49. Building the .NET Core Image
• To run the .NET Core application
in Docker we need to build an
image to run on the Docker
engine
• For building images, we are
required to provide a Dockerfile
50. Dockerfile
• A Dockerfile is a file that lists instructions needed for building a image
• Based off a source image
• You can run OS commands in the Dockerfile as well (move, copy, et
al.)
• You can also expose any port numbers your application uses
51. Dockerfile ports
• Generally for web applications we expose either 80 or 8080
• We can also expose the secure ports if we want as well (443 and
8443)
• Docker allows you to port forward from a source port
• For instance if you want to expose 5050 as your external port and
route to the internal (exposed) port 80, Docker allows this
• Incredibly useful for cloud providers where AWS/Azure will assign
these ports dynamically at runtime
52. Dockerfile and .NET Core
• Let’s build our application for Docker
• That is produce an image using a Dockerfile
• And then run the image on the Docker engine
• ** DEMO **
54. Docker and .NET
• With the Docker image we just build, we build for .NET Core
• With this .NET Core image, the image can run on any host operating
system (Windows, Linux, et al.)
• What about .NET Framework (4.X)?
• Yes, you can containerize a .NET Framework application!
• However this image can only run on Docker Engine on Microsoft
Windows hosts
56. Containers as a Service (CaaS)
• We saw Functions as a Service earlier tonight
• Do cloud providers have the same ability except being able to run
Docker containers on demand?
• Yes!
58. Kubernetes (K8S)
• Open-source container
orchestration software
• Will monitor the health of the
containers
• If a container dies, Kubernetes will
restart the container
59. Kubernetes
• Used in many applications
• For instance, Red Hat’s OpenShift platform is based on Kubernetes
• The Telcom industry uses it for cable management and routing!
• Both Microsoft and Amazon offer managed services for Kubernetes
clusters
• Amazon offers EKS (Elastic Kubernetes Service)
• Azure offers AKS (Azure Kubernetes Service)
60. Wait…
• The Meetup.com description for this event
• Listed “No Kubernetes Required!”
• Unfortunately, we will be using some K8 tonight
• At least with Azure
62. Containers as a Service (CaaS)
• Both Amazon and Microsoft offer the managed service for running
your containers
• Both Microsoft and Amazon offer two different managed services for
each
• One managed service is based on proprietary technology
• The other managed service is based on K8
• Let’s look in the console for each
• ** DEMO **
63. Containers and Cloud Providers
Provider Managed Service Service Type Notes
Amazon
Elastic Container
Service (ECS)
Proprietary
Elastic Kubernetes
Service (EKS)
Kubernetes
Microsoft
Azure Container
Service (ACS)
Proprietary End of life
1/31/2020
Azure Kubernetes
Service (AKS)
Kubernetes
64. About Me
• I personally use AWS for both full time job and side projects
• ECS is used actively in each
• When preparing this session, I emailed a Microsoft Developer
• I was able to contact someone on the Azure Product Team
• Azure team member was confused about this presentation, and told
me to learn Kubernetes
• Microsoft is sunsetting (end of month) Azure Container Services (ACS)
and is mandating customers migrate to Azure Kubernetes Services
(AKS)
65. Amazon and ECS
• What I also found out from this exchange
• Amazon considers ECS a legacy product
• Eventually customers will presumably need to migrate to EKS
• If Microsoft’s decision is any predictor of future events
67. Plan for Tonight
• Originally was planning to show both ECS and ACS
• Technically I can still demonstrate ACS since it’s available for one
more week
• But there would be more value doing the same demonstration using
AKS
68. Amazon AWS - ECS
• Proprietary solution from Amazon to
dynamically run and orchestrate
Docker containers
• You can specify how many instances
of the application you want to run
• ECS will automatically scale up and
down the instances based on load
• Make sure your code can run in
parallel and be careful about mutual
exclusion and locking!
69. Amazon AWS ECS
• For running Docker images in the cloud
• Amazon needs to be able to pull your image from a repository
• You have a few options
• If your image is public, you can simply push to Docker Hub
• However most code is proprietary, and the general public shouldn’t
be allowed to pull the image
71. Amazon ECR
• Elastic Container Registry
• Managed service from Amazon to
store Docker images (as well as
their tags)
• Microsoft offers a similar
managed service
• Azure Container Registry (ACR)
72. Pushing to container registry
• To push to ECR
• (1) Build the image (using docker build)
• (2) Obtain credentials from Amazon (with docker login command)
• (3) Optionally tag the image (otherwise latest is default tag)
• (4) Push the Image to ECR (or ACR) using docker push
• ** DEMO **
74. Amazon ECS tasks
• With ECS, each instance of the Docker image is based off an ECS Task
• An ECS task specifies:
• Which Docker image is used
• How much memory each instance
• How much vCPU should be allocated
• Let’s create our ECS task for the .NET Core application
• ** DEMO **
76. Running the task in ECS
• With our ECS task created, now we can create the service in ECS
• When we do this, we need to specify the Docker Engine the task will
run against
• Amazon gives you two options
• Docker Engine on an EC2 instance you provide (virtual machine)
• AWS Fargate (serverless!)
77. AWS Fargate
• Serverless approach for running Docker
images
• Containers run on Amazon’s underlying
Docker Engine
• Under the hood: LINUX
• With regards to .NET, .NET Core will work
with Fargate since it’s cross platform
• .NET Framework 4.8 WILL NOT WORK with
Fargate since that requires Windows
Docker Engine
• You can use ECS with .NET Framework but a
backing Windows EC2 instance is needed!
78. AWS Fargate
• Let’s create a service now in ECS for our task
• And run our .NET Core application in AWS Fargate
• ** DEMO **
80. Similarities to AWS
• As mentioned earlier, Microsoft is ending Azure Container Services
(ACS)
• We need to spin up a Kubernetes cluster in AKS
• There are some similar steps however
• Let’s push our Docker image to Azure Container Registry (ACR)
• Let’s then deploy our image into AKS (using their serverless runtime
called Azure Container Instances or ACI)
• ** DEMO **
82. Serverless Matrix
Provider Managed Service Type Host OS Notes
Amazon
AWS Lambda FaaS Linux
ECS/EKS Fargate CaaS Linux Fargate support for
EKS added 12/2019
Microsoft
Azure Functions FaaS Linux
AKS with Container
Instances
CaaS Linux and Windows Windows is in
Preview
83. Next Steps for Me
• Since I use AWS
• Spin up EKS cluster for personal micro-services
• Test and eventually cut over from ECS
• But will bite the bullet and learn Kubernetes
86. Thank you for Coming
• Visual Studio Solution (code) is on Github
• https://github.com/mrjavascript/phillynet_jan2020
• Slides on SlideShare
• @mrjavascript