skip to content
Cloud Native programming with Golang : Develop microservice-based high performance web apps for the cloud with Go. Preview this item
ClosePreview this item
Checking...

Cloud Native programming with Golang : Develop microservice-based high performance web apps for the cloud with Go.

Author: Martin Helmich; Mina Andrawos; Jelmer Snoeck
Publisher: Birmingham : Packt Publishing, 2017.
Edition/Format:   eBook : Document : EnglishView all editions and formats
Summary:
Cloud computing and microservices are two very important concepts in modern software architecture. They represent key skills that ambitious software engineers need to acquire in order to design and build software applications capable of performing and scaling. Go is a modern cross-platform programming language that is very powerful yet simple; ...
Rating:

(not yet rated) 0 with reviews - Be the first.

Subjects
More like this

Find a copy online

Links to this item

Find a copy in the library

&AllPage.SpinnerRetrieving; Finding libraries that hold this item...

Details

Genre/Form: Electronic books
Additional Physical Format: Print version:
Helmich, Martin.
Cloud Native programming with Golang : Develop microservice-based high performance web apps for the cloud with Go.
Birmingham : Packt Publishing, ©2017
Material Type: Document, Internet resource
Document Type: Internet Resource, Computer File
All Authors / Contributors: Martin Helmich; Mina Andrawos; Jelmer Snoeck
ISBN: 9781787127968 1787127966 178712598X 9781787125988
OCLC Number: 1020029257
Description: 1 online resource (400 pages)
Contents: Cover --
Title Page --
Copyright --
Credits --
About the Authors --
About the Reviewer --
www.PacktPub.com --
Customer Feedback --
Table of Contents --
Preface --
Chapter 1: Modern Microservice Architectures --
Why Go? --
Basic design goals --
Cloud service models --
Cloud application architecture patterns --
The twelve-factor app --
What are microservices? --
Deploying microservices --
REST web services and asynchronous messaging --
The MyEvents platform --
Summary --
Chapter 2: Building Microservices Using Rest APIs --
The background --
So, what are microservices? --
Microservices internals --
RESTful Web APIs --
Gorilla web toolkit --
Implementing a Restful API --
Persistence layer --
MongoDB --
MongoDB and the Go language --
Implementing our RESTful APIs handler functions --
Summary --
Chapter 3: Securing Microservices --
HTTPS --
Symmetric cryptography --
Symmetric-key algorithms in HTTPS --
Asymmetric cryptography --
Asymmetrical cryptography in HTTPS --
Secure web services in Go --
Obtaining a certificate --
OpenSSL --
generate_cert.go --
Building an HTTPS server in Go --
Summary --
Chapter 4: Asynchronous Microservice Architectures Using Message Queues --
The publish/subscribe pattern --
Introducing the booking service --
Event collaboration --
Implementing publish/subscribe with RabbitMQ --
The Advanced Message Queueing Protocol --
RabbitMQ quickstart with Docker --
Advanced RabbitMQ setups --
Connecting RabbitMQ with Go --
Publishing and subscribing to AMQP messages --
Building an event emitter --
Building an event subscriber --
Building the booking service --
Event sourcing --
Implementing publish/subscribe and event sourcing with Apache Kafka --
Kafka quickstart with Docker --
Basic principles of Apache Kafka --
Connecting to Kafka with Go --
Publishing messages with Kafka --
Consuming messages from Kafka --
Summary. Chapter 5: Building a Frontend with React --
Getting started with React --
Setting up Node.js and TypeScript --
Initializing the React project --
Basic React principles --
Kick-starting the MyEvents frontend --
Implementing the event list --
Bringing your own client --
Building the event list components --
Enabling CORS in the backend services --
Testing the event list --
Adding routing and navigation --
Implementing the booking process --
Summary --
Chapter 6: Deploying Your Application in Containers --
What are containers? --
Introduction to Docker --
Running simple containers --
Building your own images --
Networking containers --
Working with volumes --
Building containers --
Building containers for the backend services --
Using static compilation for smaller images --
Building containers for the frontend --
Deploying your application with Docker Compose --
Publishing your images --
Deploying your application to the cloud --
Introduction to Kubernetes --
Setting up a local Kubernetes with Minikube --
Core concepts of Kubernetes --
Services --
Persistent volumes --
Deploying MyEvents to Kubernetes --
Creating the RabbitMQ broker --
Creating the MongoDB containers --
Making images available to Kubernetes --
Deploying the MyEvents components --
Configuring HTTP Ingress --
Summary --
Chapter 7: AWS I --
Fundamentals, AWS SDK for Go, and EC2 --
AWS fundamentals --
The AWS console --
AWS command-line interface (CLI) --
AWS regions and zones --
AWS tags --
AWS Elastic Beanstalk --
AWS services --
AWS SDK for Go --
Configuring the AWS region --
Configuring AWS SDK authentication --
Creating IAM Users --
Creating IAM Roles --
The fundamentals of the AWS SDK for Go --
Sessions --
Service clients --
Native datatypes --
Shared configuration --
Pagination methods --
Waiters --
Handling Errors --
Elastic Compute Cloud (EC2) --
Creating EC2 instances. Accessing EC2 instances --
Accessing EC2 instances from a Linux or macOS machine --
Accessing EC2 from Windows --
Security groups --
Summary --
Chapter 8: AWS II --
S3, SQS, API Gateway, and DynamoDB --
Simple Storage Service (S3) --
Configuring S3 --
Simple Queue Service (SQS) --
AWS API gateway --
DynamoDB --
DynamoDB components --
Attribute value data types --
Primary keys --
Secondary indexes --
Creating tables --
The Go language and DynamoDB --
Summary --
Chapter 9: Continuous Delivery --
Setting up your project --
Setting up version control --
Vendoring your dependencies --
Using Travis CI --
Deploying to Kubernetes --
Using GitLab --
Setting up GitLab --
Setting up GitLab CI --
Summary --
Chapter 10: Monitoring Your Application --
Setting up Prometheus and Grafana --
Prometheus's basics --
Creating an initial Prometheus configuration file --
Running Prometheus on Docker --
Running Grafana on Docker --
Exporting metrics --
Using the Prometheus client in your Go application --
Configuring Prometheus scrape targets --
Exporting custom metrics --
Running Prometheus on Kubernetes --
Summary --
Chapter 11: Migration --
What is a monolithic application? --
What are microservices? --
Migrating from monolithic applications to microservices --
Humans and technology --
Cutting a monolithic application to pieces --
How do we break the code? --
Glue code --
Microservices design patterns --
Sacrificial architecture --
A four-tier engagement platform --
Bounded contexts in domain-driven designs --
Data consistency --
Event-driven architecture for data consistency --
Events sourcing --
CQRS --
Summary --
Chapter 12: Where to Go from Here? --
Microservices communications --
Protocol buffers --
GRPC --
More on AWS --
DynamoDB streams --
Autoscaling on AWS --
Amazon Relational Database Service --
Other cloud providers --
Microsoft Azure --
Google Cloud Platform. OpenStack --
Running containers in the cloud --
Serverless architectures --
Summary --
Index.

