Mastering Apache Maven 3


Book Description

If you are working with Java or Java EE projects and you want to take full advantage of Maven in designing, executing, and maintaining your build system for optimal developer productivity, then this book is ideal for you. You should be well versed with Maven and its basic functionality if you wish to get the most out of the book.




Mastering Apache Cassandra 3.x


Book Description

Build, manage, and configure high-performing, reliable NoSQL database for your applications with Cassandra Key FeaturesWrite programs more efficiently using Cassandra's features with the help of examplesConfigure Cassandra and fine-tune its parameters depending on your needsIntegrate Cassandra database with Apache Spark and build strong data analytics pipelineBook Description With ever-increasing rates of data creation, the demand for storing data fast and reliably becomes a need. Apache Cassandra is the perfect choice for building fault-tolerant and scalable databases. Mastering Apache Cassandra 3.x teaches you how to build and architect your clusters, configure and work with your nodes, and program in a high-throughput environment, helping you understand the power of Cassandra as per the new features. Once you’ve covered a brief recap of the basics, you’ll move on to deploying and monitoring a production setup and optimizing and integrating it with other software. You’ll work with the advanced features of CQL and the new storage engine in order to understand how they function on the server-side. You’ll explore the integration and interaction of Cassandra components, followed by discovering features such as token allocation algorithm, CQL3, vnodes, lightweight transactions, and data modelling in detail. Last but not least you will get to grips with Apache Spark. By the end of this book, you’ll be able to analyse big data, and build and manage high-performance databases for your application. What you will learnWrite programs more efficiently using Cassandra's features more efficientlyExploit the given infrastructure, improve performance, and tweak the Java Virtual Machine (JVM)Use CQL3 in your application in order to simplify working with CassandraConfigure Cassandra and fine-tune its parameters depending on your needsSet up a cluster and learn how to scale itMonitor a Cassandra cluster in different waysUse Apache Spark and other big data processing toolsWho this book is for Mastering Apache Cassandra 3.x is for you if you are a big data administrator, database administrator, architect, or developer who wants to build a high-performing, scalable, and fault-tolerant database. Prior knowledge of core concepts of databases is required.




Maven Essentials


Book Description

Get started with the essentials of Apache Maven and get your build automation system up and running quickly About This Book Explore the essentials of Apache Maven essentials to arm yourself with all the ingredients needed to develop a comprehensive build automation system Identify the extension points in Apache Maven and learn more about them in-depth Improve developer productivity by optimizing the build process with best practices in Maven using this compact guide Who This Book Is For The book is ideal for for experienced developers who are already familiar with build automation, but want to learn how to use Maven and apply its concepts to the most difficult scenarios in build automation. What You Will Learn Comprehend the key concepts in Apache Maven Build your own custom plugins and get to know how Maven extension points are used Troubleshoot build issues with greater confidence Optimize Maven's configuration settings Write custom lifecycles and extensions Get hands-on and create a Maven assembly Explore the best practices to design a build system that improves developer productivity In Detail Maven is the #1 build tool used by developers and it has been around for more than a decade. Maven stands out among other build tools due to its extremely extensible architecture, which is built on of the concept of convention over configuration. It's widely used by many open source Java projects under Apache Software Foundation, Sourceforge, Google Code, and more. Maven Essentials is a fast-paced guide to show you the key concepts in Maven and build automation. We get started by introducing you to Maven and exploring its core concepts and architecture. Next, you will learn about and write a Project Object Model (POM) while creating your own Maven project. You will also find out how to create custom archetypes and plugins to establish the most common goals in build automation. After this, you'll get to know how to design the build to prevent any maintenance nightmares, with proper dependency management. We then explore Maven build lifecycles and Maven assemblies. Finally, you will discover how to apply the best practices when designing a build system to improve developer productivity. Style and approach This book is a practical and compact guide that will show you how to use Apache Maven in an optimal way to address enterprise build requirements. It provides technical guidance to get you started with Maven and build automation.




Apache Spark Graph Processing


Book Description

