Serverless Programming Cookbook

Practical solutions to building serverless applications using Java and AWS

Serverless Programming Cookbook

Build, secure, and deploy real-world serverless applications in AWS and peek into the serverless cloud offerings from Azure, Google Cloud, and IBM Cloud Key Features Build serverless applications with AWS Lambda, AWS CloudFormation and AWS CloudWatch Perform data analytics and natural language processing(NLP)on the AWS serverless platform Explore various design patterns and best practices involved in serverless computing Book Description Managing physical servers will be a thing of the past once you’re able to harness the power of serverless computing. If you’re already prepped with the basics of serverless computing, Serverless Programming Cookbook will help you take the next step ahead. This recipe-based guide provides solutions to problems you might face while building serverless applications. You'll begin by setting up Amazon Web Services (AWS), the primary cloud provider used for most recipes. The next set of recipes will cover various components to build a Serverless application including REST APIs, database, user management, authentication, web hosting, domain registration, DNS management, CDN, messaging, notifications and monitoring. The book also introduces you to the latest technology trends such as Data Streams, Machine Learning and NLP. You will also see patterns and practices for using various services in a real world application. Finally, to broaden your understanding of Serverless computing, you'll also cover getting started guides for other cloud providers such as Azure, Google Cloud Platform and IBM cloud. By the end of this book, you’ll have acquired the skills you need to build serverless applications efficiently using various cloud offerings. What you will learn Serverless computing in AWS and explore services with other clouds Develop full-stack apps with API Gateway, Cognito, Lambda and DynamoDB Web hosting with S3, CloudFront, Route 53 and AWS Certificate Manager SQS and SNS for effective communication between microservices Monitoring and troubleshooting with CloudWatch logs and metrics Explore Kinesis Streams, Amazon ML models and Alexa Skills Kit Who this book is for For developers looking for practical solutions to common problems while building a serverless application, this book provides helpful recipes. To get started with this intermediate-level book, knowledge of basic programming is a must.

Go Programming Cookbook

Over 85 recipes to build modular, readable, and testable Golang applications across various domains, 2nd Edition

Go Programming Cookbook

Tackle the trickiest of problems in Go programming with this practical guide Key Features Develop applications for different domains using modern programming techniques Tackle common problems when it comes to parallelism, concurrency, and reactive programming in Go Work with ready-to-execute code based on the latest version of Go Book Description Go (or Golang) is a statically typed programming language developed at Google. Known for its vast standard library, it also provides features such as garbage collection, type safety, dynamic-typing capabilities, and additional built-in types. This book will serve as a reference while implementing Go features to build your own applications. This Go cookbook helps you put into practice the advanced concepts and libraries that Golang offers. The recipes in the book follow best practices such as documentation, testing, and vendoring with Go modules, as well as performing clean abstractions using interfaces. You'll learn how code works and the common pitfalls to watch out for. The book covers basic type and error handling, and then moves on to explore applications, such as websites, command-line tools, and filesystems, that interact with users. You'll even get to grips with parallelism, distributed systems, and performance tuning. By the end of the book, you'll be able to use open source code and concepts in Go programming to build enterprise-class applications without any hassle. What you will learn Work with third-party Go projects and modify them for your use Write Go code using modern best practices Manage your dependencies with the new Go module system Solve common problems encountered when dealing with backend systems or DevOps Explore the Go standard library and its uses Test, profile, and fine-tune Go applications Who this book is for If you're a web developer, programmer, or enterprise developer looking for quick solutions to common and not-so-common problems in Go programming, this book is for you. Basic knowledge of the Go language is assumed.

Hands-On Network Programming with C# and .NET Core

Build robust network applications with C# and .NET Core

Hands-On Network Programming with C# and .NET Core