Abstract:

Cloud computing and microservices are two very important concepts in modern software architecture. They represent key skills that ambitious software engineers need to acquire in order to design and  Read more...

Reviews

User-contributed reviews
Retrieving GoodReads reviews...
Retrieving DOGObooks reviews...

Tags

Be the first.
Confirm this request

You may have already requested this item. Please select Ok if you would like to proceed with this request anyway.

Linked Data


Primary Entity

<http://www.worldcat.org/oclc/1020029257> # Cloud Native programming with Golang : Develop microservice-based high performance web apps for the cloud with Go.
    a schema:Book, schema:MediaObject, schema:CreativeWork ;
    library:oclcnum "1020029257" ;
    library:placeOfPublication <http://experiment.worldcat.org/entity/work/data/4726122039#Place/birmingham> ; # Birmingham
    library:placeOfPublication <http://id.loc.gov/vocabulary/countries/enk> ;
    schema:about <http://experiment.worldcat.org/entity/work/data/4726122039#Topic/softwareentwicklung> ; # Softwareentwicklung
    schema:about <http://dewey.info/class/005.133/e23/> ;
    schema:about <http://experiment.worldcat.org/entity/work/data/4726122039#Topic/programming_&_scripting_languages_general> ; # Programming & scripting languages: general
    schema:about <http://experiment.worldcat.org/entity/work/data/4726122039#Topic/application_software_development> ; # Application software--Development
    schema:about <http://experiment.worldcat.org/entity/work/data/4726122039#Topic/computers_programming_languages_general> ; # Computers--Programming Languages--General
    schema:about <http://experiment.worldcat.org/entity/work/data/4726122039#Topic/computer_programming_software_development> ; # Computer programming--software development
    schema:about <http://experiment.worldcat.org/entity/work/data/4726122039#Topic/computers_programming_open_source> ; # Computers--Programming--Open Source
    schema:about <http://experiment.worldcat.org/entity/work/data/4726122039#Topic/cloud_computing> ; # Cloud Computing
    schema:bookFormat schema:EBook ;
    schema:contributor <http://experiment.worldcat.org/entity/work/data/4726122039#Person/andrawos_mina> ; # Mina Andrawos
    schema:contributor <http://experiment.worldcat.org/entity/work/data/4726122039#Person/snoeck_jelmer> ; # Jelmer Snoeck
    schema:creator <http://experiment.worldcat.org/entity/work/data/4726122039#Person/helmich_martin> ; # Martin Helmich
    schema:datePublished "2017" ;
    schema:description "Cloud computing and microservices are two very important concepts in modern software architecture. They represent key skills that ambitious software engineers need to acquire in order to design and build software applications capable of performing and scaling. Go is a modern cross-platform programming language that is very powerful yet simple; ..."@en ;
    schema:description "Cover -- Title Page -- Copyright -- Credits -- About the Authors -- About the Reviewer -- www.PacktPub.com -- Customer Feedback -- Table of Contents -- Preface -- Chapter 1: Modern Microservice Architectures -- Why Go? -- Basic design goals -- Cloud service models -- Cloud application architecture patterns -- The twelve-factor app -- What are microservices? -- Deploying microservices -- REST web services and asynchronous messaging -- The MyEvents platform -- Summary -- Chapter 2: Building Microservices Using Rest APIs -- The background -- So, what are microservices? -- Microservices internals -- RESTful Web APIs -- Gorilla web toolkit -- Implementing a Restful API -- Persistence layer -- MongoDB -- MongoDB and the Go language -- Implementing our RESTful APIs handler functions -- Summary -- Chapter 3: Securing Microservices -- HTTPS -- Symmetric cryptography -- Symmetric-key algorithms in HTTPS -- Asymmetric cryptography -- Asymmetrical cryptography in HTTPS -- Secure web services in Go -- Obtaining a certificate -- OpenSSL -- generate_cert.go -- Building an HTTPS server in Go -- Summary -- Chapter 4: Asynchronous Microservice Architectures Using Message Queues -- The publish/subscribe pattern -- Introducing the booking service -- Event collaboration -- Implementing publish/subscribe with RabbitMQ -- The Advanced Message Queueing Protocol -- RabbitMQ quickstart with Docker -- Advanced RabbitMQ setups -- Connecting RabbitMQ with Go -- Publishing and subscribing to AMQP messages -- Building an event emitter -- Building an event subscriber -- Building the booking service -- Event sourcing -- Implementing publish/subscribe and event sourcing with Apache Kafka -- Kafka quickstart with Docker -- Basic principles of Apache Kafka -- Connecting to Kafka with Go -- Publishing messages with Kafka -- Consuming messages from Kafka -- Summary."@en ;
    schema:exampleOfWork <http://worldcat.org/entity/work/id/4726122039> ;
    schema:genre "Electronic books"@en ;
    schema:inLanguage "en" ;
    schema:isSimilarTo <http://worldcat.org/entity/work/data/4726122039#CreativeWork/cloud_native_programming_with_golang_develop_microservice_based_high_performance_web_apps_for_the_cloud_with_go> ;
    schema:name "Cloud Native programming with Golang : Develop microservice-based high performance web apps for the cloud with Go."@en ;
    schema:productID "1020029257" ;
    schema:publication <http://www.worldcat.org/title/-/oclc/1020029257#PublicationEvent/birmingham_packt_publishing_2017> ;
    schema:publisher <http://experiment.worldcat.org/entity/work/data/4726122039#Agent/packt_publishing> ; # Packt Publishing
    schema:url <https://proquest.safaribooksonline.com/9781787125988> ;
    schema:url <https://login.library.sheridanc.on.ca/login?url=http://proquestcombo.safaribooksonline.com/?uiCode=sheridan&xmlId=9781787125988> ;
    schema:url <https://ezproxy.spl.org/login?url=https://proquest.safaribooksonline.com/9781787125988> ;
    schema:url <https://www.safaribooksonline.com/library/view/-/9781787125988/?ar> ;
    schema:url <http://VH7QX3XE2P.search.serialssolutions.com/?V=1.0&L=VH7QX3XE2P&S=AC_T_B&C=Cloud%20Native%20programming%20with%20Golang&T=marc&tab=BOOKS> ;
    schema:url <https://login.gbcprx01.georgebrown.ca/login?url=http://proquest.safaribooksonline.com/?uiCode=geobrown&xmlId=9781787125988> ;
    schema:url <http://ra.ocls.ca/ra/login.aspx?inst=conestoga&url=http://proquest.safaribooksonline.com/9781787125988> ;
    schema:url <http://public.eblib.com/choice/publicfullrecord.aspx?p=5216129> ;
    schema:url <http://public.ebookcentral.proquest.com/choice/publicfullrecord.aspx?p=5216129> ;
    schema:url <https://ebookcentral.proquest.com/lib/liverpool/detail.action?docID=5216129> ;
    schema:url <https://nls.ldls.org.uk/welcome.html?ark:/81055/vdc_100053822281.0x000001> ;
    schema:workExample <http://worldcat.org/isbn/9781787127968> ;
    schema:workExample <http://worldcat.org/isbn/9781787125988> ;
    umbel:isLike <http://bnb.data.bl.uk/id/resource/GBB878714> ;
    umbel:isLike <http://bnb.data.bl.uk/id/resource/GBB8K7563> ;
    wdrs:describedby <http://www.worldcat.org/title/-/oclc/1020029257> ;
    .


