Home / Companies / Humanitec / Blog / June 2020

June 2020 Summaries

9 posts from Humanitec

Filter
Month: Year:
Post Summaries Back to Blog
In the software development industry, traditional static testing environments are being replaced by ephemeral testing environments. These short-lived environments mimic a production environment and keep it in sync with it for building and testing feature branches. Ephemeral environments offer several advantages over static ones, including cost control, parallel processing, new opportunities for build strategies, clean environments, and ease of implementation using tools like Kubernetes. They enable teams to adopt continuous development workflows, reducing the time spent on environment setup and maintenance. By creating ephemeral environments, developers can focus on building and testing their code changes quickly, while also minimizing the costs associated with maintaining multiple long-lived environments.
Jun 30, 2020 1,160 words in the original blog post.
This lab article teaches how to deploy a Hugo static site using Humanitec, a platform engineering tool. The process involves creating a new Hugo site and cloning the Ananke theme, setting up a Github repository for the site, creating a Docker image for the site using Github Actions, and setting up a Github Action to build and push the site to Humanitec. Once the site is deployed, it can be tested by visiting the provided link. The article covers high-level steps and provides code snippets for each step, including creating a new Hugo site, setting up a Docker image, and creating a Github Action.
Jun 25, 2020 841 words in the original blog post.
In the article by Kaspar von Grünberg, CEO of Humanitec, several common mistakes in developer productivity are discussed. Adopting microservices without proper tooling can lead to increased maintenance and deployment complexity. Containers can also be a hindrance if not used correctly, with hard-coding configuration files being a particular issue. The adoption of Kubernetes without proper planning can result in teams struggling to manage the cluster, leading to decreased productivity. Additionally, forgetting to implement Continuous Delivery, having unmanageable test automation, managing databases oneself, and going multi-cloud unnecessarily can all hinder developer productivity. To avoid these common pitfalls, it is essential to adopt best practices such as using managed Kubernetes services, implementing Continuous Delivery, and structuring workflows for efficient testing and database management. By doing so, teams can improve their productivity, increase innovation, and achieve a better work-life balance.
Jun 24, 2020 1,878 words in the original blog post.
Here's a neutral and interesting summary of the text in one paragraph: Implementing continuous integration, delivery, and deployment practices can bring numerous benefits to software development teams, including increased stability, reduced bugs, and improved communication. Continuous Integration (CI) involves automating the build process and running tests on every code push, while Continuous Delivery (CD) extends CI by automating the deployment of builds to production environments. Continuous Deployment (CD) takes CD a step further by automatically deploying builds to production without manual intervention. To get started with these practices, teams need a version control system, solid test coverage, and a CI service or server to monitor for changes and run tests. The key is to start small, automate repetitive tasks, and gradually increase the complexity of the processes as the team gains experience. With careful planning and implementation, continuous delivery can lead to faster time-to-market, improved quality, and increased confidence in the deployment process.
Jun 19, 2020 1,375 words in the original blog post.
Continuous delivery helps software development teams get their code changes from development to testing, and into the hands of users more quickly by focusing on small, discrete code changes that reflect a particular feature or bug fix. This practice ensures that teams can release software at any time with confidence that their changes are tested and successfully built. The benefits include measurable success, increased user satisfaction, improved mean time to recovery, and better visibility into team progress. To implement continuous delivery effectively, it's essential to choose the right tools, build on a solid base, generate reproducible builds, get feedback from users, and avoid flaky tests. By following these best practices, teams can streamline their development workflow and deliver software faster and more reliably.
Jun 16, 2020 1,185 words in the original blog post.
To effectively manage environment variables, it is essential to minimize default values and ensure that parameters are set as environment variables. This can prevent unexpected behavior or false positives. Additionally, keeping configuration clean by deleting dead lines of code and leaving comments for obscure sections can improve maintainability. Maintaining an architecture schema using tools like asciiflow.com can also help understand the dependencies of an application. Humanitec provides a platform that offers dynamic environment variables, managed services, and easy rollback capabilities to manage environment variables efficiently. By following these best practices and utilizing tools like Humanitec, teams can avoid common struggles such as fear of breaking things, loss of control, and difficulty in achieving high-level views of the system.
Jun 15, 2020 1,895 words in the original blog post.
Lead time is the time it takes for a company to implement, test, and deliver code. Measuring lead time enables companies to streamline and optimize deployment pipelines, reducing lead times to improve business outcomes. The aim is to increase speed of deployment through automation, such as optimizing integration of testing process. Development environments ensure software is rigorously tested across shared, test, and feature environments. Lead time is a clear metric to measure team deployments' efficiency, representing how responsive the company is to customer needs. Companies with shorter lead times, like CapitalOne, deploy code 208 times more frequently than low performers. To reduce lead time, companies can automate deployment pipelines through Continuous Integration and Continuous Delivery, releasing features regularly rather than waiting for big releases. However, lead time measurement should be considered in context of team size, skill, workload, and priorities, as it's not a precise science to measure individual team member work, but rather to identify bottlenecks and optimize business outcomes.
Jun 10, 2020 1,178 words in the original blog post.
In Kubernetes, environment variables can be used to configure and manage the behavior of applications running on the cluster. Environment variables can be set directly in configuration files or using various tools such as kubectl. There are two ways to define environment variables with Kubernetes: by setting them directly in a configuration file or using configMaps. ConfigMaps provide a way to decouple configuration from image content and infrastructure, while secrets store sensitive information such as passwords and access keys. Environment variables can be used to set values for fields and resources, and can also be used to populate environment variables from other sources. Kubernetes provides various ways to manage environment variables, including using kubectl commands, configMaps, secrets, and variable references.
Jun 05, 2020 1,017 words in the original blog post.
The public cloud infrastructure offers infinite scalability, allowing teams to cope with events like Black Friday and spin up new environments as needed. However, many teams are stuck with dev and staging environments due to environment-specific configs built into the code. The most problematic approach is to build different containers for each environment, violating testing setup integrity and requiring repeated tests for production versions. Another approach is to hardwire configuration in one large config file, limiting the number of environments. Environment variables provide a simple solution to unlock full ad-hoc environment potential, externalizing configs and enabling easy manipulation whenever a new environment is needed. By using environment variables, teams can keep important configurations separate from application code, ensuring flexibility and efficiency in continuous delivery and container-based applications.
Jun 04, 2020 945 words in the original blog post.