- DevOps Engineering program aims to prepare successful graduates for a promising career in the fast-paced and rapidly-growing field of DevOps, as well as grant them with the necessary skills for positioning themselves in the highly demanded segment of the IT Industry that requires software development, administration, business and operation capabilities.
- Participants will have a thorough understanding of DevOps and the modern DevOps toolsets, as well as a unique hands-on experience by using cutting edge DevOps technologies and platforms in the fields of IT Infrastructure & Configuration Management, Continuous Integration, Continuous Deployment & Continuous Delivery.
Traditionally, a team could be roughly divided into developers, e.g. people who know how to write code and operations, e.g. sysadmins, network admins, database admins, and all other people who know the infrastructure. That is, the operations were interested in keeping things stable, while developers mostly cared about new features, new versions, and bug fixes. It is therefore becomes obvious that developers and operations were completely isolated of each other, which reasonably rises a lack of cooperation and communication. As an immediate effect, the software could not be delivered at a desired fast pace. Recognizing this bottleneck, it is important from an organization’s perspective to invest time and new methodologies that improve communication and collaboration between all cross-functional teams.
DevOps is a philosophy (not a solution itself) that aims exactly at describing a culture and set of processes that break down traditional silos between developers, system admins etc. and enable them to better understand each other’s challenges. Devops approach thus requires people with multidisciplinary skills – people who are comfortable with both the infrastructure and configuration, but who are also capable of performing tests and debugging/developing software. When the teams are built upon this spirit, code for e.g. a new feature or a bug fix can be sent into production in no time – and be undone if necessary. Companies can then innovate on a regular basis concerning the entire delivery pipeline, including, faster time to market, lower failure rate of new releases, shortened lead time between fixes, faster recovery time (if a new release crashes), etc.
For an organization to be competitive and successful, the satisfaction of the above challenges is the only way. To realize them, DevOps builds on already well-established concepts:
- Containerization: Is a technology for simplifying and speeding up the process of deployment and configuration. It promotes microservice-like architectures, thus allowing for scaling only the desired functions without impacting on the entire application. Containers also are inherently portable, which eases the transition from development to production by allowing developers to place their app to diverse environments transparently.
- Continuous Integration (CI) / Continuous Delivery (CD): Team members integrate their work frequently. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. This approach has been proven to lead to significantly reduced integration problems and allows a team to develop cohesive software more rapidly, which can be reliably released at any time.
- Continuous Testing: We should continuously think about making improvements and stable all levels of testing (e.g. Integration, Load testing). Continuously testing throughout the development pipeline is imperative to stabilize changes and guarantee that software is ready to go.
- Continuous Monitoring: Continuous Monitoring allows Ops team to ensure that the environment is stable and that applications are performing at optimal levels – down to levels lower than system monitoring tools would allow. This requires that Ops teams work with Developers to build self-monitoring or analytics gathering capabilities right into the applications being built.
- Infrastructure as a code (IaaC): Server configuration, packages installed, relationships with other servers, everything should be modeled with code to be automated and have a predictable outcome. It is encouraged to remove manual steps that are error prone.
Based on the above, the main goal of this Seminar is to describe and demonstrate the potential and benefits of DevOps, as a philosophy towards efficient development, deployment and operation of the highest quality software possible, emphasizing on the pillars listed above. Indeed, concepts like agile development, continuous integration, etc. have helped companies move their code into production faster, more reliably, and with less downtime. These solutions support new thinking, offering valuable frameworks used at every development level, from beginners through expert gurus. Some indicative objectives and learning outcomes are summarized in the next Section.
- This specific Code.Learn program lasts 3 weeks (2 Fridays & 3 Saturdays) with 32 hours of lectures and hands-on exercise on real life case studies and projects.
Key Objectives – Curriculum (High Level)
Proposing DevOps as a holistic approach to continuous customer satisfaction, the core objective of this program is to present, explore and adequately cover with extended hands-on case studies & industry scenarios the following areas:
- DevOps principles
- Infrastructure management
- Configuration Management
- CI/CD Pipelines
- Docker and containers
Education & Experience
Computer scientists, software engineers, developers and system administrators are welcome to participate to this code.learn program and unlock the full potentiality of the topics taught by upskilling their future career.