
Continuous Integration (CI) is a software development practice that automates building, testing, and deploying code changes. CI can help improve the quality and reliability of software and reduce the time it takes to release new features.
Bamboo is a popular CI server that can help you automate your build, test, and deployment process. Bamboo is a commercial product that offers a free trial, so you can try it before buying it.
In this lecture, you will learn:
What is continuous integration (CI)?
What are the benefits of using CI?
What is Bamboo?
There are several ways to deploy Atlassian Bamboo, but not all configurations are scalable and cost-effective. In this lecture, we will explore a Bamboo deployment model suitable for teams and organizations of all sizes and cost-effective.
Prepare for a seamless Atlassian Bamboo deployment in your preferred environment, whether for educational purposes, practice, or extensive team utilization.
Bamboo is a cross-platform system, and it works on Windows perfectly. In this lecture, we will see how Atlassian Bamboo can be deployed on a Windows Server effortlessly. You can use the same method for installing Atlassian Bamboo on your personal Windows computer too.
Bamboo is a cross-platform system, and it works flawlessly on Mac. This lecture will show how Atlassian Bamboo can be deployed on a Mac computer effortlessly.
Linux is the preferred operating system for hosting applications used in a production capacity, and Atlassian Bamboo is no exception. In this lecture you will learn that how you can setup Atlassian Bamboo on a Linux server properly.
Atlassian Bamboo supports several database servers as its underlying database system. These databases include MySQL, SQL Server and Postgres. Bamboo also has a built-in database suitable for learning and practising.
Build Agents are part of an Atlassian Bamboo ecosystem and are responsible for building, testing and packaging your code. In this lecture you will learn about how a Build Agent works along side an Atlassian Bamboo instance.
This lecture will teach us about different Build Agents types and when we used each type.
Elastic Build Agents are designed for larger teams that need many build agents to cater for the number of concurrent builds they have. They only work in Amazon Web Services, but they are an excellent approach for reducing the cost of server instances whilst providing high-availability and scalability.
This lecture will demonstrate Installing and configuring an Atlassian Bamboo Build Agent
Build Agents are not capable of building or testing your code. This lecture will show how capabilities can be added to make agents.
Remote Build Agents reside on separate servers than the Atlassian Bamboo's server. In this lecture we will see that how we create secure connections between Atlassian Bamboo and its remote agents.
A project in your company is represented as a Project entity in Atlassian Bamboo. Projects have a rather complex structure in Bamboo, making it very flexible and powerful. Assignments are made of Stages, Jobs and Tasks. Some steps can be executed in parallel, while others only execute sequentially. In this lecture, you will learn how you can leverage the power of this flexible project structure to build and test your application fast.
If your company uses a GitHub organisation or GitHub enterprise, you can leverage GitHub's security mechanism for securely authenticating and cloning GitHub repositories.
A secure and common way of connecting to GitHub and BitBucket is by using a private and public key pair. This mechanism will enable Atlassian Bamboo Agents to securely communicate with GitHub and BitBucket and close the required repositories.
Your Atlassian Bamboo Build Agent must be able to connect to Git repositories and download the source code before it can build and test it. This lecture will show how your Bamboo Agent can close a public Git repository.
Atlassian Bamboo includes a complex yet very flexible project structure. Learning this structure properly and understanding how it is used in different scenarios is important. In this lecture we will learn about Projects, Build Plans, Stages, Jobs and Tasks.
Atlassian Bamboo supports the concept of variables, which can be used to parametrise projects and build plans, making the CI/CD process very flexible.
Several built-in variables can be used without having to define them explicitly. These variables provide information about the source control repository, build environment, and operating system environment.
Running a building plan manually is only one of the many ways that a building plan can be kicked off. You can define different triggers to start the build and deployment process based on certain conditions.
In a Git ecosystem, it is common to have feature branches and branches made out of the primary or master branch to support custom product development. Such units often have slightly different build and deployment processes and schedules. In Bamboo, a Plan Branch can be created to address this requirement.
Build Plans in Atlassian Bamboo are made of multiple stages, and each step can produce artifacts that the next stages may use. In this lecture we will learn that how an artifact can be passed on to another stage, and how we can make a stage dependant on the correct production of an artifact in the previous stages.
A key step in an efficient continuous integration system is the automatic execution of unit tests, and stopping the code integration and deployments if the unit tests fail. In this lecture we will add unit tests and run them in Atlassian Bamboo.
In this lecture we will integrate the unit testing results with the user interface of Atlassian Bamboo to get more details and insights about the test results.
Code Inspection is a highly recommended step to be integrated into your Continuous Integration to ensure that incoming code changes pass the unit tests and are of excellent quality. Code quality checks can be performed using ReSharper Command Line Tools, Maven, Gradle, and SonarCube. Atlassian Bamboo can parse and display the code inspection results of such tools and fail the code integration or deployments if the code quality is deemed unsatisfactory.
Atlassian Bamboo is a complete Continuous Integration (CI) and Continuous Deployment (CD) suite. This is great, as you will not need to deploy a separate continuous deployment software such as Octopus Deploy. This lecture introduces you to the deployment projects in Atlassian Bamboo.
This lecture demonstrates that how a deployment project is created and managed in Atlassian Bamboo.
Developing, using and deploying containerised microservices has become very common. Therefore in lectures #31 to #33 we will work on deploying our code artifacts using Docker Containers.
Deploying your product as a Docker Container is often about pushing your produce Docker Image to your Docker Registry, i.e., AWS ECR in Amazon Web Services. Container orchestration systems such as Kubernetes or AWS ECS will refresh the containers based on the newly pushed image either automatically or based on a defined trigger. In this lecture we will see that how we can push a Docker image to Ducker Hub using Atlassian Bamboo Data Center.
AWS Lambda functions can be deployed in several ways, including AWS CLI and AWS CloudFormation. This lecture will explain how we will deploy the Python Lambda function to AWS.
Not all users can deploy the produced artifacts to the Staging or Production environments. Deploying software to such environments requires a level of authority and permissions. For example, it is common that only a product manager can deploy the final software to Production environment after consulting the chief technology officer. In this lecture we will explore the permissions of deployment projects and deployment environments.
If you are the administrator in Bamboo, you can add more users and groups to grant access to other developers in your team. Then, you can control what access rights each person or group can have.
If you need to inform certain users about the various events in Bamboo, such as failing builds, then you will find this topic very useful. Once you finish this lecture, you can define alerts and notifications in Bamboo and integrate them with various channels, such as Slack.
Atlassian Bamboo has built-in features,, but you do not need to limit yourself to those out-of-the-box capabilities. You can extend your Atlassian Bamboo deployment by adding Applications and Add-ons. In this lecture we will see how you can extend your Atlassian Bamboo and will introduce you to some useful add-ons.
Master Atlassian Bamboo Data Center: Unlock the Power of Continuous Integration and Delivery!
Learn how to leverage Atlassian Bamboo Data Center, the industry-leading Continuous Integration and Delivery tool, to streamline your software development process. This comprehensive course offers valuable insights and hands-on training to help you harness the full potential of this powerful technology.
In this course, you will discover:
Cost-effective and scalable deployment of Atlassian Bamboo.
Building, Testing and Packaging your code.
Deploying your code artifacts as Docker Containers.
Deploying Serverless microservices.
Unit testing and code inspection.
Administrative tasks
This course is the culmination of over two decades of my experience as a software engineer and my role as a technology manager specializing in crafting adaptable and cost-effective CI/CD systems over the past decade.
Recently, I've undertaken a comprehensive overhaul of this course, reimagining it from the ground up. The goal was to ensure it aligns seamlessly with the latest features of Atlassian Bamboo Data Center and embraces contemporary software deployment trends, including containerization and serverless deployments.
Upon completing this course, you'll have honed the highly sought-after skills required for architecting, setting up, and configuring Atlassian Bamboo confidently.
Join this course today and unlock the full potential of Atlassian Bamboo in your software development journey. Enrol now to embark on an exciting learning experience!