The microservice architecture has recently been gaining traction, with many companies sharing their positive experiences with applying it. The early adopters have been tech behemoths such as Amazon and Netflix, or companies with huge user bases like SoundCloud. Based on the profiles of these companies and the assumption that there’s more complexity to running and […]
Measure and Improve Your CI Speed with Semaphore
We’re happy to announce a new Semaphore feature that will help you monitor and improve your CI speed over time. We’re calling it CI Speed Insights, and it’s available to all Semaphore users as of today.
Faster Rails: How to Check if a Record Exists
Ruby and Rails are slow — this argument is often used to downplay the worth of the language and the framework. This statement in itself is not false. Generally speaking, Ruby is slower than its direct competitors such as Node.js and Python. Yet, many businesses from small startups to platforms with millions of users use […]
Celebrate Continuous Delivery in Slack with New Semaphore Notifications
By popular demand, we’re happy to announce that we’ve made some tweaks to Slack notifications coming from Semaphore. Here’s what our build and deployment notifications now look like: We experimented with different approaches, ranging from minimal to multi-line, rich format messages, and used them for our projects for several weeks. In the end, we settled […]
Getting Started with Mocking in Python
Introduction Mocking is simply the act of replacing the part of the application you are testing with a dummy version of that part called a mock. Instead of calling the actual implementation, you would call the mock, and then make assertions about what you expect to happen. What are the benefits of mocking? Increased speed […]
Making a Mailing Microservice with Elixir and RabbitMQ
At Rendered Text, we like to decompose our applications into microservices. These days, when we have an idea, we think of its implementation as a composition of multiple small, self-sustaining services, rather than an addition to a big monolith. In a recent Semaphore product experiment, we wanted to create a service that gathers information from […]
What is Proper Continuous Integration?
Continuous integration (CI) is confusing. As with all ideas, everybody does their own version of it in practice. CI is a solution to the problems we face while writing, testing and delivering software to end users. Its core promise is reliability.
Testing Routes in Angular 2
Introduction Routes provide benefits to the users of our applications. While routes are not necessary in all applications, they make applications shine a little brighter. Having routes in your application gives users the ability to return to a specific point in your application just by typing in a URL. Testing routes comes with some interesting […]
End-to-end Testing in Elixir with Hound
Introduction Testing is one of the ways to ensure the quality of our application, and it comes in many forms. The best known and the most popular among developers is unit testing. However, depending on what, how, and when we are testing, there are other options, e.g. integration, regression, load, acceptance testing, system, end- to-end, […]
Stubbing the AWS SDK
Originaly published on https://devops.college. Republished with author’s permission. If you’re reading this, dear Devop, you can probably remember a time before you were a Devop, or a Site Reliability Engineer, or whatever. Back to a time when you were a Systems Administrator, or a Unix Technician, or an Infrastructure Engineer; when your job involved switch […]
Moving Platform Updates to Changelog
Quick heads up that we’ll be publishing future platform updates on the Semaphore changelog.This will help us focus the blog on important product updates and …
Testing Topologies in Kafka Streams
Post originally published on https://www.madewithtea.com. Republished with author’s permission. TLDR: Kafka Streams is a deployment-agnostic stream processing library written in Java. Even though Kafka has a great test coverage, there is no helper code for writing unit-tests for your own Kafka Streams topologies. I wrote a little helper library Mocked Streams in Scala, which allows […]
Migrating from Snap CI to Semaphore
In the last week, news has spread throughout the CI/CD community about the announced shutdown of Snap CI, one of our highly-respected competitors. If you’re a Snap CI user looking for a new hosted CI/CD solution, here’s a comparison of Semaphore’s and Snap CI’s offering to help you decide if Semaphore is the right choice […]
Continuous Deployment with Google Container Engine and Kubernetes
Introduction This tutorial will show you how to deploy a sample microservices application to Kubernetes and set up continuous deployment using SemaphoreCI. It includes a crash introduction to Kubernetes, Google Container Engine, and building an automated deploy process. Kubernetes, or “k8s” for short, is an orchestration tool for container native applications. Note that Kubernetes is […]
Testing React Components with AVA
Introduction This is the third tutorial in our series on testing a React and Redux application with AVA. In this tutorial, we will build the actual UI for our todo application using React. We’ll connect our React components to the Redux store, test them using AVA and Airbnb’s Enzyme, and see how React makes it […]
CI/CD Weekly Newsletter
🔔 Get notified when the new articles and interviews are out.