Serverless is a framework allowing you to deploy “functions” on various different cloud providers such as AWS Lambda or Google Cloud Functions in an easy & automated manner. Terraform allows you to automate the deployment of cloud-specific configurations such as AWS SNS topics, SQS queues, IAM roles, etc…
This article won’t go into the details of Terraform, you can read more in the documentation. The key point is that when “running” your Terraform, you will be able to return values: they are called outputs.
You can get the output variables as a JSON object by running this command:
$ terraform output…
While working at Kamet, I’ve worked with many early-stage ventures. In this article, I will share my thoughts on different paths that startups can take regarding technical architectures.
I believe that a startup should prefer as much as possible a well-decoupled monolith than a micro-services architecture for as long as possible. Given the hype of the “functions” (i.e., serverless), it’s worth clarifying that they count as “micro-services” as they have almost the same characteristics (minus a bit of ops-headache).
We can’t argue that they are super en vogue, probably because they are used successfully by a few global companies like Netflix or Spotify. …
A fair amount of times, while running
react-native link [package] , I have seen the following error:
rnpm-install ERR! Something went wrong while linking. Error: Cannot read property ‘match’ of undefined
Every time, I’ve Googled it but did not find a satisfying answer and continued my way with manually linking the library. It turns out that all you need to do, is to add the following line in your
Podfile after existing
pod '[...] lines:
# Add new pods below this line
Every single software has some “legacy”, somewhere. You (or someone else) did things differently to what you believe is best to do now. Refactoring is the art of increasing the maintainability of a piece of code.
If you don’t have any refactoring to do, it’s very likely that you are either over-spending (i.e. you spend far too much time on quality for the sake of it) or you don’t realise that you could be much faster.
“Technical debt” is complete part of the development process and especially in fast-moving environments such as startups where the focus is more much on trying things. …
Let’s picture the scene. Your product is built on a mobile (or web) application and an API. Whether you are using a monolith repository or not, you will have two different applications your development team will work on: the front and the back.
Let’s be honest, changing both the Backend and the Frontend is great to very quickly prototype something. It’s also super easy to have one pull-request containing both changes if you use a monolith repository.
On the other hand… it means it’s very simple to introduce backward incompatible changes (also known as “BC breaks”). …
3 years ago, I was starting to push the first commits to a side project aiming at simplifying the deployment of my Docker containers (on a Kubernetes 0.x cluster at the time).
A year and a half later, my team and many others at Inviqa were using this project called ContinuousPipe as the main tool to deploy our “Dockerized” applications to Kubernetes clusters running on AWS and Google Cloud. …
How can you deploy your front-end and backend applications from a monolith repository to Heroku?
If you use different Git repositories for each of these applications you won’t have any problem. But I have to admit, I’m usually an advocate of monolith repositories. If you want to know why, this article is a good summary.
In order to achieve this goal, you could use different Heroku applications and deploy these applications by running the
heroku commands in the right directory from your continuous integration pipeline. This would work but there are multiple…
In the software engineering industry, we see more and more tools using environment variables as their main configuration mechanism. 12factor, Docker containers, PaaS such as Heroku, … environment variables are everywhere. Recently, Symfony also changed to use environment variables, via a
.env file, by default.
.env files (or environment variables in general) is not straightforward. Multiple times, I’ve faced these situations:
Bbecause I’ve set
falsein the previous variable
TL;DR: ContinuousPipe’s variables can be promoted to environment variables through the UI or a YAML line.
The most common and recommended way of injecting configuration into a running container is through environment variables. When using ContinuousPipe, you can use variables within the configuration files to reduce duplication, use conditional values, or even use encrypted values.
But there are two aspects to consider here:
As a result, we’ve decided to add a new feature to ContinuousPipe that allows you to automatically promote a variable to an environment variable for all or some of your containers. You can now change the ‘promotion status’ of the variable directly within the user interface. …
We’re delighted to officially launch ContinuousPipe — a cloud-based tool using technologies including Docker and Kubernetes to accelerate web and software development workflows and support continuous delivery.
ContinuousPipe significantly cuts lead times and speeds up the development feedback loop by automating the deployment, scaling, and management of web applications.
It enables web developers, IT managers, CTOs, and DevOps managers to collaborate more efficiently with stakeholders while limiting the waste and frustration caused by slow and unreliable developer environments.
ContinuousPipe aims to improve key components of the software development lifecycle including: