Introduction to Amazon Code Pipeline with Java part 8: the job agent communication process

Introduction

In the previous post we went through the details behind the communication between your web site and CodePipeline when a CP user selects your third party action. The third party action developer will be responsible to set up and maintain an external configuration page where CP users can complete their action configuration. CP and the external page communicate with each other using HTTPS POST calls and URL-encoded JSON objects. CP sends a number of properties to the configuration page in the JSON object. These include the client ID and client token that you’ll need to save in your data store and map them to a user in your system. The configuration page redirects the user to the CP GUI with the list of key-value pairs that contain the configuration values for the test runner. These values will be available to the job agent when the job runs.

In this post we’ll look into the details of the communication between CP and the job agent. This post will go through the process at an overall level. The upcoming code examples will show a lot more details.

Read more of this post

Introduction to Amazon Code Pipeline with Java part 7: the third party action user signup process

Introduction

In the previous post we went through an overview of third party actions in Amazon CodePipeline. They are similar to custom plugins in other CI tools like TeamCity and Jenkins. However, their structure, architecture and deployment are very different. The third party action developer must be aware of the job agent and how it communicates with an Amazon CodePipeline endpoint to pull new jobs and process them in some way. The job agent is the connecting tissue between CodePipeline and your backend services. You can deploy multiple job agents for load balancing.

In this post we’ll continue looking at the communication flow between the third party action and CodePipeline.

Read more of this post

Introduction to MongoDb with .NET part 24: aggregations continued

Introduction

In the previous post we looked at our first aggregation example. We grouped the zipcodes collection by state and number of inhabitants in each state. A grouping stage is represented by the $group operator and it’s followed by a number of arguments. We went through the process that MongoDb performs to produce the final set of documents. Essentially it performs a series of upsert operations on the starting collection.

In this post we’ll look at some other query examples.

Read more of this post

Introduction to MongoDb with .NET part 23: first aggregation examples

Introduction

In the previous post we introduced the topic of aggregations in general. Aggregations in MongoDb are similar in purpose to the GROUP BY clause in SQL. They help us analyse the data stored in the database so that understand things like long term business trends, user and customer behaviour, which part of our business is making losses and similar. Aggregation queries are added to the aggregation pipeline using $ operators and the documents are passed from one stage to the next in the pipeline. We will get the aggregation result at the end of the pipeline.

In this post we’ll look at our first aggregation example.

Read more of this post

Introduction to MongoDb with .NET part 22: starting with aggregations

Introduction

In the previous post we looked at bulk writes in the MongoDb .NET driver. We saw how various model allowed us to package together a number of insert, delete and update operations into one bulk write. The operations in the group are sent to the database to be executed at the same time.

We have therefore finished the discussion of the most important CRUD operations in this series. We are now familiar with the basics of SELECT, UPDATE, INSERT and DELETE both in the Mongo shell and the .NET driver. In this post we’ll start looking into a very different form of querying, namely aggregations. Aggregations are similar to grouping techniques in standard SQL using the GROUP BY clause. However, MongoDb aggregations are very different as far as the concept and the query syntax are concerned.

Read more of this post

Introduction to MongoDb with .NET part 21: bulk writes in the MongoDb driver

Introduction

In the previous post we discussed how to delete documents with the MongoDb .NET driver. After all we’ve learnt about filter definitions and various options it was really easy to go through the various deletion-related functions.

We’ve covered all the CRUD operations in .NET. I’d like to show one more database manipulation option related to CRUD before we move on: bulk writes.

Read more of this post

Introduction to MongoDb with .NET part 20: deletions in the MongoDb driver

Introduction

In the previous post we discussed how to perform updates via the MongoDb .NET driver. Update operations can be divided into replacements and “true” updates. A replacement is where an existing document is replaced by another and only the _id field stays constant. A “true” update is really how we normally think updates should happen, i.e. only specific properties are overwritten in the matching document(s). Both update types are represented by a number of methods in the driver such as UpdateOne or FindOneAndReplace or UpdateMany.

In this post we’ll close the CRUD circle and look at deletions in the driver. After all we’ve learnt about filter definitions and options it will be a breeze to go through deletions.

Read more of this post

Introduction to Amazon Code Pipeline with Java part 6: third party action overview

Introduction

In the previous post we looked at the most important keywords related to AWS CodePipeline. A pipeline is a workflow of stages that together describe the delivery process for a piece of software. This piece of software is called an artifact and goes through various revisions as it is passed from one stage to another. Each stage can consist of one or more actions. An action is a task performed on an artifact. If all actions in a stage have completed without a failure then the stage transitions into the next stage in the pipeline. It’s possible to disable the transition e.g. if it’s necessary to enforce a manual activation.

In this post we’ll start looking at a global overview for third party action development.

Read more of this post

Introduction to Amazon Code Pipeline with Java part 5: architecture key terms

Introduction

In the previous post we looked at some key differences between TeamCity/Jenkins and AWS CodePipeline. There are a number of aspects where these CI tools differ such as the installation, the deployment and custom build runner development.

In this post we’ll start looking at the CP architecture. We’ll concentrate on the key terms to begin with.

Read more of this post

Introduction to MongoDb with .NET part 19: update operations in the MongoDb driver

Introduction

In the previous post we discussed how to insert new documents via the MongoDb .NET driver. We saw that it wasn’t particularly complicated to use the various Insert methods. We just need to provide the object to be inserted and that’s about it.

In this post we’ll look at how to update documents. We have already seen how to do updates via the Mongo shell and now it’s enough to find how they are represented in C#.

Read more of this post

Elliot Balynn's Blog

A directory of wonderful thoughts

Software Engineering

Web development

Disparate Opinions

Various tidbits

chsakell's Blog

WEB APPLICATION DEVELOPMENT TUTORIALS WITH OPEN-SOURCE PROJECTS

Once Upon a Camayoc

ARCHIVED: Bite-size insight on Cyber Security for the not too technical.