A comprehensive guide to understanding network architecture, communication protocols, and network analysis to build secure applications compatible with the latest versions of C# 8 and .NET Core 3.0 Key Features Explore various network architectures that make distributed programming possible Learn how to make reliable software by writing secure interactions between clients and servers Use .NET Core for network device automation, DevOps, and software-defined networking Book Description The C# language and the .NET Core application framework provide the tools and patterns required to make the discipline of network programming as intuitive and enjoyable as any other aspect of C# programming. With the help of this book, you will discover how the C# language and the .NET Core framework make this possible. The book begins by introducing the core concepts of network programming, and what distinguishes this field of programming from other disciplines. After this, you will gain insights into concepts such as transport protocols, sockets and ports, and remote data streams, which will provide you with a holistic understanding of how network software fits into larger distributed systems. The book will also explore the intricacies of how network software is implemented in a more explicit context, by covering sockets, connection strategies such as Transmission Control Protocol (TCP) and User Datagram Protocol (UDP), asynchronous processing, and threads. You will then be able to work through code examples for TCP servers, web APIs served over HTTP, and a Secure Shell (SSH) client. By the end of this book, you will have a good understanding of the Open Systems Interconnection (OSI) network stack, the various communication protocols for that stack, and the skills that are essential to implement those protocols using the C# programming language and the .NET Core framework. What you will learn Understand the breadth of C#'s network programming utility classes Utilize network-layer architecture and organizational strategies Implement various communication and transport protocols within C# Discover hands-on examples of distributed application development Gain hands-on experience with asynchronous socket programming and streams Learn how C# and the .NET Core runtime interact with a hosting network Understand a full suite of network programming tools and features Who this book is for If you're a .NET developer or a system administrator with .NET experience and are looking to get started with network programming, then this book is for you. Basic knowledge of C# and .NET is assumed, in addition to a basic understanding of common web protocols and some high-level distributed system designs.

AWS Security Cookbook

Practical solutions for managing security policies, monitoring, auditing, and compliance with AWS

AWS Security Cookbook

Secure your Amazon Web Services (AWS) infrastructure with permission policies, key management, and network security, along with following cloud security best practices Key Features Explore useful recipes for implementing robust cloud security solutions on AWS Monitor your AWS infrastructure and workloads using CloudWatch, CloudTrail, config, GuardDuty, and Macie Prepare for the AWS Certified Security-Specialty exam by exploring various security models and compliance offerings Book Description As a security consultant, securing your infrastructure by implementing policies and following best practices is critical. This cookbook discusses practical solutions to the most common problems related to safeguarding infrastructure, covering services and features within AWS that can help you implement security models such as the CIA triad (confidentiality, integrity, and availability), and the AAA triad (authentication, authorization, and availability), along with non-repudiation. The book begins with IAM and S3 policies and later gets you up to speed with data security, application security, monitoring, and compliance. This includes everything from using firewalls and load balancers to secure endpoints, to leveraging Cognito for managing users and authentication. Over the course of this book, you'll learn to use AWS security services such as Config for monitoring, as well as maintain compliance with GuardDuty, Macie, and Inspector. Finally, the book covers cloud security best practices and demonstrates how you can integrate additional security services such as Glacier Vault Lock and Security Hub to further strengthen your infrastructure. By the end of this book, you'll be well versed in the techniques required for securing AWS deployments, along with having the knowledge to prepare for the AWS Certified Security – Specialty certification. What you will learn Create and manage users, groups, roles, and policies across accounts Use AWS Managed Services for logging, monitoring, and auditing Check compliance with AWS Managed Services that use machine learning Provide security and availability for EC2 instances and applications Secure data using symmetric and asymmetric encryption Manage user pools and identity pools with federated login Who this book is for If you are an IT security professional, cloud security architect, or a cloud application developer working on security-related roles and are interested in using AWS infrastructure for secure application deployments, then this Amazon Web Services book is for you. You will also find this book useful if you’re looking to achieve AWS certification. Prior knowledge of AWS and cloud computing is required to get the most out of this book.

Building Serverless Microservices in Python

A complete guide to building, testing, and deploying microservices using serverless computing on AWS

Building Serverless Microservices in Python