Build, process and analyze large-scale graph data effectively with Spark About This Book Find solutions for every stage of data processing from loading and transforming graph data to Improve the scalability of your graphs with a variety of real-world applications with complete Scala code. A concise guide to processing large-scale networks with Apache Spark. Who This Book Is For This book is for data scientists and big data developers who want to learn the processing and analyzing graph datasets at scale. Basic programming experience with Scala is assumed. Basic knowledge of Spark is assumed. What You Will Learn Write, build and deploy Spark applications with the Scala Build Tool. Build and analyze large-scale network datasets Analyze and transform graphs using RDD and graph-specific operations Implement new custom graph operations tailored to specific needs. Develop iterative and efficient graph algorithms using message aggregation and Pregel abstraction Extract subgraphs and use it to discover common clusters Analyze graph data and solve various data science problems using real-world datasets. In Detail Apache Spark is the next standard of open-source cluster-computing engine for processing big data. Many practical computing problems concern large graphs, like the Web graph and various social networks. The scale of these graphs - in some cases billions of vertices, trillions of edges - poses challenges to their efficient processing. Apache Spark GraphX API combines the advantages of both data-parallel and graph-parallel systems by efficiently expressing graph computation within the Spark data-parallel framework. This book will teach the user to do graphical programming in Apache Spark, apart from an explanation of the entire process of graphical data analysis. You will journey through the creation of graphs, its uses, its exploration and analysis and finally will also cover the conversion of graph elements into graph structures. This book begins with an introduction of the Spark system, its libraries and the Scala Build Tool. Using a hands-on approach, this book will quickly teach you how to install and leverage Spark interactively on the command line and in a standalone Scala program. Then, it presents all the methods for building Spark graphs using illustrative network datasets. Next, it will walk you through the process of exploring, visualizing and analyzing different network characteristics. This book will also teach you how to transform raw datasets into a usable form. In addition, you will learn powerful operations that can be used to transform graph elements and graph structures. Furthermore, this book also teaches how to create custom graph operations that are tailored for specific needs with efficiency in mind. The later chapters of this book cover more advanced topics such as clustering graphs, implementing graph-parallel iterative algorithms and learning methods from graph data. Style and approach A step-by-step guide that will walk you through the key ideas and techniques for processing big graph data at scale, with practical examples that will ensure an overall understanding of the concepts of Spark.




Gradle for Android


Book Description

Gradle is an open source build automation system that introduces a Groovy-based domain-specific language (DSL) to configure projects. Using Gradle makes it easy for Android developers to manage dependencies and set up the entire build process. This book begins by taking you through the basics of Gradle and how it works with Android Studio. Furthermore, you will learn how to add local and remote dependencies to your project. You will work with build variants, such as debug and release, paid and free, and even combinations of these things. The book will also help you set up unit and integration testing with different libraries and will show how Gradle and Android Studio can make running tests easier. Finally, you will be shown a number of tips and tricks on the advanced customization of your application's build process. By the end of this book, you will be able to customize the entire build process, and create your own tasks and plugins for your Gradle builds.




Microservices Security in Action


Book Description

”A complete guide to the challenges and solutions in securing microservices architectures.” —Massimo Siani, FinDynamic Key Features Secure microservices infrastructure and code Monitoring, access control, and microservice-to-microservice communications Deploy securely using Kubernetes, Docker, and the Istio service mesh. Hands-on examples and exercises using Java and Spring Boot Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. Microservices Security in Action teaches you how to address microservices-specific security challenges throughout the system. This practical guide includes plentiful hands-on exercises using industry-leading open-source tools and examples using Java and Spring Boot. About The Book Design and implement security into your microservices from the start. Microservices Security in Action teaches you to assess and address security challenges at every level of a Microservices application, from APIs to infrastructure. You’ll find effective solutions to common security problems, including throttling and monitoring, access control at the API gateway, and microservice-to-microservice communication. Detailed Java code samples, exercises, and real-world business use cases ensure you can put what you’ve learned into action immediately. What You Will Learn Microservice security concepts Edge services with an API gateway Deployments with Docker, Kubernetes, and Istio Security testing at the code level Communications with HTTP, gRPC, and Kafka This Book Is Written For For experienced microservices developers with intermediate Java skills. About The Author Prabath Siriwardena is the vice president of security architecture at WSO2. Nuwan Dias is the director of API architecture at WSO2. They have designed secure systems for many Fortune 500 companies. Table of Contents PART 1 OVERVIEW 1 Microservices security landscape 2 First steps in securing microservices PART 2 EDGE SECURITY 3 Securing north/south traffic with an API gateway 4 Accessing a secured microservice via a single-page application 5 Engaging throttling, monitoring, and access control PART 3 SERVICE-TO-SERVICE COMMUNICATIONS 6 Securing east/west traffic with certificates 7 Securing east/west traffic with JWT 8 Securing east/west traffic over gRPC 9 Securing reactive microservices PART 4 SECURE DEPLOYMENT 10 Conquering container security with Docker 11 Securing microservices on Kubernetes 12 Securing microservices with Istio service mesh PART 5 SECURE DEVELOPMENT 13 Secure coding practices and automation




