7 Best practices to set up your first CI/CD pipeline
Learn CI/CD best practices to use automation and mobilize all the processes required to build, test, and release or deploy your software.
We recently upgraded our support plans, and starting from the Gold level, you can now request an Architecture Review from our team of Solutions Architects (SAs). The goal is to help you optimize and streamline your infrastructure so it can scale as you grow.
Our Solutions Architects are technical experts who are here to help you from the start, as you build and migrate your infrastructure to Scaleway. From now on, they will also help you find the best way to scale.
Before going into what this offer includes in more detail, we’d like to share some best practices we took away from helping hundreds of companies build their architecture.
At the start of your project, you had to set up your infrastructure. Now that your project has grown, it might no longer meet your needs, which means it is time for it to evolve. When assessing your architecture, the first step is making sure that best practices are implemented. That will help you find ways to optimize your solution. You can start by asking yourself the three following questions:
When you deploy a production environment, making sure the solution works perfectly is the priority. In order to guarantee a high level of availability, you need to implement best practices, such as having a failover on your database or moving to a static website in the event of server malfunction.
Another key consideration for your architecture is the Disaster Recovery Plan (DRP). Statistically speaking, we all know that incidents can’t always be prevented, so you need to be ready to transfer your solution to a backup environment. Depending on how critical it is, this environment can be available and running at all times, or be restarted quickly (using Infrastructure as Code, for instance) based on the latest backups or snapshots.
In order to prevent as many incidents as possible, a good dev practice is to deploy small updates on a regular basis. This helps to minimize the impact of bugs and allows you to backtrack quickly if needed.
To find out more about the best practices to apply during incidents, watch this video:
Even though the primary goal of your infrastructure is to serve applications to your end users, you cannot neglect your developers’ user experience. It is important to pay attention to the operational side of things, aka your engineers’ ability to support the efforts of the developers’ team to scale and push code into production. To support your dev teams, you need to use Infrastructure as Code (IaC) and implement CI/CDs. This allows developers to gain autonomy and take ownership for their deployments.
Not forgetting implementing effective supervision, that is decorrelated from the production platform. This helps prevent potential incidents occurring in production from spreading to other environments. Moreover, this type of supervision makes it possible to stay ahead of things by monitoring trends and anomalies.
It is necessary to conduct incident reports once each issue has been closed, whether or not it had an impact on production. Through this post mortem ritual, you can identify issues within your process to avoid repeating the same mistakes. The goal of such reports isn’t to pin the blame on somebody but to identify faulty processes. This is an important step, as it encourages your teams to look for issues without fear of being held accountable. Processes need to be called into question, not people. Incident reports are also a way to challenge your processes and improve them so your teams can work smoothly.
Costs should be taken into account when using cloud services. You want to make the most of all the resources you pay for, which means optimizing their usage. To do that, you need to follow several steps. First, you need to make sure that your applications are powerful enough to function properly. Then, you can optimize them by implementing autoscaling or by using serverless functions. When you start building an application, it’s easy to overestimate the size of the Instances you’ll need. Once you’re certain the application is working, it is time to adjust the resources so that the cost reflects your actual usage. You can change the size of Instances, or even configure your infrastructure to have them power down automatically - at night, for example, when your traffic is low. It is also possible to transform the way an application works by implementing read replicas (a read-only copy of your database) to improve the performance of your application.
Reviewing the above sometimes takes more resources and time than most companies can afford, which is why you can now take advantage of an architecture review from Scaleway’s experts as part of our support plans.
Scaleway’s Solutions Architects (SAs) work with our Sales team to help you design your architecture. They keep you up-to-date on Scaleway’s latest available features, and work with the Product teams to best meet your needs. Our SAs are flexible –we know that a multinational company with a dedicated Ops team doesn’t expect the same level of guidance as an SMB building a showcase website–and you can count on us to adapt to your needs.
Our SAs are here to work by your side to understand your needs, your constraints, and your architecture. An architecture review follows three steps and requires active participation from your teams.
Step 1 - Discovery
The discovery phase lasts a whole day, during which we talk to your teams in order to better understand your current infrastructure, why you built it and how, and what you need to scale it up.
Step 2 - Study
The study phase allows the Solutions Architect to give you appropriate recommendations that will help you face your challenges. To conduct the most accurate analysis possible, the SAs will put their heads together to think about the different solutions available and identify the ones that best meet your needs.
Step 3 - Feedback
During a two-hour feedback session, including time for questions, we will present our recommendations to your team. Conducting this type of session allows us to ensure that all the recommendations we offer match your expectations and needs.
Via this review, we help you make sure that your architecture respects best practices. To do so our analysis is based on the following three areas:
Reliability and high availability: our SAs, in collaboration with your teams, identify and prevent single points of failure (SPOF) or backup issues
Operational excellence: we help you implement best practices in terms of development, pushing into production, and monitoring
Resource usage optimization: we also give you recommendations on how to scale your architecture by upgrading the design of your application to better fit the constraints of the cloud and meet your clients’ needs. This can be done, for instance, by adding a layer of cache.
Learn CI/CD best practices to use automation and mobilize all the processes required to build, test, and release or deploy your software.
Learn how to bring that mentality to your infrastructure and optimize your monthly cloud bill by leveraging automation tools, Serverless, and your storage to help close costly loopholes.
If you want to quickly and easily set up a cloud infrastructure, one of the best ways to do it is to create a Terraform repository. Learn the basics to start your infrastructure on Terraform.