Programowanie
Safeer CM
Serverless computing has emerged as a mainstream paradigm in both cloud and on-premises computing, with AWS Lambda playing a pivotal role in shaping the Function-as-a-Service (FaaS) landscape. However, with the explosion of serverless technologies and vendors, it has become increasingly challenging to comprehend the foundational services and their offerings.Architecting Cloud Native Serverless Solutions lays a strong foundation for understanding the serverless landscape and technologies in a vendor-agnostic manner. You'll learn how to select the appropriate cloud vendors and technologies based on your specific needs. In addition, you'll dive deep into the serverless services across AWS, GCP, Azure, and Cloudflare followed by open source serverless tools such as Knative, OpenFaaS, and OpenWhisk, along with examples. You'll explore serverless solutions on Kubernetes that can be deployed on both cloud-hosted clusters and on-premises environments, with real-world use cases. Furthermore, you'll explore development frameworks, DevOps approaches, best practices, security considerations, and design principles associated with serverless computing.By the end of this serverless book, you'll be well equipped to solve your business problems by using the appropriate serverless vendors and technologies to build efficient and cost-effective serverless systems independently.
Victor Dantas
Google has been one of the top players in the public cloud domain thanks to its agility and performance capabilities. This book will help you design, develop, and manage robust, secure, and dynamic solutions to successfully meet your business needs.You'll learn how to plan and design network, compute, storage, and big data systems that incorporate security and compliance from the ground up. The chapters will cover simple to complex use cases for devising solutions to business problems, before focusing on how to leverage Google Cloud's Platform-as-a-Service (PaaS) and Software-as-a-Service (SaaS) capabilities for designing modern no-operations platforms. Throughout this book, you'll discover how to design for scalability, resiliency, and high availability. Later, you'll find out how to use Google Cloud to design modern applications using microservices architecture, automation, and Infrastructure-as-Code (IaC) practices. The concluding chapters then demonstrate how to apply machine learning and artificial intelligence (AI) to derive insights from your data. Finally, you will discover best practices for operating and monitoring your cloud solutions, as well as performing troubleshooting and quality assurance.By the end of this Google Cloud book, you'll be able to design robust enterprise-grade solutions using Google Cloud Platform.
Sebastian Daschner
Java EE 8 brings with it a load of features, mainly targeting newer architectures such as microservices, modernized security APIs, and cloud deployments. This book will teach you to design and develop modern, business-oriented applications using Java EE 8. It shows how to structure systems and applications, and how design patterns and Domain Driven Design aspects are realized in the age of Java EE 8. You will learn about the concepts and principles behind Java EE applications, and how to effect communication, persistence, technical and cross-cutting concerns, and asynchronous behavior.This book covers Continuous Delivery, DevOps, infrastructure-as-code, containers, container orchestration technologies, such as Docker and Kubernetes, and why and especially how Java EE fits into this world. It also covers the requirements behind containerized, zero-dependency applications and how modern Java EE application servers support these approaches. You will also learn about automated, fast, and reliable software tests, in different test levels, scopes, and test technologies. This book covers the prerequisites and challenges of distributed systems that lead to microservice, shared-nothing architectures. The challenges and solutions of consistency versus scalability will further lead us to event sourcing, event-driven architectures, and the CQRS principle. This book also includes the nuts and bolts of application performance as well as how to realize resilience, logging, monitoring and tracing in a modern enterprise world. Last but not least the demands of securing enterprise systems are covered.By the end, you will understand the ins and outs of Java EE so that you can make critical design decisions that not only live up to, but also surpass your clients' expectations.
Robert Stackowiak, Shyam Varan Nath, Carla Romano
The Industrial Internet or the IIoT has gained a lot of traction. Many leading companies are driving this revolution by connecting smart edge devices to cloud-based analysis platforms and solving their business challenges in new ways. To ensure a smooth integration of such machines and devices, sound architecture strategies based on accepted principles, best practices, and lessons learned must be applied.This book begins by providing a bird's eye view of what the IIoT is and how the industrial revolution has evolved into embracing this technology. It then describes architectural approaches for success, gathering business requirements, and mapping requirements into functional solutions. In a later chapter, many other potential use cases are introduced including those in manufacturing and specific examples in predictive maintenance, asset tracking and handling, and environmental impact and abatement. The book concludes by exploring evolving technologies that will impact IIoT architecture in the future and discusses possible societal implications of the Industrial Internet and perceptions regarding these projects.By the end of this book, you will be better equipped to embrace the benefits of the burgeoning IIoT.
Solomon Eseme
Building enterprise-ready Vue.js apps entails following best practices for creating high-performance and scalable applications. Complete with step-by-step explanations and best practices outlined, this Vue.js book is a must-read for any developer who works with a large Vue.js codebase where performance and scalability are indispensable.Throughout this book, you’ll learn how to configure and set up Vue.js 3 and the composition API and use it to build real-world applications. You’ll develop the skills to create reusable components and scale performance in Vue.js 3 applications. As you progress, the book guides you in scaling performance with asynchronous lazy loading, image compression, code splitting, and tree shaking. Furthermore, you’ll see how to use the Restful API, Docker, GraphQL, and different types of testing to ensure that your Vue.js 3 application is scalable and maintainable.By the end of this book, you’ll be well-versed in best practices for implementing Restful API, Docker, GraphQL, and testing methods to build and deploy an enterprise-ready Vue.js 3 application of any scale.
Anupama Murali, Harihara Subramanian J, Pethuru Raj...
Enterprise Architecture (EA) is typically an aggregate of the business, application, data, and infrastructure architectures of any forward-looking enterprise. Due to constant changes and rising complexities in the business and technology landscapes, producing sophisticated architectures is on the rise. Architectural patterns are gaining a lot of attention these days.The book is divided in three modules. You'll learn about the patterns associated with object-oriented, component-based, client-server, and cloud architectures. The second module covers Enterprise Application Integration (EAI) patterns and how they are architected using various tools and patterns. You will come across patterns for Service-Oriented Architecture (SOA), Event-Driven Architecture (EDA), Resource-Oriented Architecture (ROA), big data analytics architecture, and Microservices Architecture (MSA). The final module talks about advanced topics such as Docker containers, high performance, and reliable application architectures. The key takeaways include understanding what architectures are, why they're used, and how and where architecture, design, and integration patterns are being leveraged to build better and bigger systems.
Ludovico Palmeri
If you excel at creating beautiful architectural renderings using traditional software but want to master real-time, interactive visualizations, this book will show you how the versatile Unreal Engine 5 enables such transformations effortlessly. While UE5 is widely popular, existing online training resources can be overwhelming and often lack a focus on Architectural visualization. This comprehensive guide is for both beginners and experienced users offering a clear, end-to-end approach to creating stunning visualizations from scratch as well as managing tight deadlines, striving for photorealism, and handling typical client revisions inherent to architectural visualization.The book starts with an introduction to UE5 and its capabilities, as well as the basic concepts and principles of architectural visualization. You'll then progress to essential topics such as setting up a project, modeling and texturing 3D assets, lighting and materials, and post-processing effects. Along the way, you'll find practical tips, best practices, and hands-on exercises to develop your skills by applying what you learn.By the end of this book, you'll have acquired the skills to confidently create high-quality architectural visualizations in UE5 and become proficient in building an architectural interior scene to produce professional still images.
Architektura aplikacji w Pythonie. TDD, DDD i rozwój mikrousług reaktywnych
Harry Percival, Bob Gregory
Architektura aplikacji w Pythonie. TDD, DDD i rozwój mikrousług reaktywnych Python zyskuje coraz większą popularność i jest wykorzystywany do tworzenia bardzo różnych aplikacji, jednak projektowanie dużych, niezawodnych systemów w tym języku bywa wyzwaniem. Rozwijanie złożonych systemów o wysokiej jakości wymaga zastosowania odpowiedniej architektury. Trudno w Pythonie stosować takie wysokopoziomowe wzorce projektowe jak architektura sześciokątna, architektura oparta na zdarzeniach czy wzorce zalecane dla projektowania dziedzinowego (DDD). Sytuacji nie poprawia również to, że klasyczna literatura dotycząca metod zarządzania złożonością aplikacji zawiera przykłady kodu napisanego w Javie lub C#. Programiści Pythona często więc uznają takie książki za mało przydatne w swojej pracy. Ten praktyczny przewodnik przybliży projektantom pracującym w Pythonie sprawdzone wzorce architektury, które ułatwiają zapanowanie nad złożonością aplikacji i pozwalają najlepiej wykorzystać zestawy testów. Prezentację poszczególnych wzorców architektury oparto na przykładowej, stopniowo rozbudowywanej aplikacji. Podejście to pozwoliło na pokazanie zalet metodyki TDD. Z kolei w rozdziałach poświęconych modelowaniu dziedzinowemu zwrócono uwagę na unikanie jakichkolwiek zależności zewnętrznych przy równoczesnym zapewnieniu integralności danych. Wśród ciekawszych koncepcji warto wskazać wykorzystywanie zdarzeń w roli wzorca integracji usług w architekturze mikrousługowej. Niejako przy okazji zaprezentowano praktyczne strony stosowania kilku frameworków i technologii Pythona, między innymi Flask, SQLAlchemy, pytest, Docker i Redis. W tej książce między innymi: modelowanie dziedzinowe i stosowanie wzorców DDD jednostki, obiekty wartości i agregaty w architekturze domenowej tworzenie modeli bez zbędnych zależności zdarzenia, polecenia i szyna wiadomości wzorce architektury zdarzeniowej i mikrousług reaktywnych Architektura nowoczesnych aplikacji w Pythonie: rozwiązania dla poważnych systemów!
Architektura ewolucyjna. Projektowanie oprogramowania i wsparcie zmian
Neal Ford, Rebecca Parsons, Patrick Kua
Przez długi czas uważano, że architektura oprogramowania powinna powstać przed rozpoczęciem pisania kodu i pozostać niezmieniona aż do zakończenia projektu. Pojawienie się zwinnych metod tworzenia oprogramowania spowodowało, że taką koncepcję zaczęto podawać w wątpliwość. Niektórzy nawet kwestionowali potrzebę tworzenia architektury, gdyż utrudniała reakcję na zmiany wymagań. Istnieje jednak inne podejście do architektury, zgodnie z którym jest ona ściśle powiązana z fazą programowania i dynamicznie odpowiada na zmiany pojawiające się podczas tworzenia kodu. W ten sposób architektura ewolucyjna, pomimo nieprzewidywalności zmian, zapewnia rozwój projektu we właściwym kierunku. Dzięki tej książce architekci oprogramowania zapoznają się z nowym podejściem do powiązań architektury z czasem. Przekonają się też, że tworzenie architektury ewolucyjnej sprowadza się do trzech głównych zagadnień: funkcji dopasowania, zmian przyrostowych i prawidłowego sprzęgania. W tej książce uwzględniono analizę każdego z tych aspektów, ukazano też mechanizm budowania architektury wspierającej ciągłe zmiany. Szczegółowo wyjaśniono zasady wprowadzania pętli informacji zwrotnej pozwalających całemu zespołowi na spójne rozwijanie systemu w zgodzie z zasadą ciągłego dostarczania. Pokazano metody monitorowania stanu architektury. Sporo uwagi poświęcono problemom danych długowiecznych - jest to często pomijane zagadnienie. W tej książce: Funkcje dopasowania w architekturze Zmiany przyrostowe wprowadzane za pomocą projektowania i operacji Sprzężenie architektury i wprowadzanie zmian bez utraty stabilności systemu Dane ewolucyjne oraz zmiany wymogów i architektury w miarę upływu czasu Budowanie architektur ewolucyjnych Praktyczne wdrażanie architektury ewolucyjnej w korporacji Architektura korporacyjna: wysoka sztuka projektowania!
Architektura ewolucyjna. Projektowanie oprogramowania i wsparcie zmian. Wydanie II
Neal Ford, Rebecca Parsons, Patrick Kua, Pramod...
Jeszcze kilka lat temu koncepcja ewoluowania architektury była uznawana za zbyt odważną. Uważano, że architektura powinna pozostawać elementem niezmiennym w czasie. Jednak rzeczywistość udowadnia, że systemy muszą ewoluować, aby spełniać wymogi użytkowników i odzwierciedlać zmiany w dynamicznym środowisku tworzenia oprogramowania. Innymi słowy, konieczne się staje budowanie architektur ewolucyjnych. Dzięki tej książce dowiesz się, w jaki sposób uczynić architekturę oprogramowania wystarczająco plastyczną, aby mogła odzwierciedlać zachodzące zmiany biznesowe i technologiczne. W nowym wydaniu rozbudowano pojęcia zmiany kierowanej i przyrostowej, a także przedstawiono najnowsze techniki dotyczące funkcji dopasowania, automatycznego zarządzania architekturą i danych ewolucyjnych. Zaprezentowano praktyki inżynieryjne umożliwiające ewoluowanie systemów oprogramowania, jak również podejścia strukturalne, w tym zasady projektowe, które ułatwiają zarządzanie tą ewolucją. Opisano ponadto, w jaki sposób zasady i praktyki architektury ewolucyjnej wiążą się z różnymi elementami procesu tworzenia oprogramowania. Naucz się postrzegać architekturę systemową jako plastyczny wyzwalacz. Sam Newman, architekt, autor książki Budowanie mikrousług Najciekawsze zagadnienia: mechanika architektury ewolucyjnej zarządzanie projektami oprogramowania i ich ewolucją style architektoniczne i zasady projektowania sprzęganie i wieloużywalność łączenie praktyk inżynieryjnych z kwestiami strukturalnymi Poznaj techniki umożliwiające tworzenie architektur oprogramowania na tyle zwinnych, aby dotrzymywały kroku ciągłym zmianom. Mark Richards, developertoarchitect.com
Architektura informacji w serwisach internetowych i nie tylko. Wydanie IV
Louis Rosenfeld, Peter Morville, Jorge Arango
W świecie, w którym potężne ilości informacji bombardują ludzi ze wszystkich stron, organizacje stają przed bardzo poważnym wyzwaniem: muszą znaleźć sposób, aby dotrzeć ze swoim przekazem do odbiorcy, zyskać jego uwagę i spowodować, aby zrozumiał i zapamiętał prezentowane treści. Dodatkowym problemem jest różnorodność kanałów interakcji oraz urządzeń — utrzymanie zrozumiałości i spójności przekazu staje się jeszcze trudniejsze. W takim świecie znajomość zasad projektowania architektury informacji staje się nieodzowna. Niniejsza książka jest przeznaczona dla wszystkich osób zaangażowanych w proces projektowania najróżniejszych przekazów informacji, szczególnie serwisów internetowych. Architektura informacji jest tu traktowana jako zbiór narzędzi i technik do obsługi trudnych problemów. Można tu znaleźć uniwersalne i ponadczasowe zasady organizacji informacji, narzędzia i techniki, które zdały próbę czasu i nie zależą od konkretnych technologii czy producentów. Dzięki praktycznemu podejściu ta książka przyda się każdemu, kto odpowiada za zdefiniowanie sposobu działania produktów interaktywnych. W tej książce znajdziesz: przegląd zagadnień dotyczących architektury informacji opis komponentów architektury informacji i powiązań między nimi metodykę organizacji witryn, systemy nawigacji, wyszukiwania i etykietowania stron opis metod poprawy komfortu użytkownika serwisu wskazówki dotyczące metodologii definiowania kierunku i zakresu architektury informacyjnej Architektura informacji — sztuka, która uczyni informację prawdziwie użyteczną! Louis Rosenfeld — odegrał znaczącą rolę w organizowaniu pierwszych trzech konferencji poświęconych architekturze informacji. Bierze aktywny udział w różnych konferencjach poświęconych projektowaniu w środowiskach sieciowych. Peter Morville — jest twórcą podstaw wiedzy o architekturze informacji i wykładowcą na Uniwersytecie Michigan. Często zabiera głos na różnych międzynarodowych konferencjach. Jorge Arango — jest architektem informacji z ogromnym doświadczeniem w projektowaniu produktów cyfrowych i usług, prezesem Information Architecture Institute i redaktorem naczelnym magazynu „Boxes and Arrows”.
Architektura Lean w projektach Agile
James O. Coplien, Gertrud Bjornvig
Programuj i organizuj kod z metodyką Lean! Tempo rozwoju aplikacji wymusza stosowanie elastycznych sposobów wytwarzania oprogramowania. Książka ta została poświęcona architekturze Lean, która usprawni ten proces dzięki nowatorskiemu podejściu. Wykorzystaj je i przygotuj swoją aplikację na zmiany funkcjonalne, by użytkownicy mogli w pełni wykorzystać jej potencjał! W trakcie lektury zapoznasz się z duchem Agile i Lean oraz przydzielisz najważniejsze role członkom projektu. Po tym niezwykle interesującym wstępie rozpoczniesz pasjonującą podróż po świecie architektury Lean. Dowiesz się, czym jest system, jak podzielić projekt na części i wybrać jego styl. W kolejnych rozdziałach zorganizujesz swój kod i przetestujesz zaprojektowaną architekturę. Znajdziesz tu wiele przykładów, które w najlepszy sposób przedstawiają założenia i intencje architektury Lean, z dużym naciskiem na sam kod. To obowiązkowa lektura dla wszystkich programistów i projektantów systemów informatycznych. Dzięki tej książce: poznasz filozofię Agile i Lean zbudujesz kod odporny na zmiany zrozumiesz paradygmat DCI poznasz współczesne metody wytwarzania oprogramowania! Twój przewodnik po architekturze Lean!
Adrian Ostrowski, Piotr Gaczkowski
C++ należy do najpopularniejszych i najbardziej cenionych za uniwersalność języków oprogramowania - umożliwia projektowanie rozbudowanych, a zarazem intuicyjnych w obsłudze aplikacji wysokiego poziomu. Pozwala tworzyć wydajną i czytelną architekturę oprogramowania również w wypadku znacznie zaawansowanych systemów i programów. Dzięki tej książce poznasz narzędzia i rozwiązania, które ułatwiają projektowanie w języku C++ nawet najbardziej skomplikowanych aplikacji. Autorzy przybliżają samo pojęcie architektury oprogramowania i na praktycznych przykładach wyjaśniają, na czym polega jej tworzenie. Pokazują również aktualne trendy projektowe i uczą, jak za pomocą C++ krok po kroku, element po elemencie budować aplikacje i systemy na dowolnym poziomie zaawansowania. W trakcie lektury dowiesz się, jakie warunki powinna spełniać efektywna architektura oprogramowania i jak sprawić, by gwarantowała wysoki poziom bezpieczeństwa, skalowalności i wydajności. Liczne przykłady, zrozumiałe objaśnienia i przyjazny język pozwalają na efektywne i szybkie przyswajanie wiedzy dotyczącej tworzenia rozproszonych, skomplikowanych aplikacji w C++. W książce: projektowanie aplikacji bazujących na wydajnej, nowoczesnej i czytelnej architekturze oprogramowania używanie najważniejszych zasad i wzorców projektowych umożliwiających tworzenie efektywnego kodu za pomocą języka C++ analizowanie różnych koncepcji architektury oprogramowania i stosowanie tych, które w największym stopniu odpowiadają danemu projektowi efektywne wykorzystywanie mechanizmów i rozwiązań dostępnych w najnowszej odsłonie języka C++
Architektura oprogramowania. Rusz głową! Przewodnik po myśleniu architektonicznym
Raju Gandhi, Mark Richards, Neal Ford
Jeśli zależy Ci na sukcesie systemu, który budujesz, musisz zadbać o jego architekturę! Dobre praktyki architektoniczne poprawiają jakość oprogramowania, które skutecznie dostosowuje się do wymagań, nawet podczas bezustannych zmian środowisk biznesowych i technicznych. Jednak architektura oprogramowania jest trudnym zagadnieniem, więc Twój mózg może się starać Cię przekonać, że się jej nie nauczysz. Zatem pora go oszukać! Ta fantastyczna książka, pełna zabawnej narracji i praktycznych przykładów, nauczy Cię myślenia architektonicznego. Została ona, podobnie jak inne pozycje z serii Rusz głową!, przygotowana na bazie odkryć nauk poznawczych i neurofizjologii. Właśnie dzięki temu zaangażujesz swój mózg, użyjesz wielu zmysłów i niepostrzeżenie zrozumiesz dwa prawa architektury oprogramowania i cztery opisujące ją wymiary. Mistrzowsko opanujesz cechy i style architektury, a także nauczysz się określać logiczne komponenty systemów. Efekt? Zdobędziesz świetną orientację w świecie architektury oprogramowania. A wszystkiego nauczysz się, rozwiązując łamigłówki, wykonując praktyczne ćwiczenia, tworząc architektury ? i wybuchając głośnym śmiechem! W książce: zasady architektury oprogramowania i jej komponenty filozofia różnych stylów architektury architektura warstwowa, modułowa, mikrojądra i mikrousługi architektura sterowana zdarzeniami ...i mnóstwo radości z tworzenia pięknej architektury! Autorzy w mistrzowski sposób przekształcają złożone pojęcia w łatwo przyswajalne informacje! James Erler, inżynier oprogramowania wbudowanego Medtronic
Architektura oprogramowania w praktyce. Wydanie IV
Len Bass, Paul Clements, Rick Kazman
To kompletny, praktyczny i sprawdzony przewodnik po tworzeniu architektury nowoczesnego oprogramowania, w pełni zaktualizowany o nowe materiały poświęcone rozwiązaniom mobilnym, chmurze, zarządzaniu energią, podejściu DevOps, przetwarzaniu kwantowemu i innym zagadnieniom. Zaktualizowana o 11 nowych rozdziałów książka Architektura oprogramowania w praktyce, wydanie czwarte dokładnie wyjaśnia, czym jest architektura oprogramowania, dlaczego ma ona znaczenie, a także jak ją projektować, tworzyć, analizować i modyfikować oraz jak nią zarządzać w zdyscyplinowany i skuteczny sposób. Trzech poważanych architektów oprogramowania omawia cały cykl życia, prezentując praktyczne wskazówki, metody stosowane przez ekspertów i sprawdzone modele przydatne w każdym projekcie niezależnie od poziomu jego złożoności. Dowiesz się, jak za pomocą architektury radzić sobie z coraz większymi wymaganiami i systemami oraz wyższym poziomem abstrakcji, a także jak uzyskiwać emergentne atrybuty jakościowe, gdy systemy są dynamicznie łączone na nowe sposoby. W tym podręczniku znajdziesz informacje na temat optymalizowania za pomocą architektury najważniejszych atrybutów jakościowych (w tym wydajności, modyfikowalności, zabezpieczeń, dostępności, współdziałania, testowalności, użyteczności, łatwości wdrażania itd.), co pomoże Ci zrozumieć, jak zarządzać istniejącymi architekturami, dopracowywać je, przekształcać w celu rozwiązywania nowych problemów i tworzyć architektury wielokrotnego użytku, które stają się strategicznymi aktywami biznesowymi. Zobacz, jak architektura wpływa na środowisko techniczne, cykle życia projektów, profile biznesowe i Twoją pracę, a także jak te czynniki wpływają na architekturę. Wykorzystaj sprawdzone wzorce, interfejsy i praktyki do optymalizowania jakości za pomocą architektury. Twórz architekturę z myślą o rozwiązaniach mobilnych, chmurze, uczeniu maszynowym i przetwarzaniu kwantowym. Projektuj systemy pod kątem coraz ważniejszych atrybutów takich jak wydajność energetyczna i bezpieczeństwo. Skaluj systemy, odkrywając czynniki istotne architektonicznie, stosując podejście DevOps i potoki wdrażania oraz zarządzając długiem architektonicznym. Poznaj rolę architektury w organizacji, co pozwoli Ci tworzyć bardziej wartościowe rozwiązania.