- Master DevOps, Agile, Scrum, CI/CD and Cloud Native with hands-on job-ready skills.
Skills you will gain
- Cloud Native
- Application development
- Software Engineering
- Test-Driven Development
- Behavior-Driven Development
- Iaas PaaS Saas
- Hybrid Multicloud
- Cloud Computing
- Agile Software Development
- Scrum Methodology
About this Professional Certificate
DevOps professionals are in high demand! According to a recent GitLab report, DevOps skills are expected to grow 122% over the next five years, making it one of the fastest growing skills in the workforce.
This certificate will equip you with the key concepts and technical know-how to build your skills and knowledge of DevOps practices, tools, and technologies and prepare you for an entry-level role in Software Engineering.
The courses in this program will help you develop skill sets in a variety of DevOps philosophies and methodologies including Agile Development, Scrum Methodology, Cloud Native Architecture, Behaviour and Test-Driven Development, and Zero Downtime Deployments.
You will learn to program with the Python language and Linux shell scripts, create projects in GitHub, containerize and orchestrate your applications using Docker, Kubernetes & OpenShift, compose applications with microservices, employ serverless technologies, perform continuous integration and delivery (CI/CD), develop test cases, ensure your code is secure, and monitor & troubleshoot your cloud deployments.
Guided by experts at IBM, you will be prepared for success. Labs and projects in this certificate program are designed to equip job-ready hands-on skills that will help you launch a new career in a highly in-demand field.
This professional certificate is suitable for both – those who have none or some programming experience, and those with and without college degrees.
Applied Learning Project
Throughout the courses in this Professional Certificate, you will develop a portfolio of projects to demonstrate your proficiency using various popular tools and technologies in DevOps and Cloud Native Software Engineering.
- Create applications using Python programming language, using different programming constructs and logic, including functions, REST APIs, and various Python libraries.
- Develop Linux Shell Scripts using Bash and automate repetitive tasks
- Create projects on GitHub and work with Git commands
- Build and deploy applications composed of several microservices and deploy them to cloud using containerization tools (such as Docker, Kubernetes, and OpenShift), and serverless technologies
- Employ various tools for automation, continuous integration (CI) and continuous deployment (CD) of software including Chef, Puppet, GitHub Actions, Tekton and Travis.
- Secure and monitor your applications and cloud deployments using tools like sysdig and Prometheus.
What you will learn
- Develop a DevOps mindset, practice Agile philosophy & Scrum methodology – essential to succeed in the era of Cloud Native Software Engineering
- Create applications using Python language, using various programming constructs and logic, including functions, REST APIs, and libraries
- Build applications composed of microservices and deploy using containers (e.g. Docker, Kubernetes, and OpenShift) & serverless technologies
- Employ tools for automation, continuous integration (CI) and continuous deployment (CD) including Chef, Puppet, GitHub Actions, Tekton and Travis.
Overview of DevOps
Technology is just an enabler.
- DevOps is a cultural change in which team are working together in cross-functional teams.
- Opt for iterative approach with tighter feedback loops.
- Sets out principles and technics practices for rapid, incremental delivery of products
- Take 2 points of view
- from inside: Test-driven; does it worth doing this, how that will be use (TDD)
- from outside: Focus on the system as observed from the outside (BDD)
- Make each function independent and give them the responsibility to keeps track of their state.
- Use patterns to limit the scope of failure.
- Encourage crafted works and automate the rest.
- Breaks down silos and work together.
- Describe in executable format.
- Process are continuously improving: create, test, and integrate.
- The goal of creating is production.
- Align teams with the organization’s business domains.
- Works together with the same mindset
- Actions with consequences lead to empathy.
- Focus on actionable metric such as
- Mean lead time: how long it takes for an idea to get on the market?
- Change failure rate: how often we fail and why?
- Meantime to recover: how long it takes to recover from an error?
- Measure how useful you are; build things that the rest of the company finds valuable?
- How often other peoples use your information?
Have a cross-functional.
- Working in pair result in higher quality.
- Working in small batches reduces waste and means quickly delivering something useful to the customer.
- Minimum viable product is as much about delivery as it is about building what the customer really desires.
- Test-driven development is writing the test (scenario) of what you wish you had (the expecting result), then creating it to make the test pass.
- It allows you to be faster, with more confidence and less waste.
- Behavior-driven development focuses on the behavior of the system from the outside in. It looks at the system as a consumer of it.
- BDD use an approachable syntax that technologists and stakeholders can understand.
- Build independent business capabilities
- Make them automatically deployable as microservice.
- Self-services is the way to avoid bottlenecks.
- Design for failure rather than trying to avoid failure; since failure is inevitable.
- Embrace failure and quickly recover when failures happen.
- Implement automation.
Organizing for DevOps
Help other teams and shared your experience.
- Think like product development rather than project management.
- Share ownership, collaboration, embracing change, and data-driven responses.
- Describe in an executable format (action-driven).
- Continuous Integration: create, test, integrate, iterate. CI make you move faster and reduce the risk of error and waste.
- Execute in small batches.
- Continuous improvement.
- Shared responsibility.
- Contribute and reuse information, documents, … instead of creating new one.
- Use information from other projects or teams.
- Reward team that reuse information and when they share their own.
Organize small, dedicated, cross-functional and self-organizing teams.
- Each team should have its own mission that aligns with a business domain.
- One mindset for the whole organization.
- Breaking down siloed teams.
- Empowering everyone to deliver customer value.
- Working together during the entire project lifecycle
- Following Lean and Agile principles that allow to deliver high-quality results.
- Allowing teams to feel the effect of their actions fosters empathy, resulting in higher-quality work.
- Actions without consequences can lead to apathy.
- Using automation whenever it’s possible.
- Merging your work with the rest of the project as soon as possible (small batch).
Measure and reward what you want to improve.
- People seek information on what is rewarded and then seek to do that.
- Measuring social metrics leads to improved teamwork.
- If you want people to be social, then measure them being social.
- Measuring metrics to see the progression toward your goals.
- Changes the objective from problem prevention to problem resolution or situation recovery.
- Focus on actionable metrics that provide insights and meaningful ways to measure your processes and act toward goals.
- Actionable metrics include:
- Mean lead time measure of how long it takes for an idea to get to the market.
- Change failure rate is the rate of failure/error from pushing out.
- Meantime to recovery is how long it takes to recover from a failure/error.
- You can measure your team’s culture (including statements about information, failures, collaboration, and new ideas) with rate statements developed by Dr. Nicole Forsgren.
- Failures are learning opportunities that should not be punished.
Overview of Cloud ComputingCloud Computing ModelsComponents of Cloud Computing
Emergent Trends and Practices
- Zones, or Availability Zones, are distinct locations with one or more data centers with their own power, cooling, and networking resources.
- Each VM works like an independent physical entity with its own Operating System, runtime environments and applications.
- Dedicated hosts offer single-tenant isolation, which means only your VMs run on a given host.
- Bare Metal servers are single-tenant physical hosts that offer a highly customizable environment for intensive workloads.
- Bare metal servers are intended for high performance use in highly secure and isolated environments. Clients have full access and control of bare metal servers because they are dedicated for their use.
- Since bare metal servers are dedicated and fully customizable, they can do what a customer wants in the most demanding environments.
- Containers leverage the resources of the host OS, while VMs are set up to work as independent machines and can run an OS that is different from the host OS.
- A container includes only the executables with their dependencies, while each virtual machine needs to not only have a virtual copy of the hardware but also the OS.
- Direct Attached storage, also known as "local storage", is ephemeral as it is no longer accessible once the VM its attached to is de-provisioned.
- The ability for File Storage to be mounted to multiple compute nodes at a time make it an ideal solution for shared storage requirements.
- Block storage is accessed via a dedicated network of fibres through which signals move at high speed, consistently. This makes block storage suitable for low latency workloads.
- Fibre optic networks move traffic at consistently high speeds, making it ideal for applications that need consistent and fast access.
- You don’t need an underlying compute node to connect to object storage, rather you can access it from anywhere using an API.
- With file and block storage, you specify the size of the storage and pay a fee based on the size you provisioned. With Object Storage, you consume as much storage as you need and pay-as-you-go.
- CDNs reduce the amount of distance between the user and the content, or the server providing the content. CDN end-points are placed close to every location where users exist to reduce the time it takes for each user to access the website.
Cloud Security and Monitoring
- Hybrid Multicloud implies that you have the flexibility to work across cloud models and service providers without being locked-in to a specific vendor or model.
- Hybrid Multicloud strategy allows you to work across public and private clouds behaving as if they are part of the same infrastructure.
- Each component can be scaled independently, reducing the waste and cost associated with having to scale entire applications.
- Microservices are function specific independent components that can be developed and updated by multiple developers working independently on the individual components.
- This characteristic ensures the application is aligned with serverless architecture patterns.
- A cloud native application consists of microservices working together as independent units of software working as a whole.
- The DevOps’ practices of continuous integration and continuous deployment help create a fully automated deployment pipeline that tackles the complexities involved in application deployment.
- DevOps best practices make it possible to programmatically provision servers, build middleware, install application code, and fully automate the installation process.
- Correct, the three key transformations that drive application modernization are cloud adoption, microservices architecture, and DevOps.
- Since you’re no longer locked-in with a specific vendor, you can move applications and data not just between on-premise and cloud systems, but also between cloud service providers.
- The serverless model does require all these activities to be performed, but they are performed by the cloud service provider, not the developers. Serverless completely abstracts the infrastructure away from developers.
- Containers are plug-and-play, so if one microservice isn’t working for an application, developers can take it out and put in a different one without disrupting how the rest of the app functions.
- DevOps does not eliminate, rather automates the process to programmatically provision servers, build middleware, and install application code.