Well, hi friends, you've joined a talk named how to stand on the shoulders of giants our journey of open sourcing open service mesh Reading code writing code and asking the world for help. My name is delian reichev I'm a principal software engineer with Microsoft Azure and I spent the last year working on open service mesh What an incredible team of engineers Now in this talk, we're going to talk about what a service mesh is in general we're going to dig into the details of what service mesh interface is and Then we're going to talk about what exactly open service mesh is. I'll show you a demo of open service mesh We're gonna take a look at the code and then we're looking to the lessons that we learned in the process of open sourcing open service mesh Now let's step back and talk about what is a service mesh in general and for that I would like to illustrate the features or the value that service mesh can add to your business by first pretending that we're a CTO of an online bookstore as A CTO of an online bookstore. We have quite a few engineering teams They're working on very many micro services that we already have running in their Kubernetes infrastructure But for the next quarter as a CTO We have the three tasks of first improving security Building observability for a micro services and then figure out how to dynamically manage traffic Now improving security we want to do by being able to apply fine-grained authorization and encryption We want to implement mutual TLS between all the micro services because we're running in a zero trust environment Second we need observability We want to be able to collect metrics collect distributed traces logs We want to be able to audit our system and most importantly We want to be able to understand the topology of our micro services in order to unravel the complexity and make improvements and finally We want to implement dynamic traffic management We want to implement service failover path-based routing traffic splitting and shifting and various deployment strategies like canary deploys for instance because We want to deploy new versions of our software with zero downtime Well, how can we achieve that? I think in a classic scenario We could just go to the software engineering teams and ask them to just start working on that Improve security by implementing MTLS in every single endpoint of all of your micro services Please implement observability by instrumenting logging metrics traces send them to a service And then we can manage traffic By implementing client-side or trial logic circuit breaking But that's a lot of work to ask from engineering teams that are already busy Implementing bookstore specific business logic now They could leverage libraries that exist to implement most of those features a few of them come to mind We can use Twitter's finagle or Netflix history or Google's tubby but those tend to be language specific and Oftentimes, we also need to understand how those libraries work and it's not necessarily a easy or quick effort So we don't necessarily want every engineer to become a security and encryption or MTLS expert We definitely don't want to re-implement retry circuit breaking or really any other feature in every product in every language We know this is going to lead to varying degrees of quality of the implementations And we definitely don't want to have various configurations depending on the team and we don't want to have each team be responsible to manage their own certificate Rotation or certificate distribution that's going to end up in very many different techniques and inconsistency and insecurity because of that What we want instead is engineers to focus on the core features of the product Which is a bookstore and we also want to have a homogenous security Observability traffic management for every product and any language that we're using in our company and finally We want to have a system that can centrally managed all configuration. So configuration can be reviewed audited etc How do we achieve that? Well, I believe that all those features can be given to us By a service mesh the service mesh can be that Infrastructure that will give us all those features without having to ask all the engineers to commit extra time to build those features out Let's talk about a service mesh. Let's define it I'm going to use a few references here I love Lee Calcote's book on Istio up and running William Morgan from Boyant wrote an excellent article on what a service mesh is and why you need one And of course red hats blog on what's a service mesh is excellent So to summarize those a service mesh is an L4 or L7 communications infrastructure for microservices as well as monoliths Now a service mesh like we talked and this is what we want It's going to shift their responsibility for much of their reliability visibility and security Out of the application code and into the networking infrastructure and this is what we want We don't want to write all those features in the app code We want to shift it into the networking infrastructure Which then means that the service mesh will decouple and centralize The functional responsibilities of instrumenting and operating services out of the developers and into some sort of operators So we can free up the developers to focus on the features and an operator can then take care of those extra features So to summarize and to formalize Service mesh is the observable debuggable reliable and secure data plane for any programming language or framework. How does that sound? Okay, so if you wanted to cook a service mesh, what would those ingredients be? How do you actually make it? Well, first of all, you need a data plane For data plane, we're gonna be using some sort of a reverse proxy And there's quite a few of those and they're all excellent for instance envoy linker D engine X for HAProxy come to mind We're gonna need to control plane for the proxy and we need some sort of an API to be able to instrument and Declare the topology of the service mesh. We could use CRDs JSON or SMI spec for that And so the recipe we're gonna use those ingredients. Well, we're gonna add the data plane component to each proxy We're gonna add it to each one of our Payloads or binaries that are running on our Kubernetes cluster So each pod on our Kubernetes cluster that needs network access will get a sidecar with a proxy For all SM. That's envoy We're gonna connect those proxies to a control plane Which is going to tell the proxies exactly what to do by configuring them And finally, we're gonna apply various policies via this API. This is a service mesh API So now I'm gonna delve into this API. I'm gonna talk about the service mesh interface specifically So what is SMI? SMI was something that Microsoft announced in May 2019 and It is a specification for service meshes that run on Kubernetes This is a common standard that can be implemented by a variety of providers Now what are those standards? Well, so we have three pillars. The first one is a traffic policy Second one is traffic telemetry and finally traffic management when we say a variety of providers What do we mean? Well, that means that you can actually define those routing telemetry and traffic policies in an abstract way using service mesh interface And then apply it to different vendors So you use the same declaration for your service mesh features regardless of what the service mesh vendor is You can use Istio. You can use console or linker Z and the SMI policies will remain the same allows you to Declare service mesh features in a vendor neutral way And so open service mesh is one of those service meshes that supports service mesh interface. In fact Open service mesh implements service mesh interface natively. It is not the Canonical or the reference implementation of service mesh interface. It is just one of the implementations and Open service mesh was open sourced or announced in August of 2020 and it became a CNCF sandbox project in September of this year We welcome you to come and check out our github repository at github.com slash open service mesh slash OSM Now let's take a look at OSM now So open service mesh is a lightweight and extensible cloud native service mesh There are four principles that we embrace from the get go They have been guiding us throughout the last year of developing open service mesh First of all, we want to build a service mesh in a repository Which is very simple and easy to understand and contribute to this is focusing on Folks that arrive at the github repository. We want them to have really easy time onboarding and kind of learning from the source code Second we want to make open service mesh to be effortless to install maintain and operate the focus here obviously being the operators of the service mesh and When trouble arises, how do we make the troubleshooting process painless? This is our aspirational goal to build tools that make it very easy to identify and fix issues Within the service mesh, which tends to be very complex And finally, of course, we want to keep it really easy to configure by leveraging service mesh interface So what are the features that we have in open service mesh? Well as a version 0.5, which points to the fact that it's not production ready just yet You can apply policies which will govern the TCP and HTTP traffic axis between the various microservices in your Kubernetes cluster You can encrypt the traffic. In fact Open service mesh supports MTLS out of the box and Only encrypt the traffic will be flowing once MTLS is installed and we're leveraging short-lived certificates with a self-signed CA Open service mesh will start collecting traces and metrics as soon as it's installed To give it the observability that you need or we need as a CTO and finally with open service mesh We can implement traffic split and traffic shifting and we're going to show you this in the demo shortly Where we're going to split traffic between two different versions of bookstore All right, let's take a look under the hood So here's a Kubernetes cluster and we have already installed OSM On the right side, we see the OSM controller pod and there are five top-level modules inside the controller pod On the left side, we see SMI spec being applied to the Kubernetes cluster and in the gray box We have a Kubernetes service account a Kubernetes pod and three containers in it Now let's take a look at the SMI spec So the SMI spec is being applied to the Kubernetes cluster using the kubectl command SMI spec is in the form of some sort of YAML and it defines policies Which explicitly allow various services to talk to each other SMI is constructed in such a way where Microservices that are explicitly allowed to talk to each other will be permitted if they're not If policy does not exist then they're now permitted to talk to each other now the SMI spec will be Consumed by the OSM controller, which has informers and this is represented by the orange mesh Specification box, which is observing the SMI spec events and next We are going to take a look at the yellow box, which is the web hook and injector the point of that box is to Essentially intercept all the pod creation events flowing through the Kubernetes cluster and Augment each one of the Kubernetes pods. They belong to a namespace, which is in the service mesh Once a Kubernetes creation pod Event is intercepted We are going to augment that pod spec with two new containers So the app container is the original container that's in the pod We're going to add two new ones. The first one is the init container, which is ephemeral that init container will instantiate or Essentially apply a few IP table rules Which will then route all the traffic flowing in and out of the app container through the envoy proxy The envoy proxy is the second container. It's not ephemeral. It's gonna stay there forever The envoy proxy is a sidecar Which is actually what adds all the features that we as the CTO of the bookstore want from the service mesh The envoy proxy will augment the app container and it will add all the retry logic It will add the MTLS encryption, etc Now the web hook plus injector module in the OSM controller pod Will create the envoy sidecar with a particular bootstrap config from the get go and that bootstrap Config will contain two things the first one is the FQDN of the OSM controller pod and the second one will be a MTLS certificate, which is very specific to the envoy proxy The FQDN is pointing to the proxy control plane and once the envoy Establishes an MTLS GRPC connection to the proxy control plane It will present its unique certificate and then the OSM controller pod will know exactly Which envoy that is which pod it's coming from and which app container this envoy is fronting That will allow the OSM controller pod to send the exact configuration or the unique configuration needed by the envoy proxy Now speaking of configuration for the envoy proxy. Let's take a look at the Endpoint providers box, which is the blue box on your screen on the right side The endpoint providers will observe the Kubernetes cluster and it will provide us with a list of IP addresses important numbers for peer Envoys that are fronting other app containers So that our envoy here will know exactly what other IP addresses important numbers to route traffic to In the middle, we have a certificate manager and this is kind of an abstraction around either HashiCorpVolt or certmanager.io or our own internal certmanager or cert issuer, which is based on Golang's crypto x509 libraries and Finally OSM will also install Prometheus and Grafana to allow you to visualize various metrics in the cluster and Also, it will program envoy to send Traces to a Jaeger instance. So should you choose to do that? Let's take a look at summary of the five components inside the OSM controller pod We talked about the proxy control plane, which is where all the envoys connect to we talked about the certificate manager Which is an abstraction over either HashiCorpVolt, certmanager.io or an internal cert issuer and then we talked about the endpoint providers, which Gives you a list of IP addresses important numbers and finally the mesh specification, which is the SMI policies We have the mesh catalog, which will combine the outputs of all those Facilities and it will use the proxy control plane to send configuration to the various proxies And so if we were to look back at the recipe of cooking a service mesh What would the particular recipe be for open service mesh? Where the data plane for open service mesh is envoy proxy the control plane is a lifts go control plane which implements XDS and Of course, we're using the SMI SDK The API that we use of course is service mesh interface Which open service mesh implements that natively? Alright now let's take a look at the demonstration of open service mesh First, let me tell you about the various Components in my demonstration here in the middle. We have a bookstore. This is one micro service Which essentially is a server which you can buy books from using just HTTP get Top left of our screen. You have a book buyer. This is an infinite loop of a service Which will be HTTP get in books from the bookstore and In the top right we have book warehouse. So when the bookstore runs out of books, it will be HTTP get Getting books from the book warehouse and we're gonna be surprised to find out on the bottom left corner There is a book thief that services also in an infinite loop Performing HTTP get on the bookstore and also buying books What we want to do first of all is we want to apply a policy that blocks the book thief from purchasing books from the Bookstore and second we're gonna want to deploy a new version of bookstore. We want to deploy book store v2 without Experiencing any downtime without the book buyer noticing and let's take a look at how we can do that All right, and now let's take a look at a demo of Open service mesh. So first I'm gonna explain what we are seeing on the screen here first of all on the right side, you will see that I have my terminal window and It's essentially issuing the kubectl get pods command In an infinite loop we have the various namespaces book buyer bookstore book thief book warehouse Those are all the actors in my service mesh and you will also See that we have in the column ready the number of containers of each pod They all have only one container because none of those have really been joined To the service mesh, which I've already installed. So I do have OSM controller running and It's ready to go. But like I said, none of those namespaces have been joined to the service mesh just yet All right. Yeah, and so we're going to Issue various commands in my other terminal on the bottom window That's where we're going to be editing the various YAML files SMI spec We're going to execute shell commands. I do have port forwarding running, which is going to Allow us to see all the various windows on the left side So on the left side, we have port forwarding like I said from the book buyer pod the book thief and the bookstore the the book thief is much like the book buyer also Obtaining books from the bookstore in an infinite loop. Here's bookstore v1 and bookstore v2 And like I said, we're going to be watching the accounts of books increase and over time we're going to Make sure that book thief eventually stops purchasing books. All right. So first, I'm going to show you using a pick up file that the bookstore Commands or bookstore HTTP get calls are not encrypted So I want to show you by using TCP dump that the traffic flying or flowing from a book buyer to book store is not yet encrypted Because like I said, we haven't joined those namespaces to the service mesh. I'm going to capture a little bit of traffic I'm going to open it in wire shark and Browse through the traffic here to show you here's one of the get requests so as you can see we have the get request from book buyer to bookstore and The traffic is not encrypted Now I would like to encrypt the traffic. That's the first thing that we want to do. We want to make sure that Since we're running in a zero-trust networking Environment, we want to encrypt all that traffic So for that purpose, we're going to join The namespaces into the service mesh. Here's the script that I've prepared We're going to use OSM namespace add CLI command We're going to issue that command for all of the namespaces that we have It's also important to mention that We're going to apply this config map to open service mesh Which is going to switch OSM controller into permissive traffic policy mode That means that we're not going to be Mutating any of the traffic patterns will simply observe. We're not going to be blocking traffic With SMI policies that will come later And now one thing that I need to tell you about is the rolling restart script Because we have a few existing Paws already running. We're gonna have to issue kubectl rollout restart for all the deployments Which will restart the existing pods those existing pods will be terminated new pods will be created and There there those new pods are going to be augmented with An envoy site proxy, let me run the script quickly and Let's take a look at what happens to the pods as we're Restarting those deployments. You'll see that pods with one container are being terminated and Instead we're creating new pods with two containers to containers because we have not only the original Binary the original payload, but we also now have the envoy sidecar which is Where all the new features are going to be coming from I do need to now Restart my port forwarding scripts to port forward to the newly created pods and now we should see again the accounts of Books purchased or books stolen Start to increase starts from zero because those are brand new pods Like we said already Alright, so here it is now we have all those pods joined to the service mesh and That's proven by the fact that we have two pods to containers in there now I want to show you that the traffic is encrypted. I'm going to go ahead and do another packet capture Just a little bit of traffic. I'm going to open that traffic which I'm going to gather with TCP dump, obviously I'm going to open that peak app file and wire shark and we're going to again try to find those HTTP get requests But of course because now those pods are part of the service mesh part of OSM and We have enabled MTLS already We're going to have real hard time Finding those HTTP get requests because everything is encrypted so we can see the source and destination from book buyer to bookstore v1 But like I said, it's not gonna be possible to view the payload. Here's here are the packets All we can see is the fact that they have been encrypted with TLS v1.2 and we can no longer see the body of the request I'm going to switch gears now and show you What we have done with a Jaeger so we are collecting traces and You can see that Jaeger here is visualizing the topology of our service mesh. I Have zoomed in so it's a visible on the screen and we have book buyer and book thief both fetching books from bookstore v1 and bookstore v1 is replenishing books from book warehouse this comes in with Open service mesh pre-installed and so now we're gonna pretend that we're surprised that we're seeing book thief we're not happy with the fact that book thief is also purchasing books from bookstore v1 and The next goal of our exercise is going to be to block that particular traffic Going from book thief to bookstore v1 All right, so we discovered that there's this bad actor called book thief and it's already stolen 111 books and we want to prevent it from continuing to do that We want to stop it from buying books from v1 and v2 and so for that purpose We're going to apply a bunch of SMI policies I'm going to run the script which is gonna apply the policies and we're going to kind of instantly see that book thieves number of books stolen will freeze at a given number and I'm going to walk you through now what I just did Let's take a look at specifically the deploy traffic target Policy so like I said, this is an SMI policy called traffic target and we're going to take a look at this piece of YAML and in particular we're going to take a look at the Source and destination source being book buyer or the service account of book buyer destination is bookstore v1 specifically and now the reason We are not no longer seeing books stolen increases because book thief is commented out in this policy essentially book thief is Not explicitly allowed like book buyer to communicate with bookstore, which means it is blocked This is how traffic target works and there it is Book thief is no longer able to steal books And finally I want to show you traffic split. Let's take a look at this policy Here is deploy traffic split. So here's the YAML for the traffic split SMI policy What you see is that essentially traffic that is going to the bookstore service will be split between bookstore v1 100% and bookstore v2 right now 0% goes to that one So I'm going to tweet tweet that I'm going to change traffic to 50 50 split between v1 and v2 to save this and apply it and So what you will notice is that traffic flowing between book buyer and book thief will eventually start to be split equally between v1 and v2 and Here is Grafana to Help us look at the various metrics that We can observe allow me to tweak The UI here to start looking at metrics and there we go already We're seeing that book buyer is starting to purchase books from bookstore v2 as well as v1 And if we refresh Grafana, we're starting to see success counts now for traffic from book buyer to bookstore v2 as well and If we decide that bookstore v2 is doing really well everything's looking great I'm going to change it to 100% of the traffic going to bookstore v2. I'm going to deploy this and In a second, we're going to see that books purchase from bookstore v1 are going to freeze at 150 something and all of the traffic is going to be flowing to bookstore v2. We're already seeing the number of success counts increase All right next I would like to very quickly show you how to get to the source code of open service mesh and read write Contribute if you can First of all, we're going to start with the open service mesh design and all the interfaces that we've created to make this extensible The design MD file Contains all of the information you would need to get you started You I highly recommend you go through that to Understand how open service mesh works and how service mesh is in general work. I think that you're going to find it useful Second you can actually take a look at ADS stream that go. So this is the GRPC entry point for all Envoys this is how all Envoy proxies will connect to the control plane and Essentially, this is the the go routine that would start when a new proxy connects to it This is a good entry point to get you going to help you understand What happens when an Envoy proxy connects how we issue all the discovery responses how we Construct the proto buffers that configure the envoys and what that configuration is Based on how the advice you start with the ADS stream that go file Another interesting Kind of piece of information that you can get you going is looking at the injector or the patch that go file This is essentially how the web hook in open service mesh works It will show you how we augment the pod spec To add the bootstrap config for the Envoy proxy how to add the Envoy sidecar itself How we issue the Certificate for the proxy and how we create the init container etc from this function you can kind of start to drill deeper into the Open service mesh repository for instance if you wanted to understand how the certificate management system works you could look into the issue certificate function and Finally, you can take a look at how XDS itself works by looking at the ADS server that go function we've implemented Essentially handlers for the endpoint discovery service cluster discovery service Routes discovery listener discovery and secrets discovery and those are kind of the five pillars of the configuration for Envoy proxy You can have those links available through the slides And now let's talk about the lessons learned in the process of open sourcing open service mesh I said a process because oftentimes we think of open sourcing a project as a binary event Well, it's not a binary event Even though you might think that all it takes is just checking that box on github saying make the repo public change the visibility In fact in actuality open sourcing a project is a process in a project of an it itself It's a marathon that takes a long time to run And let me take you through the steps or the process of open sourcing a project first of all preparing to open source Start the preparation as early as possible. And first of all think about the privacy of the contributors think about your own privacy Choose and set your commit email address carefully and Decide whether to anonymize your email address will be available to the world after all And as far as sensitivity and mindfulness Please do code Comment and commit knowing that one day the entire world could be looking at this So what that means is while you're coding committing and commenting writing comments Think about are you leaking secrets? Anything that's sensitive to your organization internally or to you privately also Are you using language that may be perceived offensive to the future community and contributors that you're building think about that? External folks looking into what you're creating as well. And finally transparency From the early days from the get-go you should design document and make decisions with transparency in mind So that one day when a contributor arrives at your repo They can quickly answer the question of why and how certain decision was made So do document kind of how you're making decisions and put them in your public repository even before you go open source and Then when the time comes for you to flip the visibility bit and to open source your project You need to kind of have answers for those two questions. Why and when first of all know why you're doing it For instance We open sourced open service mesh with three things in mind First of all, we wanted to get advice and feedback from the other companies out there and the potential users of open service Mesh very important to us Second of all, we wanted to provide to the world One more implementation of service mesh This is not the Implementation is just one other implementation that we want to offer and finally we wanted to collaborate with the community in a vendor neutral space Second of course decide when it makes most sense for you to open source your project And my advice for you is to open source as soon as possible as soon as you can That will allow you to get feedback to iterate And don't wait for perfect code or perfect documentation That's hard to attain Get that feedback as soon as possible But don't open source sooner than before the guardrails are ready for your newcomers What I mean by guardrail is do not open source before you have had a chance to build unit tests to add static Analysis to your CI to write at least minimal documentation to help those early contributors on board to help the early contributors feel safe and Feel validated when they're adding a feature that feature is not going to break the system I think that a few of those guardrails are necessary before you open source to create for a productive environment for your contributors and then long term After the project is open source and it is public a few things happen And they're very interesting to me first of all the team dynamic will change after all open sourcing a project invites The whole world to join your team and communication will change the communication channel change the The time when people communicate changes and how they communicate to change of course second feature velocity Changes as well open sourcing and creating a new governance model Will require changes to how you actually publish designs how you discuss those designs How proposals are made how you're approving PRs and how you triage in github issues Reviews may slow down But that will be much more fruitful because the community will be commenting and collaborating with you And of course the queue of github issues and requests for features may grow and That's actually a feedback that I Very much appreciate when folks come and tell us what they would like to see in open service mesh or when they find bugs It's a wonderful thing and finally If you see that extra feedback and those extra github issues arriving you have to monitor those and React to those also monitor all other channels not just github issues, but slack emails All other channels that may exist And like I said feedback is a wonderful thing, but it comes at a cost Many new requests and triaging will increase the attention demand on your team And if the team is small of course that may take away from the core work all right and now something special parting thoughts and the topic of this talk was how to stand on the shoulders of giants and This actually points me to something that's very dear to my heart and that's reading code reading code as in reading prose And I think before we even start thinking about building something or before we open source the project We've been working on it would be a wonderful thing to go out there and research to see what prior art exists in the open source community There are amazing search tools out there to find wonderful code So I invite you to do that search for code Similar to what you're building read that code to learn to build to be able to stand on the shoulders of giants Who have come before you and have created something incredible and then improve that code? Use it and attribute back give attribution to the authors follow the rules and the licensing agreement and Of course contribute back. That's what open source is about push back upstream Your changes and I want to point you to this Outstanding book that do Midis spin elis wrote back in 2003. What a timeless piece This is called the code reading the open source perspective. I do Midis spin elis will With this book will teach you how to read code fine code And this book has been truly transformational for me and finally I want to encourage you to open source your projects So that that code that you're gonna open source so that you yourself can be someone else's giant So people can look at your code and learn from it Thank you very much for attending the session. Please reach out. You can find me on Twitter You can find me on LinkedIn and please send me an email with any feedback you might have Thank you so much


