Allgemein
Practical GitOps
Infrastructure as Code (IaC) is gaining popularity and developers today are deploying their application environments through IaC tools to the cloud. However, it can become extremely difficult and time-consuming to manage the state of the infrastructure that has been deployed. This book will provide a complete walkthrough of deploying a SpringBoot application on AWS with multiple environments like production, staging and development. Everything is orchestrated through GitHub Actions and executed through Terraform Cloud to monitor changes in your infrastructure and manage its state.You'll start by reviewing how your infrastructure can be stored in code by spinning up an EC2 server first through the console, then AWS CLI and then using Terraform. You'll then be presented with a practical scenario of setting up a simple EC2 server in a multi-environment (production, staging and development) using GitHub Actions and Terraform Cloud. In the advanced section that follows, this simple EC2 server is expanded into an application that is deployed on an AWS EKS (Elastic Kubernetes Service) using AWS RDS (Relational Database Service) exposed through an AWS ALB (Application Load Balancer) protected using AWS ACM (AWS Certificate Manager), and accessible by setting the AWS Route53.The book then builds up on this infrastructure and demonstrates how it can be deployed in a multi-environment scenario by implementing accounts through AWS organizations. You'll see how to put in restrictions through Service Control Policies, how to protect secrets using AWS Secrets Manager, and how to work with least privileges using IRSA (IAM Roles for Service Accounts). Finally, you'll make the infrastructure more observable using Graphana, Prometheus, and AWS OpenSearch, run security tools, host Route53 zones dynamically based on environments, and implement CloudWatch Alarms for various use cases.ROHIT SALECHA is a technology enthusiast with over 11 years of experience in IT and the Cybersecurity industry. He loves to find security flaws in the web applications and api's, automate boring tasks and tinker around with new tech and help design secure by default systems. Lately, he has become quite smitten by the DevOps technologies and techniques and loves tinkering around with them.PART I - SETTING UP GITOPSCHAPTER 1: WHAT IS GITOPS?1. The Era of DevOps2. Infrastructure as Code3. What is GitOps?CHAPTER 2: INTRODUCTION TO AWS1. Introduction to AWS2. Creating an EC2 machine from AWS Console3. Creating an EC2 machine using aws-cliCHAPTER 3: INTRODUCTION TO TERRAFORM1. Introduction to Terraform2. Basic Syntaxes3. Creating an EC2 machine using TerraformCHAPTER 4: INTRODUCTION TO TERRAFORM CLOUD AND WORKSPACES1. Preparing for Multi-environment2. Introduction to Terraform Workspaces3. Introduction to Terraform Cloud4. Attaching Github Repo to Terraform CloudCHAPTER 5: INTRODUCTION TO GITHUB ACTIONS1. Drawbacks of connecting to Github Repository2. Introducing Github Actions3. Deploying EC2 terraform code using Github Actions4. Multi-environment strategyCHAPTER 6: WORDPRESS ON AWS EKS1. AWS EKS,EFS,RDS Architecture2. Walkthrough of Terraform Code3. Walkthrough of Kubernetes Manifest Files4. Deploying Wordpress in Dev and Prod.PART II - OPERATING WITH GITOPSCHAPTER 7: AUTHENTICATION AND AUTHORIZATION1. Kubernetes Provider Authentication in Terraform2. Exploring the aws-auth ConfigMap3. Understanding IRSA(IAM Roles and Service Accounts)4. Connect AWS IAM Role with Kubernetes Service Account5. AWS User access in KubernetesCHAPTER 8: SECURITY AND SECRET MANAGEMENT1. Implementing HTTPS using AWS ACM2. Storing Database Password in AWS Secrets Manager3. Integrating Security tools in GitOps pipelineCHAPTER 9: BACKUP AND DISASTER RECOVERY1. Database Snapshot in AWS SSM Parameter Store2. Deploying in Another AWS RegionCHAPTER 10: OBSERVABILITY1. Collecting Metrics and Logs2. Performance Monitoring using Graphana/Prometheus3. Log Collection using EFK (Elastic Filebeat and Kibana)
Productionizing AI
This book is a guide to productionizing AI solutions using best-of-breed cloud services with workarounds to lower costs. Supplemented with step-by-step instructions covering data import through wrangling to partitioning and modeling through to inference and deployment, and augmented with plenty of Python code samples, the book has been written to accelerate the process of moving from script or notebook to app.From an initial look at the context and ecosystem of AI solutions today, the book drills down from high-level business needs into best practices, working with stakeholders, and agile team collaboration. From there you’ll explore data pipeline orchestration, machine and deep learning, including working with and finding shortcuts using artificial neural networks such as AutoML and AutoAI. You’ll also learn about the increasing use of NoLo UIs through AI application development, industry case studies, and finally a practical guide to deploying containerized AI solutions.The book is intended for those whose role demands overcoming budgetary barriers or constraints in accessing cloud credits to undertake the often difficult process of developing and deploying an AI solution.WHAT YOU WILL LEARN* Develop and deliver production-grade AI in one month* Deploy AI solutions at a low cost* Work around Big Tech dominance and develop MVPs on the cheap* Create demo-ready solutions without overly complex python scripts/notebooksWHO THIS BOOK IS FOR:Data scientists and AI consultants with programming skills in Python and driven to succeed in AI.BARRY WALSH is a software-delivery consultant and AI trainer at Pairview with a background in exploiting complex business data to optimize and de-risk energy assets at ABB/Ventyx, Infosys, E.ON, Centrica, and his own start-up ce.tech. He has a proven track record of providing consultancy services in Data Science, BI, and Business Analysis to businesses in Energy, IT, FinTech, Telco, Retail, and Healthcare, Barry has been at the apex of analytics and AI solutions delivery for 20 years. Besides being passionate about Enterprise AI, Barry spends his spare time with his wife and 8-year-old son, playing the piano, riding long bike rides (and a marathon on a broken toe this year), eating out whenever possible or getting his daily coffee fix.Chapter 1: Introduction to AI & the AI EcosystemChapter Goal: Embracing the hype and the pitfalls, introduces the reader to current and emerging trends in AI and how many businesses and organisations are struggling to get machine and deep learning operationalizedNo of pages: 30Sub -Topics1. The AI ecosystem2. Applications of AI3. AI pipelines4. Machine learning5. Neural networks & deep learning6. Productionizing AIChapter 2: AI Best Practise & DataOpsChapter Goal: Help the reader understand the wider context for AI, key stakeholders, the importance of collaboration, adaptability and re-use as well as DataOps best practice in delivering high-performance solutionsNo of pages: 20Sub - Topics1. Introduction to DataOps and MLOps2. Agile development3. Collaboration and adaptability4. Code repositories5. Module 4: Data pipeline orchestration6. CI / CD7. Testing, performance evaluation & monitoringChapter 3: Data Ingestion for AIChapter Goal: Inform on best practice and the right (cloud) data architectures and orchestration requirements to ensure the successful delivery of an AI project.No of pages : 20Sub - Topics: 1. Introduction to data ingestion2. Data stores for AI3. Data lakes, warehousing & streaming4. Data pipeline orchestrationChapter 4: Machine Learning on CloudChapter Goal: Top-down ML model building from design thinking, through high level process, data wrangling, unsupervised clustering techniques, supervised classification, regression and time series approaches before interpreting results and algorithmic performanceNo of pages: 20Sub - Topics:1. ML fundamentals2. EDA & data wrangling3. Supervised & unsupervised machine learning4. Python Implementation5. Unsupervised clustering, pattern & anomaly detection6. Supervised classification & regression case studies: churn & retention modelling, risk engines, social media sentiment analysis7. Time series forecasting and comparison with fbprophetChapter 5: Neural Networks and Deep LearningChapter Goal: Help the reader establish the right artificial neural network architecture, data orchestration and infrastructure for deep learning with TensorFlow, Keras and PyTorch on CloudNo of pages: 40Sub - Topics:1. An introduction to deep learning2. Stochastic processes for deep learning3. Artificial neural networks4. Deep learning tools & frameworks5. Implementing a deep learning model6. Tuning a deep learning model7. Advanced topics in deep learningChapter 6: The Employer’s Dream: AutoML, AutoAI and the rise of NoLo UIsChapter Goal: Building on acquired ML and DL skills, learn to leverage the growing ecosystem of AutoML, AutoAI and No/Low code user interfacesNo of pages: 20Sub - Topics:1. AutoML2. Optimizing the AI pipeline3. Python-based libraries for automation4. Case Studies in Insurance, HR, FinTech & Trading, Cybersecurity and Healthcare5. Tools for AutoAI: IBM Cloud Pak for Data, Azure Machine Learning, Google Teachable MachinesChapter 7: AI Full Stack: Application DevelopmentChapter Goal: Starting from key business/organizational needs for AI, identify the correct solution and technologies to develop and deliver “Full Stack AI”No of pages: 20Sub - Topics:6. Introduction to AI application development7. Software for AI development8. Key Business applications of AI:• ML Apps• NLP Apps• DL Apps4. Designing & building an AI applicationChapter 8: AI Case StudiesChapter Goal: A comprehensive (multi-sector, multi-functional) look at the main AI use uses in 2022No of pages: 20Sub - Topics:1. Industry case studies2. Telco solutions3. Retail solutions4. Banking & financial services / fintech solutions5. Oil & gas / energy & utilities solutions6. Supply chain solutions7. HR solutions8. Healthcare solutions9. Other case studiesChapter 9: Deploying an AI Solution (Productionizing & Containerization)Chapter Goal: A practical look at “joining the dots” with full-stack deployment of Enterprise AI on CloudNo of pages: 20Sub - Topics:1. Productionizing an AI application2. AutoML / AutoML3. Storage & Compute4. Containerization5. The final frontier…
Game Backend Development
Up your game developer skills by learning game backend development with Microsoft Azure and PlayFab.Robust backend infrastructure support is essential for all modern games. Implementing game backend features became easier with the emergence of GBaaS (Game Backend-as-a-Service) providers and the advance of the cloud. Multiplayer gaming, leaderboards, game analytics, and virtual economies are all backed by cloud services.As a game developer, understanding core game backend features and implementation techniques is an important addition to your game developer skill set. Understanding game backend development will not only give you a competitive advantage, it will also eventually allow you to create better games.This book will help you get started. It teaches all the core concepts, using downloadable source code, so that you can experiment right away following a learning-by-doing approach.After reading this book, you will have a solid grasp of key game backend services and know how to implement them.WHAT YOU WILL LEARN* Understand core concepts around game backend development* Use the PlayFab API to implement backend features* Build game backend infrastructure using Microsoft Azure cloud (architecture and implementation)* Contrast the traditional Azure cloud- and PlayFab (GBaaS)-based implementations of game backend capabilities* Reuse source code to enable backend capability in your own games* Discover different ways for authenticating players* Implement a multiplayer game in Unity with the help of mirror networking* Create a matchmaker to bring together players for an online game session* Establish leaderboards to reinforce player competition* Build a virtual economy and monetize your game* Set up game analytics and gain insight into players’ behavior* Let players communicate with each other by taking advantage of cognitive services* Learn how to implement server-side custom game backend logicWHO THIS BOOK IS FORGame developers who may be skilled in game development, but who possess little to no skills in GBaaS and cloud computing. This book is also for professionals working in the cloud solutions space who want to learn about the specific challenges of the gaming domain.BALINT BORS is a cloud solutions architect based in Munich, Germany. He has over 15 years of experience developing software and building IT infrastructures for many companies and industries. Balint also consults with and advises technical teams on applying cloud technologies. He is a Microsoft Certified Azure Solutions Architect Expert.1. Introducing and Contrasting Backend DevelopmentGoal: In this chapter introduce the background of this book, how I came to the idea to write it, what is the goal, who is this book for, and the technology stack I am going to discuss. Also, give a bit of insight into the gaming ecosystem, which other providers and technologies are there, how those compare to the actually described ones. I want to discuss the key components and features that address the fundamental pain points and requirements of our target audience.1.1. Initial Thoughts1.2. Game Backend and Frontend1.3. Game Engines1.4. Unity1.5. BaaS (Backend-as-a-Service) vs. Public Cloud1.6. Popular BaaS providers, comparison1.7. Top5 Cloud providers, comparison1.8. Indie vs. AAA games and their requirements2. Concepts of Backend DevelopmentGoal: In this chapter, I am going to describe the general concepts related to game backend development. The description is independent of the technology used and helps the reader understand what are the features we can have if we extend our game frontend with backend capabilities.2.1. Overview2.2. Leaderboard2.3. Matchmaking2.4. Player Authentication2.5. Chat2.6. Analytics2.7. Server Hosting2.8. Selling Items2.9. Artificial Intelligence3. Setting up a Simple Local Multiplayer Game.Goal: This part will cover the prerequisites for the next chapters. I will show how to use Unity Assets, Mirror Networking library, and other tools and techniques to implement a simple local multiplayer game. The reader can also download the source code from GitHub directly. We will build upon this game in the next chapters, where we implement the features from the previous chapter.3.1. Prerequisites3.2. Sample Game3.3. Multiple Unity Instances3.4. Mirror Networking3.5. Local Multiplayer Game3.6. Advanced Networking4. Up and Running on PlayFabGoal: This is one of the core chapters. Here I describe how to implement backend features to games. This also includes source code, so the reader can use them in their game right away. It also includes explanations, best practices, tips and tricks and pitfalls developers should know. It is all very specific and practical. I use the PlayFab BaaS (Backend-as-a-Service) and API to implement these features.4.1. Overview4.2. Setting up PlayFab4.3. Leaderboard4.4. Matchmaking4.5. Player Authentication4.6. Chat4.7. Analytics4.8. Server Hosting4.9. Selling Items4.10. Artificial Intelligence5. Build Your Own Custom Game Backend in AzureGoal: This is another way to reach the same goals as in the earlier chapter, but now by using Azure. (Hint: game developers can implement backend features by turning to a BaaS provider like PlayFab. Then they don’t need to build cloud infrastructure components like virtual machines or databases by themselves). In this chapter the developer choose the hard way, and build his own Microsoft Azure cloud based game backend. The same features as above are built here, again with source code and explanations.5.1. Overview5.2. Setting up Microsoft Azure5.3. Leaderboard5.4. Matchmaking5.5. Player Authentication5.6. Chat5.7. Analytics5.8. Server Hosting5.9. Selling Items5.10. Artificial Intelligence6. Next Steps in Game Development LearningGoal: I want to draw a conclusion on my experience building game backend with both a BaaS (PlayFab) and a cloud (Azure) service provider. I want to help game developers make the right decision based on their situation. Some of the key aspects are budget, skills, time, team size, target market and region. I consider adding here a section with further readings providing references to sources I found useful.6.1. Final Thoughts6.2. References
Kubernetes Programming with Go
This book begins by introducing the structure of the Kubernetes API and which operations it serves. Following chapters demonstrate how to write native Kubernetes resources definitions using Go structures defined in the API and API Machinery libraries. Miscellaneous utilities are described to help you work with different resource fields and to convert your resource definitions to or from YAML or JSON. Next, you will learn how to interact with the Kubernetes API server to create, delete, update, and monitor resources in a cluster using the client-go library. A complete chapter is devoted to tools provided to test your programs using the client-go library. An example follows to wrap up the first part of the book, describing how to write a kubectl plugin. Next, you will learn how to extend the Kubernetes API using Custom Resource Definitions, and how to write Kubernetes resources in a generic way as well as how to create your own resources using the unstructured concept. The next chapters delve into the controller-runtime library, useful for extending Kubernetes by writing operators, and the kubebuilder framework, which leverages this library, to help you start writing operators in minutes.After reading this book, you will have a deep understanding of the Kubernetes API’s structure and how Kubernetes resources are organized within it, and have at your disposal a complete toolbox to help you write Kubernetes clients and operators.WHAT YOU WILL LEARN* Understand how the Kubernetes API and its resources are organized* Write Kubernetes resources in Go* Create resources in a cluster* Leverage your newly-gained knowledge to write Kubernetes clients and operatorsWHO IS THIS BOOK FOR:Software engineers and (Site Reliability Engineers) SREs wishing to write Kubernetes clients and operators using the Go language.Philippe Martin has been working with Kubernetes for five years, first by creating an operator to deploy video CDNs into the cloud, later helping companies deploy their applications into Kubernetes, then writing a client to help developers work in a Kubernetes environment. Philippe passed the CKAD, CKA and CKS certifications.He has long experience with distributed systems and open-source software: he started his career 20 years ago creating thin clients based on the Linux kernel and open source components. He is currently working at Red Hat on the Development Tools team.Philippe is active in the development of Kubernetes, especially its documentation, and participates in the translation of the official documentation into French, has edited two reference books about the Kubernetes API and kubectl, and is responsible for the French translation of the Kubernetes Dashboard. He participated in Google Season of Docs to create the new Kubernetes API Reference section of the official documentation, and is maintaining it. He is currently participating in the Apps SIG, a group that covers deploying and operating applications in Kubernetes.Chapter 1: Kubernetes API Introduction.Chapter 2: Kubernetes API Operations.Chapter 3: Working with API Resources in Go.Chapter 4: Using Common types.Chapter 5: The API Machinery.Chapter 6: The Client-go library.Chapter 7: Testing Applications using Client-Go.Chapter 8: Extending Kubernetes API with Custom Resources Definitions.Chapter 9: Working with Custom Resources.Chapter 10: Writing Operators with the controller-runtime Library.Chapter 11: Writing the Reconcile Loop.Chapter 12: Testing the Reconcile Loop.Chapter 13: Creating an Operator with Kubebuilder.
Exploring Game Mechanics
Learn simple yet powerful, modern-day techniques used in various gaming genres, including casual and puzzle, strategy and simulation, action-adventure, and role-playing. This book is your pocket-sized guide to designing interesting and engaging mechanics for any type of game.Exploring Game Mechanics is a cornucopia of concepts related to gameplay mechanics that you can use to create games that are fun and rewarding to play. Dive into key gameplay elements that improve the player experience, such as implementing in-game tutorials, controlling the flow of player-choice-based games, and building a game narrative through storytelling. Understand how to establish the game’s end goal for the player to work towards by creating quests, missions, and objectives. Explore the key ideas behind creating immersive game worlds, generating better NPCs and enemies, and controlling the in-game economy. Finally, discover the unique mechanics that make established industry games so successful.WHAT YOU WILL LEARN* Discover the key elements that make gameplay immersive and entertaining* Develop players and NPCs through customization and levelling up * Gain insight into the tried-and-tested concepts behind modern-day games WHO IS THIS BOOK FORGame development enthusiasts with little to no knowledge of game mechanics will find the content informative and useful. MAITHILI DHULe is an Engineer by profession, writer by choice, and an aspiring game developer at heart. She is the author of Beginning Game Development with Godot, a beginner’s guide to creating and publishing 2D Platform games from scratch. After a friend introduced her to the art of creating games, it quickly became one of her passions. She can be found creating pixel art or being immersed in one of her favorite games in her free time. She also enjoys trying out new restaurants, sketching portraits, writing poetry, and going for runs while listening to a good music playlist.CHAPTER 1: WHY DO WE PLAY GAMES?Sub –topics:• What players look for in a game: Novelty, creativity, and a sense of achievement• Appeal of different game genres such as action RPGs, puzzles, casual and simulation games• Role of game art and game aesthetics in increasing player motivation• What are game mechanics? • Impact of game mechanics on the player experienceCHAPTER 2: CREATING FUN GAMEPLAYSub – topics:• Difference between linear and non-linear games• Controlling flow of non-linear, player-choice based games• Controlling difficulty of gameplay through game balancing and teaching player through in-game tutorials• Storytelling and the game narrative• Creating quests and missions for establishing the end-goal of the gameCHAPTER 3: FREEDOM TO EXPLORE NEW WORLDSSub - topics:• Implementing player progression by developing player’s skills and abilities and levelling up the player through achievements• Movement mechanics: controlling the player through user input• Mechanics for in-game travel with the help of maps and guides, transport vehicles, instant teleportation methods, and shortcuts in the game levels• Game world and environment mechanics, including concepts such as creating infinite open worlds through procedural generation and realistic weather systemsCHAPTER 4: DEFEAT, COLLECT, REPEATSub - topics:• Enemy and NPC generation using artificial intelligence and creating combat mechanics• Establishing victory and defeat conditions• Managing the player inventory, controlling the internal game economy, and resource management in games• Implementing a reward system such as collection or trading of in-game currency, spawing natural resources in the game• Unlocking new game levels and areas and greater player customization as the character levels upCHAPTER 5: CHOOSE YOUR MECHANICSSub - topics:• Tips for choosing game mechanics• Designing game mechanics for different kinds of players such as achievers, skillers, and completionists• Analysis of game mechanics in existing games of different genres:o Sims (simulation)o Fallout (role playing)o Age of empires (base building)o Life is strange (player-choice based)o No man’s sky (procedurally generated survival)• Prototyping, trial and error
Time Series Algorithms Recipes
This book teaches the practical implementation of various concepts for time series analysis and modeling with Python through problem-solution-style recipes, starting with data reading and preprocessing.It begins with the fundamentals of time series forecasting using statistical modeling methods like AR (autoregressive), MA (moving-average), ARMA (autoregressive moving-average), and ARIMA (autoregressive integrated moving-average). Next, you'll learn univariate and multivariate modeling using different open-sourced packages like Fbprohet, stats model, and sklearn. You'll also gain insight into classic machine learning-based regression models like randomForest, Xgboost, and LightGBM for forecasting problems. The book concludes by demonstrating the implementation of deep learning models (LSTMs and ANN) for time series forecasting. Each chapter includes several code examples and illustrations.After finishing this book, you will have a foundational understanding of various concepts relating to time series and its implementation in Python.WHAT YOU WILL LEARN* Implement various techniques in time series analysis using Python.* Utilize statistical modeling methods such as AR (autoregressive), MA (moving-average), ARMA (autoregressive moving-average) and ARIMA (autoregressive integrated moving-average) for time series forecasting * Understand univariate and multivariate modeling for time series forecasting* Forecast using machine learning and deep learning techniques such as GBM and LSTM (long short-term memory)WHO THIS BOOK IS FORData Scientists, Machine Learning Engineers, and software developers interested in time series analysis.AKSHAY KULKARNI IS an AI and machine learning (ML) evangelist and a thought leader. He has consulted several Fortune 500 and global enterprises to drive AI and data science-led strategic transformations. He has been honoured as Google Developer Expert, and is an Author and a regular speaker at top AI and data science conferences (including Strata, O’Reilly AI Conf, and GIDS). He is a visiting faculty member for some of the top graduate institutes in India. In 2019, he has been also featured as one of the top 40 under 40 Data Scientists in India. In his spare time, he enjoys reading, writing, coding, and helping aspiring data scientists. He lives in Bangalore with his family.ADARSHA SHIVANANDA IS a Data science and MLOps Leader. He is working on creating worldclass MLOps capabilities to ensure continuous value delivery from AI. He aims to build a pool of exceptional data scientists within and outside of the organization to solve problems through training programs, and always wants to stay ahead of the curve. He has worked extensively in the pharma, healthcare, CPG, retail, and marketing domains. He lives in Bangalore and loves to read and teach data science.ANOOSH KULKARNI is a data scientist and a Senior AI consultant. He has worked with global clients across multiple domains and helped them solve their business problems using machine learning (ML), natural language processing (NLP), and deep learning.. Anoosh is passionate about guiding and mentoring people in their data science journey. He leads data science/machine learning meet-ups and helps aspiring data scientists navigate their careers. He also conducts ML/AI workshops at universities and is actively involved in conducting webinars, talks, and sessions on AI and data science. He lives in Bangalore with his family.V ADITHYA KRISHNAN is a data scientist and ML Ops Engineer. He has worked with various global clients across multiple domains and helped them to solve their business problems extensively using advanced Machine learning (ML) applications. He has experience across multiple fields of AI-ML, including, Time-series forecasting, Deep Learning, NLP, ML Operations, Image processing, and data analytics. Presently, he is working on a state-of-the-art value observability suite for models in production, which includes continuous model and data monitoring along with the business value realized. He also published a paper at an IEEE conference, “Deep Learning Based Approach for Range Estimation," written in collaboration with the DRDO. He lives in Chennai with his family.Chapter 1: Getting Started with Time Series.Chapter Goal: Exploring and analyzing the timeseries data, and preprocessing it, which includes feature engineering for model building.No of pages: 25Sub - Topics1 Reading time series data2 Data cleaning3 EDA4 Trend5 Noise6 Seasonality7 Cyclicity8 Feature Engineering9 StationarityChapter 2: Statistical Univariate ModellingChapter Goal: The fundamentals of time series forecasting with the use of statistical modelling methods like AR, MA, ARMA, ARIMA, etc.No of pages: 25Sub - Topics1 AR2 MA3 ARMA4 ARIMA5 SARIMA6 AUTO ARIMA7 FBProphetChapter 3: Statistical Multivariate ModellingChapter Goal: implementing multivariate modelling techniques like HoltsWinter and SARIMAX.No of pages: 25Sub - Topics: 1 HoltsWinter2 ARIMAX3 SARIMAXChapter 4: Machine Learning Regression-Based Forecasting.Chapter Goal: Building and comparing multiple classical ML Regression algorithms for timeseries forecasting.No of pages: 25Sub - Topics:1 Random Forest2 Decision Tree3 Light GBM4 XGBoost5 SVMChapter 5: Forecasting Using Deep Learning.Chapter Goal: Implementing advanced concepts like deep learning for time series forecasting from scratch.No of pages: 25Sub - Topics:1 LSTM2 ANN3 MLP
Blockchain for Real World Applications
BLOCKCHAIN FOR REAL WORLD APPLICATIONSA COMPREHENSIVE EXAMINATION OF BLOCKCHAIN ARCHITECTURE AND ITS KEY CHARACTERISTICSBlockchain architecture is a way of recording data such that it cannot be altered or falsified. Data is recorded in a kind of digital ledger called a blockchain, copies of which are distributed and stored across a network of participating computer systems. With the advent of cryptocurrencies and NFTs, which are entirely predicated on blockchain technology, and the integration of blockchain architecture into online and high-security networked spaces more broadly, there has never been a greater need for software, network, and financial professionals to be familiar with this technology. Blockchain for Real World Applications provides a practical discussion of this subject and the key characteristics of blockchain architecture. It describes how blockchain technology gains its essential irreversibility and persistency and discusses how this technology can be applied to the information and security needs of different kinds of businesses. It offers a comprehensive overview of the ever-growing blockchain ecosystem and its burgeoning role in a connected world. Blockchain for Real World Applications readers will also find:* Treatment of real-world applications such as ID management, encryption, network security, and more* Discussion of the UID (Unique Identifier) and its benefits and drawbacks * Detailed analysis of privacy issues such as unauthorized access and their possible blockchain-based solutionsBlockchain for Real World Applications is a must for professionals in high-security industries, as well as for researchers in blockchain technologies and related areas. RISHABH GARG, Birla Institute of Technology and Science - Pilani, India. He has authored two books and has extensive professional experience in blockchain architecture and related technologies. Illustrations xixForeword xxvPreface xxvii1 INTRODUCTION 12 DISTRIBUTED LEDGER TECHNOLOGY 112.1 Different Types of Distributed Ledger Technology 112.2 Chronological Evolution 132.3 Blockchain Architecture 153 BLOCKCHAIN ECOSYSTEM 233.1 Working of Blockchain 243.2 Key Characteristics 293.3 Unspent Transaction Output 303.4 Classification of Blockchain on Access Management 303.5 Consensus 323.6 Payment Verification in Blockchain 373.7 Hashgraph 393.8 Scalability 404 TRANSACTIONS IN BITCOIN BLOCKCHAIN 434.1 Coinbase Transactions 434.2 Transactions Involving Fiat Currency 474.3 Top Fiat Currencies for Bitcoin Transactions 504.4 Price Determination for Bitcoin in Transactions 514.5 Controlling Transaction Costs in Bitcoin 575 ETHEREUM AND HYPERLEDGER FABRIC 675.1 Early Attempts to Program Cryptocurrencies 685.2 Smart Contracts 695.3 Working of Ethereum 725.4 Hyperledger 745.5 Working of Hyperledger 745.6 Ethereum Versus Hyperledger 795.7 Decentralized Applications 815.8 Tokens 846 IDENTITY AS A PANACEA FOR THE REAL WORLD 876.1 Identity Systems 876.2 Centralized Model 926.3 Cost and Benefits 1006.4 Quest for One World – One Identity 1087 DECENTRALIZED IDENTITIES 1157.1 Identity Models 1157.2 Block chain-based Solutions 1177.3 Identity Management 1197.4 Identity Storage | Interplanetary File System 1217.5 Biometric Solutions 1307.6 Identity Access 1397.7 Merits of a Proposed System 1417.8 Disadvantages of the Proposed System 1447.9 Challenges 1457.10 Solutions with Hyperledger Fabric 1468 ENCRYPTION AND CYBERSECURITY 1518.1 Cryptography 1518.2 Playfair Cipher 1538.3 Hill Cipher 1678.4 RSA Algorithm in Cryptography 1718.5 Multiple Precision Arithmetic Library 1758.6 SHA-512 Hash in Java 1808.7 Cybersecurity 1839 DATA MANAGEMENT 1939.1 Data Science 1939.2 Education and Employment Verification 1949.3 Health Care 2049.4 Genomics 2109.5 Food Supply Chain 2119.6 Real Estate 2139.7 Crowd Operations 21610 BANKING AND FINANCE 22710.1 Banking and Investment 22710.2 Trade Finance 23610.3 Auction Process 24810.4 Decentralized Finance 26310.5 Prediction Markets 28611 GROWING LANDSCAPE OF BLOCKCHAIN 29711.1 Blockchain Applications in Real World: An Overview 29711.2 e-Governance 29711.3 Supply Chain Management 30511.4 e-Commerce 31011.5 Distributed Resources and Internet of Things 31711.6 Decentralized Streaming 32012 FUNCTIONAL MECHANISM 32912.1 Software Requirements 32912.2 Installing a Mobile Application 33012.3 Fetching or Uploading the Documents 33112.4 Government or Third-party Access 33512.5 Credibility Through Smart Contracts 33612.6 User-Optimized Features 337Appendices 339Glossary 347Index 371
A Textbook of Data Structures and Algorithms, Volume 3
Data structures and algorithms is a fundamental course in Computer Science, which enables learners across any discipline to develop the much-needed foundation of efficient programming, leading to better problem solving in their respective disciplines.A Textbook of Data Structures and Algorithms is a textbook that can be used as course material in classrooms, or as self-learning material. The book targets novice learners aspiring to acquire advanced knowledge of the topic. Therefore, the content of the book has been pragmatically structured across three volumes and kept comprehensive enough to help them in their progression from novice to expert.With this in mind, the book details concepts, techniques and applications pertaining to data structures and algorithms, independent of any programming language. It includes 181 illustrative problems and 276 review questions to reinforce a theoretical understanding and presents a suggestive list of 108 programming assignments to aid in the implementation of the methods covered.G A VIJAYALAKSHMI PAI, SMIEEE, is a Professor of Computer Applications at PSG College of Technology, Coimbatore, India. She has authored books and investigated research projects funded by government agencies in the disciplines of Computational Finance and Computational Intelligence.Preface xiAcknowledgments xviiCHAPTER 13 HASH TABLES 113.1 Introduction 113.1.1 Dictionaries 113.2 Hash table structure 213.3 Hash functions 413.3.1 Building hash functions 413.4 Linear open addressing 513.4.1 Operations on linear open addressed hash tables 813.4.2 Performance analysis 1013.4.3 Other collision resolution techniques with open addressing 1113.5 Chaining 1313.5.1 Operations on chained hash tables 1513.5.2 Performance analysis 1713.6 Applications 1813.6.1 Representation of a keyword table in a compiler 1813.6.2 Hash tables in the evaluation of a join operation on relational databases 1913.6.3 Hash tables in a direct file organization 2213.7 Illustrative problems 23CHAPTER 14 FILE ORGANIZATIONS 3314.1 Introduction 3314.2 Files 3414.3 Keys 3614.4 Basic file operations 3814.5 Heap or pile organization 3814.5.1 Insert, delete and update operations 3914.6 Sequential file organization 3914.6.1 Insert, delete and update operations 3914.6.2 Making use of overflow blocks 4014.7 Indexed sequential file organization 4114.7.1 Structure of the ISAM files 4114.7.2 Insert, delete and update operations for a naïve ISAM file 4214.7.3 Types of indexing 4314.8 Direct file organization 4814.9 Illustrative problems 50CHAPTER 15 K-D TREES AND TREAPS 6115.1 Introduction 6115.2 k-d trees: structure and operations 6115.2.1 Construction of a k-d tree 6515.2.2 Insert operation on k-d trees 6915.2.3 Find minimum operation on k-d trees 7015.2.4 Delete operation on k-d trees 7215.2.5 Complexity analysis and applications of k-d trees 7415.3 Treaps: structure and operations 7615.3.1 Treap structure 7615.3.2 Operations on treaps 7715.3.3 Complexity analysis and applications of treaps 8215.4 Illustrative problems 83CHAPTER 16 SEARCHING 9316.1 Introduction 9316.2 Linear search 9416.2.1 Ordered linear search 9416.2.2 Unordered linear search 9416.3 Transpose sequential search 9616.4 Interpolation search 9816.5 Binary search 10016.5.1 Decision tree for binary search 10116.6 Fibonacci search 10416.6.1 Decision tree for Fibonacci search 10516.7 Skip list search 10816.7.1 Implementing skip lists 11216.7.2 Insert operation in a skip list 11316.7.3 Delete operation in a skip list 11416.8 Other search techniques 11616.8.1 Tree search 11616.8.2 Graph search 11616.8.3 Indexed sequential search 11616.9 Illustrative problems 118CHAPTER 17 INTERNAL SORTING 13117.1 Introduction 13117.2 Bubble sort 13217.2.1 Stability and performance analysis 13417.3 Insertion sort 13517.3.1 Stability and performance analysis 13617.4 Selection sort 13817.4.1 Stability and performance analysis 14017.5 Merge sort 14017.5.1 Two-way merging 14117.5.2 k-way merging 14317.5.3 Non-recursive merge sort procedure 14417.5.4 Recursive merge sort procedure 14517.6 Shell sort 14717.6.1 Analysis of shell sort 15317.7 Quick sort 15317.7.1 Partitioning 15317.7.2 Quick sort procedure 15617.7.3 Stability and performance analysis 15817.8 Heap sort 15917.8.1 Heap 15917.8.2 Construction of heap 16017.8.3 Heap sort procedure 16317.8.4 Stability and performance analysis 16717.9 Radix sort 16717.9.1 Radix sort method 16717.9.2 Most significant digit first sort 17117.9.3 Performance analysis 17117.10 Counting sort 17117.10.1 Performance analysis 17517.11 Bucket sort 17517.11.1 Performance analysis 17817.12 Illustrative problems 179CHAPTER 18 EXTERNAL SORTING 19718.1 Introduction 19718.1.1 The principle behind external sorting 19718.2 External storage devices 19818.2.1 Magnetic tapes 19918.2.2 Magnetic disks 20018.3 Sorting with tapes: balanced merge 20218.3.1 Buffer handling 20418.3.2 Balanced P-way merging on tapes 20518.4 Sorting with disks: balanced merge 20618.4.1 Balanced k-way merging on disks 20718.4.2 Selection tree 20818.5 Polyphase merge sort 21218.6 Cascade merge sort 21418.7 Illustrative problems 216CHAPTER 19 DIVIDE AND CONQUER 22919.1 Introduction 22919.2 Principle and abstraction 22919.3 Finding maximum and minimum 23119.3.1 Time complexity analysis 23219.4 Merge sort 23319.4.1 Time complexity analysis 23319.5 Matrix multiplication 23419.5.1 Divide and Conquer-based approach to “high school” method of matrix multiplication 23419.5.2 Strassen’s matrix multiplication algorithm 23619.6 Illustrative problems 239CHAPTER 20 GREEDY METHOD 24520.1 Introduction 24520.2 Abstraction 24520.3 Knapsack problem 24620.3.1 Greedy solution to the knapsack problem 24720.4 Minimum cost spanning tree algorithms 24920.4.1 Prim’s algorithm as a greedy method 25020.4.2 Kruskal’s algorithm as a greedy method 25020.5 Dijkstra’s algorithm 25120.6 Illustrative problems 251CHAPTER 21 DYNAMIC PROGRAMMING 26121.1 Introduction 26121.2 0/1 knapsack problem 26321.2.1 Dynamic programming-based solution 26421.3 Traveling salesperson problem 26621.3.1 Dynamic programming-based solution 26721.3.2 Time complexity analysis and applications of traveling salesperson problem 26921.4 All-pairs shortest path problem 26921.4.1 Dynamic programming-based solution 27021.4.2 Time complexity analysis 27221.5 Optimal binary search trees 27221.5.1 Dynamic programming-based solution 27421.5.2 Construction of the optimal binary search tree 27621.5.3 Time complexity analysis 27921.6 Illustrative problems 280CHAPTER 22 P AND NP CLASS OF PROBLEMS 28722.1 Introduction 28722.2 Deterministic and nondeterministic algorithms 28922.3 Satisfiability problem 29222.3.1 Conjunctive normal form and Disjunctive normal form 29422.3.2 Definition of the satisfiability problem 29422.3.3 Construction of CNF and DNF from a logical formula 29522.3.4 Transformation of a CNF into a 3-CNF 29622.3.5 Deterministic algorithm for the satisfiability problem 29722.3.6 Nondeterministic algorithm for the satisfiability problem 29722.4 NP-complete and NP-hard problems 29722.4.1 Definitions 29822.5 Examples of NP-hard and NP-complete problems 30022.6 Cook’s theorem 30222.7 The unsolved problem P = NP 30322.8 Illustrative problems 304References 311Index 313Summaries of other volumes 317
Beginning Cloud Native Development with MicroProfile, Jakarta EE, and Kubernetes
Get ready to develop microservices using open source Eclipse MicroProfile and Jakarta EE, and deploy them on Kubernetes/Docker. This book covers best practices for developing cloud-native applications with MicroProfile and Jakarta EE.This book introduces you to cloud-native applications and teaches you how to set up your development environment. You'll learn about the various components of MicroProfile, such as fault tolerance, config, health check, metrics, and JWT auth. You'll develop a RESTful web service made up of some microservices. You'll deploy your application on Docker and Kubernetes.After reading this book, you'll come away with the fundamentals you need to build and deploy your first cloud-native Java-based app.WHAT YOU'LL LEARN* Build your first cloud-native Java-based app with the open source MicroProfile platform, and Jakarta EE 10 APIs * Develop a RESTful web service using MicroProfile and Jakarta EE* Discover and explore the key components of the MicroProfile framework, such as config, metrics, health, JWT authentication, and more* Deploy your cloud-native application on the Kubernetes container orchestration platform* Get up to speed with other popular technologies such as Docker containers, Kubernetes clusters, and ZipkinWHO THIS BOOK IS FORProgrammers with at least some prior experience in Java programming who may be new to MicroProfile and Jakarta EE. Some prior experience with Java-based microservices and web development is recommended, but not required.TARUN TELANG is a hands-on technologist with extensive experience in architecture and implementing multi-tiered, highly scalable software applications. He has more than 17 years of expertise developing software applications for well-known companies such as Microsoft, Oracle, and SAP.In 2005, Tarun worked on configuration and management in several enterprise solutions for SAP using the Java Management Extensions (JMX) technology. He also gained expertise in various integration technologies, such as SOAP, XML, and JSON, and used them to develop solutions to handle message-oriented communications across numerous systems. In 2007, Tarun was named SAP Mentor and Community Influencer for his articles and blog posts on emerging technologies and for promoting innovative solutions in the SAP Developer Community.Tarun has the following certifications: Oracle Certified Programmer for Java 6.0 Platform, SAP Certified Development Consultant for NetWeaver 04 Java Web Application Development, SAP Certified Application Management Expert for End-to-End Root Cause Analysis - Solution Manager 4.0, and NASBA Certification on Remote Work.Tarun is an expert in web, mobile, and cloud technologies. He has developed many end-to-end cloud-based solutions using various architectural patterns, including Microservices, RESTful web services, and Service Oriented Architecture.For more than 15 years, Tarun has been actively publishing technical articles and blogs on various software technologies. He frequently writes articles on Java and related technologies. He has also authored multiple books on Java and Jakarta EE 10.Having worked in Canada and Germany, Tarun currently resides in Hyderabad, India, with his wife and child. You can follow him on Twitter at @taruntelang or visit his LinkedIn Profile.Tarun loves mentoring software professionals and programmers, and teaching them about current industry trends and best practices. His blogs at blogs.taruntelang.me are excellent resources for everything related to Java technology.1. Introduction to Cloud-Native Applications1.1. What are Cloud-Native Applications?1.2. Why Use Cloud-Native Applications?1.3. What are the Benefits of Using Cloud-Native Applications?2. Setting Up Your Development Environment2.1. Prerequisites2.2. Installing Java SE 172.3. Installing Kubernetes2.4. Installing Docker3. Creating a Config Component3.1. What is a Config Component?3.2. Setting Up the Config Component3.3. Accessing the Configuration Data in Your Application4. Using the Fault Tolerance Component4.1. What is the Fault Tolerance Component?4.2. Configuring the Fault Tolerance Component4.3. Handling Failures in Your Application5. Using the Health Check Component5.1. What is the Health Check Component?5.2. Configuring the Health Check Component5.3. Checking the Health of Your Application6. Using the Metrics Component6.1. What is the Metrics Component?6.2. Collecting Metrics Data in Your Application7. Using the JWT Authentication Component7.1. What is the JWT Authentication Component?7.2. Configuring the JWT Authentication Component7.3. Authenticating Users in Your Application8. Developing a RESTful Web Service8.1. What is a RESTful Web Service?8.2. Developing a RESTful Web Service8.3. Implementing the HTTP Methods9. Deploying an Application on Kubernetes/Docker9.1. What is Kubernetes?9.2. What is Docker?9.3. Installing Kubernetes9.4. Creating a Kubernetes Cluster9.5. Installing Docker on Kubernetes9.6. Deploying an Application on Kubernetes/Docker9.7. Benefits of using Jakarta EE and Kubernetes/Docker for developing cloud-native applications.
A Brief Introduction to Web3
Journey into the world of Web3-based application development, its related protocols, and its usage in developing decentralized applications. This book will explain how programmable blockchains are revolutionizing the world of web applications, which can be run on decentralized platforms or peer-to-peer networks like IPFS.You'll start with an introduction to decentralization with a focus on blockchain implementations like Ethereum and Bitcoin. You'll then learn to develop simple decentralized applications (dApps) using Solidity, the language used for developing apps with Ethereum as well as smart contracts, wallets, gateways and NFTs. This book also covers how security and scale are addressed by L2 networks for scaling Bitcoin and Ethereum blockchains.A Brief Introduction to Web3 is your go-to guide for setting up simple Web3 applications using the Ethereum blockchain programming model.WHAT YOU WILL LEARN* Build NFT tokens* Examine Web3 differs from Web2-based applications* Understand the fundamentals of blockchain and the corresponding data structures around it* See how consensus and trustless computing can be performed using blockchain * Use Solidity and Truffle to build Web3 applicationsWHO THIS BOOK IS FORSoftware developers and architects who are looking to hone their skills in dApps and web3 applications developed on sound principles of decentralized computing.SHASHANK MOHAN JAIN is an advocate for web3 and decentralized development and has been working in the IT industry for around 20 years mainly in the areas of cloud computing and distributed systems. He has keen interests in virtualization techniques, security, and complex systems. Shashank has 34 software patents (many yet to be published) to his name in the area of cloud computing, IoT, and machine learning. He is a speaker at multiple reputed cloud conferences. Shashank holds Sun, Microsoft, and Linux kernel certifications.Chapter1. Introduction to DecentralizationChapter 2. BlockchainChapter 3.Solidity.Chapter 4. Wallets and Gateways.Chapter 5. Remix IDE.Chapter 6. Truffle.Chapter 7. IPFS and NFTsChapter 8. Hardhat.
Developing Cloud-Native Solutions with Microsoft Azure and .NET
Build and deploy applications by leveraging Azure PaaS and serverless services using Azure DevOps and GitHub Actions. This book provides step-by-step explanations of essential concepts, practical examples, and self-assessment questions that will help you gain the necessary expertise to build cloud-native solutions using Microsoft Azure and .NET.The book starts with essential topics that will help get you familiar with the fundamental concepts of Azure, followed by example-based guides on building distributed solutions using Azure Web App, Azure Messaging, and communication services. You will then learn how to implement the knowledge you've thus far gained to build containerized workloads using Azure Container-based services. Next, you will focus on building solutions by using Azure Storage and Data services, where you will go through Azure Blob Storage and learn how to interact with Azure Cosmos DB from applications using the .NET SDK. Moving forward, you will explore how to build intelligent applications using Azure AI and IoT services, including Azure Cognitive Services. In the book's final section, you will explore ways to deploy applications using Azure DevOps and GitHub Actions.After reading this book, you will be able to build scalable, enterprise-grade applications using various Azure services.WHAT YOU WILL LEARN* Build an ASP.NET 6 Web API to send messages to Azure Service Bus Queue* Use and implement Azure Communication Services* Build and containerize a .NET API* Understand IoT solutions using Azure IoT Hub, Azure Functions, and Azure Cosmos DBWHO THIS BOOK IS FORExperienced developers and cloud architects working with Microsoft Azure.ASHIRWAD SATAPATHI is a software developer with a leading IT firm whose expertise is building scalable applications with .NET Core. He has a deep understanding of how to build full-stack applications using .NET and Azure PaaS and serverless offerings. He is an active blogger in the C# Corner developer community. He was awarded the C# Corner MVP (September 2020) for his remarkable contributions to the developer community.ABHISHEK MISHRA is an architect with a leading software multinational company and has deep expertise in designing and building enterprise-grade Intelligent Azure and .NET-based architectures. He is an expert in .NET full stack, Azure (PaaS, IaaS, serverless), Infrastructure as Code, Azure Machine Learning, Intelligent Azure (Azure Bot Services and Cognitive Services), and Robotics Process Automation. He has 15+ years of experience working in top organizations in the industry. He loves blogging and is an active blogger in the C# Corner developer community. He was awarded the C# Corner MVP (December 2018 and 2019) for his contributions to the developer community.Updated TOCCHAPTER 1: INTRODUCTIONCHAPTER GOAL: TO PROVIDE AN OVERVIEW OF THE VARIOUS AZURE SERVICES THAT WE ARE GOING TO USE IN THIS BOOK TO BUILD SCALABLE, ENTERPRISE-GRADE APPLICATIONS.NO OF PAGES 10-20SUB -TOPICS1. Introduction to Cloud Computing2. Cloud Deployment Models3. Serverless Computing4. Quick tour of Azure Services5. SummaryCHAPTER 2: BUILD A WEB API TO SEND MESSAGES TO AZURE SERVICE BUSCHAPTER GOAL: TO DEVELOP AND DEPLOY A WEB API TO SEND MESSAGES TO AZURE SERVICE BUS QUEUENO OF PAGES: 25-30SUB - TOPICS1. Introduction to Azure Service Bus2. What is Azure Service Bus Queue and Topic3. Create an Azure Service Bus instance4. Build an ASP.NET 6 Web API to send messages to Azure Service Bus Queue5. Test the API using Postman6. SummaryCHAPTER 3: BUILD A WORKER SERVICE TO PROCESS MESSAGES FROM AZURE SERVICE BUSCHAPTER GOAL: TO BUILD A WORKER SERVICE TO PROCESS MESSAGES ENQUEUES IN AZURE SERVICE BUSNO OF PAGES: 25-30Sub - Topics:1. Getting Started with Worker Service2. Building a worker service with ASP.NET 63. Explore ways to consume messages from Azure Service Bus Queue4. Build a worker service to process messages5. SummaryCHAPTER 4: BUILDING A MICROSERVICE USING .NET AND AKSCHAPTER GOAL: TO BUILD A MICROSERVICE APPLICATION USING .NET, CONTAINERIZE THE MICROSERVICE AND RUN IT ON AZURE KUBERNETES SERVICENO OF PAGES: 30-40SUB - TOPICS:1. Introduction to Azure Kubernetes Service and Azure Container Registry2. Build a Microservice using .NET3. Create an Azure Kubernetes Service and Azure Container Registry4. Containerize the Microservice and push it to Azure Container Registry5. Run the Microservice on Azure Kubernetes Service6. SummaryCHAPTER 5: SECURE MICROSERVICE WITH AZURE ADCHAPTER GOAL: TO IMPLEMENT ROLE-BASED AUTHENTICATION AND AUTHORIZATION WITH AZURE AD TO SECURE OUR .NET APPLICATIONSNO OF PAGES: 20-30SUB - TOPICS:1. Introduction to Azure AD2. Register an application in the Azure AD Tenant3. Configure Authentication for the Microservice application running on AKS4. Configure Role based Authorization for the Microservice application running on AKS5. SummaryCHAPTER 6: RUNNING APIS ON AZURE CONTAINER APPSCHAPTER GOAL: TO DEPLOY OUR .NET WORKLOADS TO AZURE WITH AZURE CONTAINER APPSNO OF PAGES: 20-30SUB - TOPICS:1. Introduction to Azure Container Apps2. Build and containerize .NET API3. Push the container to Azure Container Registry4. Create a Azure Container App and run the Container on Azure Container Apps5. SummaryCHAPTER 7: IMPLEMENT MONITORING AND LOGGING FOR MICROSERVICE RUNNING ON AKS WITH AZURE MONITOR AND AZURE APPLICATION INSIGHTSCHAPTER GOAL: TO CONFIGURE METRICS, LOGS AND ALERTS FOR THE MICROSERVICE APPLICATION RUNNING INSIDE THE AZURE KUBERNETES SERVICE CLUSTERNO OF PAGES: 30-40SUB - TOPICS:1. Introduction to Application Insights, Log Analytics Workspace and Azure Monitor2. Create Application Insights, Log Analytics Workspace and Azure Monitor3. Configure logging and metrics for .NET based Microservice4. Configure alerts for .NET based Microservice application5. Query Logs from Log Analytics Workspace using KQL6. SummaryCHAPTER 8: BUILD AN IOT SOLUTION WITH AZURE IOT HUB, AZURE FUNCTIONS AND AZURE COSMOS DBCHAPTER GOAL: TO DESIGN AND BUILD AN IOT SOLUTION USING AZURE IOT HUB, AZURE FUNCTIONS AND AZURE COSMOS DBNO OF PAGES: 30-40SUB - TOPICS:1. Getting started with Azure IoT Hub2. Create an Azure IoT hub instance3. Build virtual device to send messages to IoT hub4. Getting Started with Azure Functions5. Build an IoT hub Triggered Azure Function to process messages from Azure IoT hub and store the data in Azure Cosmos DB6. SummaryCHAPTER 9: BUILD A DESKTOP APPLICATION FOR SPEECH TO TEXT CONVERSATION USING AZURE COGNITIVE SERVICECHAPTER GOAL: TO BUILD A .NET 6 DESKTOP APPLICATION AND USE AZURE COGNITIVE SERVICES TO CONVERT A SPEECH TO A TEXT TRANSCRIPT IN ENGLISH LANGUAGE.NO OF PAGES: 30SUB - TOPICS:1. Introduction to Azure Cognitive Services Speech to Text API2. Provision a Speech to Text API to perform speech to text conversion3. Build a .NET 6 Desktop application to convert speech to text4. SummaryCHAPTER 10: BUILD A MULTI-LANGUAGE TEXT TRANSLATOR USING AZURE COGNITIVE SERVICECHAPTER GOAL: TO BUILD A .NET 6 WEB API AND USE AZURE COGNITIVE SERVICES TO TRANSLATE TEXTNO OF PAGES: 20-30SUB - TOPICS:1. Introduction to Azure Cognitive Services Language Translation API2. Provision a Language Translation API to perform translation3. Build a .NET 6 Web API application and integrate with Language Translation API4. SummaryCHAPTER 11: DEPLOY A ASP.NET 6 WEB APPLICATION TO AZURE WEBAPP USING GITHUB ACTIONSCHAPTER GOAL: TO BUILD A ASP.NET 6 WEB APP AND DEPLOY IT ON AZURE WEB APP USING AZURE GITHUB ACTIONSNO OF PAGES: 20SUB - TOPICS:1. Introduction to GitHub Actions2. Provision Azure WebApp using ARM Template3. Build .NET 6 Web application using GitHub Actions4. Deploy the .NET 6 Web application on Azure WebApp using GitHub Actions5. Summary
Boozang from the Trenches
Test Automation is a key aspect of delivering high-quality software and reducing time to market. Several tools and approaches are available today, each with its own constraints and specificity. This book introduces Boozang, a codeless web automation tool, using a real-life enterprise project as source for examples.You'll have the opportunity to learn the basic features of Boozang and how to implement end-to-end automated scenarios, mixing GUI and API actions. Integration with JIRA-XRay and Jenkins is also covered to show how Boozang can be used effectively in an enterprise environment. The book is filled with examples that go beyond the Boozang tool, and cover the setup of a test automation project in a real context, with practical solutions as well as open points for which we are still looking for new ideas.YOU WILL LEARN HOW TO:· Install and set up a project with Boozang· Create a modular test suite and use Gherkin to define scenarios· Integrate Boozang with JIRA-XRay and work in a team with code branches· Build a Jenkins pipeline to execute the automated scenarios nightly and reduce the execution time via parallelismTHIS BOOK IS FOR:Testers and test managers, IT projects leads, Release and Delivery Managers, Developers, and Business AnalystsGianni is a simple guy from Livorno (a beautiful port city in Tuscany) who never thought he would end up with a Ph.D. at CERN (European Organization for Nuclear Research, cern.ch) and then working for a prestigious company in Switzerland. But he always knew that at some point in his life, he would have written a book.In his early career as a software developer, he built some C/C++ code but, pretty soon, debugging null pointer exceptions drove him crazy. He then decided he would be better off testing software rather than building it.Wherever he worked, he tried to push for automating tests. Because manual testing, let’s be honest, is not fun, and it can be dangerously repetitive. People at work must have fun, if possible. At Touring Club Suisse, he defined an IT Test Strategy stating “Test automation is developers’ stuff” until he discovered Boozang. And then, in his first two hours of using this tool, he thought, “Man, this is fun!”.Thus, he finally found a good topic for his book.Part 1: Testing web applications in an Enterprise context, why Boozang Chapter 1: Web Test Automation in an Enterprise environmentCHAPTER GOAL: This chapter introduces basic Test Automation concepts that will be used throughout the book. Besides ISTQB standard terminology, I’ll also cover the constraints typical of an Enterprise environment that might not be the same for small startups and IT giants.NO OF PAGES 15SUB -TOPICS1. Common Test Automation challenges2. Test levels, test types and testing roles3. Test automation in agile development4. Test Automation ROI, theory and practiceChapter 2: Selenium, best practices and pain pointsCHAPTER GOAL: This chapter presents the typical approach to testing web applications with coded solutions like Selenium and highlights the main pain points that could undermine a Test Automation initiative's success.NO OF PAGES: 5SUB - TOPICS1. Locators and Page Objects pattern2. Browsers and WebDriver compatibility3. Timing and waits4. Data management5. Reporting and script readability6. Development skillsChapter 3: Meet BoozangCHAPTER GOAL: This chapter introduces Boozang and how it addresses the pain points of a coded solution as described in the previous chapter. It also presents a possible selection approach for selecting an automation tool, particularly the one I followed before adopting Boozang.NO OF PAGES : 11SUB - TOPICS:1. Proof of Concept phase2. Pilot phase3. Why Boozang4. Codeless approach, how important is it?Chapter 4: The TCS projectCHAPTER GOAL: This chapter presents the context of the TCS project used all along the book to provide practical examples. I believe that there is no one size fits all solution for software testing and tools. Therefore, clarifying the context is very important to better understand the examples and consider possible adaptations one will have to make for a different context.NO OF PAGES: 8SUB - TOPICS:1. TCS Organization and Test Automation history2. NIS project introduction3. Test automation stream, NISTA setupChapter 5: How Boozang was bornCHAPTER GOAL: This chapter is a special one about the history behind Boozang. I believe it gives a great idea about this tool's strengths: the two key persons behind it. This input has been kindly provided by Mats Ljunggren.PART 2: Boozang main concepts and use cases Chapter 6: Starting up with BoozangCHAPTER GOAL: One of the advantages of a tool like Boozang versus a coded approach is that setting up your first projects is really easy and fast. Nothing to install, no code or POM files to prepare. This chapter will go over the registration process and the few steps needed to create a project. We will also see how to administer your account and projects and finally show how Boozang works behind the scenes.NO OF PAGES: 22SUB - TOPICS:1. Creating your first project2. The administrative User Interface3. Boozang under the hood4. Practice: NISTA setup part 1Chapter 7: Main concepts and entitiesCHAPTER GOAL: This chapter describes the core objects available in Boozang and starts introducing the Integrated Development Environment (IDE).NO OF PAGES: 38SUB - TOPICS:1. Modules and SubModules2. Application environments3. Tests and Test Suites4. Features and Scenarios5. Searching and bookmarks6. Recording7. Generate and reference Test8. Execution and Reporting9. Projects settings and UI Customization10. Updates from the trenchesChapter 8: Elements location approachCHAPTER GOAL: This chapter describes Boozang’s unique approach for locating WEB GUI elements, one of the features that sets it apart from other tools. Boozang, with its set of locators based on natural language, allows you to focus on the scenario flow rather than the web page DOM.NO OF PAGES: 14SUB - TOPICS:1. Boozang location strategy2. Fine tuning the locators3. Validating the expected resultsChapter 9: Exit conditions, conditional flows, and timersCHAPTER GOAL: The first test you will try with Boozang will be a simple sequential list of actions. But, as soon as you start implementing real scenarios, you will have to use exit conditions, loops, and conditional flows. In combination with this, you may need to adjust the timing of some locators, as some applications may have slow background processes, heavy loading pages, and/or javascripts. In this chapter, we see how to apply these concepts to build solid and reusable building blocks.NO OF PAGES: 21SUB - TOPICS:1. Exit conditions2. Conditional flows3. Loop groups4. TimersChapter 10: Data ManagementCHAPTER GOAL: This is probably one of the most important chapters, as data management is one of the main keys to build reusable components. Boozang is extremely powerful and flexible when it comes to managing test data. But power and flexibility can hide a complexity cost if you don’t use it properly.NO OF PAGES: 13SUB - TOPICS:1. Data management concepts2. Parameters3. Project data ($project)4. Module data ($module)5. Test data ($test)6. Loops ($loop, $group, $action)7. Examples from the trenchesChapter 11: Reporting and troubleshootingCHAPTER GOAL: This chapter covers some standard and more advanced reporting features available in Boozang as well as the best way you can analyze failures with minimal effort.NO OF PAGES: 20SUB - TOPICS:1. Test reports2. Trend reports3. Troubleshooting failuresPART 3: Integrations and Advanced topicsChapter 12: APIs and mixed API/GUI testingCHAPTER GOAL: In today’s world applications are highly interconnected, both with internal and external systems. Restful APIs are becoming the de-facto standard to allow this communication. This chapter explains how to test Restful APIs and create scenarios with both GUI and API actions. Boozang allows you to do API testing as well as mix API calls within your GUI tests.NO OF PAGES: 17SUB - TOPICS:1. Restful APIs2. Why Boozang for testing APIs?3. API Tests in Boozang4. Server side mock with JSON Server5. API Tests from the trenchesChapter 13: Gherkin and Behavior Driven DevelopmentCHAPTER GOAL: This chapter introduces the reader to the Gherkin language and the practice of Behavior Driven Development (BDD), also known as Acceptance Test Driven Development (ATDD).NO OF PAGES: 18SUB - TOPICS:1. Behavior Driven Development2. Gherkin without BDD, pros and cons3. Gherkin language, readability above all,... if possible4. Some good and bad examplesChapter 14: JIRA with Boozang via XRayCHAPTER GOAL: This chapter shows how to effectively manage releases via JIRA, XRAy and Boozang to have a complete quality view on releases when using both manual and automated tests.NO OF PAGES: 17SUB - TOPICS:1. Using JIRA with XRay2. Boozang integration with XRayChapter 15: Jenkins and the Boozang runnerCHAPTER GOAL: This chapter shows how to use Jenkins for scheduling and reporting automated tests results in a CI/CD pipeline. We will see how Boozang can be used with other tools to provide a fully automated pipeline and also how to reduce the execution time through parallel runs.NO OF PAGES: 40SUB - TOPICS:1. Continuous Delivery and the need for automating acceptance tests2. Puppeteer and the Boozang runner3. How to use the Docker runner4. Keeping execution time low with parallel runs5. Reports and log files6. Publishing reports on Jenkins and JIRA7. Complete working pipeline8. Docker in Docker setupChapter 16: Boozang for teamsCHAPTER GOAL: Working with a team increases productivity but brings new challenges. This chapter covers all the Boozang features for collaborative work, but also some specific details on how to effectively collaborate in a Test Automation project.NO OF PAGES: 26SUB - TOPICS:1. Team collaboration2. Explicit lock3. Concurrent development and safe refactoring with branches4. Tests Map5. Quality controlConclusionsAppendix
Exploring Blazor
Build and develop web applications with Blazor in C#. This book covers both server-side and client-side Blazor, along with its latest features and the structure of the technology. You’ll see that Blazor is a web UI framework based on C#, Razor, and HTML, and how it runs front-end logic using C#, either on the server or on the browser, using WebAssembly.This new edition not only covers the new structure for the Blazor environment, it also demonstrates the latest features, such as adding API features to a Blazor server project; creating code-behind files for C# and CSS; new ways to pick, save, and handle files in Blazor; and much more. The code and project layout have been updated in .NET 7 for this new edition.The book starts with an introduction to Blazor, along with its various categories and its basics and syntax, including Razor syntax implementation. You will go through Blazor navigation and components, and learn its life cycle events and other components. You will learn features specific to each Blazor type. You will see how Blazor works with storage, files, and JavaScript, and you will create a Blazor code library. You will also create web applications in Blazor using practical implementations and real-life scenarios for both the server side and the client side.After reading this book, you will be able to build web applications with Blazor in C#11 and .NET Core 7.0.WHAT YOU WILL LEARN* Bind data and handle events in C# Blazor* Handle components and page navigation in Blazor* Connect Blazor front-end to APIs* Interact with files using Blazor* Understand the layout of Visual Studio Blazor project templates WHO THIS BOOK IS FORC# and .NET Core developers.TAURIUS LITVINAVICIUS is a businessman and technology expert based in Lithuania who has worked with organizations in building and implementing various projects in software development, sales, and other fields of business. He currently works on modern financial applications and consults companies on technology and cost-related issues. As with most of his projects, this book uses cutting-edge technologies, such as Blazor. Taurius is responsible for technological improvements, development of new features, and general management.CHAPTER 1 – INTRODUCTION1. What is Blazor2. Blazor typesCHAPTER 2 – SYNTAX AND BASICS OF BLAZOR1. Syntax2. Binding data3. Events and event argumentsCHAPTER 3 – BLAZOR COMPONENTS AND NAVIGATION1. Pages and navigation2. Lifecycle events3. Components4. Custom events in componentsCHAPTER 4 – SPECIFICS OF DIFFERENT TYPES OF BLAZOR1. Injection (Blazor server-side)2. Static values in Blazor server-side3. Calling APIs (Blazor client-side)4. Adding API Controller (Blazor server-side)5. Cleaning project templates in Visual studioCHAPTER 5 – GENERAL BLAZOR1. Interact with Javascript2. Code-behind files3. Local storage4. Pick and save files5. Creating Blazor code library6. Background tasksCHAPTER 6 – PRACTICE TASKS (SERVER -SIDE BLAZOR)1. Task 12. Task 2CHAPTER 7 – PRACTICE TASKS (CLIENT -SIDE BLAZOR)3. Task 14. Task 25. Task 3
Cloud Native Applications with Docker and Kubernetes
This book takes developers on a journey into the cloud with Docker and Kubernetes. It walks you through the basics of Docker containers, how they are built, run, and published, and how the Kubernetes system allows you to use containers to better manage a cloud native application. Additionally, it walks you through various issues in cloud architecture, and how to design a cloud architecture that will work with your application and your team.The book takes a unique approach, getting you immersed in each subject with tutorials, then building up your technical knowledge, and finally backing up and thinking about more big-picture issues. Part one introduces Docker, building and working with Docker images, and covering best practices for Docker Containers. Part two covers the practicalities of "cloud native” and managing a Kubernetes application, including a full working example. The last part covers the design of cloud and microservice architectures, including the use of enterprise message queues, multi-site configurations and the common values that such architectures follow.This approach accelerates learning and keeps you moving forward without leaving you behind. The appendices also contain a wealth of worthwhile reference material for routine cloud application management.WHAT YOU WILL LEARN* Understand Docker and containerization* Gain insight into what Kubernetes is* Master essential cloud architecture design principles* Design and implement notes for building cloud architecturesWHO THIS BOOK IS FORPrimarily developers who are moving to the cloud and want to get a sense of the environment they are getting into, and developers who want to move into a larger role of cloud architecture. Jonathan Bartlett is a senior software developer for McElroy Manufacturing. In his career he has served as senior developer and cloud architect roles for several companies in the biking industry, the music industry, the housing industry, and the medical industry. Jonathan has also taught computer science at the college and high school levels. In his spare time he writes for MindMatters.ai and also writes research papers on artificial intelligence, mathematics, and the applications of information theory to other sciences. Chapter 1. Introduction - what they should expect from the book.PART 1: DOCKERChapter 2. Docker Under the Hood - introduction to the history and technology behind Docker. I find that really understanding Docker containers well requires a brief knowledge of their history and implementation.Chapter 3. A Docker Interactive Tutorial - the basics of building and working with Docker imagesChapter 4. Best Practices for Docker Containers - general tips, Debian vs Alpine, etc.PART 2: KUBERNETESChapter 5. The Cloud Native Philosophy - a general intro to the goals behind “Cloud Native” and KubernetesChapter 6. Getting Started with Kubernetes - showing how to deploy a simple system on Kubernetes with the Kubernetes dashboardChapter 7. Managing Kubernetes with kubectl - an introduction to the kubectl toolChapter 8. The Kubernetes environment - now that the user has some hands-on with Kubernetes, we introduce the components themselvesChapter 9. Basic Kubernetes Management - how to work with YAML filesChapter 10. A Full Kubernetes Cloud Example - full Kubernetes code for a cluster for a Message Board systemChapter 11. Going Further in Kubernetes - a brief introduction to other parts of KubernetesPART 3: CLOUD ARCHITECTUREChapter 12. Cloud Architecture Introduction - why architecting mattersChapter 13. Basic Cloud Architectures - basic architectural diagrams for the most common situationsChapter 14. Microservice Architectures - what microservices are, why they are important, and how to build such an architectureChapter 15. Enterprise Message Queues - what message queues are and how they make micro service architectures more flexible and resilientChapter 16. Architecting Data Stores - various database (and other data store) optionsChapter 17. Multi-Site Configurations - introducing terminology and through processes behind multi-site configurationsChapter 18. Architecture Values - a discussion of common themes for cloud architecturesChapter 19. ConclusionAPPENDICES:1. Navigating the Linux Command Shell2. Installing Applications3. Common kubectl commands4. Kubernetes Storage Options5. Kubernetes Pod Scheduling6. Troubleshooting Kubernetes Clusters
Beginner's Guide to Streamlit with Python
This book will teach you the basics of Streamlit, a Python-based application framework used to build interactive dashboards and machine learning web apps. Streamlit reduces development time for web-based application prototypes of data and machine learning models. As you’ll see, Streamlit helps develop data-enhanced analytics, build dynamic user experiences, and showcases data for data science and machine learning models.Beginner's Guide to Streamlit with Python begins with the basics of Streamlit by demonstrating how to build a basic application and advances to visualization techniques and their features. Next, it covers the various aspects of a typical Streamlit web application, and explains how to manage flow control and status elements. You’ll also explore performance optimization techniques necessary for data modules in a Streamlit application. Following this, you’ll see how to deploy Streamlit applications on various platforms. The book concludes with a few prototype natural language processing apps with computer vision implemented using Streamlit.After reading this book, you will understand the concepts, functionalities, and performance of Streamlit, and be able to develop dynamic Streamlit web-based data and machine learning applications of your own.WHAT YOU WILL LEARN* How to start developing web applications using Streamlit* What are Streamlit's components * Media elements in Streamlit* How to visualize data using various interactive and dynamic Python libraries* How to implement models in Streamlit web applicationsWHO THIS BOOK IS FORProfessionals working in data science and machine learning domains who want to showcase and deploy their work in a web application with no prior knowledge of web development. Sujay Raghavendra is an IT professional with a Master’s Degree in Information Technology. His research interests include machine learning, computer vision, NLP, and deep learning. He has been a consultant for multiple research centers in various universities. He has published many research articles in international journals and is the author of the book “Python Testing with Selenium” published by Apress. CHAPTER 1. INTRODUCTION TO STEAMLITChapter Goal: Introduce the reader to the Streamlit libraryNo of pages - 10Sub -Topics1. A brief introduction to Streamlit2. Pre-requisites and installation guide for Streamlit3. Creating our first Streamlit applicationCHAPTER 2. TEXTS & TABLE ELEMENTSChapter Goal: The text is one of the important features that will be discussed in this chapter.No of pages - 10Sub -Topics1. Write title, header, sub-header, markdown and a caption.2. Code text, latex and default text in an application.3. json, table, metric and dataframe in the application.CHAPTER 3. CHARTS / VISUALIZATIONChapter Goal: Visualization is one of the important aspects in data science and machine learning. The visualizing techniques helps to understand the data more appropriately. In this chapter, we will implement different visualizing techniques that are available in python for data science and machine learning developers.No of pages - 20Sub -Topics1. Implementing simple charts2. Visualizing data using interactive charts in the application.3. Implementing data into the maps.CHAPTER 4. DATA AND MEDIA ELEMENTSChapter Goal: In this chapter, we will learn how media elements can be used in the streamlit application.No of pages - 20Sub -Topics1. We will first try to implement simple charts to start with and display them on the application.2. Next, we will visualize data using interactive charts in the application.3. At last, we will see how we can use data into the maps.CHAPTER 5. BUTTONSChapter Goal: One more important feature from Streamlit are buttons. These buttons are used to select the required data to process or visualize in the application developed.No of pages - 20Sub -Topics1. Introduction to buttons2. Discuss various buttons like download button, checkbox, radio buttons and multiselect.3. Sliders to select specific range of data.CHAPTER 6. FORMSChapter Goal: This chapter mainly focusses on data that will be provided by the user to process data in the application. We will discuss user data in terms forms.No of pages - 20Sub -Topics1. Discuss various types input data like numbers and text.2. Discuss advanced input data like date, time, file uploads and color picker.3. Getting live image data from webcamCHAPTER 7. NAVIGATIONSChapter Goal: This chapter discusses about navigation on the application to be developed. The primary aim is to learn how to switch between multiple pages in an application using navigation.No of pages - 20Sub -Topics1. Discuss on navigation.2. Discuss the complex layouts associated with it.3. Discuss on containers that can be used to hold multiple elements in it.CHAPTER 8. CONTROL FLOW AND STATUSChapter Goal: We will discuss on custom handling of application using control flow in this chapter. We will also learn on status elements provided by streamlit.No of pages - 20Sub -Topics1. Handling functionality of the application using control flow.2. Flow control of application can be changed from its default flow.3. We will also check on the what are status elements? and their types available in Streamlit.CHAPTER 9. ADVANCED FEATURESChapter Goal: In this chapter, we will discuss on huge data handling, mutating data and optimizing performance of the Streamlit application.No of pages - 20Sub -Topics1. Handling huge data in the Streamlit Application developed for data science and machine learning.2. Implementing various optimizing techniques to improve performance of the application. 3. How to mutate data in live application.CHAPTER 10. PROJECT BUILDChapter Goal: Finally, we will discuss to build and run complete application on various platforms.No of pages - 10Sub -Topics1. Discuss various application platforms available.2. Pre-requisites to implement developed application on these platforms.3. Implement and run the project.4. Test application on deployment and create requirement files for it.CHAPTER 11. USE CASE: NLP PROJECT PROTOTYPEChapter Goal: This chapter discusses about navigation on the application to be developed. The primary aim is to learn how to switch between multiple pages in an application using navigation.No of pages - 10Sub -Topics1. Pre-requisites.2. NLP module that will be implemented in our application.3. Test application after deployment.CHAPTER 12. USE CASE: COMPUTER VISION PROJECT PROTOTYPEChapter Goal: We will develop a complete streamlit application on Computer Vision from scratch. We will see how all the features we have seen in the above chapters will be implemented in this applicationNo of pages - 10Sub -Topics1. Pre-requisite.2. Computer Vision techniques that needs to implemented.3. Test all functions implemented on our deployed application.
Introducing Spring Framework 6
Spring Framework 6 remains - by far - the leading de-facto "out of the box" practical Java meta application development framework for building complex enterprise, cloud-native applications as well as web applications and microservices. INTRODUCING SPRING FRAMEWORK 6 is your hands-on tutorial guide for learning the Spring Framework 6 from top to bottom, and allows you to build an example application along the way from the ground-up.As you learn the Spring Framework over the course of this book, you’llincrementally build your first Spring application piece-by-piece as you learn each module, project or component of the Spring Framework and its extensions and ecosystem. As you learn the various fundamentals, you'll then apply them immediately to your Spring application. This Spring application, My Documents, enables you to learn by doing.After reading this book, you will have the essentials you should need to start using the Spring Framework and building your own Java-based applications or microservices with it.What you'll learn:* Get started with Spring Framework 6 by VMWare Tanzu and the Spring community* Build your first My Documents application using Spring Framework and its extensions* Test your Spring application* Add persistence to your application using Spring Data JPA and more* Show your Spring application on the Web with Spring MVC and related* Use REST APIs to enhance your application and add messaging with Kafka and AMQP* Integrate your Spring application with external systems using Spring Integration toolkitWho is this book for:This book is for those aspiring software developers and programmers who are new to Spring. Some prior programming experience recommended, preferably in Java. Felipe Gutierrez is a Sr. Cloud Application Architect at IBM, currently. More generally, he is a Software Architect, Application Developer and Project Manager with knowledge on Financial, Educational, Government and Medical Industries. He is interested in Legacy and Enterprise Integration, and large projects. Felipe is dedicated to Enterprise Open Source Software. And, he is experienced on any Java Technology and Java Frameworks, such Spring, Spring Web Services, Spring Integration, Groovy and Grails, Hibernate, iBatis, ActiveMQ, Camel, RabbitMQ, FUSE, ServieMix, .NET Framework (Languages - VB, C#, Boo, C, and C++), Action Script (Flex, Flash) and Silverlight, Mono and Moonlight.JOSEPH B. OTTINGER is an expert software developer, coder and programmer. He has also served as technology evangelist GigaSpaces and a principle engineer at Red Hat. He was Editor in Chief of TheServerSide-dot-com. He is the author of Hibernate Recipes and Beginning Hibernate for Apress and has authored other books as well as articles.1. Your First Spring Application2. Working with Classes and Dependencies3. Applying Different Configurations4. Using Bean Scopes5. Working with Collections and Custom Types6. Using Resource Files7. Testing Your Spring Application8. Give Advice to Your Spring Application9. Adding Persistence to Your Spring Application with Spring Data JPA10. Showing Your Spring Application on the Web with Spring MVC and WebFlow11. Integrating Your Spring Application with External Systems: Spring Integration12. Exposing a REST API using Spring REST13. Adding E-mail and Scheduling Tasks14. Using Dynamic Languages15. Spring Data Within Your Spring Application16. Messaging with Your Spring Application: Spring AMQP and Kafka17. Be Social and Go Mobile18. Spring and Groovy19. Spring Boot, Simplifying Everything20. Using Spring Native and Reactive SpringA. Tools: IntelliJ IDEA and Eclipse Java IDE
Solution Architecture Patterns for Enterprise
Gain a deeper understanding of how distributed systems work, as well as which applications and systems are used for specific business domains or industries. This book provides a set of solution architecture patterns that were developed based on the author’s experience building enterprise software systems for hundreds of different organizations across the globe. The architecture diagrams (patterns) and examples allow you to not only grasp the concepts, but to build working projects.Solution Architecture Patterns for Enterprise starts with an introduction to the concepts of enterprise software systems and solution architecture and later moves to individual solution architecture patterns used in real-world enterprises. Subsequent sections cover various industry-specific solution architecture patterns that can be used to build domain-specific software systems. The book concludes with a view of what the future holds for solution architecture, including likely new developments in the field.This book will help enterprise software architects and engineers to design and implement real-world enterprise software systems using best practices and techniques adopted by organizations across the globe. It provides software architecture blueprints to build domain-specific enterprise software systems. If you are working on any digital transformation project or initiative, you will find this book useful, as it provides quick reference on architecture and implementation to get started with your work.WHAT YOU WILL LEARN* Understand the key elements of enterprise software systems and how to design and implement them* Master different approaches to build real-world software applications* Build domain specific enterprise software systems* Use open-source tools to build enterprise software systemsWHO THIS BOOK IS FORSoftware Developers, software architect, solution architects, and enterprise architects.Chanaka Fernando has been working in the enterprise software domain for more than a decade designing, implementing, and supporting large-scale applications and systems across different industries including healthcare, financial services, education, and telecommunications to name a few. He is also the author of the book Designing Microservices Platforms with NATS, published in 2021. He has contributed to several open-source projects as a project lead, developer, and architect while working at WSO2, which is an open-source software company. Chanaka holds a bachelor’s degree from the University of Moratuwa, Sri Lanka in engineering, where he specialized in electronics and telecommunication engineering.Chanaka started a GitHub project to share his experiences, and that repository has gained a lot of traction within the open-source community. That success has motivated him to write a book on the topic, going into greater detail with practical examples.Chapter 1: Introduction to Enterprise Software SystemsChapter Goal: Provides an introduction to the key elements of enterprise software systems and how these systems are built in the real world.● What are enterprises?● How software is used in enterprises?● Characteristics of Enterprise Software Systems● Practical examples of enterprise systemsChapter 2: Introduction to Solution ArchitectureChapter Goal: Introduces the concept of architecture of an enterprise software system and how solution architecture plays a major role in building such systems● What is software architecture?● What in Enterprise architecture and TOGAF?● Key components of solution architecture● Importance of deployment architecture● Why patterns are useful when building solutions for enterprisesChapter 3: The Emerging Field of Solution EngineeringChapter Goal: Provides a detailed view of technical skills and abilities required for a solution architect to become successful in the domain● Key tasks of a solution engineer● How to become a solution architect● Why is solution engineering critical for enterprises?Chapter 4: Building Enterprise Software Systems with Microservices ArchitectureChapter Goal: Provides a set of architecture patterns and examples that can be used to build enterprise software systems following a microservices architecture based approach● Introduction to microservices architecture● Microservices with Service Mesh● Microservices without Service Mesh● Securing Microservices with Open Policy Agent● Governing Microservices with APIsChapter 5: Building Enterprise Software Systems with Hybrid Integration PlatformsChapter Goal: Provides a detailed view of using integration platforms to build enterprise software systems with examples using open source software● Why do you need integration for enterprise software systems?● Why is API Management critical for enterprise software systems?● SOA governance to API Management pattern● API-led connectivity pattern for enterprise● Hybrid Integration pattern with API management● How to use anti-corruption layer pattern to migrate legacy applications in enterpriseChapter 6: Designing Enterprise Platforms with Event-driven Architecture PatternsChapter Goal: Introduce the event-driven architecture and explain how it can be used in designing enterprise software systems● Introduction to event-driven architecture● Kafka based event driven architecture for enterprise● Change Data Capture patternChapter 7: Securing Enterprise Software SystemsChapter Goal: Provides a detailed introduction to security of the enterprise software systems and discusses several approaches to implement security with examples.● Introduction to security of enterprise applications● Centralized identity and access management pattern● Cloud application security pattern● API based security pattern● Security Federation pattern● Microservices security patternChapter 8: Implementing Observability for Enterprise Software SystemsChapter Goal: Discuss the approaches to implement observability and monitoring for enterprise software systems so that failures can be mitigated within given SLAs● What is observability?● Tools available for observability● Log based observability● Agent based observability● Data visualization and monitoringChapter 9: Designing Next-Gen Enterprise Software Systems with Cloud-Native ArchitectureChapter Goal: Introduce the concept of cloud-native architecture and provide details on moving enterprise platforms to cloud-native architecture to get benefitted from the cloud movement● Introducing cloud-native concept● Micro Architecture Pattern● Cloud migration with strangler pattern● Container based deployment pattern● Multi cloud deployment patternChapter 10: How to use Artificial Intelligence and Machine Learning within Enterprise SystemsChapter Goal: Discuss the possibilities of using AI and ML to improve the business impact of enterprise software systems● Introduction to AI and ML● Collecting data to apply AI and ML● Analyzing data with AI and ML● Taking action based on outputChapter 11: Industry Specific Architecture Patterns to Enterprise Software SystemsChapter Goal: Provide details on industry specific solution architecture patterns with examples so that developers and architects can use these as a reference when building enterprise systems● Enterprise platform for transportation industry● Enterprise platform for telecommunication industry● Enterprise platform for retail industry● Enterprise platform for education industry● Enterprise platform for automotive industry● Enterprise platform for healthcare industry● Enterprise platform for energy industry● Enterprise platform for hospitality industryChapter 12: Future Trends for Enterprise Software SystemsChapter Goal: Discuss the new trends in the enterprise software world and how solution architecture patterns can help you to keep up with the changing technology● The cloud movement● The no code and low code platforms● Serverless and SaaS solutions
Beginning SharePoint Communication Sites
Understand SharePoint communication sites and create one on your own using SharePoint Home, available in Microsoft 365. This revised edition covers the new features in SharePoint communication sites and demonstrate how to effectively use them. You will also learn how to create a digital experience using SharePoint communication sites.This updated edition includes a new chapter on information management and governance, along with new topics such as seamless integration between Teams, using Power Automate and SharePoint Communication sites in tandem, and performing project and operations management activities with communication sites.Author Charles Waghmare starts by walking you through SharePoint communication sites and how to create them. Next, you’ll explore various use cases to understand the benefits of communicating through SharePoint communication sites. Further, you will learn collaborative applications like Teams and its integration with SharePoint, followed by details of compliance and governance . You will then integrate communication sites with Microsoft 365 products for better end user collaboration. Finally, you will discover how to perform your day-to-day operations tasks using communication sites.After reading this book, you will be able to create and manage SharePoint communication sites and improve ways to communicate and collaborate within your organization.WHAT YOU WILL LEARN* Create an information and communication strategy for your organization * Explore digital ways of working * Easily collaborate with shared information * Create visually appealing communication sites to manage your day-to-day project work Efficiently manage organizational information with compliance * Create centralized departmental repositories with SharePoint communication sites * Learn to automate internal processes using SharePoint communication and M365 services WHO THIS BOOK IS FORIT workers who use SharePoint and who are involved in internal communication management, evangelism, digital transformation, social media, and intranet design.CHARLES DAVID WAGHMARE has worked for Shell since 2019 as a Business Analyst in the Microsoft 365 space. Before that, he worked at Capgemini for eight years in various roles, including Yammer Community Manager and manager of the Drupal-based Enterprise Knowledge Management system. He also developed a knowledge management platform for the Digital Customer Experience (DCX) organization using SharePoint Online to manage Client references and knowledge assets related to Artificial Intelligence and customer experience (CX), using Microsoft Azure Chatbots to automate processes, develop proactive conversations with users, and create new use cases.Charles has also worked for ATOS (erstwhile SIEMENS Information Systems limited) for five years. During his tenure there, he was Community Manager of SAP-based communities, where he utilized Technoweb 2.0 – a Yammer-like platform and on-premises SharePoint. Also, Charles was global rollout manager for a structured document-management system built in on-premises SharePoint.Charles loves reading motivational books, his favorite being The Monk who sold his Ferrari. He is pursuing an executive MBA degree from SP Jain School of Global Management (graduation March 2023).CHAPTER 1: SHAREPOINT AND COMMUNICATION SITES: AN INTRODUCTION· Introducing SharePoint Online with Modern experience· Advantages and Disadvantages of SharePoint Online with Modern experience· SharePoint Communication sites with new Features· Differences Among the Hub, Communication, and Team Sites· Exploring Communication Sites· Steps to Create SharePoint Communication Sites· SummaryCHAPTER 2: EFFECTIVELY COMMUNICATE AND COLLABORATE USING· Communication and Collaboration· Communication and Collaboration Use New Cases· Execute Campaigns Using Communication Sites· SharePoint Communication Sites for Leadership Communication· SummaryCHAPTER 3: BUILD COLLABORATIVE EXPERIENCES FOR END USERS ................41· Introducing Teams· Why Use Teams?· Teams versus SharePoint· Attaching Files in Teams from SharePoint· SharePoint communication sites and Teams Integration· Difference between Teams SharePoint site and Sharepoint with modern experience· Manually Save Email and Upload it Into a SharePoint Site for email archiving· Map a OneDrive to a SharePoint Library· Use the Open with Explorer Feature in Microsoft Edge· explore Teams and SharePoint communication site files upload functionality· SummaryCHAPTER 4: CREATE DIGITAL INTRANETS· Create Visually Captivating Digital Intranets· Create End User Experiences with Communication Sites· Seven Steps to Building an Intranet Using SharePoint Communication Sites· SummaryCHAPTER 5: INFORMATION MANAGEMENT (IM) COMPLIANCE AND GOVERNANCEWhat is Information management and why governance is necessary· Introduction to IM Life cycle· Perform IM compliance in Sharepoint communication sites· Label records in SharePoint communication sites· Decommission and deactivate SharePoint communication sites· Manage metadata for effective IMCHAPTER 6 INTEGRATING SHAREPOINT COMMUNICATION SITES WITH THE MICROSOFT 365 PRODUCTS· SharePoint Communication Sites with Microsoft Forms· SharePoint Communication Sites and Power Apps .· Microsoft Teams and SharePoint Communication Sites· Power Automate and SharePoint Communication SitesCHAPTER 7: USE COMMUNICATION SITES FOR PROJECT MANAGEMENT· General introduction to Project management methodology· Project management Using SharePoint Communication Siteso Identify the Purpose of Projecto Third Party access for customerso Define the Community Roleso Perform Engagement Activitieso Measure the Success of the Project Outcomeso SummaryCHAPTER 7: OPERATIONS MANAGEMENT USING COMMUNICATION SITES· Understanding Operations Management· Helpful Arguments for Sharing Knowledge related to Operations Management· Constituents of Operations Management· The Operations Management Cycle· Operations Management with SharePoint Communication Sites· Structured Document Management System· Ask Expert: Ask and You Shall Receive· Create an Experience of Operations Management community by Using Features of Communication SitesSummaryCHAPTER 8: CREATE NEW HORIZONS OF DIGITAL COMMUNICATION· Understanding New ways of Digital Communication· Using SharePoint Communication Sites for Digital Communicationo Use Power Automateo Use Teams for User Collaborationo Use Webparts Effectively· Summary
Beginning Ubuntu for Windows and Mac Users
__Completely updated for this exciting third edition, Beginning Ubuntu for Windows and Mac Users will help you start your journey into Free and Open Source Software with Ubuntu 22.04.1 LTS with GNOME 42.This book is a friendly guide to installing and running Ubuntu for people who are already efficient and happy with Windows or macOS computers. It teachers new Ubuntu users how to navigate their new operating system, perform basic tasks and suggests specific applications to handle routine tasks.You'll start by installing Ubuntu and its related “flavors” (Kubuntu, Ubuntu MATE, etc.) and how they differ from each other. The rest of the book breaks down application suggestions by broad categories to fill in gaps in the default installed system, or suggest fun things that the reader might not have even thought of. The command line is handled after you are comfortable with the system and ready for something interesting but different. It's presented as a powerful interface that can either be approached casually as a unique method of interacting with the computer, as an occasional tool to use, or as a fun way to get in touch with an early way of using a computer.A brief look at “power user” topics gives advice on managing running processes, installing alternate desktop software, using virtual desktops and creating virtual machines. It’s a great way to round off the book with starting points for advanced topics that are more specialty topics. An appendix describes the Ubuntu release schedule, naming, and timing.The book is designed to function as a “travel guide” to Ubuntu, offering both a scenic tour through some of the great software in Ubuntu in a practical “here’s what you can do with this” style as well as a comprehensive reference guide that the reader can return to over and over to learn how to accomplish specific tasks.WHAT YOU'LL LEARN* Understand the advantages of Ubuntu and its variants—Kubuntu and Xubuntu* Install Ubuntu on its own or alongside your computer's existing operating system* Search Ubuntu's catalog of thousands of applications* Work with files and disks that were created with Windows and OS X* Run simple, interesting tasks and games using the command line* Customize Ubuntu in powerful ways and get work done with virtual machinesWHO THIS BOOK IS FORBeginning to intermediate computer users with Windows 7 or OS X or later experienceNATHAN HAINES is an author, instructor, speaker, and computer consultant who fell in love with Ubuntu in 2005, and helped found the Ubuntu California Local Community Team to share that excitement with others. As a current leader of Ubuntu California and a member of the Ubuntu Local Community Council, he works to help others share Ubuntu worldwide.When not working with computers, he's more than likely admiring the latest Nintendo hardware, wishing he had more time for retro console and PC gaming, and indulging in linguistic curiosity by studying German or dabbling in Old English or Tolkien's constructed Elvish languages. The queue of scifi and fantasy books on his Kindle is probably growing instead of shrinking, although sometimes camping trips help with that.As a hybrid author who enjoys stiff drinks, moonlit walks on the beach, and five-star reviews on his books, he would love to hear from you at nathan@nhaines.com.CHAPTER 1: INSTALLING UBUNTU* Preparing to Install Ubuntu* Installing Ubuntu* Installing Kubuntu* Installing Xubuntu* Installing Lubuntu* Installing Ubuntu MATE* Installing Ubuntu Unity* Install Ubuntu Server * Install a minimal Ubuntu system * Multiple Operating SystemsCHAPTER 2: GETTING STARTED WITH UBUNTU* Ubuntu Desktop* Installing and Updating Software* Managing User Accounts* Finding Things in Ubuntu Instead of Windows* Finding Things in Ubuntu instead of macOS* Connecting to a Windows Desktop Remotely* Running Windows Applications* Connecting to Windows Shared Folders and Printers* Sharing Files and Printers with Other Computers* Sharing Office Documents with Others* Sharing Photos and Graphics with Others* Formatting Disks to Work with Other Operating SystemsCHAPTER 3: PRODUCTIVITY AT HOME AND WORK* Writing documents Without Distractions using FocusWriter* Managing your Personal Finances Using HomeBank* Managing Your Professional Email, Contacts, and Calendar Using Evolution* Managing your Calendar with Thunderbird using Lightning* Integrating your Online Accounts with Ubuntu* Organizing Your Thoughts with Mind-Mapping Software using Freeplane* Personal Wiki Note Taking Software Using Tomboy* Installing Additional Language Support* Keeping Track of Your Personal Time Management Using Hamster* Organizing Collections of Books, Movies, Games, and More Using Tellico* Managing Your Ebook Library Using Calibre* Printing Labels and Cards Using gLabels* Backing Up and Restoring Personal Files using Backup* Capturing Screenshots and Recording Your Desktop Using Screenshot and KazamCHAPTER 4: ENJOYING MEDIA AND OTHER ENTERTAINMENT* Play DVDs and Media Files* Organize Your CD and Digital Music Collection Using Rhythmbox* Back Up and Create Music CDs Using Brasero* Create Video DVDs using DevedeNG* Organize and Edit Your Photos Using Shotwell* Record and Process Audio Using Audacity* Play MIDI Files* Explore the Universe Using Stellarium* Play Legacy PC Games* Play Commercial Games Using SteamCHAPTER 5: COMMAND-LINE TRICKS AND APPLICATIONS* Introduction to the Command Line* See What’s Running on Your Computers* Multitask on the Command Line* Diagnose a Connection to a Server* View Information About the Operating System* Add New Users via Command Line* Check Your Disk Space* Edit Text Files* Read Email* Browse the Web* IRC* Play Text-Based GamesCHAPTER 6: POWER USER TOOLS* Manage Running Processes* Managing Disks and Thumb Drives* Using Multiple Workspaces* Installing Alternate Desktop Environments* Installing Software from the Command Line* Expand Your Software Options* Creating Application Launchers for Programs* Working with Virtual Machines
Datenbanksysteme für Dummies (3. Auflg.)
Datenbanken sind unverzichtbare Basis fast aller Informationssysteme. Dieses in dritter, erweiterter Auflage vorliegende Buch vermittelt Ihnen das notwendige Grundlagenwissen zu Datenbanksystemen. Dabei werden, nach einem allgemeinen Überblick über die verschiedenen Datenbankmodelle, vor allem der Entwurf und die Implementierung relationaler Datenbanken besprochen. Im Mittelpunkt des praktischen Teils steht die Datenbanksprache SQL, die anhand vieler Beispiele detailliert erläutert wird. Auch auf SQL-spezifische Besonderheiten der verbreiteten Datenbankmanagementsysteme MySQL, Oracle und PostgreSQL wird eingegangen. Mit den zahlreich vorhandenen Übungsaufgaben sowie einer Fallstudie zum Download können Sie Ihren Lernfortschritt überprüfen. Musterlösungen dazu sind vorhanden.Der Inhalt orientiert sich an den Empfehlungen der Gesellschaft für Informatik für das Studienfach Informatik.Wolfgang Gerken war Professor für Wirtschaftsinformatik an der Hochschule für Angewandte Wissenschaften Hamburg. Seine Schwerpunktthemen sind Data Warehousing, Data Mining und Business Intelligence.Einleitung 21TEIL I: EINFÜHRUNG IN DATENBANKSYSTEME 29Kapitel 1: Wofür Datenbanksysteme gut sind 31Kapitel 2: Definition und Architektur von Datenbanksystemen 41Kapitel 3: Überblick über Datenmodelle 51Kapitel 4: Vorgehensweise bei der Datenbankentwicklung 71TEIL II: VON DER AUFGABENSTELLUNG ZUR RELATIONALEN DATENBANK 89Kapitel 5: Semantische Modellierung einer Datenbank 91Kapitel 6: Das relationale Datenbankmodell im Detail 115Kapitel 7: Entwurf und Implementierung des Datenbankschemas 143TEIL III: ZUGRIFF AUF RELATIONALE DATENBANKEN MIT SQL 177Kapitel 8: Die DML-Befehle von SQL 179Kapitel 9: Der SELECT-Befehl im Detail 191TEIL IV: DIE VERWALTUNG EINER RELATIONALEN DATENBANK 225Kapitel 10: Benutzersichten 227Kapitel 11: Datensicherheit und Zugriffsrechte bei Datenbanken 241Kapitel 12: Datenbankoptimierung 251TEIL V: OBJEKTRELATIONALE DATENBANKSYSTEME 271Kapitel 13: Objektorientierung und relationale Datenbanksysteme 273Kapitel 14: Arbeiten mit objektrelationalen Tabellen 285TEIL VI: GRUNDLAGEN ZUR ERSTELLUNG VON DATENBANKANWENDUNGEN 297Kapitel 15: Trigger und Stored Procedures 299Kapitel 16: Programmieren von Datenbankanwendungen 313Kapitel 17: Anwendungsbereiche relationaler Datenbanken 329Kapitel 18: SQL oder nicht SQL 341TEIL VII: DER TOP-10-TEIL 355Kapitel 19: Die 10 größten Fehler beim Entwurf relationaler Datenbanken 357Kapitel 20: Die 10 wichtigsten SQL-Befehle und ihre Varianten 363Kapitel 21: 10 Fragen bei der Entity-Relationship-Modellierung 369Lösungen zu den Übungen 375Literaturverzeichnis 401Abbildungsverzeichnis 405Stichwortverzeichnis 411
Serverless Beyond the Buzzword
Know how Serverless and cloud-native systems work, their benefits and roles in automating and optimizing organizations, and the challenges to be considered. Anyone interested in Serverless architecture will benefit from this book, regardless of their level of technical understanding.This revised and expanded new edition explains many related terms, such as microservices, cloud-native, architecture, several relevant AWS services, and how it all works together to produce cost-effective, scalable solutions in the cloud. The book starts at a high level and gradually gets more in-depth and technical.The less technical decision maker will learn how Serverless can affect finance, security, people, and compliance. The book touches on important decisions, such as selecting and working with external or internal specialists and teams; finding, evaluating, and training them; and the flexibility and dynamics available within digital projects.Deployment automation and DevOps also feature heavily in this book, and you will find real-world use cases and examples of Serverless architecture to get you started. It's worth noting that this book is not a development guide; it gives you a comprehensive understanding of what Serverless is so you can make informed decisions for your organization and projects.WHAT YOU’LL LEARN* Understand Serverless architecture and strategy* Understand modern cloud management strategy, governance, and organizational team structure* Handle budget planning and management* Get started with Serverless architecture design* Gain knowledge of best practices and security, as well as data management and DevOps* Study proactive logging, operations, architecture examples, case studies, and moreWHO THIS BOOK IS FORAnyone interested in a deep understanding of Serverless and how it can impact organizations and projects, regardless of their technical level. Strategic insights are provided for entrepreneurs and executives, planning and team insights for project managers, and technical insights for architects and team leads. Cloud consultants working with enterprises can read everything for a full, in-depth understanding of the topic. Other readers, such as less technical CTOs/CIOs, VPs, entrepreneurs, product owners, project managers, etc., can get what they need from the first 5-7 chapters. More technical readers and those experienced with Serverless can skim through the first 3 chapters and start with the security deep dive in Chapter 4.Thomas Smart has been actively involved with digital projects since 2002. His experience crosses many industries and types and sizes of organisations, giving him a wealth of experience and knowledge to draw upon as part of his consulting services. Since 2020 he has worked as a senior consultant for Sourced Singapore, helping large, regulated enterprises evolve their cloud strategy to productively deliver Serverless applications. This experience has provided many new insights for large enterprises and their unique challenges when adopting modern cloud strategies. About the authorAcknowledgementsPrologueWho is this book for?Technical levels used in this bookWhat will you learn?Amazon Web Services (AWS)Second editionChapter 1: Serverless basicsWhat is Serverless architecture?MicroservicesServerless exampleHistory of ServerlessTypes of projectsKey challengesKey benefitsCommon objectionsPublic case studiesChapter 2: StrategyIntroductionTraditional organization structure vs ServerlessCloud Centre of Excellence (CCoE)Cloud controls as compliance guardrailsSupporting toolsServerless adoption: current stateServerless adoption: desired stateServerless adoption: gap analysisApplication suitability for ServerlessEvent StormingPublic case studiesChapter 3: FinancesTotal Cost of Ownership (TCO)The value of paying for utilizationThe cost to develop ServerlessThe cost of migrating applicationsThe cost of maintenance and operationsEstimating the cloud operational costsCollecting the input data for an estimateCalculating the estimateCost managementCost optimizationChapter 4: SecurityShared responsibilityServerless securityPrinciple of Least PrivilegeIAM Policy tipsSecurity for cloud usersSecurity for microservicesUser input validationStoring credentialsEncryptionProtecting DataSecuring DatabasesPrivacy and GDPRSecurity monitoring with ElectricEyeChapter 5: PeopleServerless rolesServerless roles: Solution ArchitectServerless Roles: Cloud Security EngineerServerless Roles: Deployment Automation EngineerServerless roles: Full Stack DeveloperServerless roles: Database EngineerServerless trainingServerless team structureWorking with Serverless vendorsVetting Serverless capabilitiesChapter 6: DevOps & ToolingWhat is DevOps?Infrastructure as CodeAWS CloudFormationAWS CloudFormation planningTerraformAWS Serverless Application Model (SAM)AWS AmplifyAWS Cloud Development Kit (CDK)CDK technical considerationsServerless FrameworkCode RepositoriesGIT SubmodulesDeveloper ToolingCode quality assuranceChapter 7: DataData is a valuable assetDatabase selectionEvent SourcingData tenancyRelational Database Service (RDS)Redshift ServerlessDynamoDBNoSQLServerless NoSQL databasesManaged NoSQL databasesNoSQL databases comparisonIn-memory databasesAppSyncSimple Storage Solution (S3)Elastic File System (EFS)Chapter 8: Logging & TestingLoggingReactive LoggingProactive LoggingLogging format and contentLog types in the cloudCloud logging servicesCloudWatchExporting logs to S3CloudWatch SubscriptionsManaged services for proactive loggingError MonitoringPerformance OptimisationCost TrackingSecurity MonitoringLogging Best PracticesTestingTesting Challenges in ServerlessTypes of TestsAsynchronous TestingRisk Assessment for TestingTest Pyramid vs Test HoneycombContract Testing for ServerlessDeployment PipelineAWS Testing ServicesChapter 9: ArchitectureChallenges & mitigationsAWS: MicroservicesAWS: Application Programming Interface (API)Design patternsMicroservice example architecturesStateless architectureDecoupling microservicesAWS: DecouplingEvent-driven architectureAsynchronous design patternContainersAWS: EdgeAWS: Internet of Things (IoT)AWS: Managed Machine Learning (ML)AWS: Ledger TechnologyAWS: Call CentreWell-Architected FrameworkServerless tipsChapter 10: Case studiesIntroductionProactive loggingServerless data lakeVideo analysisServerless MinecraftDynamic live streamingSEO-friendly website and CMSVirtual hostTrue Serverless containersEpilogueReferences
Infrastructure Leader's Guide to Google Cloud
Making fast and accurate technology decisions is critical to staying relevant to your customers. And technology needs to add value back to your organization quicker than ever. Google Cloud offers IT leaders the answer to today’s technology challenges. However, to realize its benefits you must navigate your journey without hitting common pitfalls that lead to stalled and unsuccessful cloud adoption.This book distills the lessons learned from guiding and working with hundreds of organizations on their journey to the cloud. Its goal is to give aspiring and current IT leaders the knowledge required to be an infrastructure leader. That is the term author Jeremy Lloyd uses for the person who can lead your organization's Google Cloud adoption strategy.Of course, cloud adoption isn’t a solo endeavor. Jeremy covers the different generations of IT leaders, the team structure, and the skills required for a successful migration to Google Cloud. This book also covers why you should choose Google Cloud, how to build a business case for the cloud, and defining your adoption/migration/modernization strategies and cloud operating model. Finally, the book covers how to empower your developers to deploy cloud-native applications and how to support day two operations once you have moved to Google Cloud.WHAT YOU WILL LEARN* Use Google Cloud to add value to your organization* Define and lead your Google Cloud adoption strategy * Migrate and modernize your workloads* Operate workloads once in Google Cloud and avoid antipatterns* Understand how the infrastructure team can be enablers for cloud-native developmentWHO THIS BOOK IS FORCurrent infrastructure/IT/technology leaders who need guidance for their Google Cloud adoption, migration, and modernization journey; IT managers, IT team leads and IT professionals aspiring to be the next IT leaders who must learn to navigate more than just technical complexity.JEREMY LLOYD has over 20 years of experience in IT. He has spent the last eight years helping organizations worldwide adopt and migrate to the cloud. During this time, he’s guided and advised technology leaders from some of the world’s most well-known companies on their cloud adoption, migration and modernization strategies. In addition, he is a mentor to technology leaders and a speaker at numerous events across the UK and internationally.CHAPTER 1: INTRODUCTIONChapter Goal: Introduce a concept that there are essentially four types of infrastructure leaders as I know them. Let them build a relationship with one of the four which provides them with a lens upon which to view the current state and the path to progress forwards with GCP. Then inform them of the role that an infrastructure leader plays in a GCP adoption and migration strategy. Lay out the challenges they will face adopting GCP/Cloud. Provide guidance on a fundamental shift from a cost centre to a profit centre.No of pages - 12Sub-Topics1. What does an Infrastructure Leader do? Or Who is an Infrastructure Leader?2. Type of Infrastructure Leaders3. Challenges4. Becoming a profit centreCHAPTER 2: ABOUT GOOGLE & GOOGLE CLOUDChapter Goal: Take the reader on a short journey of the history of Google and bring out the narrative around their values and principles and empower them to lead innovation across every sector they touch. Then bring out the core value proposition of Google Cloud itself, underpinned by evidence to backupNo of pages - 28Sub - Topics1. Google short history2. Introducing Google Cloud Platform3. Google Cloud Platform core components4. Why use Google Cloud PlatformCHAPTER 3: FUTURE OF ITChapter Goal: Orient the reader into understanding that their current state has to change. Back up the messaging with trends and data points they can’t refute.No of pages - 3Sub - TopicsCHAPTER 4: THE FOUR STAGES OF GOOGLE CLOUD PLATFORM ADOPTIONChapter Goal: Label and define the four states of GCP/Cloud adoption. Let the reader understand how and where any experience they currently have sits. Help them understand the considerations to going with one strategy over the others.No of pages - 7Sub - Topics1. Shadow IT2. Tactical Adoption3. Strategic Adoption4. Organisation TransformationCHAPTER 5: BUSINESS CASEChapter Goal: Arm the reader with the information they need to write a rapid or detailed business case to justify adoption and migration to GCP. The aim is to make is simple for them to get the right story that will resonate with their organisation.No of pages - 6Sub - Topics1. Rapid Business Case2. Detailed Business Case3. Integrating with an existing business case templateCHAPTER 6: THE CLOUD STRATEGYChapter Goal: Show them the importance of having a well-defined cloud strategy. Then give them almost a blueprint upon which to follow in how to create one.No of pages - 10Sub - Topics1. Version2. Executive Summary3. Current State4. Financial Models5. Alignment to business strategy6. Guiding Principles7. Security8. Compliance9. Risk Management10. Governance11. Ways of Working12. Objectives and Key Results (OKRs)13. Implementation PlanCHAPTER 7: CLOUD OPERATING MODELChapter Goal: With a defined cloud strategy you need the next layer which is to define what your cloud operating model is. This chapter aims to inform what to consider and how their operating model could look and how to ensure it can evolve as the organisation matures with GCP.No of pages - 6Sub - TopicsCHAPTER 8: MIGRATION STRATEGIESChapter Goal: Inform the reader of the industry used migration approaches and Google Cloud’s take on them.No of pages - 3-5Sub - Topics1. Migration Objectives2. Migration Risk management3. Googlers & Office of the CTO4. Partner Ecosystem5. ActionsCHAPTER 9: MODERNISATION STRATEGIESChapter Goal: Inform the reader about modernisation strategies, Google’s tools and some simple methods to help them quickly decide what to modernise.No of pages - 10Sub - Topics1. Modernisation guardrails2. Modernisation roadmap3. Mainframe Modernisation4. Migration Decision Tree5. ActionsCHAPTER 10: ORGANISATIONAL READINESSChapter Goal: Provide the reader with the considerations across key areas that will help them be prepared for cloud adoption/migration.No of pages - 34Sub - Topics1. Paving the roads for cultural change2. Google Cloud Adoption Framework3. Managing The Hype-cycle4. Skillset5. Cloud Adoption Teams (CMO, CCoE etc)6. Building a Cloud Center of Excellence7. Security Readiness8. Governance Readiness9. Operations ReadinessCHAPTER 11: MIGRATION & MODERNISATION TEAM STRUCTURESChapter Goal: Get the reader to understand the people, skills and ways of working that GCP migration and modernisation requiresNo of pages - 2Sub - TopicsCHAPTER 12: MIGRATIONSChapter Goal: Provide guidance across migration assessment, planning and execution. Inform them what good first mover workloads look like.No of pages - 20-22Sub - Topics1. Introducing The Migration Journey2. Assess3. Plan4. Migrate5. OptimiseCHAPTER 13: CLOUD-NATIVE DEVELOPMENTChapter Goal: The infrastructure leader won’t be responsible for cloud-native development but they can/should play a key role in it’s facilitation. It showcases the considerations across new areas that the infrastructure team should be focusing on.No of pages - 20Sub - Topics1. Cloud-Native Advantages2. Containers3. Integrated Development Environment4. Serverless5. BeyondProdCHAPTER 14 : DAY 2 OPERATIONSChapter Goal: Introduce the concept of Day 2 Operations to the reader. Then give them guidance around what the infrastructure team should be thinking about across each of the sub-topics, all staying within a day 2 operations context.No of pages - 60Sub - Topics1. Day 2 Cloud Challenges2. Cloud Foundations3. Landing Zones4. Compute5. Monitoring, Logging And Alerting6. Availability7. Reliability8. Recoverability9. Financial Operations10. Performance11. Security12. Automation13. Governance and Compliance14. Cloud Marketplace15. GCP Managed Services16. Containers17. Data Analytics18. Open Source19. Support20. Day 2 antipatterns21. DevOps/SRE/CRECHAPTER 15: PRODUCTIVITY AND COLLABORATIONChapter Goal: Introduce a Google concept of BeyondCorp and how that ties in with a GCP migration strategy. Introduce Google Workspace and benefits of using it.No of pages - 8Sub - Topics1. BeyondCorp2. Google Workspace
IT-Management
Dieses Buch befasst sich mit der Kunst des IT-Managements. Es wird ein einfacher und robuster Rahmen vorgeschlagen, um die wesentlichen Elemente des IT-Managements zu beschreiben und zu strukturieren. Die Autoren legen besonderes Augenmerk auf didaktische Aspekte, um das Behalten der vorgestellten Modelle zu erleichtern und das Nachdenken über die vorgestellten Themen zu fördern. Dank eines Konzentrats an bewährten Praktiken wird jedes Unternehmen schnell in der Lage sein, sein eigenes IT-Ökosystem aufzubauen.DR. LIONEL PILORGET war in verschiedenen IT-Managementpositionen in der Industrie und im Finanzsektor tätig. Zu seinen vielfältigen Aufgaben gehörten die Umsetzung von Richtlinien und Strategien sowie die Leitung von komplexen, strategischen IT-Projekten. Derzeit ist er Leiter Business Analysen und Projektmanagement bei einer Privatbank in der Schweiz. Ausserdem ist er Dozent für den Masterstudiengang "Wirtschaftsinformatik" an der Fachhochschule Nordwestschweiz FHNW.THOMAS SCHELL hat Informatik studiert und sich auf den Bereich Management von IT-Prozessen, -Services und -Organisationen spezialisiert. Dreimal in seiner Karriere hat er klassische IT-Organisationen zu kundenorientierten IT-Dienstleistern umgestaltet. Nach 25 Jahren in der Schweizer Pharma- und Chemieindustrie ist er heute Dozent für IT Service Management an Fachhochschulen in der Schweiz und in Deutschland. Er unterstützt IT-Organisationen als Berater und Trainer für Best-Practice-Frameworks.
Building Enterprise IoT Solutions with Eclipse IoT Technologies
Build IoT solutions for the enterprise using open-source building blocks from the Eclipse IoT Working Group at the Eclipse Foundation. This book introduces you to key protocols and their implementations, such as CoAP (Eclipse Californium), DDS (Eclipse Cyclone DDS), LwM2M (Eclipse Leshan), and MQTT (Eclipse Paho, Eclipse Mosquitto, and Eclipse Amlen). You will learn about Edge Computing platforms (Eclipse ioFog, Eclipse Kanto), IoT gateways (Eclipse Kura, Eclipse Kapua), and next-generation edge native protocols (Eclipse zenoh).The book also covers production-ready platforms for digital twins (Eclipse Ditto), energy management (Eclipse VOLTTRON), contactless payments (Eclipse Keyple), and much more.Although the book discusses hardware matters, its focus is on software and relevant open standards. The book helps you understand the pros and cons of the technologies available from Eclipse IoT and how they have been used in actual deployments. The examples provided cover a variety of use cases, such as industrial automation, smart agriculture, digital buildings, robotics, and others.The book's contents follow a reference architecture encompassing constrained devices (things), edge devices (gateways, servers), and IoT Cloud platforms. For each of those three pillars, you will learn about relevant open-source components. Usage of code libraries and frameworks is explained through code samples. You will also learn how to deploy and configure platform-type components and how to leverage them. Special attention will be paid to security and edge computing throughout the book.WHAT YOU WILL LEARN* Describe in your own words the main software components required in an IoT architecture* Select the appropriate IoT protocols, components, frameworks, and platforms for a specific project* Evaluate the connectivity options at your disposal and select the most appropriate ones* Explain the value of business models focused on open-source components and deploy such models in your organization* Determine if edge computing is relevant to a project and deploy the relevant components on an edge computing platform* Build Enterprise IoT solutions leveraging an array of open-source components and platforms using popular languages such as C, Java, and RustWHO THIS BOOK IS FORDevelopers new to enterprise IoT who want to learn about fundamental technologies for that market segment and seek an introduction to relevant, open-source building blocks; experienced IoT developers who seek alternatives to the proprietary platforms they are currently using; software architects designing IoT solutions who want to understand open-source technology optionsFRÉDÉRIC DESBIENS manages IoT and Edge Computing programs at the Eclipse Foundation. His job is to help the community innovate by bringing together devices and software. He is a strong supporter of open source. In the past, he worked as a product manager, solutions architect, and developer for companies as diverse as Pivotal, Cisco, and Oracle. He has an MBA in electronic commerce, a BASc in Computer Science and a BEd, all from Université Laval. After work hours, Frédéric likes to read a history book, play video games, or watch anime.PART I. FUNDAMENTALS AND PROTOCOLS.- 1. What is IoT?.- 2. CoAP.- 3. LwM2M.- 4. MQTT.- 5. Sparkplug.- 6. DDS.- 7. zenoh.- PART II. CONSTRAINED DEVICES.- 8. The Hardware.- 9. Connectivity.- 10. Operating Systems.- PART III. EDGE COMPUTING AND IOT PLATFORMS.- 11. Edge Computing.- 12. Applications.- 13. Integration and Data.- 14. Conclusion.