Related Entities

<http://experiment.worldcat.org/entity/work/data/4726122039#Agent/packt_publishing> # Packt Publishing
    a bgn:Agent ;
    schema:name "Packt Publishing" ;
    .

<http://experiment.worldcat.org/entity/work/data/4726122039#Person/andrawos_mina> # Mina Andrawos
    a schema:Person ;
    schema:familyName "Andrawos" ;
    schema:givenName "Mina" ;
    schema:name "Mina Andrawos" ;
    .

<http://experiment.worldcat.org/entity/work/data/4726122039#Person/helmich_martin> # Martin Helmich
    a schema:Person ;
    schema:familyName "Helmich" ;
    schema:givenName "Martin" ;
    schema:name "Martin Helmich" ;
    .

<http://experiment.worldcat.org/entity/work/data/4726122039#Person/snoeck_jelmer> # Jelmer Snoeck
    a schema:Person ;
    schema:familyName "Snoeck" ;
    schema:givenName "Jelmer" ;
    schema:name "Jelmer Snoeck" ;
    .

<http://experiment.worldcat.org/entity/work/data/4726122039#Topic/application_software_development> # Application software--Development
    a schema:Intangible ;
    schema:name "Application software--Development"@en ;
    .

<http://experiment.worldcat.org/entity/work/data/4726122039#Topic/cloud_computing> # Cloud Computing
    a schema:Intangible ;
    schema:name "Cloud Computing"@en ;
    schema:name "Cloud computing"@en ;
    .