I believe UPF has been highly recognized as probably one of the most international universities in Spain. The European Association of International Education is a tool for us to connect with our international partners across the world. And especially in a moment in which the international agenda in Europe is becoming revolutionized by the European Alliance's structure. I think for us as an institution it's really important to meet our partners and learn about who they are. If we are talking to our students and telling them why they should go abroad or where is the best place for them to go, we need to understand that ourselves. So to be here, to see with our own eyes and to talk face-to-face is really nice. I think also it's really good to find out more about other universities and how they work and sort of find best practice from others and see what we can do to improve the way that we do our exchange from them. Students in Argentina are really looking forward to coming to Spain in general and Catalunya in particular Barcelona is really attractive for our students. So being able to offer a university that is much to our high-performing students, students that are demanding of a high-level instruction and very interesting challenges put to them academically, I think that's why our partner works so well. Having a conference like the EIE in Barcelona, it's really a unique opportunity. Over 6,000 professionals of international education are coming to the city. So it is for us a way to show what we can offer as a university. And getting involved in the association is also being in the platform that is shaping the future of international education. It's engaging in the discussions, it's also influencing the direction international education is taking and being really abreast of all the innovation that is happening so that we can be and remain a leading university ourselves.


The first flight that was to carry refugees from the UK to Rwanda as part of a controversial deportation plan finally did not take off. This followed a last-minute intervention by the European Court of Human Rights and protests across the UK. Seven refugees were to be deported to Rwanda on Tuesday after multiple appeals to stop the process in the UK courts field. However, at the last minute, the ECHR ruled that an Iraqi man who was one of the seven could not be deported until the asylum plan underwent final judicial review in a few weeks. A flurry of legal interventions followed and the plane finally did not take off. However, the government remains committed to the plan. UK Home Secretary Priti Patel said that the seven could be deported in future flights. Meanwhile, Prime Minister Boris Johnson even suggested that the UK could withdraw from the European Court of Human Rights. The deportation proposal has faced huge protests ever since it was announced in April. According to the plan, the UK will pay Rwanda for taking in refugees who entered without authorization after 1 January. Rwanda would process the asylum claims and if accepted, they would be allowed to settle in the African country. If their claims were not accepted, they could apply for a visa or face deportation again. From the time the plan was announced, rights organisations have condemned it as unethical, immoral, ineffective, costly and very likely unlawful. From left parties and rights organisations to the archbishop of Canterbury and Prince Charles, a cross-section of society has expressed opposition to this plan. Former Labour Party leader Jeremy Corbyn was among those who spoke out against the plan. 70 million people without a home to call their own. 70 million people facing an uncertain future.  And at a different place and a different time, any one of us could be one of those 70 million. And so I absolutely support and welcome the way in which Ukrainian refugees have been treated in this country and all over Europe. Another key critic was the UN High Commissioner for Refugees from the very beginning. It said that such agreements often constituted a violation of international law and that offshoring and externalisation of asylum arrangements would only magnify risks and force refugees to seek alternative routes. The UN Agency has argued that this will place excessive owners on the asylum seeker who may not have had sufficient access to legal advice. It has added that there are serious concerns that asylum seekers transferred to Rwanda will not have access to fair and efficient procedures for the determination of refugee status, risking refoulement. Refoulement is the forcible return of refugees or asylum seekers to a country where they are liable to be subjected to persecution. Filippo Grandi, the UN Refugee Commissioner, had previously called the UK government's stance all wrong and said it should not be exporting its responsibility to another country. On Tuesday, ahead of the flight, several activists from the Stop Depotations grassroots network gathered outside the Coinbrook Immigration Removal Centre in Heathrow. The refugees who were to be deported were being held at the facility. Protesters locked themselves together with metal pipes and blockaded exits to the facility as police officers and vans descended on the area. Over the next few hours, at least 18 activists were arrested. Protesters also gathered outside the military runway in Boscombe Down where the flight had been grounded. Protesters took place outside the UK Home Office in London on Monday and estimated 130 people already in detention in the UK had been served notices of their possible deportation out of which lawyers for nearly 100 people submitted legal challenges. Kfokalais estimated that over 70% of people served with removal notices for Rwanda had suffered torture or trafficking either in their home country or on their journey to the UK. Of the 39 people who were identified to be deported in the first flight, many were successful in their legal challenges. However, some of them failed and successive courts upheld the government's plan. The government's plan will be extensively reviewed judicially in July. Meanwhile, the government is determined to continue this policy despite opposition. Our legal team are reviewing every decision made on this flight and preparation for the next flight begins now, Tweet Patel said. Organisations have also sworn to continue the struggle against this.


