Learning Windows Server Containers
eBook - ePub

Learning Windows Server Containers

  1. 404 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Learning Windows Server Containers

Book details
Book preview
Table of contents
Citations

About This Book

Build, package, and deploy applications as easily manageable and shippable containers. About This Book• Discover the secret to building highly portable apps that run on any machine with Windows Server 2016 anywhere, from laptops, desktop servers, and public or private clouds, without any changes to the code• Build your company cost-effective, container-based apps that support large-scale, virtual cloud environments• The most up-to-date help on the market, offering developers expert guidance in building and shipping high-quality apps, and also helping admins create infrastructure that's simple to maintainWho This Book Is ForThis book is for application developers with a basic programming knowledge of C#, ASP.NET, and PowerShell. IT Administrators or DevOps engineers with basic PowerShell experience can benefit by extending their learning to use PowerShell to manage containers on Windows environments and use additional management tools.What You Will Learn• Build and deploy ASP.NET web applications as Windows Containers on Windows 10 (Desktop) and Azure using Visual Studio 2015, Docker, and PowerShell• Build and manage custom images using Windows Server Core base OS image and Docker CLI, publish images to Docker, tag images, author Docker files, and so on• Create enterprise-scale, production-grade container environments using Redis Cache containers and SQL Server containers with storage volumes, set up custom container networks, continuous integration, and deployment pipelines using VSTS, Azure, and Git• Deploy a composite container environment using Docker Compose on Windows• Learn to build applications using Microsoft's thinnest server platform - Nano Servers. Build custom Nano Server images and Nano Containers using Windows PowerShell and configure using PowerShell Core, DSCIn DetailWindows Server Containers are independent, isolated, manageable and portable application environments which are light weight and shippable. Decomposing your application into smaller manageable components or MicroServices helps in building scalable and distributed application environments. Windows Server Containers have a significant impact on application developers, development operations (DevOps) and infrastructure management teams. Applications can be built, shipped and deployed in a fast-paced manner on an easily manageable and updatable environment.Learning Windows Server Containers teaches you to build simple to advanced production grade container based application using Asp.Net Core, Visual Studio, Azure, Docker and PowerShell technologies. The book teaches you to build and deploy simple web applications as Windows and Hyper-V containers on Windows 10 and Windows Server 2016 on Azure. You will learn to build on top of Windows Container Base OS Images, integrate with existing images from Docker Hub, create custom images and publish to Hub. You will also learn to work with storage containers built using Volumes and SQL Server as container, create and configure custom networks, integrate with Redis Cache containers, configure continuous integration and deployment pipelines using VSTS and Git Repository. Further you can also learn to manage resources for a container, setting up monitoring and diagnostics, deploy composite container environments using Docker Compose on Windows and manage container clusters using Docker Swarm. The last chapter of the book focuses on building applications using Microsoft's new and thinnest server platform – Nano Servers.Style and approachThis hands-on tutorial helps you get started with Windows Server containers, the new trend in the container market. This example-driven guide is packed with real-world scenarios of Windows Server containers in production environments.

Frequently asked questions

Simply head over to the account section in settings and click on “Cancel Subscription” - it’s as simple as that. After you cancel, your membership will stay active for the remainder of the time you’ve paid for. Learn more here.
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
Both plans give you full access to the library and all of Perlego’s features. The only differences are the price and subscription period: With the annual plan you’ll save around 30% compared to 12 months on the monthly plan.
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Yes, you can access Learning Windows Server Containers by Srikanth Machiraju in PDF and/or ePUB format, as well as other popular books in Computer Science & System Administration. We have over one million books available in our catalogue for you to explore.

Information

Year
2017
ISBN
9781785885044
Edition
1

Continuous Integration and Delivery

