Home / Companies / Codefresh / Blog / June 2021

June 2021 Summaries

4 posts from Codefresh

Filter
Month: Year:
Post Summaries Back to Blog
Microsoft collaborates with the Docker team and community to facilitate running ASP.NET Core web apps in Docker containers, guiding users through creating Docker images and using prebuilt ones. The tutorial explains how to build a custom Docker image using a Dockerfile, which serves as a recipe for creating an image, and a .dockerignore file to optimize the build process by ignoring unnecessary files. It provides detailed instructions on building and running Docker images, both custom and prebuilt, and demonstrates accessing an app locally via HTTP and HTTPS, emphasizing the importance of HTTPS for secure communication. The guide also covers generating self-signed development certificates on different operating systems to enable HTTPS, ensuring data protection through encryption. Throughout the tutorial, users are encouraged to familiarize themselves with Docker commands and the use of ASP.NET Core in containerized environments, laying the groundwork for future exploration of Docker image creation methods for .NET applications.
Jun 22, 2021 1,138 words in the original blog post.
The final part of the "Enterprise CI/CD best practices" series emphasizes the critical role of databases in the continuous delivery process, advocating for their treatment as integral components, akin to software projects, to ensure effective updates and rollbacks. It highlights the importance of automating database updates to match the rigor applied to application code, while also advocating for gradual database upgrades to maintain compatibility and minimize downtime. The series underscores the necessity of using CI/CD platforms exclusively for deployments to maintain traceability, and encourages the adoption of progressive deployment patterns, which, when combined with comprehensive application and infrastructure metrics, enable automated rollbacks. It also stresses the need for staging environments to closely mirror production for effective testing, while advising organizations to adopt these best practices gradually, focusing first on those deemed critical, to enhance efficiency and reduce deployment failures.
Jun 11, 2021 1,950 words in the original blog post.
In the continuation of the "Enterprise CI/CD best practices" series, several key practices are emphasized to enhance software development workflows. Automating all tests is crucial to ensure confidence in new releases, minimizing manual testing to speed up deployments. Fast test execution is vital, ideally completing within 5-10 minutes, to maintain developer efficiency and focus. Tests should self-clean their side effects, enabling parallel execution and reducing dependencies on shared environments. Diverse test suites should be employed throughout the CI/CD pipeline, with the flexibility to select appropriate tests for different phases. Dynamic test environments allow for on-demand testing, eliminating bottlenecks associated with static staging setups. Concurrent test suite execution is encouraged to optimize time and accuracy. Security and quality scans should be integrated into the development process from the start, particularly at the pull request level, to address vulnerabilities and maintain code quality proactively.
Jun 11, 2021 1,818 words in the original blog post.
The guide addresses the gap in CI/CD resources by offering practical advice on implementing best practices, focusing on the technical aspects and the consequences of not adhering to them. It emphasizes the importance of having all application files under source control, creating a single artifact for all environments to avoid configuration discrepancies, and promoting artifacts rather than Git commits to maintain consistency and efficiency in the pipeline. The guide advocates using short-lived branches for each feature to simplify quality gating and deployment, ensuring that builds are fast and involve minimal manual steps, typically taking 5 to 10 minutes. Additionally, it highlights the significance of storing and caching dependencies to ensure build stability and reliability, suggesting testing builds in an air-gapped environment to identify missing dependencies that could cause issues in real-world scenarios.
Jun 11, 2021 2,150 words in the original blog post.