What is up, everybody? Welcome back to the channel.  So she's just crushing it built a built a built a huge, huge audience and huge network offline. But now as we go to online as we go now into social media marketing and more like social media targeting right with ads. It's all about you guys getting people to click and whether it's ads or organic, you know, if you're in the real estate space and just just overall business if you're out there capturing leads right you're in the client services business.  Where we're at today with the internet where we've always been with the internet but where we're and where we've always been with social media the most successful ones are getting you to click whether you're watching this video on YouTube, Instagram, Facebook, LinkedIn, Pinterest, TikTok, whatever. The audience the front end is is the audience the front end is the platform is social media but the back end getting someone to click and come into your back end. No pun intended right. That's what it's all about is getting a percentage of these folks to actually click and so what I wanted to do is I was just day in the life just building a funnel for a client a real estate agent. She's out there marketing a specific listing a property for sale and I'm going to show you how simple it is to capture a ton of leads on social media. Okay this is this is what the market is doing and this is in the real estate space right this is in the real estate space but but I truly believe it's in it's in every space every space. You need a link you need a link that people can click on right and that link there's so much more that goes into that link but that link you need to own that link you need to be tracking that link needs to be taking people to a capture page which I'm going to show you I'm going to show you what I built what I just put together for for a top producing real estate agent. If you want to if you want me to help you like this if you want me to show you how to do it yourself like let me know reach out to me I'd love to talk to you. If you're in the real estate space and you're really trying to build a brand on social media but more like trying to try to build a brand locally that's what I coach right how do we get the attention of our local audience.  All everyone's doing is just throwing spaghetti against the wall. Yes you have a handful of people that that that follow you that know you and trust you and do business with you your past clients your uncles your aunts yes those are make up a very few percent on your Facebook profile. Right as far as people following your friends but as you scale your friend count up you guys as you get to the thousands and thousands of friends it doesn't matter what platform it is when we post our content this open house. It's being seen by 10 people who don't even live in that area and this is a Facebook group of 4.5 thousand and I can see the 10 posts I can see the insights because this is my group right I'm the admin of this group. So it's like dude look at that engagement it reached 10 people I'm one of them. I'm in California this property is in freakin. We're going back to that post every post is the same I could just work off of any of these posts but let's go back to back to bills. It's like dude like like this right here 12 people it reached 12 people.  Subscribe if you're following me here on Facebook stay in touch because this is the basics. This is how you capture a ton of leads online right that shot to bill but that's not how you do it that that's not how you do it but I'm going to show you a little tweak. I'm going to show you the little change that we need to be making to the to the text of our post and it doesn't matter if it's organic like this. Right God knows he's posting it on his business page. He's posting that that listing on his on his personal profile. He's posting that listing on Instagram on LinkedIn. He's posting that listing over here in Facebook groups. He's he's in my Facebook group right here and he's posting his listing right. That's what most people call social media marketing and that's not that's not you guys but let's really dive into the text and and and and I'm going to show you what I put together for for Andrea. Okay so it's this it's this basic you guys it's it's it's this of a little tweak and here it is it's the call to action. So everyone always has the right content.   It's the call to action 99.9999% and I tell this story every single day the 5000 friends that follow that that I have on Facebook on my personal profile. The 5000 friends are agents they're not they're not family they're not friends from high school they're not my uncle and it's not my brother that's my friend on Facebook. No dude 5000 real estate agents and it's been that way since 2017 all unfriended for you a few will unfriend me and I'll just replenish and get back to 5000. I'll always come to my personal profile you'll always see that 5000 right and every single one is an agent. So if you can imagine over the past few years how many posts I've seen that's why when when I try to give advice to agents I'm like dude you understand I've seen tens of thousands of these pages.  No dude like I've seen this by the hundreds of thousands at this point right where it's the same typical post and the same typical call to action right this is not the call to action and no one's calling no one's calling bill right no one's calling.  That's why I always I always say it's like dude those of you that are watching this video right now comment below if you're in San Diego.  Well if you're watching this on Facebook and YouTube that's where this video is going Facebook and YouTube. Not one of you live in San Diego. Not one of you. So if I was promoting my listing in open house and posting it on social media not one of you that follow me are on are living in San Diego. Nor are you moving to San Diego. Right and that's how it is vice versa you guys so when I'm seeing shout out to Bill but when I'm seeing his open house it's like dude and I'm one of his 1900 friends. Instagram TikTok LinkedIn Facebook it's all the same dude majority of us don't live in that area. So rather than rather than here's the little tweak you guys two tweaks two tweaks tweak number one this all text the image all that stuff is fine all that stuff is fine. But but one one tweak is rather than just blasting it all over these damn platforms run a Facebook ad bill run a Facebook ad.  People that live in Dearborn are more likely to come physically to that open house than people like me across the country who are seeing this post all 12 of us. Right it's like dude like we don't live in that area bro like like like so so so tweak number one same text same image and everything. Just run a Facebook ad man learn how to get the attention of your local audience that's number number one here's number two here's number two. After seeing tens of thousands of pages of posts right agents following real estate agents here on Facebook specifically right 99.999% of the 99 and then I'll tell you what the 1% is 99% of the time. That's the call to action. It's a phone number or an email 99% of the time dude and I'm talking about after seeing tens of thousands of real estate post listings and open houses right now.  We're not talking about those anomalies and in the way the market has been weird over the past you know several months we're just I'm just kind of giving you a broad a broad a broad strategy here a broad strategy. How can we capture leads in our local area that's what this is all about dude. How can I post this and get the attention of that audience in Dearborn number one Facebook ad number two this call to action that's not the call to action. So again 99% of the time I'll see a phone number or I'll see an email no one's calling bro right no one's calling. So so if it was an ad number one if it was an ad thousands of people in Dearborn would be seeing this post right now. And then number two rather than this being the phone number you would have put or I would have put or we would have put something like click here for all the details or because it was an ad it would it would be actually learn more down here. So you would see a learn more button when you see when you run Facebook ads you have a learn more button down here right so if you go through the newsfeed like let me show you guys. If I just if I just go through the newsfeed right and I see a sponsored ad I see a Facebook sponsored ad I'll see a learn more buttons right here sponsored. This is a Facebook ad there's the learn more button right so on the post on the post I would have a learn more button so down here in the call to action it would say click learn more for all the details or I could have put the link there as well. Click here to learn more but it'll still it'll still have to learn more button right. But the point is man number two number two the call to action becomes a click click learn more for all the details when I click out a cane straight to a single page one single page shout to Andrea. I'm not done with this page it's a simple simple page that image I know it's freaking pics later that image I'm waiting on another image so I'm not done with this just yet. But but but that's that's just such an eyesore that photo I need it to be crystal crystal clear in the background but when you click the button it'll bring you straight to this this is the living room. And that's a simple opt in page you guys that right there that right there you guys is as basic as it needs to be that basic a simple page over here there's nothing like that right. So when you can run this as a Facebook ad when you can provide a link a simple landing page not and let's go to these other ones too here's what I want to show you. So so 99% of time that that that's the call to action right a phone number or an email the 1% the 1% let's see actually that's the same bill the 1% would actually post a listing or a link I should say a link like. Another open house again just phone number just listed let's see if this one provided a link see no link just phone number for showing just like dude it reached one person I'm the only person this is in Pomona it's like dude I'm like I don't even. Like like I'm in the same state you know like and this is what this is called this is what people are calling social media marketing you guys but I'm trying to show you what. What see so everyone puts their phone number right but whatever link is shared. I wanted to show you so look there's all the tax and look okay so this is my point look man look. So so again Lene. Good good good text right good text the content good good text but the call to action again the phone number the email. And then and then here's her website so as I click that's not a website that she owns because that's her brokers William strew right that's her website but that's William strews domain. So she's just you know promoting William strews domain when she should be promoting her domain right so so that that's what I see typically the 1% of time 99% of time it's the damn phone number the email but but but over here if I ever do see a link that's what I see. That's what I see 10 out of 10 times is that most real estate agents are just simply posting their their their exp site their Keller William site their coldwall website their William strew website when it's like dude that that's not what you want to be posting. Again moving forward moving forward if you're really trying to make the social media thing work and you're really trying to build a build an audience and especially target your local area if you're trying to farm a few zip codes in your backyard. This how you want to be doing it man this needs to be an ad we need to be targeting that local area and then and then number two rather than send them to your fancy website and in this case the fancy website doesn't even work. That's another imagine if that was an ad and she was running ads to that link it's like you don't want to be doing that so so you got to be again if I clicked this was Andrea. I click I'm coming straight to this one page right straight to this one page few bullet points on the property and I'm often in. Here's what that looks like name email phone number. Send me the details when they opt in. Andrea gets a notification right away. Hey a new lead came in and then that lead lands on page two. Thank you for your interest. This is thank you for your interest in three two two Nicole Lane here she's on video and let me play let me play this video for you. In regards to three two two Nicole here in Sagmore Hills. Now what I'm going to be sending you is an information sheet to give you all the details about the house telling you about all the updates. It's like two ranches on top of each other plus a gorgeous walk out lower level that you're just not going to believe and make sure you check out the photos I'll be sending you the house has been updated all the appliances stay. I want to make sure you get those details and writing because if you have any questions you can always reach out to me. I'm Andrea Gould and the listing agent and one of Howard Hannes greatest realtor so definitely give me a call and continue to check your emails as I get listings in the areas. I will be reaching out to you all throughout Northeastern Ohio so up next check your email and also if you click the link below you'll be able to schedule an appointment to have me come out to your home. Give you an estimated value of your home. How soon we can get it sold or how slowly you want to get it sold so you can be ready to move into your next home. I'm a listing agent and a buyer's agent so don't forget to reach out again click the link below and we'll talk soon. That's the flow you guys we went from that post which would have been an ad right which is what I'm encouraging you guys to do as an ad to clicking coming to the landing page right simple landing page them opting in landing on a second. Page seen her on video telling them to schedule a call. That's it. That's it. So so so if you guys are going to continue to post organically because God knows you guys are going to keep posting to your 3700 friends that all live across the country. At least provide the link at least start creating these basic landing pages see all they're doing list with Laurel so this is this is list with Laurel so as I click as I click look at the link this link is hers. Right that link is her social to Laurel to Laurel that link is hers so so she's over here promoting this and as I click. She can chat which is awesome right this is more like it you guys this is this is what I'll see 1% of the time but but also the mistake that that that I see here is the fact that she gave me all this information. Before she asked for mine right so so as you look at this page this page is basic there's not much there a few bullet points maybe I'll put all that in the text of the post or whatever but but a few bullet points and having them opt in. I don't want to give them all that information right here and there unless you guys do but but you want to tease them a bit right you want to tease them a little bit you want to get you want to you want to you want to for sure capture the lead. And if you're running as an as an ad these would all be the local leads right so so shot to shot to Laurel she still got the right the right idea. But but with the more the more the more information up front the lower lead count you'll end up receiving because you're just giving up all the information when you should just be teasing them a little bit. Just at least get them in your pipeline and you just feed them more listings after that right it's all about capturing the lead you guys so. That's what I want to show you with a two page funnel that I truly believe every single business owner and especially real estate agent every single person misses when it comes to capturing leads on social media. So reach out you guys if you need any help with any of that and I'll see you guys in the next video over now.