Mastering Apache Storm


Book Description

Master the intricacies of Apache Storm and develop real-time stream processing applications with ease About This Book Exploit the various real-time processing functionalities offered by Apache Storm such as parallelism, data partitioning, and more Integrate Storm with other Big Data technologies like Hadoop, HBase, and Apache Kafka An easy-to-understand guide to effortlessly create distributed applications with Storm Who This Book Is For If you are a Java developer who wants to enter into the world of real-time stream processing applications using Apache Storm, then this book is for you. No previous experience in Storm is required as this book starts from the basics. After finishing this book, you will be able to develop not-so-complex Storm applications. What You Will Learn Understand the core concepts of Apache Storm and real-time processing Follow the steps to deploy multiple nodes of Storm Cluster Create Trident topologies to support various message-processing semantics Make your cluster sharing effective using Storm scheduling Integrate Apache Storm with other Big Data technologies such as Hadoop, HBase, Kafka, and more Monitor the health of your Storm cluster In Detail Apache Storm is a real-time Big Data processing framework that processes large amounts of data reliably, guaranteeing that every message will be processed. Storm allows you to scale your data as it grows, making it an excellent platform to solve your big data problems. This extensive guide will help you understand right from the basics to the advanced topics of Storm. The book begins with a detailed introduction to real-time processing and where Storm fits in to solve these problems. You'll get an understanding of deploying Storm on clusters by writing a basic Storm Hello World example. Next we'll introduce you to Trident and you'll get a clear understanding of how you can develop and deploy a trident topology. We cover topics such as monitoring, Storm Parallelism, scheduler and log processing, in a very easy to understand manner. You will also learn how to integrate Storm with other well-known Big Data technologies such as HBase, Redis, Kafka, and Hadoop to realize the full potential of Storm. With real-world examples and clear explanations, this book will ensure you will have a thorough mastery of Apache Storm. You will be able to use this knowledge to develop efficient, distributed real-time applications to cater to your business needs. Style and approach This easy-to-follow guide is full of examples and real-world applications to help you get an in-depth understanding of Apache Storm. This book covers the basics thoroughly and also delves into the intermediate and slightly advanced concepts of application development with Apache Storm.




Mastering Hadoop


Book Description

Do you want to broaden your Hadoop skill set and take your knowledge to the next level? Do you wish to enhance your knowledge of Hadoop to solve challenging data processing problems? Are your Hadoop jobs, Pig scripts, or Hive queries not working as fast as you intend? Are you looking to understand the benefits of upgrading Hadoop? If the answer is yes to any of these, this book is for you. It assumes novice-level familiarity with Hadoop.




Mastering Apache Spark


Book Description