<http://experiment.worldcat.org/entity/work/data/4726122039#Topic/computer_programming_software_development> # Computer programming--software development
    a schema:Intangible ;
    schema:name "Computer programming--software development"@en ;
    .

<http://experiment.worldcat.org/entity/work/data/4726122039#Topic/computers_programming_languages_general> # Computers--Programming Languages--General
    a schema:Intangible ;
    schema:name "Computers--Programming Languages--General"@en ;
    .

<http://experiment.worldcat.org/entity/work/data/4726122039#Topic/computers_programming_open_source> # Computers--Programming--Open Source
    a schema:Intangible ;
    schema:name "Computers--Programming--Open Source"@en ;
    .

<http://experiment.worldcat.org/entity/work/data/4726122039#Topic/programming_&_scripting_languages_general> # Programming & scripting languages: general
    a schema:Intangible ;
    schema:name "Programming & scripting languages: general"@en ;
    .

<http://experiment.worldcat.org/entity/work/data/4726122039#Topic/softwareentwicklung> # Softwareentwicklung
    a schema:Intangible ;
    schema:name "Softwareentwicklung"@en ;
    .

<http://ra.ocls.ca/ra/login.aspx?inst=conestoga&url=http://proquest.safaribooksonline.com/9781787125988>
    rdfs:comment "5 simultaneous users allowed through Safari Technical Books" ;
    .

<http://worldcat.org/entity/work/data/4726122039#CreativeWork/cloud_native_programming_with_golang_develop_microservice_based_high_performance_web_apps_for_the_cloud_with_go>
    a schema:CreativeWork ;
    rdfs:label "Cloud Native programming with Golang : Develop microservice-based high performance web apps for the cloud with Go." ;
    schema:description "Print version:" ;
    schema:isSimilarTo <http://www.worldcat.org/oclc/1020029257> ; # Cloud Native programming with Golang : Develop microservice-based high performance web apps for the cloud with Go.
    .

<http://worldcat.org/isbn/9781787125988>
    a schema:ProductModel ;
    schema:isbn "178712598X" ;
    schema:isbn "9781787125988" ;
    .

<http://worldcat.org/isbn/9781787127968>
    a schema:ProductModel ;
    schema:isbn "1787127966" ;
    schema:isbn "9781787127968" ;
    .

<http://www.worldcat.org/title/-/oclc/1020029257>
    a genont:InformationResource, genont:ContentTypeGenericResource ;
    schema:about <http://www.worldcat.org/oclc/1020029257> ; # Cloud Native programming with Golang : Develop microservice-based high performance web apps for the cloud with Go.
    schema:dateModified "2019-02-09" ;
    void:inDataset <http://purl.oclc.org/dataset/WorldCat> ;
    .

<https://www.safaribooksonline.com/library/view/-/9781787125988/?ar>
    rdfs:comment "from Safari" ;
    rdfs:comment "(Unlimited Concurrent Users)" ;
    .


Content-negotiable representations

Close Window

Please sign in to WorldCat 

Don't have an account? You can easily create a free account.