A practical guide for developing end-to-end serverless microservices in Python for developers, DevOps, and architects. Key Features Create a secure, cost-effective, and scalable serverless data API Use identity management and authentication for a user-specific and secure web application Go beyond traditional web hosting to explore the full range of cloud hosting options Book Description Over the last few years, there has been a massive shift from monolithic architecture to microservices, thanks to their small and independent deployments that allow increased flexibility and agile delivery. Traditionally, virtual machines and containers were the principal mediums for deploying microservices, but they involved a lot of operational effort, configuration, and maintenance. More recently, serverless computing has gained popularity due to its built-in autoscaling abilities, reduced operational costs, and increased productivity. Building Serverless Microservices in Python begins by introducing you to serverless microservice structures. You will then learn how to create your first serverless data API and test your microservice. Moving on, you'll delve into data management and work with serverless patterns. Finally, the book introduces you to the importance of securing microservices. By the end of the book, you will have gained the skills you need to combine microservices with serverless computing, making their deployment much easier thanks to the cloud provider managing the servers and capacity planning. What you will learn Discover what microservices offer above and beyond other architectures Create a serverless application with AWS Gain secure access to data and resources Run tests on your configuration and code Create a highly available serverless microservice data API Build, deploy, and run your serverless configuration and code Who this book is for If you are a developer with basic knowledge of Python and want to learn how to build, test, deploy, and secure microservices, then this book is for you. No prior knowledge of building microservices is required.

Python Parallel Programming Cookbook

Over 70 recipes to solve challenges in multithreading and distributed system with Python 3, 2nd Edition

Python Parallel Programming Cookbook

Implement effective programming techniques in Python to build scalable software that saves time and memory Key Features Design distributed computing systems and massive computational tasks coherently Learn practical recipes with concise explanations that address development pain points encountered while coding parallel programs Understand how to host your parallelized applications on the cloud Book Description Nowadays, it has become extremely important for programmers to understand the link between the software and the parallel nature of their hardware so that their programs run efficiently on computer architectures. Applications based on parallel programming are fast, robust, and easily scalable. This updated edition features cutting-edge techniques for building effective concurrent applications in Python 3.7. The book introduces parallel programming architectures and covers the fundamental recipes for thread-based and process-based parallelism. You'll learn about mutex, semaphores, locks, queues exploiting the threading, and multiprocessing modules, all of which are basic tools to build parallel applications. Recipes on MPI programming will help you to synchronize processes using the fundamental message passing techniques with mpi4py. Furthermore, you'll get to grips with asynchronous programming and how to use the power of the GPU with PyCUDA and PyOpenCL frameworks. Finally, you'll explore how to design distributed computing systems with Celery and architect Python apps on the cloud using PythonAnywhere, Docker, and serverless applications. By the end of this book, you will be confident in building concurrent and high-performing applications in Python. What you will learn Synchronize multiple threads and processes to manage parallel tasks Use message passing techniques to establish communication between processes to build parallel applications Program your own GPU cards to address complex problems Manage computing entities to execute distributed computational task Write efficient programs by adopting the event-driven programming model Explore cloud technology with Django and Google App Engine Apply parallel programming techniques that can lead to performance improvements Who this book is for The Python Parallel Programming Cookbook is for software developers who are well-versed with Python and want to use parallel programming techniques to write powerful and efficient code. This book will help you master the basics and the advanced of parallel computing.

Go Cookbook

Go Cookbook

Bridge the gap between basic understanding of Go and use of its advanced features About This Book Discover a number of recipes and approaches to develop modern back-end applications Put to use the best practices to combine the recipes for sophisticated parallel tools This book is based on Go 1.8, which is the latest version Who This Book Is For This book is for web developers, programmers, and enterprise developers. Basic knowledge of the Go language is assumed. Experience with back-end application development is not necessary, but may help understand the motivation behind some of the recipes. What You Will Learn Test your application using advanced testing methodologies Develop an awareness of application structures, interface design, and tooling Create strategies for third-party packages, dependencies, and vendoring Get to know tricks on treating data such as collections Handle errors and cleanly pass them along to calling functions Wrap dependencies in interfaces for ease of portability and testing Explore reactive programming design patterns in Go In Detail Go (a.k.a. Golang) is a statically-typed programming language first developed at Google. It is derived from C with additional features such as garbage collection, type safety, dynamic-typing capabilities, additional built-in types, and a large standard library. This book takes off where basic tutorials on the language leave off. You can immediately put into practice some of the more advanced concepts and libraries offered by the language while avoiding some of the common mistakes for new Go developers. The book covers basic type and error handling. It explores applications that interact with users, such as websites, command-line tools, or via the file system. It demonstrates how to handle advanced topics such as parallelism, distributed systems, and performance tuning. Lastly, it finishes with reactive and serverless programming in Go. Style and approach This guide is a handy reference for developers to quickly look up Go development patterns. It is a companion to other resources and a reference that will be useful long after reading it through the first time. Each recipe includes working, simple, and tested code that can be used as a reference or foundation for your own applications.