Unleash the Potential of Distributed Data Processing with Apache Spark Are you prepared to venture into the realm of distributed data processing and analytics with Apache Spark? "Mastering Apache Spark" is your comprehensive guide to unlocking the full potential of this powerful framework for big data processing. Whether you're a data engineer seeking to optimize data pipelines or a business analyst aiming to extract insights from massive datasets, this book equips you with the knowledge and tools to master the art of Spark-based data processing. Key Features: 1. Deep Dive into Apache Spark: Immerse yourself in the core principles of Apache Spark, comprehending its architecture, components, and versatile functionalities. Construct a robust foundation that empowers you to manage big data with precision. 2. Installation and Configuration: Master the art of installing and configuring Apache Spark across diverse platforms. Learn about cluster setup, resource allocation, and configuration tuning for optimal performance. 3. Spark Core and RDDs: Uncover the core of Spark—Resilient Distributed Datasets (RDDs). Explore the functional programming paradigm and leverage RDDs for efficient and fault-tolerant data processing. 4. Structured Data Processing with Spark SQL: Delve into Spark SQL for querying structured data with ease. Learn how to execute SQL queries, perform data manipulations, and tap into the power of DataFrames. 5. Streamlining Data Processing with Spark Streaming: Discover the power of real-time data processing with Spark Streaming. Learn how to handle continuous data streams and perform near-real-time analytics. 6. Machine Learning with MLlib: Master Spark's machine learning library, MLlib. Dive into algorithms for classification, regression, clustering, and recommendation, enabling you to develop sophisticated data-driven models. 7. Graph Processing with GraphX: Embark on a journey through graph processing with Spark's GraphX. Learn how to analyze and visualize graph data to glean insights from complex relationships. 8. Data Processing with Spark Structured Streaming: Explore the world of structured streaming in Spark. Learn how to process and analyze data streams with the declarative power of DataFrames. 9. Spark Ecosystem and Integrations: Navigate Spark's rich ecosystem of libraries and integrations. From data ingestion with Apache Kafka to interactive analytics with Apache Zeppelin, explore tools that enhance Spark's capabilities. 10. Real-World Applications: Gain insights into real-world use cases of Apache Spark across industries. From fraud detection to sentiment analysis, discover how organizations leverage Spark for data-driven innovation. Who This Book Is For: "Mastering Apache Spark" is a must-have resource for data engineers, analysts, and IT professionals poised to excel in the world of distributed data processing using Spark. Whether you're new to Spark or seeking advanced techniques, this book will guide you through the intricacies and empower you to harness the full potential of this transformative framework.




Mastering Jenkins


Book Description

Configure and extend Jenkins to architect, build, and automate efficient software delivery pipelines About This Book Configure and horizontally scale a Jenkins installation to support a development organization of any size Implement Continuous Integration, Continuous Delivery, and Continuous Deployment solutions in Jenkins A step-by-step guide to help you get the most out of the powerful automation orchestration platform that is Jenkins Who This Book Is For If you are a novice or intermediate-level Jenkins user who has used Jenkins before but are not familiar with architecting solutions and implementing it in your organization, then this is the book for you. A basic understanding of the core elements of Jenkins is required to make the best use of this book. What You Will Learn Create and manage various types of build jobs, and implement automation tasks to support a software project of any kind Get to grips with the automated testing architecture, and scalable automated testing techniques Facilitate the delivery of software across the SDLC by creating scalable automated deployment solutions Manage scalable automation pipelines in Jenkins using the latest build, test, and deployment strategies Implement a scalable master / slave build automation platform, which can support Windows, Mac OSX, and Linux software solutions Cover troubleshooting and advanced configuration techniques for Jenkins slave nodes Support a robust build and delivery system by implementing basic infrastructure as code solutions in configuration management tools such as Ansible In Detail With the software industry becoming more and more competitive, organizations are now integrating delivery automation and automated quality assurance practices into their business model. Jenkins represents a complete automation orchestration system, and can help converge once segregated groups into a cohesive product development and delivery team. By mastering the Jenkins platform and learning to architect and implement Continuous Integration, Continuous Delivery, and Continuous Deployment solutions, your organization can learn to outmanoeuvre and outpace the competition. This book will equip you with the best practices to implement advanced continuous delivery and deployment systems in Jenkins. The book begins with giving you high-level architectural fundamentals surrounding Jenkins and Continuous Integration. You will cover the different installation scenarios for Jenkins, and see how to install it as a service, as well as the advanced XML configurations. Then, you will proceed to learn more about the architecture and implementation of the Jenkins Master/Save node system, followed by creating and managing Jenkins build jobs effectively. Furthermore, you'll explore Jenkins as an automation orchestration system, followed by implementing advanced automated testing techniques. The final chapters describe in depth the common integrations to Jenkins from third-party tools such as Jira, Artifactory, Amazon EC2, and getting the most out of the Jenkins REST-based API. By the end of this book, you will have all the knowledge necessary to be the definitive resource for managing and implementing advanced Jenkins automation solutions for your organization. Style and approach This book is a step-by-step guide to architecting and implementing automated build solutions, automated testing practices, and automated delivery methodologies. The topics covered are based on industry-proven techniques, and are explained in a simple and easy to understand manner.