This document discusses setting up a CI/CD pipeline for a Laravel application on Google Compute Engine. It explains the benefits of CI/CD such as ensuring code changes are properly tested and tracked. The workflow involves connecting a GitHub repository to Cloud Source Repositories, creating a Cloud Build trigger, using a cloudbuild.yaml file, and a bash script to build and deploy the application across environments. Resources for learning more about CI/CD on Google Cloud are also provided.
The presentation from my talk on Continuous Integration and Builds at XP Days Indore 2010. The target audience was MCA students, faculty and members of IT industry in and around Indore.
The presentation from my talk on Continuous Integration and Builds at XP Days Indore 2010. The target audience was MCA students, faculty and members of IT industry in and around Indore.
Talk presented at DevOpsDays in Auckland (2017) discussing how DevOps applies to Embedded Software Development. This talk discusses the approaches Navico have taken in the past and are planning to do going forward.
"How to deploy to production 10 times a day" Андрей ШумадаFwdays
Все більше і більше команд переходять на короткий цикл розробки. Поговоримо про те, які переваги нам це дає, як далеко можна зайти в автоматизації викатування нових версій в продакшн так як при цьому забезпечити хорошу якість продукту.
All organizations want to go faster and decrease friction in delivering software. The problem is that InfoSec has historically slowed this down or worse. But, with the rise of CD pipelines and new devsecops tooling, there is an opportunity to reverse this trend and move Security from being a blocker to being an enabler.
This talk will discuss hallmarks of doing security in a software delivery pipeline with an emphasis on being pragmatic. At each phase of the delivery pipeline, you will be armed with philosophy, questions, and tools that will get security up-to-speed with your software delivery cadence.
From DeliveryConf 2020
Harman deepak v - agile on steriod - dev ops led transformationXebia India
Focusing on faster development cycles packed with features…
Documentation to working software each iteration
Waterfall releases to Incremental high value feature releases
Dev + Test – one agile team with cross functional skills
Learn how to use AWS services to automate manual tasks, help teams manage complex environments at scale, and keep engineers in control of the high velocity that is enabled by DevOps. In this session, we will provide an overview of the various AWS development and deployment services and when best to use them. We will show how to build a fully automated infrastructure and software delivery pipeline with AWS CodePipeline, AWS CodeBuild, AWS CloudFormation and AWS CodeDeploy. At the end of the session, a GitHub repository of AWS CloudFormation templates will be provided so you can quickly deploy the same pipeline to your AWS account(s).
One of the challenges faced by many web development based projects is the integration of source code for multiple releases during parallel development. The task to build and test the multiple versions of source code can eat out the quality time and limit the efficiency of the development/QA team. The case study focuses to resolve the issues of extensive effort consumed in build and deployment process from multiple branches in source repository and aim at Identification of source code integration issues at the earliest stage. This can further be enhanced to limit the manual intervention by integration of build system with test automation tool.
The above can be achieved by using different CI tools (like Hudson/Bamboo/TeamCity/CruiseControl etc) for continuous build preparation and its integration with any test automation suite. The case study specifies the use of CI-Hudson tool for continuous integration using ANT tool for build preparation and further invoking the automation test suite developed using selenium. It also discusses the limitations and challenges of using such an integration system for testing a web based application deployed on Apache Tomcat server. It also details additional plugins available to enhance such an integration of multiple systems and what can be achieved using the above integration.
Práticas, Técnicas e Ferramentas para Continuous Delivery com ALMMarcelo Sousa Ancelmo
Palestra feita na trilha de DevOps no TDC2014 em São Paulo.
Como estruturar uma estratégia de Continuous Delivery suportada por ALM, promovendo visibilidade, colaboração e controle
Docker Meetup at Docker HQ: Docker CloudDocker, Inc.
Talk #1: Ryan Kennedy, CI: Build and Test in Docker Cloud
In this talk, Ryan Kennedy will present an overview of Docker Cloud and demonstrate how to configure a CI pipeline using the automated build and test capabilities. We will dive into the latest features available in Docker Cloud, including sharing repositories with teams and securing your application pipeline.
*
Talk #2: Bryan Lee and Alberto Megia, Deploying and Managing Applications in Docker Cloud
In this talk, Bryan Lee and Alberto Megia will demonstrate auto-deployment capabilities in Docker Cloud as well as how to deploy, manage, and scale container-based applications directly within the tool.
Talk presented at DevOpsDays in Auckland (2017) discussing how DevOps applies to Embedded Software Development. This talk discusses the approaches Navico have taken in the past and are planning to do going forward.
"How to deploy to production 10 times a day" Андрей ШумадаFwdays
Все більше і більше команд переходять на короткий цикл розробки. Поговоримо про те, які переваги нам це дає, як далеко можна зайти в автоматизації викатування нових версій в продакшн так як при цьому забезпечити хорошу якість продукту.
All organizations want to go faster and decrease friction in delivering software. The problem is that InfoSec has historically slowed this down or worse. But, with the rise of CD pipelines and new devsecops tooling, there is an opportunity to reverse this trend and move Security from being a blocker to being an enabler.
This talk will discuss hallmarks of doing security in a software delivery pipeline with an emphasis on being pragmatic. At each phase of the delivery pipeline, you will be armed with philosophy, questions, and tools that will get security up-to-speed with your software delivery cadence.
From DeliveryConf 2020
Harman deepak v - agile on steriod - dev ops led transformationXebia India
Focusing on faster development cycles packed with features…
Documentation to working software each iteration
Waterfall releases to Incremental high value feature releases
Dev + Test – one agile team with cross functional skills
Learn how to use AWS services to automate manual tasks, help teams manage complex environments at scale, and keep engineers in control of the high velocity that is enabled by DevOps. In this session, we will provide an overview of the various AWS development and deployment services and when best to use them. We will show how to build a fully automated infrastructure and software delivery pipeline with AWS CodePipeline, AWS CodeBuild, AWS CloudFormation and AWS CodeDeploy. At the end of the session, a GitHub repository of AWS CloudFormation templates will be provided so you can quickly deploy the same pipeline to your AWS account(s).
One of the challenges faced by many web development based projects is the integration of source code for multiple releases during parallel development. The task to build and test the multiple versions of source code can eat out the quality time and limit the efficiency of the development/QA team. The case study focuses to resolve the issues of extensive effort consumed in build and deployment process from multiple branches in source repository and aim at Identification of source code integration issues at the earliest stage. This can further be enhanced to limit the manual intervention by integration of build system with test automation tool.
The above can be achieved by using different CI tools (like Hudson/Bamboo/TeamCity/CruiseControl etc) for continuous build preparation and its integration with any test automation suite. The case study specifies the use of CI-Hudson tool for continuous integration using ANT tool for build preparation and further invoking the automation test suite developed using selenium. It also discusses the limitations and challenges of using such an integration system for testing a web based application deployed on Apache Tomcat server. It also details additional plugins available to enhance such an integration of multiple systems and what can be achieved using the above integration.
Práticas, Técnicas e Ferramentas para Continuous Delivery com ALMMarcelo Sousa Ancelmo
Palestra feita na trilha de DevOps no TDC2014 em São Paulo.
Como estruturar uma estratégia de Continuous Delivery suportada por ALM, promovendo visibilidade, colaboração e controle
Docker Meetup at Docker HQ: Docker CloudDocker, Inc.
Talk #1: Ryan Kennedy, CI: Build and Test in Docker Cloud
In this talk, Ryan Kennedy will present an overview of Docker Cloud and demonstrate how to configure a CI pipeline using the automated build and test capabilities. We will dive into the latest features available in Docker Cloud, including sharing repositories with teams and securing your application pipeline.
*
Talk #2: Bryan Lee and Alberto Megia, Deploying and Managing Applications in Docker Cloud
In this talk, Bryan Lee and Alberto Megia will demonstrate auto-deployment capabilities in Docker Cloud as well as how to deploy, manage, and scale container-based applications directly within the tool.
1.Wireless Communication System_Wireless communication is a broad term that i...JeyaPerumal1
Wireless communication involves the transmission of information over a distance without the help of wires, cables or any other forms of electrical conductors.
Wireless communication is a broad term that incorporates all procedures and forms of connecting and communicating between two or more devices using a wireless signal through wireless communication technologies and devices.
Features of Wireless Communication
The evolution of wireless technology has brought many advancements with its effective features.
The transmitted distance can be anywhere between a few meters (for example, a television's remote control) and thousands of kilometers (for example, radio communication).
Wireless communication can be used for cellular telephony, wireless access to the internet, wireless home networking, and so on.
# Internet Security: Safeguarding Your Digital World
In the contemporary digital age, the internet is a cornerstone of our daily lives. It connects us to vast amounts of information, provides platforms for communication, enables commerce, and offers endless entertainment. However, with these conveniences come significant security challenges. Internet security is essential to protect our digital identities, sensitive data, and overall online experience. This comprehensive guide explores the multifaceted world of internet security, providing insights into its importance, common threats, and effective strategies to safeguard your digital world.
## Understanding Internet Security
Internet security encompasses the measures and protocols used to protect information, devices, and networks from unauthorized access, attacks, and damage. It involves a wide range of practices designed to safeguard data confidentiality, integrity, and availability. Effective internet security is crucial for individuals, businesses, and governments alike, as cyber threats continue to evolve in complexity and scale.
### Key Components of Internet Security
1. **Confidentiality**: Ensuring that information is accessible only to those authorized to access it.
2. **Integrity**: Protecting information from being altered or tampered with by unauthorized parties.
3. **Availability**: Ensuring that authorized users have reliable access to information and resources when needed.
## Common Internet Security Threats
Cyber threats are numerous and constantly evolving. Understanding these threats is the first step in protecting against them. Some of the most common internet security threats include:
### Malware
Malware, or malicious software, is designed to harm, exploit, or otherwise compromise a device, network, or service. Common types of malware include:
- **Viruses**: Programs that attach themselves to legitimate software and replicate, spreading to other programs and files.
- **Worms**: Standalone malware that replicates itself to spread to other computers.
- **Trojan Horses**: Malicious software disguised as legitimate software.
- **Ransomware**: Malware that encrypts a user's files and demands a ransom for the decryption key.
- **Spyware**: Software that secretly monitors and collects user information.
### Phishing
Phishing is a social engineering attack that aims to steal sensitive information such as usernames, passwords, and credit card details. Attackers often masquerade as trusted entities in email or other communication channels, tricking victims into providing their information.
### Man-in-the-Middle (MitM) Attacks
MitM attacks occur when an attacker intercepts and potentially alters communication between two parties without their knowledge. This can lead to the unauthorized acquisition of sensitive information.
### Denial-of-Service (DoS) and Distributed Denial-of-Service (DDoS) Attacks
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesSanjeev Rampal
Talk presented at Kubernetes Community Day, New York, May 2024.
Technical summary of Multi-Cluster Kubernetes Networking architectures with focus on 4 key topics.
1) Key patterns for Multi-cluster architectures
2) Architectural comparison of several OSS/ CNCF projects to address these patterns
3) Evolution trends for the APIs of these projects
4) Some design recommendations & guidelines for adopting/ deploying these solutions.
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC
Ellisha Heppner, Grant Management Lead, presented an update on APNIC Foundation to the PNG DNS Forum held from 6 to 10 May, 2024 in Port Moresby, Papua New Guinea.
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBrad Spiegel Macon GA
Brad Spiegel Macon GA’s journey exemplifies the profound impact that one individual can have on their community. Through his unwavering dedication to digital inclusion, he’s not only bridging the gap in Macon but also setting an example for others to follow.
This 7-second Brain Wave Ritual Attracts Money To You.!nirahealhty
Discover the power of a simple 7-second brain wave ritual that can attract wealth and abundance into your life. By tapping into specific brain frequencies, this technique helps you manifest financial success effortlessly. Ready to transform your financial future? Try this powerful ritual and start attracting money today!
2. Continuous Delivery
- Make release process safe, low-
risk, and quick.
- Require CI
- Automate deployments across
multiple environment and targets
Continuous Integration (CI)
- Automate build and test
workflows on changes to source
code
- Merge changes regularly to
detect problems early and often
What Is CI/CD?
5. Why CI/CD?
- Ensure changes to code base are properly tracked, tested, and built
- Automation to minimize human error
- Easily track source of bugs and ability to roll back
- Happier development & operations team
Bismillah Assalamu’alaykum warohmatullahi wabarokatuh
Selamat siang kawan - kawan semua
Terima kasih kepada para organizer, yang sudah memberikan kesempatan kepada saya untuk berbagi di acara google cloud Dev Fest 2022 Medan pada hari ini.
Sebelumnya, saya akan memperkenalkan diri terlebih dahulu
Nama saya Dolly Aswin HarahapDan saya asli Medan, dan berdomisili di Medan juga
Saat ini… saya bekerja di Xtend Indonesia, sebagai Software Director.
Yang mana Xtend Indonesia sendiri adalah salah satu perusahaan IT di kota Medan. Yang memiliki layanan software development, software & hardware integaration dan juga security system.Di Xtend kita sangat terbuka bagi kawan - kawan yang mau datang belajar pemrograman kita dipersilahkan. Karena kita di sana ada beberapa middle level programmer yang bisa mengarahkan kawan - kawan untuk belajar pemrograman.
Okay, itu sekilas tentang saya dan Xtend Indonesia.
Kita lanjut ke materi, pada sesi ini saya akan membahas tentang CI/CD Laravel Application di Google Cloud Compute Engine
CI/CD sudah tau ya?
Continues Integration / Continuous Delivery
Compute Engine sendiri adalah layanan dari Google Cloud untuk Virtual Machine (yg biasa disebut VM) Instance
Sama seperti Amazon EC2 atau Droplet di Digital Ocean.
Sebenarnya pembahasan CI/CD di google cloud ini sudah banyak dibahas di youtube, maupun berupa artikel
Baik yang berbahasa Indonesia, ataupun bahasa Inggris.
Dan kali ini, saya akan membahas cara membuat CI/CD yang paaaaaling sederhana di Google Cloud
Yang cara ini sebenarnya bisa diaplikasian di layanan - layanan lain seperti
Bitbucket Pipeline
Gitlab Pipeline
Ataupun Github Action
Tapi…., ketika kita menggunakan infrastructure google cloud
Let say, mulai dari DNS (google cloud DNS), VM (compute engine) ataupun database (Cloud SQL),
Alangkah baiknya, CI/CD nya juga kita setup di Google Cloud.
Kenapa?
Yang pertama pastinya lebih cepat, karena layanan - layanan yang kita gunakan berada dalam 1 ekosistem yang sama. Dan pastinya latencynya juga lebih kecil. Dan hasilnya prosesnya jadi lebih cepat dibanding menggunakan layanan - layanan yg saya sebutkan sebelumnya
Bitbucket Pipeline
Gitlab Pipeline
Ataupun Github Action
Okay, kita lanjut
Seperti yang dijelaskan sebelumnya, CI adalah singkatan dari Continuous Integration
Yang di dalamnya ada proses - proses berikut
Otomasi build dan testing, setiap ada perubahan pada source code. Akan tetapi itu tergantung konfigurasi yang kita tentukan, di branch mana saja CI ini akan dilaksanakan.
Menyatukan perubahan tersebut secara rutin, dan dari otomasi build & testing tadi kita dapat mendeteksi problem, lebih awal dan sesering mungkin
Dan di dalam Continuous Delivery
Terdapat proses - proses berikut
Membuat proses rilis aman, tidak beresiko dan cepat
Dan Continuous Delivery ini memerlukan Continuous Integration. Artinya hasil dari continuous integration inilah yang akan di-delivery. Kalau tidak ada CI, jadi apa yang mau di deliver
Otomasi deployment ke beberapa environment (baik itu development, staging, ataupun production) dan target
Kita lanjut ke Tools - tools yang umum digunakan di dalam Continues Integration
Untuk CI Tools ini, dibagi menjadi 2 bagian
Source Code Management (SCM)
Ini sudah umum ya, Kita ambil beberapa contoh (github, github enterprise, bitbucket, mercurial, perforce, gitlab), dan di Google Cloud kita akan gunakan Cloud Source Repository untuk membuat setting CI nanti
Continuous Integration Server
Kita ambil beberapa contoh mulai dari yang legend seperti Jenkins, Travis CI , Circle CI (kalau kalian sadar, beberapa tahun yang lalu Circle CI ini sering iklan di Youtube), tapi belakangan ini sudah gak ada lagi.
(Dan Travis CI ini menarik ya, dia sangat populer di kalangan project open source, karena dia memberikan layanannya gratis kepada project - project open source.
Tapi sejak desember 2020 dia berhenti memberikan layanannya free kepada project open source. Sehingga banyak project open source yang beralih menggunakan Github Action saja untuk melakukan proses build.
Nah, emangnya untuk apa project open source menggunakan Travis CI ini? Ada yang tau?
Tujuannya adalah untuk build source code.
Dalam build itu biasanya ada bbrp proses
Pengecekan Code sesuai coding standard atau tidak
Penggabungan/Merge code
Menjalankan unit testing
Dijalankan lah unit test itu di environment yang berbeda - beda.Contohnya kita ambil Laravel yang akan kita gunakan hari ini.Laravel di-build di versi PHP yang berbeda. Ada 7.1, 7.2, 7.3, 74, dan PHP 8. Untuk memastikan bahwa laravel ini akan jalna di versi PHP yang tadi itu
Makanya kita bisa lihat di poject open source itu ada label Build pass (biasanya warna hijau) atau failed (warna merah). Nanti kawan - kawan bisa cek langsung di halaman githubnya Laravel, atau project - project open source yang lain.
Okay, ini untuk CI Tools yang umum, kita lanjut ke CD Tools yang umum digunakan
CD Tools yang umum di gunakan
Ada Puppet, GoCD, Ada jenkins lagi, ada chef, dan ada bash script
Semua tools ini digunakan untuk automasi delivery ataupun deployment
Nah, di sini ada jenkins lagi. Padahal tadi dia sudah masuk ke dalam CI Tools
Kalau di dalam CI process jenkins, digunakan untuk melakukan build dan testing, di sini jenkins digunakan juga untuk melakukan deployment. Karena memang jenkins bisa digunakan untuk keduanya.
Dan pada setting deployment aplikasi laravel nanti kita gunakan Bash Script. Yang mana nanti Bash Script ini juga digunakan untuk CI & CD
Kita lanjut ke slide berikutnya mengapa menggunakan CI/CD
Mengapa menggunakan CI/CD
Untuk memastikan perubahan di dalam code itu benar - benar bisa di-trace (ini merupakan bagian dari Source Code Management tadi yaitu github, bitbucket, dan seterus), kemudian di-test dan bisa di-built dengan sukses
Otomasi meminimalisir human error. Ini memang kenyataan ya, yang namanya human error pasti ada. Bayangin aja kalau kita mesti bolak - balik upload code ke development server. Kalau gak ada proses otomasi seperti CI/CD ini, kan bisa repot. Tapi kalau ada proses otomasi seperti ini kan jadi gampang, setiap 1 jam sekali upload source code ke development server juga gak masalah
Mudah untuk menelusuri asal bug, dan dengan CI/CD kita bisa mengembalikan code ke kondisi sebelum terjadinya masalah
Nah dengan begini, proses upload code ke server jadi mudah. Team juga jadi senang, karena kalau tidak ada otomasi antar department bisa saling ribut. Contoh Front End minta api terbaru dari Back End, sedangkan developer back end masih sibuk dengan kerjaannya. Gitu juga yang mobile, perlu minta api terbaru. Kalau ada proses seperti ini kan semua jadi senang, dan tidak ada blocking kerjaan. Dan itu yang utama
Ada yang pernah dengar nama Martin Fowler?
Martin fowler ini Programmer juga dan banyak berkontribusi di dunia software development
Beliau menulis beberapa buku, yang paling fenomenal itu judulnya Extreme Programming dan Refactoring
Dan beliau juga terlibat di dalam membuat Agile Manifesto untuk Software Development
Dan menurut beliau ini, Continuous delivery artinya kita yakin bahwasanya setiap perubahan itu dapat di-deploy ke Production.
Sedangkan Continuous Deployment itu artinya, kita bisa melakukan deploy setiap ada perubahan
Scott Hanselman ini juga programmer, penulis buku, podcast kalian bisa cari namanay
Terima kasih
Tetap semangat
Tetap sehat selalu
Dan tetap waras juga tentunya
Mudah - mudahan kita bisa ketemu lagi di lain waktu