"This book is about techniques that help us architect software in a better and more efficient way: With microservices packed as immutable containers, then tested and deployed continuously to servers that are automatically provisioned with configuration management tools. It's about fast, reliable and continuous deployments with zero-downtime and the ability to roll-back. It's about scaling to any number of servers, designing self-healing systems capable of recovering from both hardware and software failures, and about centralized logging and monitoring of a cluster. We will cover some of the latest and greatest practices and a variety of tools such as: Docker, Kubernetes, Ansible, Ubuntu, Docker Swarm, Docker Compose, and Consul."--Back cover.
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.
Automating the Continuous Deployment Pipeline with Containerized Microservices About 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 continuously Who This Book Is For If 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 failures In Detail Building 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.
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.
The Most Complete, Practical, and Actionable Guide to Microservices Going beyond mere theory and marketing hype, Eberhard Wolff presents all the knowledge you need to capture the full benefits of this emerging paradigm. He illuminates microservice concepts, architectures, and scenarios from a technology-neutral standpoint, and demonstrates how to implement them with today’s leading technologies such as Docker, Java, Spring Boot, the Netflix stack, and Spring Cloud. The author fully explains the benefits and tradeoffs associated with microservices, and guides you through the entire project lifecycle: development, testing, deployment, operations, and more. You’ll find best practices for architecting microservice-based systems, individual microservices, and nanoservices, each illuminated with pragmatic examples. The author supplements opinions based on his experience with concise essays from other experts, enriching your understanding and illuminating areas where experts disagree. Readers are challenged to experiment on their own the concepts explained in the book to gain hands-on experience. Discover what microservices are, and how they differ from other forms of modularization Modernize legacy applications and efficiently build new systems Drive more value from continuous delivery with microservices Learn how microservices differ from SOA Optimize the microservices project lifecycle Plan, visualize, manage, and evolve architecture Integrate and communicate among microservices Apply advanced architectural techniques, including CQRS and Event Sourcing Maximize resilience and stability Operate and monitor microservices in production Build a full implementation with Docker, Java, Spring Boot, the Netflix stack, and Spring Cloud Explore nanoservices with Amazon Lambda, OSGi, Java EE, Vert.x, Erlang, and Seneca Understand microservices’ impact on teams, technical leaders, product owners, and stakeholders Managers will discover better ways to support microservices, and learn how adopting the method affects the entire organization. Developers will master the technical skills and concepts they need to be effective. Architects will gain a deep understanding of key issues in creating or migrating toward microservices, and exactly what it will take to transform their plans into reality.
Follow this step-by-step guide for creating a continuous delivery pipeline using all of the new features in Jenkins 2.0 such as Pipeline as a Code, multi-branch pipeline, and more. You will learn three crucial elements for achieving a faster software delivery pipeline: a fungible build/test environment, manageable and reproducible pipelines, and a scalable build/test infrastructure. Pro Continuous Delivery demonstrates how to create a highly available, active/passive Jenkins server using some niche technologies. What You'll Learn Create a highly available, active/passive Jenkins server using CoreOS and Docker, and using Pacemaker and Corosync Use a Jenkins multi-branch pipeline to automatically perform continuous integration whenever there is a new branch in your source control system Describe your continuous delivery pipeline with Jenkinsfile Host Jenkins server on a cloud solution Run Jenkins inside a container using Docker Discover how the distributed nature of Git and the “merge before build” feature of Jenkins can be used to implement gated check-in Implement a scalable build farm using Docker and Kubernetes Who This Book Is For You have experience implementing continuous integration and continuous delivery using Jenkins freestyle Jobs and wish to use the new Pipeline as a Code feature introduced in Jenkins 2.0 Your source code is on a Git-like version control system (Git, GitHub, GitLab, etc.) and you wish to leverage the advantages of a multi-branch pipeline in Jenkins Your infrastructure is on a Unix-like platform and you wish to create a scalable, distributed build/test farm using Docker or Kubernetes You are in need of a highly available system for your Jenkins Server using open source tools and technologies
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.
Invoke TDD principles for end-to-end application development with Java About This Book 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 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. 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 codes by implementing different techniques Use mocking frameworks and techniques to easily write and quickly execute tests Develop an application to implement behaviour-driven development in conjunction with unit testing Enable and disable features using Feature Toggles In Detail Test-driven development (TDD) is a development approach that relies on a test-first procedure that emphasises 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 most established programming languages, is to improve the productivity of programmers, 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 reasons 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 will dive right in to 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, utilise behaviour-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. Style and approach An easy-to-follow, hands-on guide to building applications through effective coding practices. This book covers practical examples by introducing different problems, each one designed as a learning exercise to help you understand each aspect of TDD.
A beginner's guide to implementing Continuous Integration and Continuous Delivery using Jenkins About This Book Speed up and increase software productivity and software delivery using Jenkins Automate your build, integration, release, and deployment processes with Jenkins—and learn how continuous integration (CI) can save you time and money Explore the power of continuous delivery using Jenkins through powerful real-life examples Who This Book Is For This book is for anyone who wants to exploit the power of Jenkins. This book servers a great starting point for those who are in the field DevOps and would like to leverage the benefits of CI and continuous delivery in order to increase productivity and reduce delivery time. What You Will Learn Take advantage of a continuous delivery solution to achieve faster software delivery Speed up productivity using a continuous Integration solution through Jenkins Understand the concepts of CI and continuous delivery Orchestrate many DevOps tools using Jenkins to automate builds, releases, deployment, and testing Explore the various features of Jenkins that make DevOps activities a piece of cake Configure multiple build machines in Jenkins to maintain load balancing Manage users, projects, and permissions in Jenkins to ensure better security Leverage the power of plugins in Jenkins In Detail In past few years, Agile software development has seen tremendous growth across the world. There is huge demand for software delivery solutions that are fast yet flexible to frequent amendments. As a result, CI and continuous delivery methodologies are gaining popularity. Jenkins' core functionality and flexibility allows it to fit in a variety of environments and can help streamline the development process for all stakeholders. This book starts off by explaining the concepts of CI and its significance in the Agile world with a whole chapter dedicated to it. Next, you'll learn to configure and set up Jenkins. You'll gain a foothold in implementing CI and continuous delivery methods. We dive into the various features offered by Jenkins one by one exploiting them for CI. After that, you'll find out how to use the built-in pipeline feature of Jenkins. You'll see how to integrate Jenkins with code analysis tools and test automation tools in order to achieve continuous delivery. Next, you'll be introduced to continuous deployment and learn to achieve it using Jenkins. Through this book's wealth of best practices and real-world tips, you'll discover how easy it is to implement a CI service with Jenkins. Style and approach This is a step-by-step guide to setting up a CI and continuous delivery system loaded with hands-on examples
Orchestrate and manage large-scale Docker deployments with Kubernetes to unlock greater control over your infrastructure and extend your containerization strategy About This Book Learn the fundamentals of Kubernetes – how it works, and how it fits into the growing containerization trend Integrate Kubernetes into your workflow alongside continuous delivery tools to address today's operational challenges Get to grips with a wide range of tools to help you monitor and secure your deployments Who This Book Is For If you have some experience with Docker and want to get more from containerization, this book is the perfect place to start. Focused on helping you take control of your deployments in a simple way, you'll soon find out how to transform your operations for greater organizational and technical agility. What You Will Learn Download, install, and configure the latest version of Kubernetes Perform smooth updates and patches with minimal downtime Streamline the way you deploy and manage your applications with large-scale container orchestration Find out how Kubernetes can simplify the way you configure your clusters and networks Learn why the Open Container initiative is so important for the way you manage your infrastructure Discover third-party tools that can enhance your production operations Explore and use the most persistent storage options for your clusterter Integrate Kubernetes with continuous delivery tools such as Gulp and Jenkins In Detail Kubernetes is the tool that's pushing the containerization revolution – largely driven by Docker – to another level. If Docker has paved the way for greater agility and control in the way we organize and manage our infrastructure, Kubernetes goes further, by helping you to orchestrate and automate container deployments on a massive scale. Kubernetes really does think big – and it's time you did too! This book will show you how to start doing exactly that, showing you how to extend the opportunities that containerization innovations have brought about in new and even more effective ways. Get started with the basics - explore the fundamental elements of Kubernetes and find out how to install it on your system, before digging a little deeper into Kubernetes core constructs. Find out how to use Kubernetes pods, services, replication controllers, and labels to manage your clusters effectively and learn how to handle networking with Kubernetes. Once you've got to grips with these core components, you'll begin to see how Kubernetes fits into your workflow. From basic updates to integrating Kubernetes with continuous delivery tools such as Jenkins and Gulp, the book demonstrates exactly how Kubernetes will transform the way you work. With further insights on how to install monitoring and security tools, this book provides you with a direct route through Kubernetes – so you can take advantage of it, fast! Style and approach This straightforward guide will help you understand how to move your container applications into production through best practices and step by step walkthroughs tied to real-world operational strategies.
Obtain enterprise agility and continuous delivery by implementing DevOps with Windows Server 2016 About This Book This practical learning guide will improve your application lifecycle management and help you manage environments efficiently Showcase through a sample application ways to apply DevOps principles and practices in the real world Implement DevOps using latest technologies in Windows Server 2016 such as Windows Container, Docker, and Nano Servers Who This Book Is For This book is for .NET developers and system administrators who have a basic knowledge of Windows Server 2016 and are now eager to implement DevOps at work using Windows Server 2016. Knowledge of Powershell, Azure, and containers will help. What You Will Learn Take a deep dive into the fundamentals, principles, and practices of DevOps Achieve an end-to-end DevOps implementation Execute source control management using GITHUB and VSTS vNext Automate the provisioning and configuration of infrastructure Build and release pipeline Measure the success of DevOps through application instrumentation and monitoring In Detail Delivering applications swiftly is one of the major challenges faced in fast-paced business environments. Windows Server 2016 DevOps is the solution to these challenges as it helps organizations to respond faster in order to handle the competitive pressures by replacing error-prone manual tasks using automation. This book is a practical description and implementation of DevOps principles and practices using the features provided by Windows Server 2016 and VSTS vNext. It jumps straight into explaining the relevant tools and technologies needed to implement DevOps principles and practices. It implements all major DevOps practices and principles and takes readers through it from envisioning a project up to operations and further. It uses the latest and upcoming concepts and technologies from Microsoft and open source such as Docker, Windows Container, Nano Server, DSC, Pester, and VSTS vNext. By the end of this book, you will be well aware of the DevOps principles and practices and will have implemented all these principles practically for a sample application using the latest technologies on the Microsoft platform. You will be ready to start implementing DevOps within your project/engagement. Style and approach This practical, learning book is linear and progressive, and every chapters builds on the previous chapters. We focus on the practical skills required to implement DevOps, with a summary of the key concepts only where strictly necessary.
Boost your organization's growth by incorporating networking in the DevOps culture About This Book Implement networking fundamentals to the DevOps culture with ease, improving your organization's stability Leverage various open source tools such as Puppet and Ansible in order to automate your network This step-by-step learning guide collaborating the functions of developers and network administrators Who This Book Is For The book is aimed for Network Engineers, Developers, IT operations and System admins who are planning to incorporate Networking in DevOps culture and have no knowledge about it. What You Will Learn Learn about public and private cloud networking using AWS and OpenStack as examples Explore strategies that can be used by engineers or managers to initiate the cultural changes required to enable the automation of network functions Learn about SDN and how an API-driven approach to networking can help solve common networking problems Get the hang of configuration management tools, such as Ansible and Jenkins, that can be used to orchestrate and configure network devices Setup continuous integration, delivery, and deployment pipelines for network functions Create test environments for network changes Understand how load balancing is becoming more software defined with the emergence of microservice applications In Detail Frustrated that your company's network changes are still a manual set of activities that slow developers down? It doesn't need to be that way any longer, as this book will help your company and network teams embrace DevOps and continuous delivery approaches, enabling them to automate all network functions. This book aims to show readers network automation processes they could implement in their organizations. It will teach you the fundamentals of DevOps in networking and how to improve DevOps processes and workflows by providing automation in your network. You will be exposed to various networking strategies that are stopping your organization from scaling new projects quickly. You will see how SDN and APIs are influencing DevOps transformations, which will in turn help you improve the scalability and efficiency of your organizations networks operations. You will also find out how to leverage various configuration management tools such as Ansible, to automate your network. The book will also look at containers and the impact they are having on networking as well as looking at how automation impacts network security in a software-defined network. Style and approach This will be a comprehensive, learning guide for teaching our readers how networking can be leveraged to improve the DevOps culture for any organization.
The book envelops all aspects of building, testing, deploying, and monitoring services inside Docker Swarm clusters. We'll go through all the tools required for running a cluster. We'll go through the whole process with clusters running locally on a laptop. Once we are confident with the outcome, we'll translate the experience to different hosting providers like AWS, Azure, DigitalOcean, and so on. The book goes deeper into one of the subjects explored in The DevOps 2.0 Toolkit. It is updated to use the latest and greatest features and techniques introduced in Docker 1.12. 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 in a metro on a way to work. You'll have to read this book while in front of the computer and get your hands dirty.