Separating a monolithic application into functionally separate processes or microservices is just one side of the success story. Microservices bring a lot of agility to the overall development process, at the same time also provide new opportunities. One such opportunity is the ability to perform continuous integration (CI) and continuous delivery (CD). Continuous integration and delivery is the most recommended and common development practice among agile teams. Microservices allow each microservice to be independently deployed; configuring a continuous integration and testing pipeline increases the flexibility and speed in deployment, which means we can deliver tested and reviewed code at a faster pace. CI and CD are the key practices of DevOps culture with the goal of delivering features to the customer at a faster pace in smaller chunks so that customer's feedback can be collected and corrections can be applied as the product matures. Continuous testing is also a critical process of DevOps which should be included within CI for quality analysis, continuous testing is a process of setting up continuous tests with a good percentage of code coverage for every code checked-in by the developers so that teams are aware of the code quality and can be assured that new code does not introduce any new issues or cause regression issues.
This chapter focuses on the process of enabling a continuous integration and delivery pipeline for containerized application on a Windows platform using Visual Studio Team Services (VSTS), a pay-per-use service provided by Microsoft, and also available as part of an Azure subscription. This chapter deals with integrating build and publish (to the Docker Hub) process every time code is pushed to the source control.
The following topics will be covered in this chapter:
  • Introducing Visual Studio Team Services
  • Continuous integration
    • Sign up for a VSTS account
    • Uploading code to a VSTS code repository
    • Creating and configuring custom agents
    • Configuring automated builds
    • Automating Docker publish with CI
  • Continuous delivery
    • Creating environment(s) using ARM templates
    • Deploying containers to Azure VMs and configuring SPN
    • Integration tests and web performance tests
    • Promoting deployments and code promotion workflow

Introduction to Visual Studio Team Services

Continuous integration and continuous delivery is a process which requires lots of tools and processes such as an online code repository for developers to submit code, version control, agents to build code every time a developer submits code to the repository, and finally a release agent which can deploy code to multiple environments. Apart from these, the management team would also need a reporting platform and dashboard which depict the status of development day-to-day. VSTS (formerly Visual Studio Online) is one tool which provides all the features described here, plus many more. VSTS integrates seamlessly with Visual Studio IDE creating a perfect development environment for our team. We can write code in any language and build applications targeting any platform. Since VSTS is a code repository and a build tool it can also be integrated with many application development tools used for any other language, such as Eclipse, Xcode, IntelliJ, Visual Studio Code, and Android Studio.
VSTS is backed by Azure and is part of any Azure subscription by default. The following are few salient features of VSTS:
  • Work item management: VSTS can be used as a repository for storing product backlogs, user stories, tasks, bugs and even test cases. It can be used as a single repository for product owners to groom a single product backlog, prioritize work items, plan sprints, track execution, and deliver and collect feedback on the product from customers. VSTS supports multiple process templates such as agile, scrum and CMMI. It integrates seamlessly with other Microsoft Office products including MS Excel, Power BI and Project for bulk operations and custom reporting.
  • Source control: At the heart of VSTS is the single code repository which can be used to store code of any language. VSTS supports two types of source control methods called Team Foundation Version Control (TFVC), which is Microsoft's legacy source control engine and Git (from version 2013). Git is the recommended engine since it is supported across various operating systems, has amazing tool support and excellent versioning support. Conventional Git management tools or command line interfaces can still be used to manage VSTS with Git as source control engine. VSTS and Git provide an option to store multiple versions of the code base using the killer branching system introduced by Git. Git's branching model is extremely lightweight and makes branching operations easy and fast.
  • Continuous integration: VSTS comes with a hosted build agent which can build the code as soon as the new code is checked in (continuous integration), apply policies, run analysis and tests, package and publish. It can also be used to publish reports on the overall health of the code, such as code metrics, tests results, code coverage, and versioning details. VSTS allows build customization using custom build executables (.exe) files which can be used added as part of the code and run as part of the build. Apart from the hosted agent, it also allows us to configure custom agents (a windows machine with VSTS agent installed) and agent pools for running customized builds.
  • Release management: VSTS helps us to manage releases to various environments, each environment can be configured and managed independently. We can deploy applications to cloud or on-premise environments. Without VSTS, the approval and notification process during regular product release cycle is quite tedious, and VSTS eases these tasks by automating the approval process. At each stage a release to an environment can be reviewed using the various types of tests before promoting the deployment to the next stage. At every stage, approvers or environment owners are notified by e-mails and by using a live dashboard. It is also possible to revoke the approval and enable a continuous delivery pipeline to lower environments (for example, development) for every code that is checked-in.
  • Testing: VSTS assists in building software with great quality using continuous testing and advanced testing mechanisms, such as exploratory testing. For regular coded ...

Table of contents

  1. Title Page
  2. Copyright
  3. Credits
  4. Foreword
  5. About the Author
  6. About the Reviewer
  7. www.PacktPub.com
  8. Customer Feedback
  9. Preface
  10. Exploring Virtualization
  11. Deploying First Container
  12. Working with Container Images
  13. Developing Container Applications
  14. Deploying Container Applications
  15. Storage Volumes
  16. Redis Cache Containers
  17. Container Network
  18. Continuous Integration and Delivery
  19. Manage Resource Allocation and REST API
  20. Composite Containers and Clustering
  21. Nano Server