Hello everyone, this is financial author Ahmed Dunn of AhmedDunn.com On this channel you'll find financial, travel and more videos just like the one you're watching right now. If you like what you see, please give it a thumbs up and consider subscribing. Hello everyone, this is my day 11 travel video from Bangladesh. And today I'll be taking you to a railway station and inside a train in Bangladesh. So let's join me and ride a train in Bangladesh. And you'll have an experience of how a train and railway station in Bangladesh look like. For more videos please subscribe. And I have lots more videos from my Bangladesh India trip. And I'll see you shortly. Thank you.


What's going on, Kendall, congrats, man. With the opportunity here with the Titans, why was it the right fit for you? So I literally got that question a second ago. We'll flashback to Cleveland, man. Just run the ball the way we did and the things that we could do there. It's top notch. And then when the opportunity arose and came here, I mean, literally I had Nick Chubb as running back in Cleveland. If you want to argue with one of the only people on the sleeve that may be better is, as you guys call him, King Henry. So the fact that I would have had the opportunity to block for a man like that, someone who's so top notch. And then at the same time, I know Coach Rebel from Houston when I played there in my first four years, top notch guy. I know Ben Jones. I played against the Titans for years now and just know the type of organization and the type of team that's always been here. So the fact that I could come in here and try to help and do the best that I can. I mean, I couldn't blink at it, man. It was a beautiful spot. And not to throw into, I'm literally from Charlotte, North Carolina. I went to school at that state. This is not far from home. So to have my family closer to couldn't pass it up. Luke. Hey, Kendall, are you aware yet of what your role is going to be in terms of, are you going to be a starter competing for starting job? Your guess is as good as mine, my friend. You know, really and truly, I personally don't necessarily not to say worry about it because of course you want to know. But at the same time, bro, I just bring what I bring to the table and I let the chips fall as they make. I know there's a lot of things and you know, the roles will be defined when the time comes. But I always take the approach.  And however that plays out, it's going to play out. And Kendall, you kind of touched on it there, but you've blocked for some good backs and Cleveland now you got there. Kenry going to be lining up behind you. What have you thought about him from afar and how much you're looking forward to being his teammate? Oh man, I'll put it to you like this. I, and this is a true story. I remember warming up in Houston and going out there and Bernard MacKinney was our middle linebacker at the time. He came in with my class and I remember watching Derrick Henry in the far end zone, warm up for the Titans before the game, before we all were stretching the whole team come out there. And I remember telling myself, he is literally Bernard MacKinney's size at running back. And then to watch him be able to do the things he does and to hear Ben Jones and other guys talk about how such a wonderful person he is at the same time. I mean, that's what you want. I mean, we literally play offensive line to open holes for a man like that. And to know that I'm going to be and have the opportunity to block or possibly one of the best runners ever is going to be so exciting, man. John Bunnan. Kendall, yeah, just going back to, you know, when you signed, did you have any indication that, you know, the Titans were actually going to release Dennis, you know, in another day or two?   Yeah, honestly, I mean, Dennis's brother, Tim, was the officer coordinator in Houston. And he worked with us very closely when I was there, offensive line wise in my first few years. So I've known Tim Kelly for a long time. I've had the pleasure of, you know, meeting Dennis and informing me of friendship with Dennis. I had no idea. You know, I literally and truly no idea whatsoever. Dennis was literally one of the first people I was very excited to get here and to get around, you know, especially on top of Ben Jones and everyone else. So when that happened, man, like it literally, I had no idea, but at the same time, the only thing that I really and truly key control is what I do each and every day. And at the end of the day, I mean, that's all I can handle. Paul? Hey, Kendall, talk us through your prowess as a past blocker, since we've been talking all around so far here. Yeah, so, you know, early on, I got thrown into the fire early in Houston, going against J.J. and Clowney every single day.  So I mean, I've had to rise to the occasion, blocking guys like that for a long time. And then we flash forward to Cleveland. And I mean, they have Miles Garrett, Olivier Vernon outside on those edges. So it's not like I haven't been going against people in practice every single day, who are literally top notch at their craft. And then at the same time, everybody always touch bases on, you know, you got thrown into the playoff game against T.J., which we all know T.J. is a phenomenal pass rusher. I mean, I always looked at pass rushing and pass blocking as, you know, we're doing a dance. You know, I'm literally trying to be as smooth as possible and dictate to you what I want you to do. And that's what they do to us as well. I mean, it's something that I take a lot of pride in because I mean, we're bigger men on that field, but I love showing people that we're as athletic and we can go get some of the best athletes on the team. You know, that's something I take a lot of pride in. So it's going to be fun. It's going to be very, very fun. It's something like I said, I look forward to doing. Corey Curtis. Hey, I'll get you back on the running game here. You know, there are other teams with other good running backs, but this one is committed to running the ball more than throwing the ball as an offensive lineman. How attractive is that to you to be moving forward more than 50% of the time? Oh, it's crazy. I mean, literally, if you know football, if you study football, especially in this league, this league is changed to passing the ball, which everyone understands. I mean, it's a quarterback driven league. So to be on a team that really and truly, and of course in Cleveland, we ran the ball big time too, but to continue that and do it more here, I mean, that's an offensive lineman's dream to be able, no, don't get me wrong. We enjoy pass blocking as well, but I'm pretty sure you can ask anyone of my fellow offensive lineman in the league to pass that 60 or 70 times in a game or 50 plus. Like, eh, that's not the greatest. I mean, but at the same time, just knowing that you're going to ground and pound like we're going to do here. I mean, it's a dream come true. It is. Dave Boclair. Kendall, along those lines, when you see your line and your running backs start to wear down a defense, like when do you know that's happening and how satisfying is that when you see it taking place? Oh, you can feel it early. Don't get me wrong. Everybody's going to have more juice.  But at the same time, you can already understand if you're establishing drives, if it's second down, seven, you get that first, first down. If it's, you know, third and five, third and six, and we choose to run the ball and you get that first down, you can already begin to start to see defenses demoralized legit. I mean, anybody who plays the game will tell you that.  You know, I had a phenomenal coach in Cleveland, Coach Callahan, and he literally taught us, man, we are literally going to run, get off the ball, cut, get these guys open to literally run through these holes. And that's all I've known and it's going to be very exciting to do it here. Tehran. I would imagine there's a big man who caught a touchdown knowing the Titans do that. That's something that attracted you to the team. But now real talk with the zone scheme and just how some of those things work. You guys in Cleveland had excellent timing with Hunt and Chubb. How did you develop that? And how would you look at being able to develop that same type of timing here with the Titans and Derek Henry? So it's always going to come down to, you know, repetitive reps over and over and over. You know, it's really and truly us learning our back learning an offensive line. You know, every year things change. People change, pieces change, but it's really putting that time in and knowing like in Cleveland, I knew how Karim was going to run the ball when he came into the game. I knew how Nick Chubb was going to run the ball when he came into the game because I had spent that time and we had built those things and through practice repetitions, I already knew. Like I knew if I cut that backside three technique, Chubb was going to cut it back and be gone. Like I knew that was going to happen. So in the back of my mind, I mean, of course you always want to get it, but I knew literally making that block could change our entire game and that comes through practice reps.  Let me show them what I can do. Jim Wyatt. And Kendall, the Titans number two back as an app state guy like yourself, how much did you keep up with Darrington Evans and what do you think about being teammates with him? I mean, it's always beautiful to see. You can see it right here. I wear it with pride always. It's always on me. If you want to see the shirt up underneath, there's an app state shirt right there as well. We played a night in March Madness. It's a big time for our college. And of course, when I left that, Darrington came in and he had a phenomenal career. He's a very explosive player, but I always want to see guys from my school do well. I love my school dearly. But to have someone here who I can lean on who's been through the program that I've been through, that's part of that family, man. It's a beautiful thing. I've been blessed with almost every team I've been on. I've had someone from my high school or someone from my college be on those teams.  Has your opinion on who the top running back in the league changed in the last week?  I mean, let's be completely honest here. You can't go wrong with either or you can't. I mean, Derek Henry is the king, I get it. But Nick Chubb in Korea are phenomenal. I'm at the same time, no, I know the stats speak for itself. So we'll just leave it at that. John Vernon. Yeah, Kendall, I know Taran mentioned the touchdown earlier. What do you recall from scoring that TD against the Titans last year? And I guess, I imagine you're probably aware that a couple of your new teammate linemen have done the same. We guys have a little fraternity of fast catching a lineman, TD fast catching a lineman. Yes, sir. I mean, I'll never forget it. You know, it's a moment that as a bigger dude growing up in general, you dream about that. You know, we block from in every day. We try to make sure that the receiving and everything make their job easier so they can get that glory. So, you know, the fact that I was able to do that, I mean, it's a feeling that I can't even describe to you. You know, everyone always asked me, did you expect to catch the ball? Of course. I mean, I caught it past my first year in Houston. Caught it past now in Cleveland. So, I mean, every team that I've been on I've caught, I had an opportunity to catch a pass. This past year just happened to be a touchdown. I still have the ball. It literally has a picture on it for when I caught it. It'll be one of my finest memories ever. And if I get one here, I mean, we'll keep the trend alive. Thank you. Last question for you, Paul. I'm wondering if you've talked with Jack Conklin at all about Tennessee leading up to this or in general? Yeah. Yes, sir. So, I'd met Jack, of course, when I was still in Houston because Ben was with me my first year in Houston and then came here. So, meeting Jack and, you know, meeting him when he first came out in Michigan State. Very, very nice guy.  That man is top notch. And we had plenty of talks about, you know, his time in Tennessee in general. And I mean, he's told me all about this place and he always had nothing positive to say about here. So, for it to come full circle now, then for me to be here, you know, he's filled me in on almost anything that I could ask. I mean, I could literally get on the phone and call Jack right now. And I know he answered. He'd always be there for me. So, just to have someone like that who had success here and the type of player that he is to be now and one of my brothers, it's phenomenal feeling.