Take a look at our Systems Architecture books. Shulph carries a great selection of Systems Architecture books, and we are always adding more.
A definitive guide to mastering and implementing concurrency patterns in your applications Key Features Build scalable apps with patterns in multithreading, synchronization, and functional programming Explore the parallel programming and multithreading techniques to make the code run faster Efficiently use the techniques outlined to build reliable applications Book Description Selecting the correct concurrency architecture has a significant impact on the design and performance of your applications. This book explains how to leverage the different characteristics of parallel architecture to make your code faster and more efficient. To start with, you'll understand the basic concurrency concepts and explore patterns around explicit locking, lock free programming, futures & actors. Then, you'll get insights into different concurrency models and parallel algorithms and put them to practice in different scenarios to realize your application's true potential. We'll take you through multithreading design patterns, such as master, slave, leader, follower, map-reduce, and monitor, also helping you to learn hands-on coding using these patterns. Once you've grasped all of this, you'll move on to solving problems using synchronizer patterns. You'll discover the rationale for these patterns in distributed & parallel applications, followed by studying how future composition, immutability and the monadic flow help create more robust code. Toward the end of the book, you'll learn about the actor paradigm and actor patterns - the message passing concurrency paradigm. What you will learn Explore parallel architecture Get acquainted with concurrency models Internalize design themes by implementing multithreading patterns Get insights into concurrent design patterns Discover design principles behind many java threading abstractions Work with functional concurrency patterns Who this book is for This is a must-have guide for developers who want to learn patterns to build scalable and high-performing apps. It's assumed that you already have a decent level of programming knowledge.
Improve your Delphi programming skills by building robust applications for Android, iOS, and Windows platform Key Features Build responsive user interfaces (UIs) for desktop and mobile with FireMonkey Implement a microservices architecture using the Rapid Application Development(RAD) server Create clones of popular applications like Instagram and Facebook using Delphi 10.3 Book Description Delphi is a cross-platform programming language and software development kit that supports rapid application development for Microsoft Windows, Apple Mac OS X, Android, and iOS. With the help of seven practical projects, this book will guide you through the best practices, Delphi Run-Time Library (RTL) resources, and design patterns. Whether you use the Visual Component Library (VCL) or FireMonkey (FMX) framework, these design patterns will be implemented in the same way in Delphi, using Object Pascal. In the first few chapters, you will explore advanced features that will help you build rich applications using the same code base for both mobile and desktop projects. In addition to this, you'll learn how to implement microservice architecture in Delphi. As you get familiar with the various aspects of Delphi, you will no longer need to maintain source code for similar projects, program business rules on screens, or fill your forms with data access components. By the end of this book, you will have gained an understanding of the principles of clean code and become proficient in building robust and scalable applications in Delphi. What you will learn Get to grips with the advanced features of RTL Understand how to deal with the paradigm change between multiplatform projects Build rich interfaces with Google's Material Design features Understand how to implement design patterns in Delphi Turn a mobile device into a remote controller with app tethering technology Build a multi-database system using VCL Who this book is for This book is for developers, programmers, and IT professionals who want to learn the best market practices by implementing practical projects. Prior knowledge of the Delphi language is a must.
Gain in-depth insight into DevOps relative to your field of expertise and implement effective DevOps culture and processes within your organizationKey FeaturesPacked with step-by-step explanations and practical examples to help you get started with DevOpsDevelop the skills and knowledge you need to tackle the deployment of DevOps toolsDiscover technology trends such as FinOps and DevSecOps to get more value from DevOpsBook DescriptionDevOps is a set of best practices enabling operations and development teams to work together to produce higher-quality work and, among other things, quicker releases. This book helps you to understand the fundamentals needed to get started with DevOps, and prepares you to start deploying technical tools confidently. You will start by learning the key steps for implementing successful DevOps transformations. The book will help you to understand how aspects of culture, people, and process are all connected, and that without any one of these elements DevOps is unlikely to be successful. As you make progress, you will discover how to measure and quantify the success of DevOps in your organization, along with exploring the pros and cons of the main tooling involved in DevOps. In the concluding chapters, you will learn about the latest trends in DevOps and find out how the tooling changes when you work with these specialties. By the end of this DevOps book, you will have gained a clear understanding of the connection between culture, people, and processes within DevOps, and learned why all three are critically important.What you will learnUnderstand the importance of culture in DevOpsBuild, foster, and develop a successful DevOps cultureDiscover how to implement a successful DevOps frameworkMeasure and define the success of DevOps transformationGet to grips with techniques for continuous feedback and iterate process changesDiscover the tooling used in different stages of the DevOps life cycleWho this book is forThis book is for IT professionals such as support engineers and systems engineers and developers looking to learn DevOps and for those going through DevOps transformation. General knowledge of IT and business processes will be helpful. You'll also find this book useful if you are in a business or service role within technology such as service delivery management. Basic familiarity with DevOps and transformational methods such as value streams and process are needed to get the most out of this book.
Leverage Docker to deploying software at scale Key Features Leverage practical examples to manage containers efficiently Integrate with orchestration tools such as Kubernetes for controlled deployments Learn to implement best practices on improving efficiency and security of containers Book Description Docker is an open source platform for building, shipping, managing, and securing containers. Docker has become the tool of choice for people willing to work with containers. Since the market is moving toward containerization, Docker will definitely have a big role to play in the future tech market. This book starts with setting up Docker in different environment, and helps you learn how to work with Docker images. Then, you will take a deep dive into network and data management for containers. The book explores the RESTful APIs provided by Docker to perform different actions, such as image/container operations. The book then explores logs and troubleshooting Docker to solve issues and bottlenecks. You will gain an understanding of Docker use cases, orchestration, security, ecosystems, and hosting platforms to make your applications easy to deploy, build, and collaborate on. The book covers the new features of Docker 18.xx (or later), such as working with AWS and Azure, Docker Engine, Docker Swarm, Docker Compose, and so on. By the end of this book, you will have gained hands-on experience of finding quick solutions to different problems encountered while working with Docker. What you will learn Install Docker on various platforms Work with Docker images and containers Container networking and data sharing Docker APIs and language bindings Various PaaS solutions for Docker Implement container orchestration using Docker Swarm and Kubernetes Container security Docker on various clouds Who this book is for Book is targeted towards developers, system administrators, and DevOps engineers who want to use Docker in his/her development, QA, or production environments. It is expected that the reader has basic Linux/Unix skills such as installing packages, editing files, managing services, and so on. Any experience in virtualization technologies such as KVM, XEN, and VMware will be an added advantage
Learn how to run new and old applications in Docker containers on Windows - modernizing the architecture, improving security and maximizing efficiency. Key Features Run .NET Framework and .NET Core apps in Docker containers for efficiency, security and portability Design distributed containerized apps, using enterprise-grade open source software from Docker Hub Build a CI/CD pipeline with Docker, going from source to a production Docker Swarm in the cloud Book Description Docker on Windows, Second Edition teaches you all you need to know about Docker on Windows, from the 101 to running highly-available workloads in production. You'll be guided through a Docker journey, starting with the key concepts and simple examples of .NET Framework and .NET Core apps in Docker containers on Windows. Then you'll learn how to use Docker to modernize the architecture and development of traditional ASP.NET and SQL Server apps. The examples show you how to break up legacy monolithic applications into distributed apps and deploy them to a clustered environment in the cloud, using the exact same artifacts you use to run them locally. You'll see how to build a CI/CD pipeline which uses Docker to compile, package, test and deploy your applications. To help you move confidently to production, you'll learn about Docker security, and the management and support options. The book finishes with guidance on getting started with Docker in your own projects. You'll walk through some real-world case studies for Docker implementations, from small-scale on-premises apps to very large-scale apps running on Azure. What you will learn Understand key Docker concepts: images, containers, registries and swarms Run Docker on Windows 10, Windows Server 2019, and in the cloud Deploy and monitor distributed solutions across multiple Docker containers Run containers with high availability and failover with Docker Swarm Master security in-depth with the Docker platform, making your apps more secure Build a Continuous Deployment pipeline, running Jenkins and Git in Docker Debug applications running in Docker containers using Visual Studio Plan the adoption of Docker in your organization Who this book is for If you want to modernize an old monolithic application without rewriting it, smooth the deployment to production, or move to DevOps or the cloud, then Docker is the enabler for you. This book gives you a solid grounding in Docker so you can confidently approach all of these scenarios.
Explore site reliability engineering practices and learn key Google Cloud Platform (GCP) services such as CSR, Cloud Build, Container Registry, GKE, and Cloud Operations to implement DevOpsKey FeaturesLearn GCP services for version control, building code, creating artifacts, and deploying secured containerized applicationsExplore Cloud Operations features such as Metrics Explorer, Logs Explorer, and debug logpointsPrepare for the certification exam using practice questions and mock testsBook DescriptionDevOps is a set of practices that help remove barriers between developers and system administrators, and is implemented by Google through site reliability engineering (SRE). With the help of this book, you'll explore the evolution of DevOps and SRE, before delving into SRE technical practices such as SLA, SLO, SLI, and error budgets that are critical to building reliable software faster and balance new feature deployment with system reliability. You'll then explore SRE cultural practices such as incident management and being on-call, and learn the building blocks to form SRE teams. The second part of the book focuses on Google Cloud services to implement DevOps via continuous integration and continuous delivery (CI/CD). You'll learn how to add source code via Cloud Source Repositories, build code to create deployment artifacts via Cloud Build, and push it to Container Registry. Moving on, you'll understand the need for container orchestration via Kubernetes, comprehend Kubernetes essentials, apply via Google Kubernetes Engine (GKE), and secure the GKE cluster. Finally, you'll explore Cloud Operations to monitor, alert, debug, trace, and profile deployed applications. By the end of this SRE book, you'll be well-versed with the key concepts necessary for gaining Professional Cloud DevOps Engineer certification with the help of mock tests.What you will learnCategorize user journeys and explore different ways to measure SLIsExplore the four golden signals for monitoring a user-facing systemUnderstand psychological safety along with other SRE cultural practicesCreate containers with build triggers and manual invocationsDelve into Kubernetes workloads and potential deployment strategiesSecure GKE clusters via private clusters, Binary Authorization, and shielded GKE nodesGet to grips with monitoring, Metrics Explorer, uptime checks, and alertingDiscover how logs are ingested via the Cloud Logging APIWho this book is forThis book is for cloud system administrators and network engineers interested in resolving cloud-based operational issues. IT professionals looking to enhance their careers in administering Google Cloud services and users who want to learn about applying SRE principles and implementing DevOps in GCP will also benefit from this book. Basic knowledge of cloud computing, GCP services, and CI/CD and hands-on experience with Unix/Linux infrastructure is recommended. You'll also find this book useful if you're interested in achieving Professional Cloud DevOps Engineer certification.
Build robust and reliable Java applications that works on modern infrastructure, such as containers and cloud, using the new features in Quarkus 1.0 Key Features Build apps with faster boot time and low RSS memory using the latest Quarkus 1.0 features Seamlessly integrate imperative and reactive programming models to build modern Java applications Discover effective solutions for running Java on serverless apps, microservices, containers, FaaS, and the cloud Book Description Quarkus is a new Kubernetes-native framework that allows Java developers to combine the power of containers, microservices, and cloud-native to build reliable applications. The book is a development guide that will teach you how to build Java-native applications using Quarkus and GraalVM. We start by learning about the basic concepts of a cloud-native application and its advantages over standard enterprise applications. Then we will quickly move on to application development, by installing the tooling required to build our first application on Quarkus. Next, we'll learn how to create a container-native image of our application and execute it in a Platform-as-a-Service environment such as Minishift. Later, we will build a complete real-world application that will use REST and the Contexts and Dependency injection stack with a web frontend. We will also learn how to add database persistence to our application using PostgreSQL. We will learn how to work with various APIs available to Quarkus such as Camel, Eclipse MicroProfile, and Spring DI. Towards the end, we will learn advanced development techniques such as securing applications, application configuration, and working with non-blocking programming models using Vert.x. By the end of this book, you will be proficient with all the components of Quarkus and develop-blazing fast applications leveraging modern technology infrastructure. What you will learn Build a native application using Quarkus and GraalVM Secure your applications using Elytron and the MicroProfile JWT extension Manage data persistence with Quarkus using PostgreSQL Use a non-blocking programming model with Quarkus Learn how to get Camel and Infinispan working in native mode Deploy an application in a Kubernetes-native environment using Minishift Discover Reactive Programming with Vert.x Who this book is for The book is for Java developers and software architects who are interested in learning a promising microservice architecture for building reliable and robust applications. Knowledge of Java, Spring Framework, and REST APIs is assumed.
Understand various tools and practices for building a continuous integration and delivery pipeline effectively Key Features Get up and running with the patterns of continuous integration Learn Jenkins UI for developing plugins and build an effective Jenkins pipeline Automate CI/CD with command-line tools and scripts Book Description Hands-On Continuous Integration and Delivery starts with the fundamentals of continuous integration (CI) and continuous delivery (CD) and where it fits in the DevOps ecosystem. You will explore the importance of stakeholder collaboration as part of CI/CD. As you make your way through the chapters, you will get to grips with Jenkins UI, and learn to install Jenkins on different platforms, add plugins, and write freestyle scripts. Next, you will gain hands-on experience of developing plugins with Jenkins UI, building the Jenkins 2.0 pipeline, and performing Docker integration. In the concluding chapters, you will install Travis CI and Circle CI and carry out scripting, logging, and debugging, helping you to acquire a broad knowledge of CI/CD with Travis CI and CircleCI. By the end of this book, you will have a detailed understanding of best practices for CI/CD systems and be able to implement them with confidence. What you will learn Install Jenkins on multiple operating systems Work with Jenkins freestyle scripts, pipeline syntax, and methodology Explore Travis CI build life cycle events and multiple build languages Master the Travis CI CLI (command-line interface) and automate tasks with the CLI Use CircleCI CLI jobs and work with pipelines Automate tasks using CircleCI CLI and learn to debug and troubleshoot Learn open source tooling such as Git and GitHub Install Docker and learn concepts in shell scripting Who this book is for Hands-On Continuous Integration and Delivery is for system administrators, DevOps engineers, and build and release engineers who want to understand the concept of CI and gain hands-on experience working with prominent tools in the CI ecosystem. Basic knowledge of software delivery is an added advantage.
Design and develop high-performance, reusable, and maintainable applications using traditional and modern Julia patterns with this comprehensive guide Key Features Explore useful design patterns along with object-oriented programming in Julia 1.0 Implement macros and metaprogramming techniques to make your code faster, concise, and efficient Develop the skills necessary to implement design patterns for creating robust and maintainable applications Book Description Design patterns are fundamental techniques for developing reusable and maintainable code. They provide a set of proven solutions that allow developers to solve problems in software development quickly. This book will demonstrate how to leverage design patterns with real-world applications. Starting with an overview of design patterns and best practices in application design, you'll learn about some of the most fundamental Julia features such as modules, data types, functions/interfaces, and metaprogramming. You'll then get to grips with the modern Julia design patterns for building large-scale applications with a focus on performance, reusability, robustness, and maintainability. The book also covers anti-patterns and how to avoid common mistakes and pitfalls in development. You'll see how traditional object-oriented patterns can be implemented differently and more effectively in Julia. Finally, you'll explore various use cases and examples, such as how expert Julia developers use design patterns in their open source packages. By the end of this Julia programming book, you'll have learned methods to improve software design, extensibility, and reusability, and be able to use design patterns efficiently to overcome common challenges in software development. What you will learn Master the Julia language features that are key to developing large-scale software applications Discover design patterns to improve overall application architecture and design Develop reusable programs that are modular, extendable, performant, and easy to maintain Weigh up the pros and cons of using different design patterns for use cases Explore methods for transitioning from object-oriented programming to using equivalent or more advanced Julia techniques Who this book is for This book is for beginner to intermediate-level Julia programmers who want to enhance their skills in designing and developing large-scale applications.
Solve complex business problems by understanding users better, finding the right problem to solve, and building lean event-driven systems to give your customers what they really want Key Features Apply DDD principles using modern tools such as EventStorming, Event Sourcing, and CQRS Learn how DDD applies directly to various architectural styles such as REST, reactive systems, and microservices Empower teams to work flexibly with improved services and decoupled interactions Book Description Developers across the world are rapidly adopting DDD principles to deliver powerful results when writing software that deals with complex business requirements. This book will guide you in involving business stakeholders when choosing the software you are planning to build for them. By figuring out the temporal nature of behavior-driven domain models, you will be able to build leaner, more agile, and modular systems. You'll begin by uncovering domain complexity and learn how to capture the behavioral aspects of the domain language. You will then learn about EventStorming and advance to creating a new project in .NET Core 2.1; you'll also and write some code to transfer your events from sticky notes to C#. The book will show you how to use aggregates to handle commands and produce events. As you progress, you'll get to grips with Bounded Contexts, Context Map, Event Sourcing, and CQRS. After translating domain models into executable C# code, you will create a frontend for your application using Vue.js. In addition to this, you'll learn how to refactor your code and cover event versioning and migration essentials. By the end of this DDD book, you will have gained the confidence to implement the DDD approach in your organization and be able to explore new techniques that complement what you've learned from the book. What you will learn Discover and resolve domain complexity together with business stakeholders Avoid common pitfalls when creating the domain model Study the concept of Bounded Context and aggregate Design and build temporal models based on behavior and not only data Explore benefits and drawbacks of Event Sourcing Get acquainted with CQRS and to-the-point read models with projections Practice building one-way flow UI with Vue.js Understand how a task-based UI conforms to DDD principles Who this book is for This book is for .NET developers who have an intermediate level understanding of C#, and for those who seek to deliver value, not just write code. Intermediate level of competence in JavaScript will be helpful to follow the UI chapters.