Author: Viktor Farcic
Release Date: 2016-08-31
Automating the Continuous Deployment Pipeline with Containerized MicroservicesAbout This Book- First principles of devops, Ansible, Docker, Kubernetes, microservices- Architect your software in a better and more efficient way with microservices packed as immutable containers- Practical guide describing an extremely modern and advanced devops toolchain that can be improved continuouslyWho This Book Is ForIf you are an intermediate-level developer who wants to master the whole microservices development and deployment lifecycle using some of the latest and greatest practices and tools, this is the book for you. Familiarity with the basics of Devops and Continuous Deployment will be useful.What You Will Learn - Get to grips with the fundamentals of Devops- Architect efficient software in a better and more efficient way with the help of microservices- Use Docker, Kubernetes, Ansible, Ubuntu, Docker Swarm and more- Implement fast, reliable and continuous deployments with zero-downtime and ability to roll-back- Learn about centralized logging and monitoring of your cluster- Design self-healing systems capable of recovery from both hardware and software failuresIn DetailBuilding a complete modern devops toolchain requires not only the whole microservices development and a complete deployment lifecycle, but also the latest and greatest practices and tools. Victor Farcic argues from first principles how to build a devops toolchain. This book shows you how to chain together Docker, Kubernetes, Ansible, Ubuntu, and other tools to build the complete devops toolkit.Style and approach This book follows a unique, hands-on approach familiarizing you to the Devops 2.0 toolkit in a very practical manner. Although there will be a lot of theory, you won't be able to complete this book by reading it in a metro on a way to work. You'll need to be in front of your computer and get your hands dirty.
Viktor Farcic's latest book, The DevOps 2.1 Toolkit: Docker Swarm, shows you how to successfully integrate Docker Swarm into your DevOps toolset. About This Book Expand your DevOps Toolkit with the DevOps thought leader, Viktor Farcic Build, test, deploy, and monitor services inside Docker Swarm clusters Translate your understanding to different hosting providers like AWS, Azure, and DigitalOcean Go beyond simple deployment to explore how to create a continuous deployment process Extend the deep understanding you gained from Viktor's DevOps 2.0 Toolkit book Who This Book Is For This book is for professionals interested in the full microservices life cycle combined with continuous deployment and containers. Target audience could be architects who want to know how to design their systems around microservices. It could be DevOps wanting to know how to apply modern configuration management practices and continuously deploy applications packed in containers. It is for developers who would like to take the process back into their hands as well as for managers who would like to gain a better understanding of the process used to deliver software from the beginning to the end. This book is for everyone wanting to know more about the software development life cycle starting from requirements and design, through the development and testing all the way until deployment and post-deployment phases. We'll create the processes taking into account the best practices developed by and for some of the biggest companies. What You Will Learn Learn all aspects of Docker Swarm from building, testing, deploying, and monitoring services inside Docker Swarm clusters, available since Docker 1.12. Master the deeper logic of DevOps with Viktor, so that you can successfully apply that logic across any specific set of tools you're working with. Translate a deep understanding to different hosting providers like AWS, Azure, DigitalOcean, among others. You'll go beyond simple deployment: you will explore with Viktor how to create a continuous deployment process. Accomplish zero-downtime deployments, and what to do in case of a failover. Know how to run services at scale, how to monitor the systems, and how to make it heal itself. In Detail Viktor Farcic's latest book, The DevOps 2.1 Toolkit: Docker Swarm, takes you deeper into one of the major subjects of his international best seller, The DevOps 2.0 Toolkit, and shows you how to successfully integrate Docker Swarm into your DevOps toolset. Viktor shares with you his expert knowledge in all aspects of building, testing, deploying, and monitoring services inside Docker Swarm clusters. You'll go through all the tools required for running a cluster. You'll travel through the whole process with clusters running locally on a laptop. Once you're confident with that outcome, Viktor shows you how to translate your experience to different hosting providers like AWS, Azure, and DigitalOcean. Viktor has updated his DevOps 2.0 framework in this book to use the latest and greatest features and techniques introduced in Docker. We'll go through many practices and even more tools. While there will be a lot of theory, this is a hands-on book. You won't be able to complete it by reading it on the metro on your way to work. You'll have to read this book while in front of the computer and get your hands dirty. Style and approach We'll go through many practices and even more tools. While there will be a lot of theory, this is a hands-on book. You'll have to read this book while in front of the computer and get your hands dirty. The goal is not to master one particular set of tools, but to learn the logic behind them so that you can apply it to your job in various contexts.
Learn from an expert on how use self-adapting and self-healing systems within Docker. Key Features Viktor Farcic shows you all aspects in the creation of self-adapting and self-healing systems in both a practical and hands-on approach. Learn how to choose a successful solution for metrics storage and query, including InfluxDB, Nagios and Sensu, Prometheus and Graphite. Discover how to integrate Docker Flow Monitor with Docker Flow Proxy. How to apply Docker self-healing and self-adaptive to both services and infrastructure. Book Description Building on The DevOps 2.0 Toolkit and The DevOps 2.1 Toolkit: Docker Swarm, Viktor Farcic brings his latest exploration of the Docker technology as he records his journey to explore two new programs, self-adaptive and self-healing systems within Docker. The DevOps 2.2 Toolkit: Self-Sufficient Docker Clusters is the latest book in Viktor Farcic’s series that helps you build a full DevOps Toolkit. This book in the series looks at Docker, the tool designed to make it easier in the creation and running of applications using containers. In this latest entry, Viktor combines theory with a hands-on approach to guide you through the process of creating self-adaptive and self-healing systems. Within this book, Viktor will cover a wide-range of emerging topics, including what exactly self-adaptive and self-healing systems are, how to choose a solution for metrics storage and query, the creation of cluster-wide alerts and what a successful self-sufficient system blueprint looks like. Work with Viktor and dive into the creation of self-adaptive and self-healing systems within Docker. What you will learn Let Viktor Farcic show you all aspects in the creation of self-adapting and self-healing systems in both a practical and hands-on approach. Learn how to choose a successful solution for metrics storage and query, including InfluxDB, Nagios and Sensu, Prometheus and Graphite. Understand how to integrate Docker Flow Monitor with Docker Flow Proxy. The creation of cluster-wide alerts by creating alerts based on metrics. How to apply self-healing and self-adaptive to both services and infrastructure. Who this book is for This book is for professionals experienced with Docker looking to create both self-adapting and self-healing systems using the software.
Harness the power of DevOps to boost your skill set and make your IT organization perform better About This Book Get to know the background of DevOps so you understand the collaboration between different aspects of an IT organization and a software developer Improve your organization's performance to ensure smooth production of software and services Deploy top-quality software and ensure software maintenance and release management with this practical guide Who This Book Is For This book is aimed at developers and system administrators who wish to take on larger responsibilities and understand how the infrastructure that builds today's enterprises works. This book is also great for operations personnel who would like to better support developers. You do not need to have any previous knowledge of DevOps. What You Will Learn Appreciate the merits of DevOps and continuous delivery and see how DevOps supports the agile process Understand how all the systems fit together to form a larger whole Set up and familiarize yourself with all the tools you need to be efficient with DevOps Design an application that is suitable for continuous deployment systems with Devops in mind Store and manage your code effectively using different options such as Git, Gerrit, and Gitlab Configure a job to build a sample CRUD application Test the code using automated regression testing with Jenkins Selenium Deploy your code using tools such as Puppet, Ansible, Palletops, Chef, and Vagrant Monitor the health of your code with Nagios, Munin, and Graphite Explore the workings of Trac—a tool used for issue tracking In Detail DevOps is a practical field that focuses on delivering business value as efficiently as possible. DevOps encompasses all the flows from code through testing environments to production environments. It stresses the cooperation between different roles, and how they can work together more closely, as the roots of the word imply—Development and Operations. After a quick refresher to DevOps and continuous delivery, we quickly move on to looking at how DevOps affects architecture. You'll create a sample enterprise Java application that you'll continue to work with through the remaining chapters. Following this, we explore various code storage and build server options. You will then learn how to perform code testing with a few tools and deploy your test successfully. Next, you will learn how to monitor code for any anomalies and make sure it's running properly. Finally, you will discover how to handle logs and keep track of the issues that affect processes Style and approach This book is primarily a technical guide to DevOps with practical examples suitable for people who like to learn by implementing concrete working code. It starts out with background information and gradually delves deeper into technical subjects.
Learn to implement DevOps using Docker & Kubernetes. About This Book Learning DevOps, container, and Kubernetes within one book. Leverage Kubernetes as a platform to deploy, scale, and run containers efficiently. A practical guide towards container management and orchestration Who This Book Is For This book is targeted for anyone, who wants to learn containerization and clustering in a practical way using Kubernetes. No prerequisite skills required, however, essential DevOps skill and public/private Cloud knowledge will accelerate the reading speed. If you're advanced readers, you can also get a deeper understanding of all the tools and technique described in the book. What You Will Learn Learn fundamental and advanced DevOps skills and tools Get a comprehensive understanding for container Learn how to move your application to container world Learn how to manipulate your application by Kubernetes Learn how to work with Kubernetes in popular public cloud Improve time to market with Kubernetes and Continuous Delivery Learn how to monitor, log, and troubleshoot your application with Kubernetes In Detail Containerization is said to be the best way to implement DevOps. Google developed Kubernetes, which orchestrates containers efficiently and is considered the frontrunner in container orchestration. Kubernetes is an orchestrator that creates and manages your containers on clusters of servers. This book will guide you from simply deploying a container to administrate a Kubernetes cluster, and then you will learn how to do monitoring, logging, and continuous deployment in DevOps. The initial stages of the book will introduce the fundamental DevOps and the concept of containers. It will move on to how to containerize applications and deploy them into. The book will then introduce networks in Kubernetes. We then move on to advanced DevOps skills such as monitoring, logging, and continuous deployment in Kubernetes. It will proceed to introduce permission control for Kubernetes resources via attribute-based access control and role-based access control. The final stage of the book will cover deploying and managing your container clusters on the popular public cloud Amazon Web Services and Google Cloud Platform. At the end of the book, other orchestration frameworks, such as Docker Swarm mode, Amazon ECS, and Apache Mesos will be discussed. Style and approach Readers will be taken through fundamental DevOps skills and Kubernetes concept and administration with detailed examples. It introduces comprehensive DevOps topics, including microservices, automation tools, containers, monitoring, logging, continuous delivery, and popular public cloud environments. At each step readers will learn how to leverage Kubernetes in their everyday lives and transform their original delivery pipeline for fast and efficient delivery.
Start using Kubernetes in complex big data and enterprise applications, including Docker containers. Starting with installing Kubernetes on a single node, the book introduces Kubernetes with a simple Hello example and discusses using environment variables in Kubernetes. Next, Kubernetes Microservices with Docker discusses using Kubernetes with all major groups of technologies such as relational databases, NoSQL databases, and in the Apache Hadoop ecosystem. The book concludes with using multi container pods and installing Kubernetes on a multi node cluster. What You Will Learn Install Kubernetes on a single node Set environment variables Create multi-container pods using Docker Use volumes Use Kubernetes with the Apache Hadoop ecosystem, NoSQL databases, and RDBMSs Install Kubernetes on a multi-node cluster Who This Book Is For Application developers including Apache Hadoop developers, database developers and NoSQL developers.
Author: Len Bass
Publisher: Addison-Wesley Professional
Release Date: 2015-05-08
The First Complete Guide to DevOps for Software Architects DevOps promises to accelerate the release of new software features and improve monitoring of systems in production, but its crucial implications for software architects and architecture are often ignored. In DevOps: A Software Architect’s Perspective, three leading architects address these issues head-on. The authors review decisions software architects must make in order to achieve DevOps’ goals and clarify how other DevOps participants are likely to impact the architect’s work. They also provide the organizational, technical, and operational context needed to deploy DevOps more efficiently, and review DevOps’ impact on each development phase. The authors address cross-cutting concerns that link multiple functions, offering practical insights into compliance, performance, reliability, repeatability, and security. This guide demonstrates the authors’ ideas in action with three real-world case studies: datacenter replication for business continuity, management of a continuous deployment pipeline, and migration to a microservice architecture. Comprehensive coverage includes • Why DevOps can require major changes in both system architecture and IT roles • How virtualization and the cloud can enable DevOps practices • Integrating operations and its service lifecycle into DevOps • Designing new systems to work well with DevOps practices • Integrating DevOps with agile methods and TDD • Handling failure detection, upgrade planning, and other key issues • Managing consistency issues arising from DevOps’ independent deployment models • Integrating security controls, roles, and audits into DevOps • Preparing a business plan for DevOps adoption, rollout, and measurement
Over 120 recipes covering key automation techniques through code management and virtualization offered by modern Infrastructure as a Service About This Book Use some of the powerful tools that have emerged to enable systems administrators and developers to take control and automate the management, monitoring, and creation of complex infrastructures Covers some of the most exciting technologies available to DevOps engineers, and demonstrates multiple techniques for using them A hands-on guide filled with clear examples and multiple methodologies to demonstrate the various DevOps tools available Who This Book Is For If you are a systems administrator or developer who is keen to employ DevOps techniques to help with the day-to-day complications of managing complex infrastructures, then this book is for you. No prior knowledge of DevOps tools is required. What You Will Learn Manage, use, and work with code in the Git version management system Manage the life cycle of hosts, from creation to on-going management, using Puppet Razor Create hosts automatically using a simple combination of TFTP, DHCP, and pre-seeds Implement virtual hosts using the ubiquitous VMware ESXi hypervisor Control configuration using the powerful and popular Ansible configuration management system Develop powerful, consistent, and portable containers using Docker Track trends, discover data, and monitor key systems using InfluxDB, syslog, and Sensu Deal efficiently with powerful cloud infrastructures using the Amazon AWS Infrastructure as a Service and the Heroku Platform as a Service In Detail There has been a recent explosion in tools that allow you to redefine the delivery of infrastructure and applications, using a combination of automation and testing to deliver continuous deployment. DevOps has garnered interest from every quarter, and is rapidly being recognized as a radical shift, as large as the Agile movement for the delivery of software. This book takes a collection of some of the coolest software available today and shows you how to use it to create impressive changes to the way you deliver applications and software. It tackles the plethora of tools that are now available to enable organizations to take advantage of the automation, monitoring, and configuration management techniques that define a DevOps-driven infrastructure. Starting off with the fundamental command-line tools that every DevOps enthusiast must know, this book will guide you through the implementation of the Ansible tool to help you facilitate automation and perform diverse tasks. You will explore how to build hosts automatically with the creation of Apt mirrors and interactive pre-seeds, which are of the utmost importance for Ubuntu automation. You will also delve into the concept of virtualization and creating and manipulating guests with ESXi. Following this, you will venture into the application of Docker; learn how to install, run, network, and restore Docker containers; and also learn how to build containers in Jenkins and deploy apps using a combination of Ansible, Docker, and Jenkins. You will also discover how to filter data with Grafana and the usage of InfluxDB along with unconventional log management. Finally, you will get acquainted with cloud infrastructure, employing the Heroku and Amazon AWS platforms. By tackling real-world issues, this book will guide you through a huge variety of tools, giving new users the ability to get up and running and offering advanced users some interesting recipes that may help with existing issues. Style and approach This book has an easy-to-follow approach to both introducing the wide range of available DevOps tools and working with them. Each recipe is lavishly sprinkled with example code and uses clear instructions to easily allow you to see how you can both implement the solutions, and more importantly, tailor them to your unique needs.
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 maintain Who This Book Is For This 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, DSC In Detail Windows 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 approach This 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.
This volume is a collection of papers on emerging concepts, approaches and ideas in information systems research. It examines theoretical and methodological issues related to both information systems development in general and the complexity of information systems as socio-technical systems. The book draws on invited papers selected from the proceedings of the 25th International Conference on Information Systems Development (ISD) held in Katowice, Poland, August 24 - 26, 2016. The invited conference papers were revised and expanded and present research that is focused on context, creativity, and cognition in information systems development. These issues are significant as they provide the basis for organizations to identify new markets, support innovative technology deployment, and enable mobile applications to detect, sense, interpret, and respond to the environment.
For many organizations, a big part of DevOps’ appeal is software automation using infrastructure-as-code techniques. This book presents developers, architects, and infra-ops engineers with a more practical option. You’ll learn how a container-centric approach from OpenShift, Red Hat’s cloud-based PaaS, can help your team deliver quality software through a self-service view of IT infrastructure. Three OpenShift experts at Red Hat explain how to configure Docker application containers and the Kubernetes cluster manager with OpenShift’s developer- and operational-centric tools. Discover how this infrastructure-agnostic container management platform can help companies navigate the murky area where infrastructure-as-code ends and application automation begins. Get an application-centric view of automation—and understand why it’s important Learn patterns and practical examples for managing continuous deployments such as rolling, A/B, blue-green, and canary Implement continuous integration pipelines with OpenShift’s Jenkins capability Explore mechanisms for separating and managing configuration from static runtime software Learn how to use and customize OpenShift’s source-to-image capability Delve into management and operational considerations when working with OpenShift-based application workloads Install a self-contained local version of the OpenShift environment on your computer
Docker containers offer simpler, faster, and more robust methods for developing, distributing, and running software than previously available. With this hands-on guide, you’ll learn why containers are so important, what you’ll gain by adopting Docker, and how to make it part of your development process. Ideal for developers, operations engineers, and system administrators—especially those keen to embrace a DevOps approach—Using Docker will take you from Docker and container basics to running dozens of containers on a multi-host system with networking and scheduling. The core of the book walks you through the steps needed to develop, test, and deploy a web application with Docker. Get started with Docker by building and deploying a simple web application Use Continuous Deployment techniques to push your application to production multiple times a day Learn various options and techniques for logging and monitoring multiple containers Examine networking and service discovery: how do containers find each other and how do you connect them? Orchestrate and cluster containers to address load-balancing, scaling, failover, and scheduling Secure your system by following the principles of defense-in-depth and least privilege
This book will teach the concepts of test driven development in Java so you can build clean, maintainable and robust code Key Features Explore the most popular TDD tools and frameworks and become more proficient in building applications Create applications with better code design, fewer bugs, and higher test coverage, enabling you to get them to market quickly Implement test-driven programming methods into your development workflows Book Description Test-driven development (TDD) is a development approach that relies on a test-first procedure that emphasizes writing a test before writing the necessary code, and then refactoring the code to optimize it.The value of performing TDD with Java, one of the longest established programming languages, is to improve the productivity of programmers and the maintainability and performance of code, and develop a deeper understanding of the language and how to employ it effectively. Starting with the basics of TDD and understanding why its adoption is beneficial, this book will take you from the first steps of TDD with Java until you are confident enough to embrace the practice in your day-to-day routine.You'll be guided through setting up tools, frameworks, and the environment you need, and we will dive right into hands-on exercises with the goal of mastering one practice, tool, or framework at a time. You'll learn about the Red-Green-Refactor procedure, how to write unit tests, and how to use them as executable documentation.With this book, you'll also discover how to design simple and easily maintainable code, work with mocks, utilize behavior-driven development, refactor old legacy code, and release a half-finished feature to production with feature toggles.You will finish this book with a deep understanding of the test-driven development methodology and the confidence to apply it to application programming with Java. What you will learn Explore the tools and frameworks required for effective TDD development Perform the Red-Green-Refactor process efficiently, the pillar around which all other TDD procedures are based Master effective unit testing in isolation from the rest of your code Design simple and easily maintainable code by implementing different techniques Use mocking frameworks and techniques to easily write and quickly execute tests Develop an application to implement behavior-driven development in conjunction with unit testing Enable and disable features using feature toggles Who this book is for If you're an experienced Java developer and want to implement more effective methods of programming systems and applications, then this book is for you.
Virtualization, cloud, containers, server automation, and software-defined networking are meant to simplify IT operations. But many organizations adopting these technologies have found that it only leads to a faster-growing sprawl of unmanageable systems. This is where infrastructure as code can help. With this practical guide, author Kief Morris of ThoughtWorks shows you how to effectively use principles, practices, and patterns pioneered through the DevOps movement to manage cloud age infrastructure. Ideal for system administrators, infrastructure engineers, team leads, and architects, this book demonstrates various tools, techniques, and patterns you can use to implement infrastructure as code. In three parts, you’ll learn about the platforms and tooling involved in creating and configuring infrastructure elements, patterns for using these tools, and practices for making infrastructure as code work in your environment. Examine the pitfalls that organizations fall into when adopting the new generation of infrastructure technologies Understand the capabilities and service models of dynamic infrastructure platforms Learn about tools that provide, provision, and configure core infrastructure resources Explore services and tools for managing a dynamic infrastructure Learn specific patterns and practices for provisioning servers, building server templates, and updating running servers