C# 7 and .NET Core Cookbook

C# 7 and .NET Core Cookbook

Quick solutions to common programming problems with the latest features of C# 7.0, .NET Core 1.1, and Visual Studio 2017 About This Book Easy-to-follow recipes to get you up-and-running with the new features of C# 7 and .NET Core 1.1 Practical solutions to assist you with microservices and serverless computing in C# Explore the new Visual Studio environment and write more secure code in it Who This Book Is For The book will appeal to C# and .NET developers who have a basic familiarity with C# and the Visual Studio 2015 environment What You Will Learn Writing better and less code to achieve the same result as in previous versions of C# Working with analyzers in Visual Studio Working with files, streams, and serialization Writing high-performant code in C# and understanding multi-threading Demystifying the Rx library using Reactive extensions Exploring .Net Core 1.1 and ASP.NET MVC Securing your applications and learning new debugging techniques Designing and building a microservice architecture Using Azure and AWS for serverless computing with C# In Detail C# has recently been open-sourced and C# 7 comes with a host of new features for building powerful, cross-platform applications. This book will be your solution to some common programming problems that you come across with C# and will also help you get started with .NET Core 1.1. Through a recipe-based approach, this book will help you overcome common programming challenges and get your applications ready to face the modern world. We start by running you through new features in C# 7, such as tuples, pattern matching, and so on, giving you hands-on experience with them. Moving forward, you will work with generics and the OOP features in C#. You will then move on to more advanced topics, such as reactive extensions, Regex, code analyzers, and asynchronous programming. This book will also cover new, cross-platform .NET Core 1.1 features and teach you how to utilize .NET Core on macOS. Then, we will explore microservices as well as serverless computing and how these benefit modern developers. Finally, you will learn what you can do with Visual Studio 2017 to put mobile application development across multiple platforms within the reach of any developer. Style and approach A unique recipe-based guide that will help you gain a solid understanding of the new concepts in C# 7.0 and Visual Studio 2017

JavaScript Cloud Native Development Cookbook

JavaScript Cloud Native Development Cookbook

Master over 60 recipes to help you deliver completely scalable and serverless cloud-native applications Key Features Develop global scale and event-driven autonomous services Continuously deploy, test, observe, and optimize your services Practical Node.js recipes for serverless cloud-native development Book Description Cloud-native development is a modern approach to building and running applications that leverages the merits of the cloud computing model. With cloud-native development, teams can deliver faster and in a more lean and agile manner as compared to traditional approaches. This recipe-based guide provides quick solutions for your cloud-native applications. Beginning with a brief introduction, JavaScript Cloud-Native Development Cookbook guides you in building and deploying serverless, event-driven, cloud-native microservices on AWS with Node.js. You'll then move on to the fundamental patterns of developing autonomous cloud-native services and understand the tools and techniques involved in creating globally scalable, highly available, and resilient cloud-native applications. The book also covers multi-regional deployments and leveraging the edge of the cloud to maximize responsiveness, resilience, and elasticity. In the latter chapters you'll explore techniques for building fully automated, continuous deployment pipelines and gain insights into polyglot cloud-native development on popular cloud platforms such as Azure and Google Cloud Platform (GCP). By the end of the book, you'll be able to apply these skills to build powerful cloud-native solutions. What you will learn Implement patterns such as Event Streaming, CQRS, and Event Sourcing Deploy multi-regional, multi-master solutions Secure your cloud-native services with OAuth and OpenID Connect Create a robust cloud-native continuous deployment pipeline Run services on AWS, Azure, and GCP Implement autonomous services to limit the impact of failures Who this book is for If you want to develop powerful serverless, cloud-native solutions, this book is for you. You are expected to have basic knowledge of concepts of microservices and hands-on experience with Node.js to understand the recipes in this book.